packages feed

gogol-firebasehosting (empty) → 0.4.0

raw patch · 23 files changed

+5284/−0 lines, 23 filesdep +basedep +gogol-coresetup-changed

Dependencies added: base, gogol-core

Files

+ LICENSE view
@@ -0,0 +1,367 @@+Mozilla Public License Version 2.0+==================================++1. Definitions+--------------++1.1. "Contributor"+    means each individual or legal entity that creates, contributes to+    the creation of, or owns Covered Software.++1.2. "Contributor Version"+    means the combination of the Contributions of others (if any) used+    by a Contributor and that particular Contributor's Contribution.++1.3. "Contribution"+    means Covered Software of a particular Contributor.++1.4. "Covered Software"+    means Source Code Form to which the initial Contributor has attached+    the notice in Exhibit A, the Executable Form of such Source Code+    Form, and Modifications of such Source Code Form, in each case+    including portions thereof.++1.5. "Incompatible With Secondary Licenses"+    means++    (a) that the initial Contributor has attached the notice described+        in Exhibit B to the Covered Software; or++    (b) that the Covered Software was made available under the terms of+        version 1.1 or earlier of the License, but not also under the+        terms of a Secondary License.++1.6. "Executable Form"+    means any form of the work other than Source Code Form.++1.7. "Larger Work"+    means a work that combines Covered Software with other material, in+    a separate file or files, that is not Covered Software.++1.8. "License"+    means this document.++1.9. "Licensable"+    means having the right to grant, to the maximum extent possible,+    whether at the time of the initial grant or subsequently, any and+    all of the rights conveyed by this License.++1.10. "Modifications"+    means any of the following:++    (a) any file in Source Code Form that results from an addition to,+        deletion from, or modification of the contents of Covered+        Software; or++    (b) any new file in Source Code Form that contains any Covered+        Software.++1.11. "Patent Claims" of a Contributor+    means any patent claim(s), including without limitation, method,+    process, and apparatus claims, in any patent Licensable by such+    Contributor that would be infringed, but for the grant of the+    License, by the making, using, selling, offering for sale, having+    made, import, or transfer of either its Contributions or its+    Contributor Version.++1.12. "Secondary License"+    means either the GNU General Public License, Version 2.0, the GNU+    Lesser General Public License, Version 2.1, the GNU Affero General+    Public License, Version 3.0, or any later versions of those+    licenses.++1.13. "Source Code Form"+    means the form of the work preferred for making modifications.++1.14. "You" (or "Your")+    means an individual or a legal entity exercising rights under this+    License. For legal entities, "You" includes any entity that+    controls, is controlled by, or is under common control with You. For+    purposes of this definition, "control" means (a) the power, direct+    or indirect, to cause the direction or management of such entity,+    whether by contract or otherwise, or (b) ownership of more than+    fifty percent (50%) of the outstanding shares or beneficial+    ownership of such entity.++2. License Grants and Conditions+--------------------------------++2.1. Grants++Each Contributor hereby grants You a world-wide, royalty-free,+non-exclusive license:++(a) under intellectual property rights (other than patent or trademark)+    Licensable by such Contributor to use, reproduce, make available,+    modify, display, perform, distribute, and otherwise exploit its+    Contributions, either on an unmodified basis, with Modifications, or+    as part of a Larger Work; and++(b) under Patent Claims of such Contributor to make, use, sell, offer+    for sale, have made, import, and otherwise transfer either its+    Contributions or its Contributor Version.++2.2. Effective Date++The licenses granted in Section 2.1 with respect to any Contribution+become effective for each Contribution on the date the Contributor first+distributes such Contribution.++2.3. Limitations on Grant Scope++The licenses granted in this Section 2 are the only rights granted under+this License. No additional rights or licenses will be implied from the+distribution or licensing of Covered Software under this License.+Notwithstanding Section 2.1(b) above, no patent license is granted by a+Contributor:++(a) for any code that a Contributor has removed from Covered Software;+    or++(b) for infringements caused by: (i) Your and any other third party's+    modifications of Covered Software, or (ii) the combination of its+    Contributions with other software (except as part of its Contributor+    Version); or++(c) under Patent Claims infringed by Covered Software in the absence of+    its Contributions.++This License does not grant any rights in the trademarks, service marks,+or logos of any Contributor (except as may be necessary to comply with+the notice requirements in Section 3.4).++2.4. Subsequent Licenses++No Contributor makes additional grants as a result of Your choice to+distribute the Covered Software under a subsequent version of this+License (see Section 10.2) or under the terms of a Secondary License (if+permitted under the terms of Section 3.3).++2.5. Representation++Each Contributor represents that the Contributor believes its+Contributions are its original creation(s) or it has sufficient rights+to grant the rights to its Contributions conveyed by this License.++2.6. Fair Use++This License is not intended to limit any rights You have under+applicable copyright doctrines of fair use, fair dealing, or other+equivalents.++2.7. Conditions++Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted+in Section 2.1.++3. Responsibilities+-------------------++3.1. Distribution of Source Form++All distribution of Covered Software in Source Code Form, including any+Modifications that You create or to which You contribute, must be under+the terms of this License. You must inform recipients that the Source+Code Form of the Covered Software is governed by the terms of this+License, and how they can obtain a copy of this License. You may not+attempt to alter or restrict the recipients' rights in the Source Code+Form.++3.2. Distribution of Executable Form++If You distribute Covered Software in Executable Form then:++(a) such Covered Software must also be made available in Source Code+    Form, as described in Section 3.1, and You must inform recipients of+    the Executable Form how they can obtain a copy of such Source Code+    Form by reasonable means in a timely manner, at a charge no more+    than the cost of distribution to the recipient; and++(b) You may distribute such Executable Form under the terms of this+    License, or sublicense it under different terms, provided that the+    license for the Executable Form does not attempt to limit or alter+    the recipients' rights in the Source Code Form under this License.++3.3. Distribution of a Larger Work++You may create and distribute a Larger Work under terms of Your choice,+provided that You also comply with the requirements of this License for+the Covered Software. If the Larger Work is a combination of Covered+Software with a work governed by one or more Secondary Licenses, and the+Covered Software is not Incompatible With Secondary Licenses, this+License permits You to additionally distribute such Covered Software+under the terms of such Secondary License(s), so that the recipient of+the Larger Work may, at their option, further distribute the Covered+Software under the terms of either this License or such Secondary+License(s).++3.4. Notices++You may not remove or alter the substance of any license notices+(including copyright notices, patent notices, disclaimers of warranty,+or limitations of liability) contained within the Source Code Form of+the Covered Software, except that You may alter any license notices to+the extent required to remedy known factual inaccuracies.++3.5. Application of Additional Terms++You may choose to offer, and to charge a fee for, warranty, support,+indemnity or liability obligations to one or more recipients of Covered+Software. However, You may do so only on Your own behalf, and not on+behalf of any Contributor. You must make it absolutely clear that any+such warranty, support, indemnity, or liability obligation is offered by+You alone, and You hereby agree to indemnify every Contributor for any+liability incurred by such Contributor as a result of warranty, support,+indemnity or liability terms You offer. You may include additional+disclaimers of warranty and limitations of liability specific to any+jurisdiction.++4. Inability to Comply Due to Statute or Regulation+---------------------------------------------------++If it is impossible for You to comply with any of the terms of this+License with respect to some or all of the Covered Software due to+statute, judicial order, or regulation then You must: (a) comply with+the terms of this License to the maximum extent possible; and (b)+describe the limitations and the code they affect. Such description must+be placed in a text file included with all distributions of the Covered+Software under this License. Except to the extent prohibited by statute+or regulation, such description must be sufficiently detailed for a+recipient of ordinary skill to be able to understand it.++5. Termination+--------------++5.1. The rights granted under this License will terminate automatically+if You fail to comply with any of its terms. However, if You become+compliant, then the rights granted under this License from a particular+Contributor are reinstated (a) provisionally, unless and until such+Contributor explicitly and finally terminates Your grants, and (b) on an+ongoing basis, if such Contributor fails to notify You of the+non-compliance by some reasonable means prior to 60 days after You have+come back into compliance. Moreover, Your grants from a particular+Contributor are reinstated on an ongoing basis if such Contributor+notifies You of the non-compliance by some reasonable means, this is the+first time You have received notice of non-compliance with this License+from such Contributor, and You become compliant prior to 30 days after+Your receipt of the notice.++5.2. If You initiate litigation against any entity by asserting a patent+infringement claim (excluding declaratory judgment actions,+counter-claims, and cross-claims) alleging that a Contributor Version+directly or indirectly infringes any patent, then the rights granted to+You by any and all Contributors for the Covered Software under Section+2.1 of this License shall terminate.++5.3. In the event of termination under Sections 5.1 or 5.2 above, all+end user license agreements (excluding distributors and resellers) which+have been validly granted by You or Your distributors under this License+prior to termination shall survive termination.++************************************************************************+*                                                                      *+*  6. Disclaimer of Warranty                                           *+*  -------------------------                                           *+*                                                                      *+*  Covered Software is provided under this License on an "as is"       *+*  basis, without warranty of any kind, either expressed, implied, or  *+*  statutory, including, without limitation, warranties that the       *+*  Covered Software is free of defects, merchantable, fit for a        *+*  particular purpose or non-infringing. The entire risk as to the     *+*  quality and performance of the Covered Software is with You.        *+*  Should any Covered Software prove defective in any respect, You     *+*  (not any Contributor) assume the cost of any necessary servicing,   *+*  repair, or correction. This disclaimer of warranty constitutes an   *+*  essential part of this License. No use of any Covered Software is   *+*  authorized under this License except under this disclaimer.         *+*                                                                      *+************************************************************************++************************************************************************+*                                                                      *+*  7. Limitation of Liability                                          *+*  --------------------------                                          *+*                                                                      *+*  Under no circumstances and under no legal theory, whether tort      *+*  (including negligence), contract, or otherwise, shall any           *+*  Contributor, or anyone who distributes Covered Software as          *+*  permitted above, be liable to You for any direct, indirect,         *+*  special, incidental, or consequential damages of any character      *+*  including, without limitation, damages for lost profits, loss of    *+*  goodwill, work stoppage, computer failure or malfunction, or any    *+*  and all other commercial damages or losses, even if such party      *+*  shall have been informed of the possibility of such damages. This   *+*  limitation of liability shall not apply to liability for death or   *+*  personal injury resulting from such party's negligence to the       *+*  extent applicable law prohibits such limitation. Some               *+*  jurisdictions do not allow the exclusion or limitation of           *+*  incidental or consequential damages, so this exclusion and          *+*  limitation may not apply to You.                                    *+*                                                                      *+************************************************************************++8. Litigation+-------------++Any litigation relating to this License may be brought only in the+courts of a jurisdiction where the defendant maintains its principal+place of business and such litigation shall be governed by laws of that+jurisdiction, without reference to its conflict-of-law provisions.+Nothing in this Section shall prevent a party's ability to bring+cross-claims or counter-claims.++9. Miscellaneous+----------------++This License represents the complete agreement concerning the subject+matter hereof. If any provision of this License is held to be+unenforceable, such provision shall be reformed only to the extent+necessary to make it enforceable. Any law or regulation which provides+that the language of a contract shall be construed against the drafter+shall not be used to construe this License against a Contributor.++10. Versions of the License+---------------------------++10.1. New Versions++Mozilla Foundation is the license steward. Except as provided in Section+10.3, no one other than the license steward has the right to modify or+publish new versions of this License. Each version will be given a+distinguishing version number.++10.2. Effect of New Versions++You may distribute the Covered Software under the terms of the version+of the License under which You originally received the Covered Software,+or under the terms of any subsequent version published by the license+steward.++10.3. Modified Versions++If you create software not governed by this License, and you want to+create a new license for such software, you may create and use a+modified version of this License if you rename the license and remove+any references to the name of the license steward (except to note that+such modified license differs from this License).++10.4. Distributing Source Code Form that is Incompatible With Secondary+Licenses++If You choose to distribute Source Code Form that is Incompatible With+Secondary Licenses under the terms of this version of the License, the+notice described in Exhibit B of this License must be attached.++Exhibit A - Source Code Form License Notice+-------------------------------------------++  This Source Code Form is subject to the terms of the Mozilla Public+  License, v. 2.0. If a copy of the MPL was not distributed with this+  file, You can obtain one at http://mozilla.org/MPL/2.0/.++If it is not possible or desirable to put the notice in a particular+file, then You may include the notice in a location (such as a LICENSE+file in a relevant directory) where a recipient would be likely to look+for such a notice.++You may add additional accurate notices of copyright ownership.
+ README.md view
@@ -0,0 +1,28 @@+# gogol-firebasehosting++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version++`0.3.0`+++## Description++A client library for the Google Firebase Hosting.+++## Contribute++For any problems, comments, or feedback please create an issue [here on GitHub](https://github.com/brendanhay/gogol/issues).++> _Note:_ this library is an auto-generated Haskell package. Please see `gogol-gen` for more information.+++## Licence++`gogol-firebasehosting` 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/FirebaseHosting.hs view
@@ -0,0 +1,311 @@+{-# LANGUAGE DataKinds         #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE TypeOperators     #-}++{-# OPTIONS_GHC -fno-warn-unused-imports    #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}++-- |+-- Module      : Network.Google.FirebaseHosting+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- The Firebase Hosting REST API enables programmatic custom deployment for+-- releasing versions of your Firebase hosted content and configuration+-- files.+--+-- /See:/ <https://firebase.google.com/docs/hosting/ Firebase Hosting API Reference>+module Network.Google.FirebaseHosting+    (+    -- * Service Configuration+      firebaseHostingService++    -- * OAuth Scopes+    , firebaseScope+    , cloudPlatformReadOnlyScope+    , cloudPlatformScope+    , firebaseReadOnlyScope++    -- * API Declaration+    , FirebaseHostingAPI++    -- * Resources++    -- ** firebasehosting.sites.domains.create+    , module Network.Google.Resource.FirebaseHosting.Sites.Domains.Create++    -- ** firebasehosting.sites.domains.delete+    , module Network.Google.Resource.FirebaseHosting.Sites.Domains.Delete++    -- ** firebasehosting.sites.domains.get+    , module Network.Google.Resource.FirebaseHosting.Sites.Domains.Get++    -- ** firebasehosting.sites.domains.list+    , module Network.Google.Resource.FirebaseHosting.Sites.Domains.List++    -- ** firebasehosting.sites.domains.update+    , module Network.Google.Resource.FirebaseHosting.Sites.Domains.Update++    -- ** firebasehosting.sites.getConfig+    , module Network.Google.Resource.FirebaseHosting.Sites.GetConfig++    -- ** firebasehosting.sites.releases.create+    , module Network.Google.Resource.FirebaseHosting.Sites.Releases.Create++    -- ** firebasehosting.sites.releases.list+    , module Network.Google.Resource.FirebaseHosting.Sites.Releases.List++    -- ** firebasehosting.sites.updateConfig+    , module Network.Google.Resource.FirebaseHosting.Sites.UpdateConfig++    -- ** firebasehosting.sites.versions.create+    , module Network.Google.Resource.FirebaseHosting.Sites.Versions.Create++    -- ** firebasehosting.sites.versions.delete+    , module Network.Google.Resource.FirebaseHosting.Sites.Versions.Delete++    -- ** firebasehosting.sites.versions.files.list+    , module Network.Google.Resource.FirebaseHosting.Sites.Versions.Files.List++    -- ** firebasehosting.sites.versions.patch+    , module Network.Google.Resource.FirebaseHosting.Sites.Versions.Patch++    -- ** firebasehosting.sites.versions.populateFiles+    , module Network.Google.Resource.FirebaseHosting.Sites.Versions.PopulateFiles++    -- * Types++    -- ** DomainStatus+    , DomainStatus (..)++    -- ** DomainProvisioningDNSStatus+    , DomainProvisioningDNSStatus (..)++    -- ** VersionLabels+    , VersionLabels+    , versionLabels+    , vlAddtional++    -- ** PopulateVersionFilesResponse+    , PopulateVersionFilesResponse+    , populateVersionFilesResponse+    , pvfrUploadURL+    , pvfrUploadRequiredHashes++    -- ** DomainRedirectType+    , DomainRedirectType (..)++    -- ** CertDNSChallenge+    , CertDNSChallenge+    , certDNSChallenge+    , cdcToken+    , cdcDomainName++    -- ** Empty+    , Empty+    , empty++    -- ** PopulateVersionFilesRequest+    , PopulateVersionFilesRequest+    , populateVersionFilesRequest+    , pvfrFiles++    -- ** ServingConfigAppAssociation+    , ServingConfigAppAssociation (..)++    -- ** ServingConfig+    , ServingConfig+    , servingConfig+    , scCleanURLs+    , scAppAssociation+    , scRewrites+    , scRedirects+    , scHeaders+    , scTrailingSlashBehavior++    -- ** Domain+    , Domain+    , domain+    , dStatus+    , dProvisioning+    , dUpdateTime+    , dDomainName+    , dDomainRedirect+    , dSite++    -- ** ListReleasesResponse+    , ListReleasesResponse+    , listReleasesResponse+    , lrrNextPageToken+    , lrrReleases++    -- ** VersionStatus+    , VersionStatus (..)++    -- ** DomainProvisioning+    , DomainProvisioning+    , domainProvisioning+    , dpExpectedIPs+    , dpCertChallengeDNS+    , dpDNSFetchTime+    , dpCertStatus+    , dpDNSStatus+    , dpDiscoveredIPs+    , dpCertChallengeHTTP+    , dpCertChallengeDiscoveredTxt++    -- ** Release+    , Release+    , release+    , rReleaseTime+    , rReleaseUser+    , rName+    , rVersion+    , rType+    , rMessage++    -- ** VersionFile+    , VersionFile+    , versionFile+    , vfStatus+    , vfHash+    , vfPath++    -- ** Header+    , Header+    , header+    , hHeaders+    , hGlob++    -- ** ActingUser+    , ActingUser+    , actingUser+    , auEmail+    , auImageURL++    -- ** Version+    , Version+    , version+    , vStatus+    , vFinalizeTime+    , vConfig+    , vFileCount+    , vFinalizeUser+    , vVersionBytes+    , vDeleteTime+    , vName+    , vLabels+    , vCreateUser+    , vDeleteUser+    , vCreateTime++    -- ** ListDomainsResponse+    , ListDomainsResponse+    , listDomainsResponse+    , ldrNextPageToken+    , ldrDomains++    -- ** Xgafv+    , Xgafv (..)++    -- ** Redirect+    , Redirect+    , redirect+    , rLocation+    , rGlob+    , rStatusCode++    -- ** DomainRedirect+    , DomainRedirect+    , domainRedirect+    , drDomainName+    , drType++    -- ** Rewrite+    , Rewrite+    , rewrite+    , rewFunction+    , rewPath+    , rewGlob+    , rewDynamicLinks++    -- ** DomainProvisioningCertStatus+    , DomainProvisioningCertStatus (..)++    -- ** PopulateVersionFilesRequestFiles+    , PopulateVersionFilesRequestFiles+    , populateVersionFilesRequestFiles+    , pvfrfAddtional++    -- ** VersionFileStatus+    , VersionFileStatus (..)++    -- ** HeaderHeaders+    , HeaderHeaders+    , headerHeaders+    , hhAddtional++    -- ** CertHTTPChallenge+    , CertHTTPChallenge+    , certHTTPChallenge+    , chttpcPath+    , chttpcToken++    -- ** ServingConfigTrailingSlashBehavior+    , ServingConfigTrailingSlashBehavior (..)++    -- ** ListVersionFilesResponse+    , ListVersionFilesResponse+    , listVersionFilesResponse+    , lvfrNextPageToken+    , lvfrFiles++    -- ** ReleaseType+    , ReleaseType (..)++    -- ** SiteConfig+    , SiteConfig+    , siteConfig+    , scMaxVersions+    ) where++import           Network.Google.FirebaseHosting.Types+import           Network.Google.Prelude+import           Network.Google.Resource.FirebaseHosting.Sites.Domains.Create+import           Network.Google.Resource.FirebaseHosting.Sites.Domains.Delete+import           Network.Google.Resource.FirebaseHosting.Sites.Domains.Get+import           Network.Google.Resource.FirebaseHosting.Sites.Domains.List+import           Network.Google.Resource.FirebaseHosting.Sites.Domains.Update+import           Network.Google.Resource.FirebaseHosting.Sites.GetConfig+import           Network.Google.Resource.FirebaseHosting.Sites.Releases.Create+import           Network.Google.Resource.FirebaseHosting.Sites.Releases.List+import           Network.Google.Resource.FirebaseHosting.Sites.UpdateConfig+import           Network.Google.Resource.FirebaseHosting.Sites.Versions.Create+import           Network.Google.Resource.FirebaseHosting.Sites.Versions.Delete+import           Network.Google.Resource.FirebaseHosting.Sites.Versions.Files.List+import           Network.Google.Resource.FirebaseHosting.Sites.Versions.Patch+import           Network.Google.Resource.FirebaseHosting.Sites.Versions.PopulateFiles++{- $resources+TODO+-}++-- | Represents the entirety of the methods and resources available for the Firebase Hosting API service.+type FirebaseHostingAPI =+     SitesReleasesListResource :<|>+       SitesReleasesCreateResource+       :<|> SitesVersionsFilesListResource+       :<|> SitesVersionsPatchResource+       :<|> SitesVersionsCreateResource+       :<|> SitesVersionsPopulateFilesResource+       :<|> SitesVersionsDeleteResource+       :<|> SitesDomainsListResource+       :<|> SitesDomainsGetResource+       :<|> SitesDomainsCreateResource+       :<|> SitesDomainsDeleteResource+       :<|> SitesDomainsUpdateResource+       :<|> SitesGetConfigResource+       :<|> SitesUpdateConfigResource
+ gen/Network/Google/FirebaseHosting/Types.hs view
@@ -0,0 +1,247 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Network.Google.FirebaseHosting.Types+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Network.Google.FirebaseHosting.Types+    (+    -- * Service Configuration+      firebaseHostingService++    -- * OAuth Scopes+    , firebaseScope+    , cloudPlatformReadOnlyScope+    , cloudPlatformScope+    , firebaseReadOnlyScope++    -- * DomainStatus+    , DomainStatus (..)++    -- * DomainProvisioningDNSStatus+    , DomainProvisioningDNSStatus (..)++    -- * VersionLabels+    , VersionLabels+    , versionLabels+    , vlAddtional++    -- * PopulateVersionFilesResponse+    , PopulateVersionFilesResponse+    , populateVersionFilesResponse+    , pvfrUploadURL+    , pvfrUploadRequiredHashes++    -- * DomainRedirectType+    , DomainRedirectType (..)++    -- * CertDNSChallenge+    , CertDNSChallenge+    , certDNSChallenge+    , cdcToken+    , cdcDomainName++    -- * Empty+    , Empty+    , empty++    -- * PopulateVersionFilesRequest+    , PopulateVersionFilesRequest+    , populateVersionFilesRequest+    , pvfrFiles++    -- * ServingConfigAppAssociation+    , ServingConfigAppAssociation (..)++    -- * ServingConfig+    , ServingConfig+    , servingConfig+    , scCleanURLs+    , scAppAssociation+    , scRewrites+    , scRedirects+    , scHeaders+    , scTrailingSlashBehavior++    -- * Domain+    , Domain+    , domain+    , dStatus+    , dProvisioning+    , dUpdateTime+    , dDomainName+    , dDomainRedirect+    , dSite++    -- * ListReleasesResponse+    , ListReleasesResponse+    , listReleasesResponse+    , lrrNextPageToken+    , lrrReleases++    -- * VersionStatus+    , VersionStatus (..)++    -- * DomainProvisioning+    , DomainProvisioning+    , domainProvisioning+    , dpExpectedIPs+    , dpCertChallengeDNS+    , dpDNSFetchTime+    , dpCertStatus+    , dpDNSStatus+    , dpDiscoveredIPs+    , dpCertChallengeHTTP+    , dpCertChallengeDiscoveredTxt++    -- * Release+    , Release+    , release+    , rReleaseTime+    , rReleaseUser+    , rName+    , rVersion+    , rType+    , rMessage++    -- * VersionFile+    , VersionFile+    , versionFile+    , vfStatus+    , vfHash+    , vfPath++    -- * Header+    , Header+    , header+    , hHeaders+    , hGlob++    -- * ActingUser+    , ActingUser+    , actingUser+    , auEmail+    , auImageURL++    -- * Version+    , Version+    , version+    , vStatus+    , vFinalizeTime+    , vConfig+    , vFileCount+    , vFinalizeUser+    , vVersionBytes+    , vDeleteTime+    , vName+    , vLabels+    , vCreateUser+    , vDeleteUser+    , vCreateTime++    -- * ListDomainsResponse+    , ListDomainsResponse+    , listDomainsResponse+    , ldrNextPageToken+    , ldrDomains++    -- * Xgafv+    , Xgafv (..)++    -- * Redirect+    , Redirect+    , redirect+    , rLocation+    , rGlob+    , rStatusCode++    -- * DomainRedirect+    , DomainRedirect+    , domainRedirect+    , drDomainName+    , drType++    -- * Rewrite+    , Rewrite+    , rewrite+    , rewFunction+    , rewPath+    , rewGlob+    , rewDynamicLinks++    -- * DomainProvisioningCertStatus+    , DomainProvisioningCertStatus (..)++    -- * PopulateVersionFilesRequestFiles+    , PopulateVersionFilesRequestFiles+    , populateVersionFilesRequestFiles+    , pvfrfAddtional++    -- * VersionFileStatus+    , VersionFileStatus (..)++    -- * HeaderHeaders+    , HeaderHeaders+    , headerHeaders+    , hhAddtional++    -- * CertHTTPChallenge+    , CertHTTPChallenge+    , certHTTPChallenge+    , chttpcPath+    , chttpcToken++    -- * ServingConfigTrailingSlashBehavior+    , ServingConfigTrailingSlashBehavior (..)++    -- * ListVersionFilesResponse+    , ListVersionFilesResponse+    , listVersionFilesResponse+    , lvfrNextPageToken+    , lvfrFiles++    -- * ReleaseType+    , ReleaseType (..)++    -- * SiteConfig+    , SiteConfig+    , siteConfig+    , scMaxVersions+    ) where++import           Network.Google.FirebaseHosting.Types.Product+import           Network.Google.FirebaseHosting.Types.Sum+import           Network.Google.Prelude++-- | Default request referring to version 'v1beta1' of the Firebase Hosting API. This contains the host and root path used as a starting point for constructing service requests.+firebaseHostingService :: ServiceConfig+firebaseHostingService+  = defaultService+      (ServiceId "firebasehosting:v1beta1")+      "firebasehosting.googleapis.com"++-- | View and administer all your Firebase data and settings+firebaseScope :: Proxy '["https://www.googleapis.com/auth/firebase"]+firebaseScope = Proxy;++-- | View your data across Google Cloud Platform services+cloudPlatformReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/cloud-platform.read-only"]+cloudPlatformReadOnlyScope = Proxy;++-- | View and manage your data across Google Cloud Platform services+cloudPlatformScope :: Proxy '["https://www.googleapis.com/auth/cloud-platform"]+cloudPlatformScope = Proxy;++-- | View all your Firebase data and settings+firebaseReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/firebase.readonly"]+firebaseReadOnlyScope = Proxy;
+ gen/Network/Google/FirebaseHosting/Types/Product.hs view
@@ -0,0 +1,1476 @@+{-# 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.FirebaseHosting.Types.Product+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Network.Google.FirebaseHosting.Types.Product where++import           Network.Google.FirebaseHosting.Types.Sum+import           Network.Google.Prelude++-- | The labels used for extra metadata and\/or filtering.+--+-- /See:/ 'versionLabels' smart constructor.+newtype VersionLabels = VersionLabels'+    { _vlAddtional :: HashMap Text Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'VersionLabels' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vlAddtional'+versionLabels+    :: HashMap Text Text -- ^ 'vlAddtional'+    -> VersionLabels+versionLabels pVlAddtional_ =+    VersionLabels'+    { _vlAddtional = _Coerce # pVlAddtional_+    }++vlAddtional :: Lens' VersionLabels (HashMap Text Text)+vlAddtional+  = lens _vlAddtional (\ s a -> s{_vlAddtional = a}) .+      _Coerce++instance FromJSON VersionLabels where+        parseJSON+          = withObject "VersionLabels"+              (\ o -> VersionLabels' <$> (parseJSONObject o))++instance ToJSON VersionLabels where+        toJSON = toJSON . _vlAddtional++--+-- /See:/ 'populateVersionFilesResponse' smart constructor.+data PopulateVersionFilesResponse = PopulateVersionFilesResponse'+    { _pvfrUploadURL            :: !(Maybe Text)+    , _pvfrUploadRequiredHashes :: !(Maybe [Text])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'PopulateVersionFilesResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pvfrUploadURL'+--+-- * 'pvfrUploadRequiredHashes'+populateVersionFilesResponse+    :: PopulateVersionFilesResponse+populateVersionFilesResponse =+    PopulateVersionFilesResponse'+    { _pvfrUploadURL = Nothing+    , _pvfrUploadRequiredHashes = Nothing+    }++-- | The URL to which the files should be uploaded, in the format:+-- \"https:\/\/upload-firebasehosting.googleapis.com\/upload\/sites\/site-name\/versions\/versionID\/files\".+-- Perform a multipart \`POST\` of the Gzipped file contents to the URL+-- using a forward slash and the hash of the file appended to the end.+pvfrUploadURL :: Lens' PopulateVersionFilesResponse (Maybe Text)+pvfrUploadURL+  = lens _pvfrUploadURL+      (\ s a -> s{_pvfrUploadURL = a})++-- | The content hashes of the specified files that need to be uploaded to+-- the specified endpoint.+pvfrUploadRequiredHashes :: Lens' PopulateVersionFilesResponse [Text]+pvfrUploadRequiredHashes+  = lens _pvfrUploadRequiredHashes+      (\ s a -> s{_pvfrUploadRequiredHashes = a})+      . _Default+      . _Coerce++instance FromJSON PopulateVersionFilesResponse where+        parseJSON+          = withObject "PopulateVersionFilesResponse"+              (\ o ->+                 PopulateVersionFilesResponse' <$>+                   (o .:? "uploadUrl") <*>+                     (o .:? "uploadRequiredHashes" .!= mempty))++instance ToJSON PopulateVersionFilesResponse where+        toJSON PopulateVersionFilesResponse'{..}+          = object+              (catMaybes+                 [("uploadUrl" .=) <$> _pvfrUploadURL,+                  ("uploadRequiredHashes" .=) <$>+                    _pvfrUploadRequiredHashes])++-- | Represents a DNS certificate challenge.+--+-- /See:/ 'certDNSChallenge' smart constructor.+data CertDNSChallenge = CertDNSChallenge'+    { _cdcToken      :: !(Maybe Text)+    , _cdcDomainName :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'CertDNSChallenge' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cdcToken'+--+-- * 'cdcDomainName'+certDNSChallenge+    :: CertDNSChallenge+certDNSChallenge =+    CertDNSChallenge'+    { _cdcToken = Nothing+    , _cdcDomainName = Nothing+    }++-- | The value that must be present as a TXT record on the domain name to+-- satisfy the challenge.+cdcToken :: Lens' CertDNSChallenge (Maybe Text)+cdcToken = lens _cdcToken (\ s a -> s{_cdcToken = a})++-- | The domain name upon which the DNS challenge must be satisfied.+cdcDomainName :: Lens' CertDNSChallenge (Maybe Text)+cdcDomainName+  = lens _cdcDomainName+      (\ s a -> s{_cdcDomainName = a})++instance FromJSON CertDNSChallenge where+        parseJSON+          = withObject "CertDNSChallenge"+              (\ o ->+                 CertDNSChallenge' <$>+                   (o .:? "token") <*> (o .:? "domainName"))++instance ToJSON CertDNSChallenge where+        toJSON CertDNSChallenge'{..}+          = object+              (catMaybes+                 [("token" .=) <$> _cdcToken,+                  ("domainName" .=) <$> _cdcDomainName])++-- | A generic empty message that you can re-use to avoid defining duplicated+-- empty messages in your APIs. A typical example is to use it as the+-- request or the response type of an API method. For instance: service Foo+-- { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The+-- JSON representation for \`Empty\` is empty JSON object \`{}\`.+--+-- /See:/ 'empty' smart constructor.+data Empty =+    Empty'+    deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Empty' with the minimum fields required to make a request.+--+empty+    :: Empty+empty = Empty'++instance FromJSON Empty where+        parseJSON = withObject "Empty" (\ o -> pure Empty')++instance ToJSON Empty where+        toJSON = const emptyObject++--+-- /See:/ 'populateVersionFilesRequest' smart constructor.+newtype PopulateVersionFilesRequest = PopulateVersionFilesRequest'+    { _pvfrFiles :: Maybe PopulateVersionFilesRequestFiles+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'PopulateVersionFilesRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pvfrFiles'+populateVersionFilesRequest+    :: PopulateVersionFilesRequest+populateVersionFilesRequest =+    PopulateVersionFilesRequest'+    { _pvfrFiles = Nothing+    }++-- | A set of file paths to the hashes corresponding to assets that should be+-- added to the version. Note that a file path to an empty hash will remove+-- the path from the version. Calculate a hash by Gzipping the file then+-- taking the SHA256 hash of the newly compressed file.+pvfrFiles :: Lens' PopulateVersionFilesRequest (Maybe PopulateVersionFilesRequestFiles)+pvfrFiles+  = lens _pvfrFiles (\ s a -> s{_pvfrFiles = a})++instance FromJSON PopulateVersionFilesRequest where+        parseJSON+          = withObject "PopulateVersionFilesRequest"+              (\ o ->+                 PopulateVersionFilesRequest' <$> (o .:? "files"))++instance ToJSON PopulateVersionFilesRequest where+        toJSON PopulateVersionFilesRequest'{..}+          = object (catMaybes [("files" .=) <$> _pvfrFiles])++-- | The configuration for how incoming requests to a site should be routed+-- and processed before serving content. The patterns are matched and+-- applied according to a specific [priority+-- order](\/docs\/hosting\/full-config#hosting_priority_order).+--+-- /See:/ 'servingConfig' smart constructor.+data ServingConfig = ServingConfig'+    { _scCleanURLs             :: !(Maybe Bool)+    , _scAppAssociation        :: !(Maybe ServingConfigAppAssociation)+    , _scRewrites              :: !(Maybe [Rewrite])+    , _scRedirects             :: !(Maybe [Redirect])+    , _scHeaders               :: !(Maybe [Header])+    , _scTrailingSlashBehavior :: !(Maybe ServingConfigTrailingSlashBehavior)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ServingConfig' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'scCleanURLs'+--+-- * 'scAppAssociation'+--+-- * 'scRewrites'+--+-- * 'scRedirects'+--+-- * 'scHeaders'+--+-- * 'scTrailingSlashBehavior'+servingConfig+    :: ServingConfig+servingConfig =+    ServingConfig'+    { _scCleanURLs = Nothing+    , _scAppAssociation = Nothing+    , _scRewrites = Nothing+    , _scRedirects = Nothing+    , _scHeaders = Nothing+    , _scTrailingSlashBehavior = Nothing+    }++-- | Defines whether to drop the file extension from uploaded files.+scCleanURLs :: Lens' ServingConfig (Maybe Bool)+scCleanURLs+  = lens _scCleanURLs (\ s a -> s{_scCleanURLs = a})++-- | How to handle well known App Association files.+scAppAssociation :: Lens' ServingConfig (Maybe ServingConfigAppAssociation)+scAppAssociation+  = lens _scAppAssociation+      (\ s a -> s{_scAppAssociation = a})++-- | A list of rewrites that will act as if the service were given the+-- destination URL.+scRewrites :: Lens' ServingConfig [Rewrite]+scRewrites+  = lens _scRewrites (\ s a -> s{_scRewrites = a}) .+      _Default+      . _Coerce++-- | A list of globs that will cause the response to redirect to another+-- location.+scRedirects :: Lens' ServingConfig [Redirect]+scRedirects+  = lens _scRedirects (\ s a -> s{_scRedirects = a}) .+      _Default+      . _Coerce++-- | A list of custom response headers that are added to the content if the+-- request URL path matches the glob.+scHeaders :: Lens' ServingConfig [Header]+scHeaders+  = lens _scHeaders (\ s a -> s{_scHeaders = a}) .+      _Default+      . _Coerce++-- | Defines how to handle a trailing slash in the URL path.+scTrailingSlashBehavior :: Lens' ServingConfig (Maybe ServingConfigTrailingSlashBehavior)+scTrailingSlashBehavior+  = lens _scTrailingSlashBehavior+      (\ s a -> s{_scTrailingSlashBehavior = a})++instance FromJSON ServingConfig where+        parseJSON+          = withObject "ServingConfig"+              (\ o ->+                 ServingConfig' <$>+                   (o .:? "cleanUrls") <*> (o .:? "appAssociation") <*>+                     (o .:? "rewrites" .!= mempty)+                     <*> (o .:? "redirects" .!= mempty)+                     <*> (o .:? "headers" .!= mempty)+                     <*> (o .:? "trailingSlashBehavior"))++instance ToJSON ServingConfig where+        toJSON ServingConfig'{..}+          = object+              (catMaybes+                 [("cleanUrls" .=) <$> _scCleanURLs,+                  ("appAssociation" .=) <$> _scAppAssociation,+                  ("rewrites" .=) <$> _scRewrites,+                  ("redirects" .=) <$> _scRedirects,+                  ("headers" .=) <$> _scHeaders,+                  ("trailingSlashBehavior" .=) <$>+                    _scTrailingSlashBehavior])++-- | The intended behavior and status information of a domain.+--+-- /See:/ 'domain' smart constructor.+data Domain = Domain'+    { _dStatus         :: !(Maybe DomainStatus)+    , _dProvisioning   :: !(Maybe DomainProvisioning)+    , _dUpdateTime     :: !(Maybe DateTime')+    , _dDomainName     :: !(Maybe Text)+    , _dDomainRedirect :: !(Maybe DomainRedirect)+    , _dSite           :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Domain' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dStatus'+--+-- * 'dProvisioning'+--+-- * 'dUpdateTime'+--+-- * 'dDomainName'+--+-- * 'dDomainRedirect'+--+-- * 'dSite'+domain+    :: Domain+domain =+    Domain'+    { _dStatus = Nothing+    , _dProvisioning = Nothing+    , _dUpdateTime = Nothing+    , _dDomainName = Nothing+    , _dDomainRedirect = Nothing+    , _dSite = Nothing+    }++-- | Output only. Additional status of the domain association.+dStatus :: Lens' Domain (Maybe DomainStatus)+dStatus = lens _dStatus (\ s a -> s{_dStatus = a})++-- | Output only. Information about the provisioning of certificates and the+-- health of the DNS resolution for the domain.+dProvisioning :: Lens' Domain (Maybe DomainProvisioning)+dProvisioning+  = lens _dProvisioning+      (\ s a -> s{_dProvisioning = a})++-- | Output only. The time at which the domain was last updated.+dUpdateTime :: Lens' Domain (Maybe UTCTime)+dUpdateTime+  = lens _dUpdateTime (\ s a -> s{_dUpdateTime = a}) .+      mapping _DateTime++-- | Required. The domain name of the association.+dDomainName :: Lens' Domain (Maybe Text)+dDomainName+  = lens _dDomainName (\ s a -> s{_dDomainName = a})++-- | If set, the domain should redirect with the provided parameters.+dDomainRedirect :: Lens' Domain (Maybe DomainRedirect)+dDomainRedirect+  = lens _dDomainRedirect+      (\ s a -> s{_dDomainRedirect = a})++-- | Required. The site name of the association.+dSite :: Lens' Domain (Maybe Text)+dSite = lens _dSite (\ s a -> s{_dSite = a})++instance FromJSON Domain where+        parseJSON+          = withObject "Domain"+              (\ o ->+                 Domain' <$>+                   (o .:? "status") <*> (o .:? "provisioning") <*>+                     (o .:? "updateTime")+                     <*> (o .:? "domainName")+                     <*> (o .:? "domainRedirect")+                     <*> (o .:? "site"))++instance ToJSON Domain where+        toJSON Domain'{..}+          = object+              (catMaybes+                 [("status" .=) <$> _dStatus,+                  ("provisioning" .=) <$> _dProvisioning,+                  ("updateTime" .=) <$> _dUpdateTime,+                  ("domainName" .=) <$> _dDomainName,+                  ("domainRedirect" .=) <$> _dDomainRedirect,+                  ("site" .=) <$> _dSite])++--+-- /See:/ 'listReleasesResponse' smart constructor.+data ListReleasesResponse = ListReleasesResponse'+    { _lrrNextPageToken :: !(Maybe Text)+    , _lrrReleases      :: !(Maybe [Release])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ListReleasesResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lrrNextPageToken'+--+-- * 'lrrReleases'+listReleasesResponse+    :: ListReleasesResponse+listReleasesResponse =+    ListReleasesResponse'+    { _lrrNextPageToken = Nothing+    , _lrrReleases = Nothing+    }++-- | If there are additional releases remaining beyond the ones in this+-- response, then supply this token in the next+-- [\`list\`](..\/sites.versions.files\/list) call to continue with the+-- next set of releases.+lrrNextPageToken :: Lens' ListReleasesResponse (Maybe Text)+lrrNextPageToken+  = lens _lrrNextPageToken+      (\ s a -> s{_lrrNextPageToken = a})++-- | The list of hashes of files that still need to be uploaded, if any+-- exist.+lrrReleases :: Lens' ListReleasesResponse [Release]+lrrReleases+  = lens _lrrReleases (\ s a -> s{_lrrReleases = a}) .+      _Default+      . _Coerce++instance FromJSON ListReleasesResponse where+        parseJSON+          = withObject "ListReleasesResponse"+              (\ o ->+                 ListReleasesResponse' <$>+                   (o .:? "nextPageToken") <*>+                     (o .:? "releases" .!= mempty))++instance ToJSON ListReleasesResponse where+        toJSON ListReleasesResponse'{..}+          = object+              (catMaybes+                 [("nextPageToken" .=) <$> _lrrNextPageToken,+                  ("releases" .=) <$> _lrrReleases])++-- | The current certificate provisioning status information for a domain.+--+-- /See:/ 'domainProvisioning' smart constructor.+data DomainProvisioning = DomainProvisioning'+    { _dpExpectedIPs                :: !(Maybe [Text])+    , _dpCertChallengeDNS           :: !(Maybe CertDNSChallenge)+    , _dpDNSFetchTime               :: !(Maybe DateTime')+    , _dpCertStatus                 :: !(Maybe DomainProvisioningCertStatus)+    , _dpDNSStatus                  :: !(Maybe DomainProvisioningDNSStatus)+    , _dpDiscoveredIPs              :: !(Maybe [Text])+    , _dpCertChallengeHTTP          :: !(Maybe CertHTTPChallenge)+    , _dpCertChallengeDiscoveredTxt :: !(Maybe [Text])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DomainProvisioning' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dpExpectedIPs'+--+-- * 'dpCertChallengeDNS'+--+-- * 'dpDNSFetchTime'+--+-- * 'dpCertStatus'+--+-- * 'dpDNSStatus'+--+-- * 'dpDiscoveredIPs'+--+-- * 'dpCertChallengeHTTP'+--+-- * 'dpCertChallengeDiscoveredTxt'+domainProvisioning+    :: DomainProvisioning+domainProvisioning =+    DomainProvisioning'+    { _dpExpectedIPs = Nothing+    , _dpCertChallengeDNS = Nothing+    , _dpDNSFetchTime = Nothing+    , _dpCertStatus = Nothing+    , _dpDNSStatus = Nothing+    , _dpDiscoveredIPs = Nothing+    , _dpCertChallengeHTTP = Nothing+    , _dpCertChallengeDiscoveredTxt = Nothing+    }++-- | The list of IPs to which the domain is expected to resolve.+dpExpectedIPs :: Lens' DomainProvisioning [Text]+dpExpectedIPs+  = lens _dpExpectedIPs+      (\ s a -> s{_dpExpectedIPs = a})+      . _Default+      . _Coerce++-- | The DNS challenge for generating a certificate.+dpCertChallengeDNS :: Lens' DomainProvisioning (Maybe CertDNSChallenge)+dpCertChallengeDNS+  = lens _dpCertChallengeDNS+      (\ s a -> s{_dpCertChallengeDNS = a})++-- | The time at which the last DNS fetch occurred.+dpDNSFetchTime :: Lens' DomainProvisioning (Maybe UTCTime)+dpDNSFetchTime+  = lens _dpDNSFetchTime+      (\ s a -> s{_dpDNSFetchTime = a})+      . mapping _DateTime++-- | The certificate provisioning status; updated when Firebase Hosting+-- provisions an SSL certificate for the domain.+dpCertStatus :: Lens' DomainProvisioning (Maybe DomainProvisioningCertStatus)+dpCertStatus+  = lens _dpCertStatus (\ s a -> s{_dpCertStatus = a})++-- | The DNS record match status as of the last DNS fetch.+dpDNSStatus :: Lens' DomainProvisioning (Maybe DomainProvisioningDNSStatus)+dpDNSStatus+  = lens _dpDNSStatus (\ s a -> s{_dpDNSStatus = a})++-- | The IPs found at the last DNS fetch.+dpDiscoveredIPs :: Lens' DomainProvisioning [Text]+dpDiscoveredIPs+  = lens _dpDiscoveredIPs+      (\ s a -> s{_dpDiscoveredIPs = a})+      . _Default+      . _Coerce++-- | The HTTP challenge for generating a certificate.+dpCertChallengeHTTP :: Lens' DomainProvisioning (Maybe CertHTTPChallenge)+dpCertChallengeHTTP+  = lens _dpCertChallengeHTTP+      (\ s a -> s{_dpCertChallengeHTTP = a})++-- | The TXT records (for the certificate challenge) that were found at the+-- last DNS fetch.+dpCertChallengeDiscoveredTxt :: Lens' DomainProvisioning [Text]+dpCertChallengeDiscoveredTxt+  = lens _dpCertChallengeDiscoveredTxt+      (\ s a -> s{_dpCertChallengeDiscoveredTxt = a})+      . _Default+      . _Coerce++instance FromJSON DomainProvisioning where+        parseJSON+          = withObject "DomainProvisioning"+              (\ o ->+                 DomainProvisioning' <$>+                   (o .:? "expectedIps" .!= mempty) <*>+                     (o .:? "certChallengeDns")+                     <*> (o .:? "dnsFetchTime")+                     <*> (o .:? "certStatus")+                     <*> (o .:? "dnsStatus")+                     <*> (o .:? "discoveredIps" .!= mempty)+                     <*> (o .:? "certChallengeHttp")+                     <*> (o .:? "certChallengeDiscoveredTxt" .!= mempty))++instance ToJSON DomainProvisioning where+        toJSON DomainProvisioning'{..}+          = object+              (catMaybes+                 [("expectedIps" .=) <$> _dpExpectedIPs,+                  ("certChallengeDns" .=) <$> _dpCertChallengeDNS,+                  ("dnsFetchTime" .=) <$> _dpDNSFetchTime,+                  ("certStatus" .=) <$> _dpCertStatus,+                  ("dnsStatus" .=) <$> _dpDNSStatus,+                  ("discoveredIps" .=) <$> _dpDiscoveredIPs,+                  ("certChallengeHttp" .=) <$> _dpCertChallengeHTTP,+                  ("certChallengeDiscoveredTxt" .=) <$>+                    _dpCertChallengeDiscoveredTxt])++-- | A \`Release\` is a particular [collection of configurations and+-- files](sites.versions) that is set to be public at a particular time.+--+-- /See:/ 'release' smart constructor.+data Release = Release'+    { _rReleaseTime :: !(Maybe DateTime')+    , _rReleaseUser :: !(Maybe ActingUser)+    , _rName        :: !(Maybe Text)+    , _rVersion     :: !(Maybe Version)+    , _rType        :: !(Maybe ReleaseType)+    , _rMessage     :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Release' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rReleaseTime'+--+-- * 'rReleaseUser'+--+-- * 'rName'+--+-- * 'rVersion'+--+-- * 'rType'+--+-- * 'rMessage'+release+    :: Release+release =+    Release'+    { _rReleaseTime = Nothing+    , _rReleaseUser = Nothing+    , _rName = Nothing+    , _rVersion = Nothing+    , _rType = Nothing+    , _rMessage = Nothing+    }++-- | Output only. The time at which the version is set to be public.+rReleaseTime :: Lens' Release (Maybe UTCTime)+rReleaseTime+  = lens _rReleaseTime (\ s a -> s{_rReleaseTime = a})+      . mapping _DateTime++-- | Output only. Identifies the user who created the release.+rReleaseUser :: Lens' Release (Maybe ActingUser)+rReleaseUser+  = lens _rReleaseUser (\ s a -> s{_rReleaseUser = a})++-- | Output only. The unique identifier for the release, in the format:+-- 'sites\/site-name\/releases\/releaseID' This name is provided in the+-- response body when you call the+-- [\`CreateRelease\`](sites.releases\/create) endpoint.+rName :: Lens' Release (Maybe Text)+rName = lens _rName (\ s a -> s{_rName = a})++-- | Output only. The configuration and content that was released.+rVersion :: Lens' Release (Maybe Version)+rVersion = lens _rVersion (\ s a -> s{_rVersion = a})++-- | Explains the reason for the release.+-- Specify a value for this field only when creating a \`SITE_DISABLE\`+-- type release.+rType :: Lens' Release (Maybe ReleaseType)+rType = lens _rType (\ s a -> s{_rType = a})++-- | The deploy description when the release was created. The value can be up+-- to 512 characters.+rMessage :: Lens' Release (Maybe Text)+rMessage = lens _rMessage (\ s a -> s{_rMessage = a})++instance FromJSON Release where+        parseJSON+          = withObject "Release"+              (\ o ->+                 Release' <$>+                   (o .:? "releaseTime") <*> (o .:? "releaseUser") <*>+                     (o .:? "name")+                     <*> (o .:? "version")+                     <*> (o .:? "type")+                     <*> (o .:? "message"))++instance ToJSON Release where+        toJSON Release'{..}+          = object+              (catMaybes+                 [("releaseTime" .=) <$> _rReleaseTime,+                  ("releaseUser" .=) <$> _rReleaseUser,+                  ("name" .=) <$> _rName, ("version" .=) <$> _rVersion,+                  ("type" .=) <$> _rType,+                  ("message" .=) <$> _rMessage])++-- | A static content file that is part of a version.+--+-- /See:/ 'versionFile' smart constructor.+data VersionFile = VersionFile'+    { _vfStatus :: !(Maybe VersionFileStatus)+    , _vfHash   :: !(Maybe Text)+    , _vfPath   :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'VersionFile' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vfStatus'+--+-- * 'vfHash'+--+-- * 'vfPath'+versionFile+    :: VersionFile+versionFile =+    VersionFile'+    { _vfStatus = Nothing+    , _vfHash = Nothing+    , _vfPath = Nothing+    }++-- | Output only. The current status of a particular file in the specified+-- version.+-- The value will be either \`pending upload\` or \`uploaded\`.+vfStatus :: Lens' VersionFile (Maybe VersionFileStatus)+vfStatus = lens _vfStatus (\ s a -> s{_vfStatus = a})++-- | The SHA256 content hash of the file.+vfHash :: Lens' VersionFile (Maybe Text)+vfHash = lens _vfHash (\ s a -> s{_vfHash = a})++-- | The URI at which the file\'s content should display.+vfPath :: Lens' VersionFile (Maybe Text)+vfPath = lens _vfPath (\ s a -> s{_vfPath = a})++instance FromJSON VersionFile where+        parseJSON+          = withObject "VersionFile"+              (\ o ->+                 VersionFile' <$>+                   (o .:? "status") <*> (o .:? "hash") <*>+                     (o .:? "path"))++instance ToJSON VersionFile where+        toJSON VersionFile'{..}+          = object+              (catMaybes+                 [("status" .=) <$> _vfStatus,+                  ("hash" .=) <$> _vfHash, ("path" .=) <$> _vfPath])++-- | A [\`header\`](\/docs\/hosting\/full-config#headers) defines custom+-- headers to add to a response should the request URL path match the+-- pattern.+--+-- /See:/ 'header' smart constructor.+data Header = Header'+    { _hHeaders :: !(Maybe HeaderHeaders)+    , _hGlob    :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Header' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'hHeaders'+--+-- * 'hGlob'+header+    :: Header+header =+    Header'+    { _hHeaders = Nothing+    , _hGlob = Nothing+    }++-- | Required. The additional headers to add to the response.+hHeaders :: Lens' Header (Maybe HeaderHeaders)+hHeaders = lens _hHeaders (\ s a -> s{_hHeaders = a})++-- | Required. The user-supplied [glob+-- pattern](\/docs\/hosting\/full-config#glob_pattern_matching) to match+-- against the request URL path.+hGlob :: Lens' Header (Maybe Text)+hGlob = lens _hGlob (\ s a -> s{_hGlob = a})++instance FromJSON Header where+        parseJSON+          = withObject "Header"+              (\ o ->+                 Header' <$> (o .:? "headers") <*> (o .:? "glob"))++instance ToJSON Header where+        toJSON Header'{..}+          = object+              (catMaybes+                 [("headers" .=) <$> _hHeaders,+                  ("glob" .=) <$> _hGlob])++-- | Contains metadata about the user who performed an action, such as+-- creating a release or finalizing a version.+--+-- /See:/ 'actingUser' smart constructor.+data ActingUser = ActingUser'+    { _auEmail    :: !(Maybe Text)+    , _auImageURL :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ActingUser' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'auEmail'+--+-- * 'auImageURL'+actingUser+    :: ActingUser+actingUser =+    ActingUser'+    { _auEmail = Nothing+    , _auImageURL = Nothing+    }++-- | The email address of the user when the user performed the action.+auEmail :: Lens' ActingUser (Maybe Text)+auEmail = lens _auEmail (\ s a -> s{_auEmail = a})++-- | A profile image URL for the user. May not be present if the user has+-- changed their email address or deleted their account.+auImageURL :: Lens' ActingUser (Maybe Text)+auImageURL+  = lens _auImageURL (\ s a -> s{_auImageURL = a})++instance FromJSON ActingUser where+        parseJSON+          = withObject "ActingUser"+              (\ o ->+                 ActingUser' <$>+                   (o .:? "email") <*> (o .:? "imageUrl"))++instance ToJSON ActingUser where+        toJSON ActingUser'{..}+          = object+              (catMaybes+                 [("email" .=) <$> _auEmail,+                  ("imageUrl" .=) <$> _auImageURL])++-- | A \`Version\` is the collection of configuration and [static+-- files](sites.versions.files) that determine how a site is displayed.+--+-- /See:/ 'version' smart constructor.+data Version = Version'+    { _vStatus       :: !(Maybe VersionStatus)+    , _vFinalizeTime :: !(Maybe DateTime')+    , _vConfig       :: !(Maybe ServingConfig)+    , _vFileCount    :: !(Maybe (Textual Int64))+    , _vFinalizeUser :: !(Maybe ActingUser)+    , _vVersionBytes :: !(Maybe (Textual Int64))+    , _vDeleteTime   :: !(Maybe DateTime')+    , _vName         :: !(Maybe Text)+    , _vLabels       :: !(Maybe VersionLabels)+    , _vCreateUser   :: !(Maybe ActingUser)+    , _vDeleteUser   :: !(Maybe ActingUser)+    , _vCreateTime   :: !(Maybe DateTime')+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Version' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vStatus'+--+-- * 'vFinalizeTime'+--+-- * 'vConfig'+--+-- * 'vFileCount'+--+-- * 'vFinalizeUser'+--+-- * 'vVersionBytes'+--+-- * 'vDeleteTime'+--+-- * 'vName'+--+-- * 'vLabels'+--+-- * 'vCreateUser'+--+-- * 'vDeleteUser'+--+-- * 'vCreateTime'+version+    :: Version+version =+    Version'+    { _vStatus = Nothing+    , _vFinalizeTime = Nothing+    , _vConfig = Nothing+    , _vFileCount = Nothing+    , _vFinalizeUser = Nothing+    , _vVersionBytes = Nothing+    , _vDeleteTime = Nothing+    , _vName = Nothing+    , _vLabels = Nothing+    , _vCreateUser = Nothing+    , _vDeleteUser = Nothing+    , _vCreateTime = Nothing+    }++-- | The deploy status of a version.+-- For a successful deploy, call the+-- [\`CreateVersion\`](sites.versions\/create) endpoint to make a new+-- version (\`CREATED\` status), [upload all desired+-- files](sites.versions\/populateFiles) to the version, then+-- [update](sites.versions\/patch) the version to the \`FINALIZED\` status.+-- Note that if you leave the version in the \`CREATED\` state for more+-- than 12 hours, the system will automatically mark the version as+-- \`ABANDONED\`.+-- You can also change the status of a version to \`DELETED\` by calling+-- the [\`DeleteVersion\`](sites.versions\/delete) endpoint.+vStatus :: Lens' Version (Maybe VersionStatus)+vStatus = lens _vStatus (\ s a -> s{_vStatus = a})++-- | Output only. The time at which the version was \`FINALIZED\`.+vFinalizeTime :: Lens' Version (Maybe UTCTime)+vFinalizeTime+  = lens _vFinalizeTime+      (\ s a -> s{_vFinalizeTime = a})+      . mapping _DateTime++-- | The configuration for the behavior of the site. This configuration+-- exists in the [\`firebase.json\`](\/docs\/cli\/#the_firebasejson_file)+-- file.+vConfig :: Lens' Version (Maybe ServingConfig)+vConfig = lens _vConfig (\ s a -> s{_vConfig = a})++-- | Output only. The total number of files associated with the version.+-- This value is calculated after a version is \`FINALIZED\`.+vFileCount :: Lens' Version (Maybe Int64)+vFileCount+  = lens _vFileCount (\ s a -> s{_vFileCount = a}) .+      mapping _Coerce++-- | Output only. Identifies the user who \`FINALIZED\` the version.+vFinalizeUser :: Lens' Version (Maybe ActingUser)+vFinalizeUser+  = lens _vFinalizeUser+      (\ s a -> s{_vFinalizeUser = a})++-- | Output only. The total stored bytesize of the version.+-- This value is calculated after a version is \`FINALIZED\`.+vVersionBytes :: Lens' Version (Maybe Int64)+vVersionBytes+  = lens _vVersionBytes+      (\ s a -> s{_vVersionBytes = a})+      . mapping _Coerce++-- | Output only. The time at which the version was \`DELETED\`.+vDeleteTime :: Lens' Version (Maybe UTCTime)+vDeleteTime+  = lens _vDeleteTime (\ s a -> s{_vDeleteTime = a}) .+      mapping _DateTime++-- | The unique identifier for a version, in the format:+-- 'sites\/site-name\/versions\/versionID' This name is provided in the+-- response body when you call the+-- [\`CreateVersion\`](..\/sites.versions\/create) endpoint.+vName :: Lens' Version (Maybe Text)+vName = lens _vName (\ s a -> s{_vName = a})++-- | The labels used for extra metadata and\/or filtering.+vLabels :: Lens' Version (Maybe VersionLabels)+vLabels = lens _vLabels (\ s a -> s{_vLabels = a})++-- | Output only. Identifies the user who created the version.+vCreateUser :: Lens' Version (Maybe ActingUser)+vCreateUser+  = lens _vCreateUser (\ s a -> s{_vCreateUser = a})++-- | Output only. Identifies the user who \`DELETED\` the version.+vDeleteUser :: Lens' Version (Maybe ActingUser)+vDeleteUser+  = lens _vDeleteUser (\ s a -> s{_vDeleteUser = a})++-- | Output only. The time at which the version was created.+vCreateTime :: Lens' Version (Maybe UTCTime)+vCreateTime+  = lens _vCreateTime (\ s a -> s{_vCreateTime = a}) .+      mapping _DateTime++instance FromJSON Version where+        parseJSON+          = withObject "Version"+              (\ o ->+                 Version' <$>+                   (o .:? "status") <*> (o .:? "finalizeTime") <*>+                     (o .:? "config")+                     <*> (o .:? "fileCount")+                     <*> (o .:? "finalizeUser")+                     <*> (o .:? "versionBytes")+                     <*> (o .:? "deleteTime")+                     <*> (o .:? "name")+                     <*> (o .:? "labels")+                     <*> (o .:? "createUser")+                     <*> (o .:? "deleteUser")+                     <*> (o .:? "createTime"))++instance ToJSON Version where+        toJSON Version'{..}+          = object+              (catMaybes+                 [("status" .=) <$> _vStatus,+                  ("finalizeTime" .=) <$> _vFinalizeTime,+                  ("config" .=) <$> _vConfig,+                  ("fileCount" .=) <$> _vFileCount,+                  ("finalizeUser" .=) <$> _vFinalizeUser,+                  ("versionBytes" .=) <$> _vVersionBytes,+                  ("deleteTime" .=) <$> _vDeleteTime,+                  ("name" .=) <$> _vName, ("labels" .=) <$> _vLabels,+                  ("createUser" .=) <$> _vCreateUser,+                  ("deleteUser" .=) <$> _vDeleteUser,+                  ("createTime" .=) <$> _vCreateTime])++--+-- /See:/ 'listDomainsResponse' smart constructor.+data ListDomainsResponse = ListDomainsResponse'+    { _ldrNextPageToken :: !(Maybe Text)+    , _ldrDomains       :: !(Maybe [Domain])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ListDomainsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ldrNextPageToken'+--+-- * 'ldrDomains'+listDomainsResponse+    :: ListDomainsResponse+listDomainsResponse =+    ListDomainsResponse'+    { _ldrNextPageToken = Nothing+    , _ldrDomains = Nothing+    }++-- | The pagination token, if more results exist.+ldrNextPageToken :: Lens' ListDomainsResponse (Maybe Text)+ldrNextPageToken+  = lens _ldrNextPageToken+      (\ s a -> s{_ldrNextPageToken = a})++-- | The list of domains, if any exist.+ldrDomains :: Lens' ListDomainsResponse [Domain]+ldrDomains+  = lens _ldrDomains (\ s a -> s{_ldrDomains = a}) .+      _Default+      . _Coerce++instance FromJSON ListDomainsResponse where+        parseJSON+          = withObject "ListDomainsResponse"+              (\ o ->+                 ListDomainsResponse' <$>+                   (o .:? "nextPageToken") <*>+                     (o .:? "domains" .!= mempty))++instance ToJSON ListDomainsResponse where+        toJSON ListDomainsResponse'{..}+          = object+              (catMaybes+                 [("nextPageToken" .=) <$> _ldrNextPageToken,+                  ("domains" .=) <$> _ldrDomains])++-- | A [\`redirect\`](\/docs\/hosting\/full-config#redirects) represents the+-- configuration for returning an HTTP redirect response given a matching+-- request URL path.+--+-- /See:/ 'redirect' smart constructor.+data Redirect = Redirect'+    { _rLocation   :: !(Maybe Text)+    , _rGlob       :: !(Maybe Text)+    , _rStatusCode :: !(Maybe (Textual Int32))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Redirect' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rLocation'+--+-- * 'rGlob'+--+-- * 'rStatusCode'+redirect+    :: Redirect+redirect =+    Redirect'+    { _rLocation = Nothing+    , _rGlob = Nothing+    , _rStatusCode = Nothing+    }++-- | Required. The value to put in the HTTP location header of the response.+-- The location can contain capture group values from the pattern using a+-- \`:\` prefix to identify the segment and an optional \`*\` to capture+-- the rest of the URL. For example:+-- '\"glob\": \"\/:capture*\", \"statusCode\": 301, \"location\": \"https:\/\/example.com\/foo\/:capture\"'+rLocation :: Lens' Redirect (Maybe Text)+rLocation+  = lens _rLocation (\ s a -> s{_rLocation = a})++-- | Required. The user-supplied [glob+-- pattern](\/docs\/hosting\/full-config#glob_pattern_matching) to match+-- against the request URL path.+rGlob :: Lens' Redirect (Maybe Text)+rGlob = lens _rGlob (\ s a -> s{_rGlob = a})++-- | Required. The status HTTP code to return in the response. It must be a+-- valid 3xx status code.+rStatusCode :: Lens' Redirect (Maybe Int32)+rStatusCode+  = lens _rStatusCode (\ s a -> s{_rStatusCode = a}) .+      mapping _Coerce++instance FromJSON Redirect where+        parseJSON+          = withObject "Redirect"+              (\ o ->+                 Redirect' <$>+                   (o .:? "location") <*> (o .:? "glob") <*>+                     (o .:? "statusCode"))++instance ToJSON Redirect where+        toJSON Redirect'{..}+          = object+              (catMaybes+                 [("location" .=) <$> _rLocation,+                  ("glob" .=) <$> _rGlob,+                  ("statusCode" .=) <$> _rStatusCode])++-- | Defines the behavior of a domain-level redirect. Domain redirects+-- preserve the path of the redirect but replace the requested domain with+-- the one specified in the redirect configuration.+--+-- /See:/ 'domainRedirect' smart constructor.+data DomainRedirect = DomainRedirect'+    { _drDomainName :: !(Maybe Text)+    , _drType       :: !(Maybe DomainRedirectType)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DomainRedirect' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'drDomainName'+--+-- * 'drType'+domainRedirect+    :: DomainRedirect+domainRedirect =+    DomainRedirect'+    { _drDomainName = Nothing+    , _drType = Nothing+    }++-- | Required. The domain name to redirect to.+drDomainName :: Lens' DomainRedirect (Maybe Text)+drDomainName+  = lens _drDomainName (\ s a -> s{_drDomainName = a})++-- | Required. The redirect status code.+drType :: Lens' DomainRedirect (Maybe DomainRedirectType)+drType = lens _drType (\ s a -> s{_drType = a})++instance FromJSON DomainRedirect where+        parseJSON+          = withObject "DomainRedirect"+              (\ o ->+                 DomainRedirect' <$>+                   (o .:? "domainName") <*> (o .:? "type"))++instance ToJSON DomainRedirect where+        toJSON DomainRedirect'{..}+          = object+              (catMaybes+                 [("domainName" .=) <$> _drDomainName,+                  ("type" .=) <$> _drType])++-- | A [\`rewrite\`](\/docs\/hosting\/full-config#rewrites) represents an+-- internal content rewrite on the version. If the pattern matches, the+-- request will be handled as if it were to the destination path specified+-- in the configuration.+--+-- /See:/ 'rewrite' smart constructor.+data Rewrite = Rewrite'+    { _rewFunction     :: !(Maybe Text)+    , _rewPath         :: !(Maybe Text)+    , _rewGlob         :: !(Maybe Text)+    , _rewDynamicLinks :: !(Maybe Bool)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Rewrite' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rewFunction'+--+-- * 'rewPath'+--+-- * 'rewGlob'+--+-- * 'rewDynamicLinks'+rewrite+    :: Rewrite+rewrite =+    Rewrite'+    { _rewFunction = Nothing+    , _rewPath = Nothing+    , _rewGlob = Nothing+    , _rewDynamicLinks = Nothing+    }++-- | The function to proxy requests to. Must match the exported function name+-- exactly.+rewFunction :: Lens' Rewrite (Maybe Text)+rewFunction+  = lens _rewFunction (\ s a -> s{_rewFunction = a})++-- | The URL path to rewrite the request to.+rewPath :: Lens' Rewrite (Maybe Text)+rewPath = lens _rewPath (\ s a -> s{_rewPath = a})++-- | Required. The user-supplied [glob+-- pattern](\/docs\/hosting\/full-config#glob_pattern_matching) to match+-- against the request URL path.+rewGlob :: Lens' Rewrite (Maybe Text)+rewGlob = lens _rewGlob (\ s a -> s{_rewGlob = a})++-- | The request will be forwarded to Firebase Dynamic Links.+rewDynamicLinks :: Lens' Rewrite (Maybe Bool)+rewDynamicLinks+  = lens _rewDynamicLinks+      (\ s a -> s{_rewDynamicLinks = a})++instance FromJSON Rewrite where+        parseJSON+          = withObject "Rewrite"+              (\ o ->+                 Rewrite' <$>+                   (o .:? "function") <*> (o .:? "path") <*>+                     (o .:? "glob")+                     <*> (o .:? "dynamicLinks"))++instance ToJSON Rewrite where+        toJSON Rewrite'{..}+          = object+              (catMaybes+                 [("function" .=) <$> _rewFunction,+                  ("path" .=) <$> _rewPath, ("glob" .=) <$> _rewGlob,+                  ("dynamicLinks" .=) <$> _rewDynamicLinks])++-- | A set of file paths to the hashes corresponding to assets that should be+-- added to the version. Note that a file path to an empty hash will remove+-- the path from the version. Calculate a hash by Gzipping the file then+-- taking the SHA256 hash of the newly compressed file.+--+-- /See:/ 'populateVersionFilesRequestFiles' smart constructor.+newtype PopulateVersionFilesRequestFiles = PopulateVersionFilesRequestFiles'+    { _pvfrfAddtional :: HashMap Text Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'PopulateVersionFilesRequestFiles' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pvfrfAddtional'+populateVersionFilesRequestFiles+    :: HashMap Text Text -- ^ 'pvfrfAddtional'+    -> PopulateVersionFilesRequestFiles+populateVersionFilesRequestFiles pPvfrfAddtional_ =+    PopulateVersionFilesRequestFiles'+    { _pvfrfAddtional = _Coerce # pPvfrfAddtional_+    }++pvfrfAddtional :: Lens' PopulateVersionFilesRequestFiles (HashMap Text Text)+pvfrfAddtional+  = lens _pvfrfAddtional+      (\ s a -> s{_pvfrfAddtional = a})+      . _Coerce++instance FromJSON PopulateVersionFilesRequestFiles+         where+        parseJSON+          = withObject "PopulateVersionFilesRequestFiles"+              (\ o ->+                 PopulateVersionFilesRequestFiles' <$>+                   (parseJSONObject o))++instance ToJSON PopulateVersionFilesRequestFiles+         where+        toJSON = toJSON . _pvfrfAddtional++-- | Required. The additional headers to add to the response.+--+-- /See:/ 'headerHeaders' smart constructor.+newtype HeaderHeaders = HeaderHeaders'+    { _hhAddtional :: HashMap Text Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'HeaderHeaders' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'hhAddtional'+headerHeaders+    :: HashMap Text Text -- ^ 'hhAddtional'+    -> HeaderHeaders+headerHeaders pHhAddtional_ =+    HeaderHeaders'+    { _hhAddtional = _Coerce # pHhAddtional_+    }++hhAddtional :: Lens' HeaderHeaders (HashMap Text Text)+hhAddtional+  = lens _hhAddtional (\ s a -> s{_hhAddtional = a}) .+      _Coerce++instance FromJSON HeaderHeaders where+        parseJSON+          = withObject "HeaderHeaders"+              (\ o -> HeaderHeaders' <$> (parseJSONObject o))++instance ToJSON HeaderHeaders where+        toJSON = toJSON . _hhAddtional++-- | Represents an HTTP certificate challenge.+--+-- /See:/ 'certHTTPChallenge' smart constructor.+data CertHTTPChallenge = CertHTTPChallenge'+    { _chttpcPath  :: !(Maybe Text)+    , _chttpcToken :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'CertHTTPChallenge' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'chttpcPath'+--+-- * 'chttpcToken'+certHTTPChallenge+    :: CertHTTPChallenge+certHTTPChallenge =+    CertHTTPChallenge'+    { _chttpcPath = Nothing+    , _chttpcToken = Nothing+    }++-- | The URL path on which to serve the specified token to satisfy the+-- certificate challenge.+chttpcPath :: Lens' CertHTTPChallenge (Maybe Text)+chttpcPath+  = lens _chttpcPath (\ s a -> s{_chttpcPath = a})++-- | The token to serve at the specified URL path to satisfy the certificate+-- challenge.+chttpcToken :: Lens' CertHTTPChallenge (Maybe Text)+chttpcToken+  = lens _chttpcToken (\ s a -> s{_chttpcToken = a})++instance FromJSON CertHTTPChallenge where+        parseJSON+          = withObject "CertHTTPChallenge"+              (\ o ->+                 CertHTTPChallenge' <$>+                   (o .:? "path") <*> (o .:? "token"))++instance ToJSON CertHTTPChallenge where+        toJSON CertHTTPChallenge'{..}+          = object+              (catMaybes+                 [("path" .=) <$> _chttpcPath,+                  ("token" .=) <$> _chttpcToken])++--+-- /See:/ 'listVersionFilesResponse' smart constructor.+data ListVersionFilesResponse = ListVersionFilesResponse'+    { _lvfrNextPageToken :: !(Maybe Text)+    , _lvfrFiles         :: !(Maybe [VersionFile])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ListVersionFilesResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lvfrNextPageToken'+--+-- * 'lvfrFiles'+listVersionFilesResponse+    :: ListVersionFilesResponse+listVersionFilesResponse =+    ListVersionFilesResponse'+    { _lvfrNextPageToken = Nothing+    , _lvfrFiles = Nothing+    }++-- | The pagination token, if more results exist.+lvfrNextPageToken :: Lens' ListVersionFilesResponse (Maybe Text)+lvfrNextPageToken+  = lens _lvfrNextPageToken+      (\ s a -> s{_lvfrNextPageToken = a})++-- | The list path\/hashes in the specified version.+lvfrFiles :: Lens' ListVersionFilesResponse [VersionFile]+lvfrFiles+  = lens _lvfrFiles (\ s a -> s{_lvfrFiles = a}) .+      _Default+      . _Coerce++instance FromJSON ListVersionFilesResponse where+        parseJSON+          = withObject "ListVersionFilesResponse"+              (\ o ->+                 ListVersionFilesResponse' <$>+                   (o .:? "nextPageToken") <*>+                     (o .:? "files" .!= mempty))++instance ToJSON ListVersionFilesResponse where+        toJSON ListVersionFilesResponse'{..}+          = object+              (catMaybes+                 [("nextPageToken" .=) <$> _lvfrNextPageToken,+                  ("files" .=) <$> _lvfrFiles])++-- | A \`SiteConfig\` contains metadata associated with a specific site that+-- controls Firebase Hosting serving behavior+--+-- /See:/ 'siteConfig' smart constructor.+newtype SiteConfig = SiteConfig'+    { _scMaxVersions :: Maybe (Textual Int64)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'SiteConfig' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'scMaxVersions'+siteConfig+    :: SiteConfig+siteConfig =+    SiteConfig'+    { _scMaxVersions = Nothing+    }++-- | The number of FINALIZED versions that will be held for a site before+-- automatic deletion. When a new version is deployed, content for versions+-- in storage in excess of this number will be deleted, and will no longer+-- be billed for storage usage. Oldest versions will be deleted first;+-- sites are created with an unlimited number of max_versions by default.+scMaxVersions :: Lens' SiteConfig (Maybe Int64)+scMaxVersions+  = lens _scMaxVersions+      (\ s a -> s{_scMaxVersions = a})+      . mapping _Coerce++instance FromJSON SiteConfig where+        parseJSON+          = withObject "SiteConfig"+              (\ o -> SiteConfig' <$> (o .:? "maxVersions"))++instance ToJSON SiteConfig where+        toJSON SiteConfig'{..}+          = object+              (catMaybes [("maxVersions" .=) <$> _scMaxVersions])
+ gen/Network/Google/FirebaseHosting/Types/Sum.hs view
@@ -0,0 +1,445 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE LambdaCase         #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Network.Google.FirebaseHosting.Types.Sum+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Network.Google.FirebaseHosting.Types.Sum where++import           Network.Google.Prelude hiding (Bytes)++-- | Output only. Additional status of the domain association.+data DomainStatus+    = DomainStatusUnspecified+      -- ^ @DOMAIN_STATUS_UNSPECIFIED@+      -- Unspecified domain association status.+    | DomainChangePending+      -- ^ @DOMAIN_CHANGE_PENDING@+      -- An operation is in progress on the domain association and no further+      -- operations can be performed until it is complete.+    | DomainActive+      -- ^ @DOMAIN_ACTIVE@+      -- The domain association is active and no additional action is required.+    | DomainVerificationRequired+      -- ^ @DOMAIN_VERIFICATION_REQUIRED@+      -- The domain was previously verified in the legacy system. User must+      -- reverify the domain through the ownership service.+    | DomainVerificationLost+      -- ^ @DOMAIN_VERIFICATION_LOST@+      -- The domain verification has been lost and the domain is in the grace+      -- period before being removed from the Firebase Hosting site.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable DomainStatus++instance FromHttpApiData DomainStatus where+    parseQueryParam = \case+        "DOMAIN_STATUS_UNSPECIFIED" -> Right DomainStatusUnspecified+        "DOMAIN_CHANGE_PENDING" -> Right DomainChangePending+        "DOMAIN_ACTIVE" -> Right DomainActive+        "DOMAIN_VERIFICATION_REQUIRED" -> Right DomainVerificationRequired+        "DOMAIN_VERIFICATION_LOST" -> Right DomainVerificationLost+        x -> Left ("Unable to parse DomainStatus from: " <> x)++instance ToHttpApiData DomainStatus where+    toQueryParam = \case+        DomainStatusUnspecified -> "DOMAIN_STATUS_UNSPECIFIED"+        DomainChangePending -> "DOMAIN_CHANGE_PENDING"+        DomainActive -> "DOMAIN_ACTIVE"+        DomainVerificationRequired -> "DOMAIN_VERIFICATION_REQUIRED"+        DomainVerificationLost -> "DOMAIN_VERIFICATION_LOST"++instance FromJSON DomainStatus where+    parseJSON = parseJSONText "DomainStatus"++instance ToJSON DomainStatus where+    toJSON = toJSONText++-- | The DNS record match status as of the last DNS fetch.+data DomainProvisioningDNSStatus+    = DNSStatusUnspecified+      -- ^ @DNS_STATUS_UNSPECIFIED@+      -- Unspecified DNS status.+    | DNSPending+      -- ^ @DNS_PENDING@+      -- No DNS records have been specified for this domain yet.+    | DNSMissing+      -- ^ @DNS_MISSING@+      -- None of the required DNS records have been detected on the domain.+    | DNSPartialMatch+      -- ^ @DNS_PARTIAL_MATCH@+      -- Some of the required DNS records were detected, but not all of them. No+      -- extra (non-required) DNS records were detected.+    | DNSMatch+      -- ^ @DNS_MATCH@+      -- All required DNS records were detected. No extra (non-required) DNS+      -- records were detected.+    | DNSExtraneousMatch+      -- ^ @DNS_EXTRANEOUS_MATCH@+      -- The domain has at least one of the required DNS records, and it has at+      -- least one extra (non-required) DNS record.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable DomainProvisioningDNSStatus++instance FromHttpApiData DomainProvisioningDNSStatus where+    parseQueryParam = \case+        "DNS_STATUS_UNSPECIFIED" -> Right DNSStatusUnspecified+        "DNS_PENDING" -> Right DNSPending+        "DNS_MISSING" -> Right DNSMissing+        "DNS_PARTIAL_MATCH" -> Right DNSPartialMatch+        "DNS_MATCH" -> Right DNSMatch+        "DNS_EXTRANEOUS_MATCH" -> Right DNSExtraneousMatch+        x -> Left ("Unable to parse DomainProvisioningDNSStatus from: " <> x)++instance ToHttpApiData DomainProvisioningDNSStatus where+    toQueryParam = \case+        DNSStatusUnspecified -> "DNS_STATUS_UNSPECIFIED"+        DNSPending -> "DNS_PENDING"+        DNSMissing -> "DNS_MISSING"+        DNSPartialMatch -> "DNS_PARTIAL_MATCH"+        DNSMatch -> "DNS_MATCH"+        DNSExtraneousMatch -> "DNS_EXTRANEOUS_MATCH"++instance FromJSON DomainProvisioningDNSStatus where+    parseJSON = parseJSONText "DomainProvisioningDNSStatus"++instance ToJSON DomainProvisioningDNSStatus where+    toJSON = toJSONText++-- | Required. The redirect status code.+data DomainRedirectType+    = RedirectTypeUnspecified+      -- ^ @REDIRECT_TYPE_UNSPECIFIED@+      -- The default redirect type; should not be intentionlly used.+    | MovedPermanently+      -- ^ @MOVED_PERMANENTLY@+      -- The redirect will respond with an HTTP status code of \`301 Moved+      -- Permanently\`.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable DomainRedirectType++instance FromHttpApiData DomainRedirectType where+    parseQueryParam = \case+        "REDIRECT_TYPE_UNSPECIFIED" -> Right RedirectTypeUnspecified+        "MOVED_PERMANENTLY" -> Right MovedPermanently+        x -> Left ("Unable to parse DomainRedirectType from: " <> x)++instance ToHttpApiData DomainRedirectType where+    toQueryParam = \case+        RedirectTypeUnspecified -> "REDIRECT_TYPE_UNSPECIFIED"+        MovedPermanently -> "MOVED_PERMANENTLY"++instance FromJSON DomainRedirectType where+    parseJSON = parseJSONText "DomainRedirectType"++instance ToJSON DomainRedirectType where+    toJSON = toJSONText++-- | How to handle well known App Association files.+data ServingConfigAppAssociation+    = Auto+      -- ^ @AUTO@+      -- The app association files will be automattically created from the apps+      -- that exist in the Firebase project.+    | None+      -- ^ @NONE@+      -- No special handling of the app association files will occur, these paths+      -- will result in a 404 unless caught with a Rewrite.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable ServingConfigAppAssociation++instance FromHttpApiData ServingConfigAppAssociation where+    parseQueryParam = \case+        "AUTO" -> Right Auto+        "NONE" -> Right None+        x -> Left ("Unable to parse ServingConfigAppAssociation from: " <> x)++instance ToHttpApiData ServingConfigAppAssociation where+    toQueryParam = \case+        Auto -> "AUTO"+        None -> "NONE"++instance FromJSON ServingConfigAppAssociation where+    parseJSON = parseJSONText "ServingConfigAppAssociation"++instance ToJSON ServingConfigAppAssociation where+    toJSON = toJSONText++-- | The deploy status of a version.+-- For a successful deploy, call the+-- [\`CreateVersion\`](sites.versions\/create) endpoint to make a new+-- version (\`CREATED\` status), [upload all desired+-- files](sites.versions\/populateFiles) to the version, then+-- [update](sites.versions\/patch) the version to the \`FINALIZED\` status.+-- Note that if you leave the version in the \`CREATED\` state for more+-- than 12 hours, the system will automatically mark the version as+-- \`ABANDONED\`.+-- You can also change the status of a version to \`DELETED\` by calling+-- the [\`DeleteVersion\`](sites.versions\/delete) endpoint.+data VersionStatus+    = VersionStatusUnspecified+      -- ^ @VERSION_STATUS_UNSPECIFIED@+      -- The default status; should not be intentionally used.+    | Created+      -- ^ @CREATED@+      -- The version has been created, and content is currently being added to+      -- the version.+    | Finalized+      -- ^ @FINALIZED@+      -- All content has been added to the version, and the version can no longer+      -- be changed.+    | Deleted+      -- ^ @DELETED@+      -- The version has been deleted.+    | Abandoned+      -- ^ @ABANDONED@+      -- The version was not updated to \`FINALIZED\` within 12 hours and was+      -- automatically deleted.+    | Expired+      -- ^ @EXPIRED@+      -- The version has fallen out of the site-configured retention window and+      -- its associated files in GCS have been\/been scheduled for deletion.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable VersionStatus++instance FromHttpApiData VersionStatus where+    parseQueryParam = \case+        "VERSION_STATUS_UNSPECIFIED" -> Right VersionStatusUnspecified+        "CREATED" -> Right Created+        "FINALIZED" -> Right Finalized+        "DELETED" -> Right Deleted+        "ABANDONED" -> Right Abandoned+        "EXPIRED" -> Right Expired+        x -> Left ("Unable to parse VersionStatus from: " <> x)++instance ToHttpApiData VersionStatus where+    toQueryParam = \case+        VersionStatusUnspecified -> "VERSION_STATUS_UNSPECIFIED"+        Created -> "CREATED"+        Finalized -> "FINALIZED"+        Deleted -> "DELETED"+        Abandoned -> "ABANDONED"+        Expired -> "EXPIRED"++instance FromJSON VersionStatus where+    parseJSON = parseJSONText "VersionStatus"++instance ToJSON VersionStatus where+    toJSON = toJSONText++-- | V1 error format.+data Xgafv+    = X1+      -- ^ @1@+      -- v1 error format+    | X2+      -- ^ @2@+      -- v2 error format+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable Xgafv++instance FromHttpApiData Xgafv where+    parseQueryParam = \case+        "1" -> Right X1+        "2" -> Right X2+        x -> Left ("Unable to parse Xgafv from: " <> x)++instance ToHttpApiData Xgafv where+    toQueryParam = \case+        X1 -> "1"+        X2 -> "2"++instance FromJSON Xgafv where+    parseJSON = parseJSONText "Xgafv"++instance ToJSON Xgafv where+    toJSON = toJSONText++-- | The certificate provisioning status; updated when Firebase Hosting+-- provisions an SSL certificate for the domain.+data DomainProvisioningCertStatus+    = CertStatusUnspecified+      -- ^ @CERT_STATUS_UNSPECIFIED@+      -- Unspecified certificate provisioning status.+    | CertPending+      -- ^ @CERT_PENDING@+      -- Waiting for certificate challenge to be created.+    | CertMissing+      -- ^ @CERT_MISSING@+      -- Waiting for certificate challenge to be met.+    | CertProcessing+      -- ^ @CERT_PROCESSING@+      -- Certificate challenge met; attempting to acquire\/propagate certificate.+    | CertPropagating+      -- ^ @CERT_PROPAGATING@+      -- Certificate obtained; propagating to the CDN.+    | CertActive+      -- ^ @CERT_ACTIVE@+      -- Certificate provisioned and deployed across the CDN.+    | CertError+      -- ^ @CERT_ERROR@+      -- Certificate provisioning failed in a non-recoverable manner.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable DomainProvisioningCertStatus++instance FromHttpApiData DomainProvisioningCertStatus where+    parseQueryParam = \case+        "CERT_STATUS_UNSPECIFIED" -> Right CertStatusUnspecified+        "CERT_PENDING" -> Right CertPending+        "CERT_MISSING" -> Right CertMissing+        "CERT_PROCESSING" -> Right CertProcessing+        "CERT_PROPAGATING" -> Right CertPropagating+        "CERT_ACTIVE" -> Right CertActive+        "CERT_ERROR" -> Right CertError+        x -> Left ("Unable to parse DomainProvisioningCertStatus from: " <> x)++instance ToHttpApiData DomainProvisioningCertStatus where+    toQueryParam = \case+        CertStatusUnspecified -> "CERT_STATUS_UNSPECIFIED"+        CertPending -> "CERT_PENDING"+        CertMissing -> "CERT_MISSING"+        CertProcessing -> "CERT_PROCESSING"+        CertPropagating -> "CERT_PROPAGATING"+        CertActive -> "CERT_ACTIVE"+        CertError -> "CERT_ERROR"++instance FromJSON DomainProvisioningCertStatus where+    parseJSON = parseJSONText "DomainProvisioningCertStatus"++instance ToJSON DomainProvisioningCertStatus where+    toJSON = toJSONText++-- | Output only. The current status of a particular file in the specified+-- version.+-- The value will be either \`pending upload\` or \`uploaded\`.+data VersionFileStatus+    = StatusUnspecified+      -- ^ @STATUS_UNSPECIFIED@+      -- The default status; should not be intentionally used.+    | Expected+      -- ^ @EXPECTED@+      -- The file has been included in the version and is expected to be uploaded+      -- in the near future.+    | Active+      -- ^ @ACTIVE@+      -- The file has already been uploaded to Firebase Hosting.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable VersionFileStatus++instance FromHttpApiData VersionFileStatus where+    parseQueryParam = \case+        "STATUS_UNSPECIFIED" -> Right StatusUnspecified+        "EXPECTED" -> Right Expected+        "ACTIVE" -> Right Active+        x -> Left ("Unable to parse VersionFileStatus from: " <> x)++instance ToHttpApiData VersionFileStatus where+    toQueryParam = \case+        StatusUnspecified -> "STATUS_UNSPECIFIED"+        Expected -> "EXPECTED"+        Active -> "ACTIVE"++instance FromJSON VersionFileStatus where+    parseJSON = parseJSONText "VersionFileStatus"++instance ToJSON VersionFileStatus where+    toJSON = toJSONText++-- | Defines how to handle a trailing slash in the URL path.+data ServingConfigTrailingSlashBehavior+    = TrailingSlashBehaviorUnspecified+      -- ^ @TRAILING_SLASH_BEHAVIOR_UNSPECIFIED@+      -- No behavior is specified.+      -- Files are served at their exact location only, and trailing slashes are+      -- only added to directory indexes.+    | Add+      -- ^ @ADD@+      -- Trailing slashes are _added_ to directory indexes as well as to any URL+      -- path not ending in a file extension.+    | Remove+      -- ^ @REMOVE@+      -- Trailing slashes are _removed_ from directory indexes as well as from+      -- any URL path not ending in a file extension.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable ServingConfigTrailingSlashBehavior++instance FromHttpApiData ServingConfigTrailingSlashBehavior where+    parseQueryParam = \case+        "TRAILING_SLASH_BEHAVIOR_UNSPECIFIED" -> Right TrailingSlashBehaviorUnspecified+        "ADD" -> Right Add+        "REMOVE" -> Right Remove+        x -> Left ("Unable to parse ServingConfigTrailingSlashBehavior from: " <> x)++instance ToHttpApiData ServingConfigTrailingSlashBehavior where+    toQueryParam = \case+        TrailingSlashBehaviorUnspecified -> "TRAILING_SLASH_BEHAVIOR_UNSPECIFIED"+        Add -> "ADD"+        Remove -> "REMOVE"++instance FromJSON ServingConfigTrailingSlashBehavior where+    parseJSON = parseJSONText "ServingConfigTrailingSlashBehavior"++instance ToJSON ServingConfigTrailingSlashBehavior where+    toJSON = toJSONText++-- | Explains the reason for the release.+-- Specify a value for this field only when creating a \`SITE_DISABLE\`+-- type release.+data ReleaseType+    = TypeUnspecified+      -- ^ @TYPE_UNSPECIFIED@+      -- An unspecified type. Indicates that a version was released.+      -- This is the default value when no other \`type\` is explicitly+      -- specified.+    | Deploy+      -- ^ @DEPLOY@+      -- A version was uploaded to Firebase Hosting and released.+    | Rollback+      -- ^ @ROLLBACK@+      -- The release points back to a previously deployed version.+    | SiteDisable+      -- ^ @SITE_DISABLE@+      -- The release prevents the site from serving content. Firebase Hosting+      -- acts as if the site never existed.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable ReleaseType++instance FromHttpApiData ReleaseType where+    parseQueryParam = \case+        "TYPE_UNSPECIFIED" -> Right TypeUnspecified+        "DEPLOY" -> Right Deploy+        "ROLLBACK" -> Right Rollback+        "SITE_DISABLE" -> Right SiteDisable+        x -> Left ("Unable to parse ReleaseType from: " <> x)++instance ToHttpApiData ReleaseType where+    toQueryParam = \case+        TypeUnspecified -> "TYPE_UNSPECIFIED"+        Deploy -> "DEPLOY"+        Rollback -> "ROLLBACK"+        SiteDisable -> "SITE_DISABLE"++instance FromJSON ReleaseType where+    parseJSON = parseJSONText "ReleaseType"++instance ToJSON ReleaseType where+    toJSON = toJSONText
+ gen/Network/Google/Resource/FirebaseHosting/Sites/Domains/Create.hs view
@@ -0,0 +1,161 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.FirebaseHosting.Sites.Domains.Create+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a domain mapping on the specified site.+--+-- /See:/ <https://firebase.google.com/docs/hosting/ Firebase Hosting API Reference> for @firebasehosting.sites.domains.create@.+module Network.Google.Resource.FirebaseHosting.Sites.Domains.Create+    (+    -- * REST Resource+      SitesDomainsCreateResource++    -- * Creating a Request+    , sitesDomainsCreate+    , SitesDomainsCreate++    -- * Request Lenses+    , sdcParent+    , sdcXgafv+    , sdcUploadProtocol+    , sdcAccessToken+    , sdcUploadType+    , sdcPayload+    , sdcCallback+    ) where++import           Network.Google.FirebaseHosting.Types+import           Network.Google.Prelude++-- | A resource alias for @firebasehosting.sites.domains.create@ method which the+-- 'SitesDomainsCreate' request conforms to.+type SitesDomainsCreateResource =+     "v1beta1" :>+       Capture "parent" Text :>+         "domains" :>+           QueryParam "$.xgafv" Xgafv :>+             QueryParam "upload_protocol" Text :>+               QueryParam "access_token" Text :>+                 QueryParam "uploadType" Text :>+                   QueryParam "callback" Text :>+                     QueryParam "alt" AltJSON :>+                       ReqBody '[JSON] Domain :> Post '[JSON] Domain++-- | Creates a domain mapping on the specified site.+--+-- /See:/ 'sitesDomainsCreate' smart constructor.+data SitesDomainsCreate = SitesDomainsCreate'+    { _sdcParent         :: !Text+    , _sdcXgafv          :: !(Maybe Xgafv)+    , _sdcUploadProtocol :: !(Maybe Text)+    , _sdcAccessToken    :: !(Maybe Text)+    , _sdcUploadType     :: !(Maybe Text)+    , _sdcPayload        :: !Domain+    , _sdcCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'SitesDomainsCreate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sdcParent'+--+-- * 'sdcXgafv'+--+-- * 'sdcUploadProtocol'+--+-- * 'sdcAccessToken'+--+-- * 'sdcUploadType'+--+-- * 'sdcPayload'+--+-- * 'sdcCallback'+sitesDomainsCreate+    :: Text -- ^ 'sdcParent'+    -> Domain -- ^ 'sdcPayload'+    -> SitesDomainsCreate+sitesDomainsCreate pSdcParent_ pSdcPayload_ =+    SitesDomainsCreate'+    { _sdcParent = pSdcParent_+    , _sdcXgafv = Nothing+    , _sdcUploadProtocol = Nothing+    , _sdcAccessToken = Nothing+    , _sdcUploadType = Nothing+    , _sdcPayload = pSdcPayload_+    , _sdcCallback = Nothing+    }++-- | Required. The parent to create the domain association for, in the+-- format: 'sites\/site-name'+sdcParent :: Lens' SitesDomainsCreate Text+sdcParent+  = lens _sdcParent (\ s a -> s{_sdcParent = a})++-- | V1 error format.+sdcXgafv :: Lens' SitesDomainsCreate (Maybe Xgafv)+sdcXgafv = lens _sdcXgafv (\ s a -> s{_sdcXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+sdcUploadProtocol :: Lens' SitesDomainsCreate (Maybe Text)+sdcUploadProtocol+  = lens _sdcUploadProtocol+      (\ s a -> s{_sdcUploadProtocol = a})++-- | OAuth access token.+sdcAccessToken :: Lens' SitesDomainsCreate (Maybe Text)+sdcAccessToken+  = lens _sdcAccessToken+      (\ s a -> s{_sdcAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+sdcUploadType :: Lens' SitesDomainsCreate (Maybe Text)+sdcUploadType+  = lens _sdcUploadType+      (\ s a -> s{_sdcUploadType = a})++-- | Multipart request metadata.+sdcPayload :: Lens' SitesDomainsCreate Domain+sdcPayload+  = lens _sdcPayload (\ s a -> s{_sdcPayload = a})++-- | JSONP+sdcCallback :: Lens' SitesDomainsCreate (Maybe Text)+sdcCallback+  = lens _sdcCallback (\ s a -> s{_sdcCallback = a})++instance GoogleRequest SitesDomainsCreate where+        type Rs SitesDomainsCreate = Domain+        type Scopes SitesDomainsCreate =+             '["https://www.googleapis.com/auth/cloud-platform",+               "https://www.googleapis.com/auth/firebase"]+        requestClient SitesDomainsCreate'{..}+          = go _sdcParent _sdcXgafv _sdcUploadProtocol+              _sdcAccessToken+              _sdcUploadType+              _sdcCallback+              (Just AltJSON)+              _sdcPayload+              firebaseHostingService+          where go+                  = buildClient+                      (Proxy :: Proxy SitesDomainsCreateResource)+                      mempty
+ gen/Network/Google/Resource/FirebaseHosting/Sites/Domains/Delete.hs view
@@ -0,0 +1,145 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.FirebaseHosting.Sites.Domains.Delete+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes the existing domain mapping on the specified site.+--+-- /See:/ <https://firebase.google.com/docs/hosting/ Firebase Hosting API Reference> for @firebasehosting.sites.domains.delete@.+module Network.Google.Resource.FirebaseHosting.Sites.Domains.Delete+    (+    -- * REST Resource+      SitesDomainsDeleteResource++    -- * Creating a Request+    , sitesDomainsDelete+    , SitesDomainsDelete++    -- * Request Lenses+    , sddXgafv+    , sddUploadProtocol+    , sddAccessToken+    , sddUploadType+    , sddName+    , sddCallback+    ) where++import           Network.Google.FirebaseHosting.Types+import           Network.Google.Prelude++-- | A resource alias for @firebasehosting.sites.domains.delete@ method which the+-- 'SitesDomainsDelete' request conforms to.+type SitesDomainsDeleteResource =+     "v1beta1" :>+       Capture "name" Text :>+         QueryParam "$.xgafv" Xgafv :>+           QueryParam "upload_protocol" Text :>+             QueryParam "access_token" Text :>+               QueryParam "uploadType" Text :>+                 QueryParam "callback" Text :>+                   QueryParam "alt" AltJSON :> Delete '[JSON] Empty++-- | Deletes the existing domain mapping on the specified site.+--+-- /See:/ 'sitesDomainsDelete' smart constructor.+data SitesDomainsDelete = SitesDomainsDelete'+    { _sddXgafv          :: !(Maybe Xgafv)+    , _sddUploadProtocol :: !(Maybe Text)+    , _sddAccessToken    :: !(Maybe Text)+    , _sddUploadType     :: !(Maybe Text)+    , _sddName           :: !Text+    , _sddCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'SitesDomainsDelete' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sddXgafv'+--+-- * 'sddUploadProtocol'+--+-- * 'sddAccessToken'+--+-- * 'sddUploadType'+--+-- * 'sddName'+--+-- * 'sddCallback'+sitesDomainsDelete+    :: Text -- ^ 'sddName'+    -> SitesDomainsDelete+sitesDomainsDelete pSddName_ =+    SitesDomainsDelete'+    { _sddXgafv = Nothing+    , _sddUploadProtocol = Nothing+    , _sddAccessToken = Nothing+    , _sddUploadType = Nothing+    , _sddName = pSddName_+    , _sddCallback = Nothing+    }++-- | V1 error format.+sddXgafv :: Lens' SitesDomainsDelete (Maybe Xgafv)+sddXgafv = lens _sddXgafv (\ s a -> s{_sddXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+sddUploadProtocol :: Lens' SitesDomainsDelete (Maybe Text)+sddUploadProtocol+  = lens _sddUploadProtocol+      (\ s a -> s{_sddUploadProtocol = a})++-- | OAuth access token.+sddAccessToken :: Lens' SitesDomainsDelete (Maybe Text)+sddAccessToken+  = lens _sddAccessToken+      (\ s a -> s{_sddAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+sddUploadType :: Lens' SitesDomainsDelete (Maybe Text)+sddUploadType+  = lens _sddUploadType+      (\ s a -> s{_sddUploadType = a})++-- | Required. The name of the domain association to delete.+sddName :: Lens' SitesDomainsDelete Text+sddName = lens _sddName (\ s a -> s{_sddName = a})++-- | JSONP+sddCallback :: Lens' SitesDomainsDelete (Maybe Text)+sddCallback+  = lens _sddCallback (\ s a -> s{_sddCallback = a})++instance GoogleRequest SitesDomainsDelete where+        type Rs SitesDomainsDelete = Empty+        type Scopes SitesDomainsDelete =+             '["https://www.googleapis.com/auth/cloud-platform",+               "https://www.googleapis.com/auth/firebase"]+        requestClient SitesDomainsDelete'{..}+          = go _sddName _sddXgafv _sddUploadProtocol+              _sddAccessToken+              _sddUploadType+              _sddCallback+              (Just AltJSON)+              firebaseHostingService+          where go+                  = buildClient+                      (Proxy :: Proxy SitesDomainsDeleteResource)+                      mempty
+ gen/Network/Google/Resource/FirebaseHosting/Sites/Domains/Get.hs view
@@ -0,0 +1,147 @@+{-# 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.FirebaseHosting.Sites.Domains.Get+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets a domain mapping on the specified site.+--+-- /See:/ <https://firebase.google.com/docs/hosting/ Firebase Hosting API Reference> for @firebasehosting.sites.domains.get@.+module Network.Google.Resource.FirebaseHosting.Sites.Domains.Get+    (+    -- * REST Resource+      SitesDomainsGetResource++    -- * Creating a Request+    , sitesDomainsGet+    , SitesDomainsGet++    -- * Request Lenses+    , sdgXgafv+    , sdgUploadProtocol+    , sdgAccessToken+    , sdgUploadType+    , sdgName+    , sdgCallback+    ) where++import           Network.Google.FirebaseHosting.Types+import           Network.Google.Prelude++-- | A resource alias for @firebasehosting.sites.domains.get@ method which the+-- 'SitesDomainsGet' request conforms to.+type SitesDomainsGetResource =+     "v1beta1" :>+       Capture "name" Text :>+         QueryParam "$.xgafv" Xgafv :>+           QueryParam "upload_protocol" Text :>+             QueryParam "access_token" Text :>+               QueryParam "uploadType" Text :>+                 QueryParam "callback" Text :>+                   QueryParam "alt" AltJSON :> Get '[JSON] Domain++-- | Gets a domain mapping on the specified site.+--+-- /See:/ 'sitesDomainsGet' smart constructor.+data SitesDomainsGet = SitesDomainsGet'+    { _sdgXgafv          :: !(Maybe Xgafv)+    , _sdgUploadProtocol :: !(Maybe Text)+    , _sdgAccessToken    :: !(Maybe Text)+    , _sdgUploadType     :: !(Maybe Text)+    , _sdgName           :: !Text+    , _sdgCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'SitesDomainsGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sdgXgafv'+--+-- * 'sdgUploadProtocol'+--+-- * 'sdgAccessToken'+--+-- * 'sdgUploadType'+--+-- * 'sdgName'+--+-- * 'sdgCallback'+sitesDomainsGet+    :: Text -- ^ 'sdgName'+    -> SitesDomainsGet+sitesDomainsGet pSdgName_ =+    SitesDomainsGet'+    { _sdgXgafv = Nothing+    , _sdgUploadProtocol = Nothing+    , _sdgAccessToken = Nothing+    , _sdgUploadType = Nothing+    , _sdgName = pSdgName_+    , _sdgCallback = Nothing+    }++-- | V1 error format.+sdgXgafv :: Lens' SitesDomainsGet (Maybe Xgafv)+sdgXgafv = lens _sdgXgafv (\ s a -> s{_sdgXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+sdgUploadProtocol :: Lens' SitesDomainsGet (Maybe Text)+sdgUploadProtocol+  = lens _sdgUploadProtocol+      (\ s a -> s{_sdgUploadProtocol = a})++-- | OAuth access token.+sdgAccessToken :: Lens' SitesDomainsGet (Maybe Text)+sdgAccessToken+  = lens _sdgAccessToken+      (\ s a -> s{_sdgAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+sdgUploadType :: Lens' SitesDomainsGet (Maybe Text)+sdgUploadType+  = lens _sdgUploadType+      (\ s a -> s{_sdgUploadType = a})++-- | Required. The name of the domain configuration to get.+sdgName :: Lens' SitesDomainsGet Text+sdgName = lens _sdgName (\ s a -> s{_sdgName = a})++-- | JSONP+sdgCallback :: Lens' SitesDomainsGet (Maybe Text)+sdgCallback+  = lens _sdgCallback (\ s a -> s{_sdgCallback = a})++instance GoogleRequest SitesDomainsGet where+        type Rs SitesDomainsGet = Domain+        type Scopes SitesDomainsGet =+             '["https://www.googleapis.com/auth/cloud-platform",+               "https://www.googleapis.com/auth/cloud-platform.read-only",+               "https://www.googleapis.com/auth/firebase",+               "https://www.googleapis.com/auth/firebase.readonly"]+        requestClient SitesDomainsGet'{..}+          = go _sdgName _sdgXgafv _sdgUploadProtocol+              _sdgAccessToken+              _sdgUploadType+              _sdgCallback+              (Just AltJSON)+              firebaseHostingService+          where go+                  = buildClient+                      (Proxy :: Proxy SitesDomainsGetResource)+                      mempty
+ gen/Network/Google/Resource/FirebaseHosting/Sites/Domains/List.hs view
@@ -0,0 +1,176 @@+{-# 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.FirebaseHosting.Sites.Domains.List+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists the domains for the specified site.+--+-- /See:/ <https://firebase.google.com/docs/hosting/ Firebase Hosting API Reference> for @firebasehosting.sites.domains.list@.+module Network.Google.Resource.FirebaseHosting.Sites.Domains.List+    (+    -- * REST Resource+      SitesDomainsListResource++    -- * Creating a Request+    , sitesDomainsList+    , SitesDomainsList++    -- * Request Lenses+    , sdlParent+    , sdlXgafv+    , sdlUploadProtocol+    , sdlAccessToken+    , sdlUploadType+    , sdlPageToken+    , sdlPageSize+    , sdlCallback+    ) where++import           Network.Google.FirebaseHosting.Types+import           Network.Google.Prelude++-- | A resource alias for @firebasehosting.sites.domains.list@ method which the+-- 'SitesDomainsList' request conforms to.+type SitesDomainsListResource =+     "v1beta1" :>+       Capture "parent" Text :>+         "domains" :>+           QueryParam "$.xgafv" Xgafv :>+             QueryParam "upload_protocol" Text :>+               QueryParam "access_token" Text :>+                 QueryParam "uploadType" Text :>+                   QueryParam "pageToken" Text :>+                     QueryParam "pageSize" (Textual Int32) :>+                       QueryParam "callback" Text :>+                         QueryParam "alt" AltJSON :>+                           Get '[JSON] ListDomainsResponse++-- | Lists the domains for the specified site.+--+-- /See:/ 'sitesDomainsList' smart constructor.+data SitesDomainsList = SitesDomainsList'+    { _sdlParent         :: !Text+    , _sdlXgafv          :: !(Maybe Xgafv)+    , _sdlUploadProtocol :: !(Maybe Text)+    , _sdlAccessToken    :: !(Maybe Text)+    , _sdlUploadType     :: !(Maybe Text)+    , _sdlPageToken      :: !(Maybe Text)+    , _sdlPageSize       :: !(Maybe (Textual Int32))+    , _sdlCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'SitesDomainsList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sdlParent'+--+-- * 'sdlXgafv'+--+-- * 'sdlUploadProtocol'+--+-- * 'sdlAccessToken'+--+-- * 'sdlUploadType'+--+-- * 'sdlPageToken'+--+-- * 'sdlPageSize'+--+-- * 'sdlCallback'+sitesDomainsList+    :: Text -- ^ 'sdlParent'+    -> SitesDomainsList+sitesDomainsList pSdlParent_ =+    SitesDomainsList'+    { _sdlParent = pSdlParent_+    , _sdlXgafv = Nothing+    , _sdlUploadProtocol = Nothing+    , _sdlAccessToken = Nothing+    , _sdlUploadType = Nothing+    , _sdlPageToken = Nothing+    , _sdlPageSize = Nothing+    , _sdlCallback = Nothing+    }++-- | Required. The parent for which to list domains, in the format:+-- 'sites\/site-name'+sdlParent :: Lens' SitesDomainsList Text+sdlParent+  = lens _sdlParent (\ s a -> s{_sdlParent = a})++-- | V1 error format.+sdlXgafv :: Lens' SitesDomainsList (Maybe Xgafv)+sdlXgafv = lens _sdlXgafv (\ s a -> s{_sdlXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+sdlUploadProtocol :: Lens' SitesDomainsList (Maybe Text)+sdlUploadProtocol+  = lens _sdlUploadProtocol+      (\ s a -> s{_sdlUploadProtocol = a})++-- | OAuth access token.+sdlAccessToken :: Lens' SitesDomainsList (Maybe Text)+sdlAccessToken+  = lens _sdlAccessToken+      (\ s a -> s{_sdlAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+sdlUploadType :: Lens' SitesDomainsList (Maybe Text)+sdlUploadType+  = lens _sdlUploadType+      (\ s a -> s{_sdlUploadType = a})++-- | The next_page_token from a previous request, if provided.+sdlPageToken :: Lens' SitesDomainsList (Maybe Text)+sdlPageToken+  = lens _sdlPageToken (\ s a -> s{_sdlPageToken = a})++-- | The page size to return. Defaults to 50.+sdlPageSize :: Lens' SitesDomainsList (Maybe Int32)+sdlPageSize+  = lens _sdlPageSize (\ s a -> s{_sdlPageSize = a}) .+      mapping _Coerce++-- | JSONP+sdlCallback :: Lens' SitesDomainsList (Maybe Text)+sdlCallback+  = lens _sdlCallback (\ s a -> s{_sdlCallback = a})++instance GoogleRequest SitesDomainsList where+        type Rs SitesDomainsList = ListDomainsResponse+        type Scopes SitesDomainsList =+             '["https://www.googleapis.com/auth/cloud-platform",+               "https://www.googleapis.com/auth/cloud-platform.read-only",+               "https://www.googleapis.com/auth/firebase",+               "https://www.googleapis.com/auth/firebase.readonly"]+        requestClient SitesDomainsList'{..}+          = go _sdlParent _sdlXgafv _sdlUploadProtocol+              _sdlAccessToken+              _sdlUploadType+              _sdlPageToken+              _sdlPageSize+              _sdlCallback+              (Just AltJSON)+              firebaseHostingService+          where go+                  = buildClient+                      (Proxy :: Proxy SitesDomainsListResource)+                      mempty
+ gen/Network/Google/Resource/FirebaseHosting/Sites/Domains/Update.hs view
@@ -0,0 +1,161 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.FirebaseHosting.Sites.Domains.Update+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates the specified domain mapping, creating the mapping as if it does+-- not exist.+--+-- /See:/ <https://firebase.google.com/docs/hosting/ Firebase Hosting API Reference> for @firebasehosting.sites.domains.update@.+module Network.Google.Resource.FirebaseHosting.Sites.Domains.Update+    (+    -- * REST Resource+      SitesDomainsUpdateResource++    -- * Creating a Request+    , sitesDomainsUpdate+    , SitesDomainsUpdate++    -- * Request Lenses+    , sduXgafv+    , sduUploadProtocol+    , sduAccessToken+    , sduUploadType+    , sduPayload+    , sduName+    , sduCallback+    ) where++import           Network.Google.FirebaseHosting.Types+import           Network.Google.Prelude++-- | A resource alias for @firebasehosting.sites.domains.update@ method which the+-- 'SitesDomainsUpdate' request conforms to.+type SitesDomainsUpdateResource =+     "v1beta1" :>+       Capture "name" Text :>+         QueryParam "$.xgafv" Xgafv :>+           QueryParam "upload_protocol" Text :>+             QueryParam "access_token" Text :>+               QueryParam "uploadType" Text :>+                 QueryParam "callback" Text :>+                   QueryParam "alt" AltJSON :>+                     ReqBody '[JSON] Domain :> Put '[JSON] Domain++-- | Updates the specified domain mapping, creating the mapping as if it does+-- not exist.+--+-- /See:/ 'sitesDomainsUpdate' smart constructor.+data SitesDomainsUpdate = SitesDomainsUpdate'+    { _sduXgafv          :: !(Maybe Xgafv)+    , _sduUploadProtocol :: !(Maybe Text)+    , _sduAccessToken    :: !(Maybe Text)+    , _sduUploadType     :: !(Maybe Text)+    , _sduPayload        :: !Domain+    , _sduName           :: !Text+    , _sduCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'SitesDomainsUpdate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sduXgafv'+--+-- * 'sduUploadProtocol'+--+-- * 'sduAccessToken'+--+-- * 'sduUploadType'+--+-- * 'sduPayload'+--+-- * 'sduName'+--+-- * 'sduCallback'+sitesDomainsUpdate+    :: Domain -- ^ 'sduPayload'+    -> Text -- ^ 'sduName'+    -> SitesDomainsUpdate+sitesDomainsUpdate pSduPayload_ pSduName_ =+    SitesDomainsUpdate'+    { _sduXgafv = Nothing+    , _sduUploadProtocol = Nothing+    , _sduAccessToken = Nothing+    , _sduUploadType = Nothing+    , _sduPayload = pSduPayload_+    , _sduName = pSduName_+    , _sduCallback = Nothing+    }++-- | V1 error format.+sduXgafv :: Lens' SitesDomainsUpdate (Maybe Xgafv)+sduXgafv = lens _sduXgafv (\ s a -> s{_sduXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+sduUploadProtocol :: Lens' SitesDomainsUpdate (Maybe Text)+sduUploadProtocol+  = lens _sduUploadProtocol+      (\ s a -> s{_sduUploadProtocol = a})++-- | OAuth access token.+sduAccessToken :: Lens' SitesDomainsUpdate (Maybe Text)+sduAccessToken+  = lens _sduAccessToken+      (\ s a -> s{_sduAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+sduUploadType :: Lens' SitesDomainsUpdate (Maybe Text)+sduUploadType+  = lens _sduUploadType+      (\ s a -> s{_sduUploadType = a})++-- | Multipart request metadata.+sduPayload :: Lens' SitesDomainsUpdate Domain+sduPayload+  = lens _sduPayload (\ s a -> s{_sduPayload = a})++-- | Required. The name of the domain association to update or create, if an+-- association doesn\'t already exist.+sduName :: Lens' SitesDomainsUpdate Text+sduName = lens _sduName (\ s a -> s{_sduName = a})++-- | JSONP+sduCallback :: Lens' SitesDomainsUpdate (Maybe Text)+sduCallback+  = lens _sduCallback (\ s a -> s{_sduCallback = a})++instance GoogleRequest SitesDomainsUpdate where+        type Rs SitesDomainsUpdate = Domain+        type Scopes SitesDomainsUpdate =+             '["https://www.googleapis.com/auth/cloud-platform",+               "https://www.googleapis.com/auth/firebase"]+        requestClient SitesDomainsUpdate'{..}+          = go _sduName _sduXgafv _sduUploadProtocol+              _sduAccessToken+              _sduUploadType+              _sduCallback+              (Just AltJSON)+              _sduPayload+              firebaseHostingService+          where go+                  = buildClient+                      (Proxy :: Proxy SitesDomainsUpdateResource)+                      mempty
+ gen/Network/Google/Resource/FirebaseHosting/Sites/GetConfig.hs view
@@ -0,0 +1,147 @@+{-# 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.FirebaseHosting.Sites.GetConfig+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets the Hosting metadata for a specific site.+--+-- /See:/ <https://firebase.google.com/docs/hosting/ Firebase Hosting API Reference> for @firebasehosting.sites.getConfig@.+module Network.Google.Resource.FirebaseHosting.Sites.GetConfig+    (+    -- * REST Resource+      SitesGetConfigResource++    -- * Creating a Request+    , sitesGetConfig+    , SitesGetConfig++    -- * Request Lenses+    , sgcXgafv+    , sgcUploadProtocol+    , sgcAccessToken+    , sgcUploadType+    , sgcName+    , sgcCallback+    ) where++import           Network.Google.FirebaseHosting.Types+import           Network.Google.Prelude++-- | A resource alias for @firebasehosting.sites.getConfig@ method which the+-- 'SitesGetConfig' request conforms to.+type SitesGetConfigResource =+     "v1beta1" :>+       Capture "name" Text :>+         QueryParam "$.xgafv" Xgafv :>+           QueryParam "upload_protocol" Text :>+             QueryParam "access_token" Text :>+               QueryParam "uploadType" Text :>+                 QueryParam "callback" Text :>+                   QueryParam "alt" AltJSON :> Get '[JSON] SiteConfig++-- | Gets the Hosting metadata for a specific site.+--+-- /See:/ 'sitesGetConfig' smart constructor.+data SitesGetConfig = SitesGetConfig'+    { _sgcXgafv          :: !(Maybe Xgafv)+    , _sgcUploadProtocol :: !(Maybe Text)+    , _sgcAccessToken    :: !(Maybe Text)+    , _sgcUploadType     :: !(Maybe Text)+    , _sgcName           :: !Text+    , _sgcCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'SitesGetConfig' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sgcXgafv'+--+-- * 'sgcUploadProtocol'+--+-- * 'sgcAccessToken'+--+-- * 'sgcUploadType'+--+-- * 'sgcName'+--+-- * 'sgcCallback'+sitesGetConfig+    :: Text -- ^ 'sgcName'+    -> SitesGetConfig+sitesGetConfig pSgcName_ =+    SitesGetConfig'+    { _sgcXgafv = Nothing+    , _sgcUploadProtocol = Nothing+    , _sgcAccessToken = Nothing+    , _sgcUploadType = Nothing+    , _sgcName = pSgcName_+    , _sgcCallback = Nothing+    }++-- | V1 error format.+sgcXgafv :: Lens' SitesGetConfig (Maybe Xgafv)+sgcXgafv = lens _sgcXgafv (\ s a -> s{_sgcXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+sgcUploadProtocol :: Lens' SitesGetConfig (Maybe Text)+sgcUploadProtocol+  = lens _sgcUploadProtocol+      (\ s a -> s{_sgcUploadProtocol = a})++-- | OAuth access token.+sgcAccessToken :: Lens' SitesGetConfig (Maybe Text)+sgcAccessToken+  = lens _sgcAccessToken+      (\ s a -> s{_sgcAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+sgcUploadType :: Lens' SitesGetConfig (Maybe Text)+sgcUploadType+  = lens _sgcUploadType+      (\ s a -> s{_sgcUploadType = a})++-- | Required. The site for which to get the SiteConfig, in the format:+-- 'sites\/site-name\/config'+sgcName :: Lens' SitesGetConfig Text+sgcName = lens _sgcName (\ s a -> s{_sgcName = a})++-- | JSONP+sgcCallback :: Lens' SitesGetConfig (Maybe Text)+sgcCallback+  = lens _sgcCallback (\ s a -> s{_sgcCallback = a})++instance GoogleRequest SitesGetConfig where+        type Rs SitesGetConfig = SiteConfig+        type Scopes SitesGetConfig =+             '["https://www.googleapis.com/auth/cloud-platform",+               "https://www.googleapis.com/auth/cloud-platform.read-only",+               "https://www.googleapis.com/auth/firebase",+               "https://www.googleapis.com/auth/firebase.readonly"]+        requestClient SitesGetConfig'{..}+          = go _sgcName _sgcXgafv _sgcUploadProtocol+              _sgcAccessToken+              _sgcUploadType+              _sgcCallback+              (Just AltJSON)+              firebaseHostingService+          where go+                  = buildClient (Proxy :: Proxy SitesGetConfigResource)+                      mempty
+ gen/Network/Google/Resource/FirebaseHosting/Sites/Releases/Create.hs view
@@ -0,0 +1,179 @@+{-# 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.FirebaseHosting.Sites.Releases.Create+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a new release which makes the content of the specified version+-- actively display on the site.+--+-- /See:/ <https://firebase.google.com/docs/hosting/ Firebase Hosting API Reference> for @firebasehosting.sites.releases.create@.+module Network.Google.Resource.FirebaseHosting.Sites.Releases.Create+    (+    -- * REST Resource+      SitesReleasesCreateResource++    -- * Creating a Request+    , sitesReleasesCreate+    , SitesReleasesCreate++    -- * Request Lenses+    , srcParent+    , srcXgafv+    , srcUploadProtocol+    , srcVersionName+    , srcAccessToken+    , srcUploadType+    , srcPayload+    , srcCallback+    ) where++import           Network.Google.FirebaseHosting.Types+import           Network.Google.Prelude++-- | A resource alias for @firebasehosting.sites.releases.create@ method which the+-- 'SitesReleasesCreate' request conforms to.+type SitesReleasesCreateResource =+     "v1beta1" :>+       Capture "parent" Text :>+         "releases" :>+           QueryParam "$.xgafv" Xgafv :>+             QueryParam "upload_protocol" Text :>+               QueryParam "versionName" Text :>+                 QueryParam "access_token" Text :>+                   QueryParam "uploadType" Text :>+                     QueryParam "callback" Text :>+                       QueryParam "alt" AltJSON :>+                         ReqBody '[JSON] Release :> Post '[JSON] Release++-- | Creates a new release which makes the content of the specified version+-- actively display on the site.+--+-- /See:/ 'sitesReleasesCreate' smart constructor.+data SitesReleasesCreate = SitesReleasesCreate'+    { _srcParent         :: !Text+    , _srcXgafv          :: !(Maybe Xgafv)+    , _srcUploadProtocol :: !(Maybe Text)+    , _srcVersionName    :: !(Maybe Text)+    , _srcAccessToken    :: !(Maybe Text)+    , _srcUploadType     :: !(Maybe Text)+    , _srcPayload        :: !Release+    , _srcCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'SitesReleasesCreate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'srcParent'+--+-- * 'srcXgafv'+--+-- * 'srcUploadProtocol'+--+-- * 'srcVersionName'+--+-- * 'srcAccessToken'+--+-- * 'srcUploadType'+--+-- * 'srcPayload'+--+-- * 'srcCallback'+sitesReleasesCreate+    :: Text -- ^ 'srcParent'+    -> Release -- ^ 'srcPayload'+    -> SitesReleasesCreate+sitesReleasesCreate pSrcParent_ pSrcPayload_ =+    SitesReleasesCreate'+    { _srcParent = pSrcParent_+    , _srcXgafv = Nothing+    , _srcUploadProtocol = Nothing+    , _srcVersionName = Nothing+    , _srcAccessToken = Nothing+    , _srcUploadType = Nothing+    , _srcPayload = pSrcPayload_+    , _srcCallback = Nothing+    }++-- | The site that the release belongs to, in the format: 'sites\/site-name'+srcParent :: Lens' SitesReleasesCreate Text+srcParent+  = lens _srcParent (\ s a -> s{_srcParent = a})++-- | V1 error format.+srcXgafv :: Lens' SitesReleasesCreate (Maybe Xgafv)+srcXgafv = lens _srcXgafv (\ s a -> s{_srcXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+srcUploadProtocol :: Lens' SitesReleasesCreate (Maybe Text)+srcUploadProtocol+  = lens _srcUploadProtocol+      (\ s a -> s{_srcUploadProtocol = a})++-- | The unique identifier for a version, in the format:+-- '\/sites\/site-name\/versions\/versionID' The site-name in this version+-- identifier must match the site-name in the \`parent\` parameter.+-- This query parameter must be empty if the \`type\` field in the request+-- body is \`SITE_DISABLE\`.+srcVersionName :: Lens' SitesReleasesCreate (Maybe Text)+srcVersionName+  = lens _srcVersionName+      (\ s a -> s{_srcVersionName = a})++-- | OAuth access token.+srcAccessToken :: Lens' SitesReleasesCreate (Maybe Text)+srcAccessToken+  = lens _srcAccessToken+      (\ s a -> s{_srcAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+srcUploadType :: Lens' SitesReleasesCreate (Maybe Text)+srcUploadType+  = lens _srcUploadType+      (\ s a -> s{_srcUploadType = a})++-- | Multipart request metadata.+srcPayload :: Lens' SitesReleasesCreate Release+srcPayload+  = lens _srcPayload (\ s a -> s{_srcPayload = a})++-- | JSONP+srcCallback :: Lens' SitesReleasesCreate (Maybe Text)+srcCallback+  = lens _srcCallback (\ s a -> s{_srcCallback = a})++instance GoogleRequest SitesReleasesCreate where+        type Rs SitesReleasesCreate = Release+        type Scopes SitesReleasesCreate =+             '["https://www.googleapis.com/auth/cloud-platform",+               "https://www.googleapis.com/auth/firebase"]+        requestClient SitesReleasesCreate'{..}+          = go _srcParent _srcXgafv _srcUploadProtocol+              _srcVersionName+              _srcAccessToken+              _srcUploadType+              _srcCallback+              (Just AltJSON)+              _srcPayload+              firebaseHostingService+          where go+                  = buildClient+                      (Proxy :: Proxy SitesReleasesCreateResource)+                      mempty
+ gen/Network/Google/Resource/FirebaseHosting/Sites/Releases/List.hs view
@@ -0,0 +1,176 @@+{-# 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.FirebaseHosting.Sites.Releases.List+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists the releases that have been created on the specified site.+--+-- /See:/ <https://firebase.google.com/docs/hosting/ Firebase Hosting API Reference> for @firebasehosting.sites.releases.list@.+module Network.Google.Resource.FirebaseHosting.Sites.Releases.List+    (+    -- * REST Resource+      SitesReleasesListResource++    -- * Creating a Request+    , sitesReleasesList+    , SitesReleasesList++    -- * Request Lenses+    , srlParent+    , srlXgafv+    , srlUploadProtocol+    , srlAccessToken+    , srlUploadType+    , srlPageToken+    , srlPageSize+    , srlCallback+    ) where++import           Network.Google.FirebaseHosting.Types+import           Network.Google.Prelude++-- | A resource alias for @firebasehosting.sites.releases.list@ method which the+-- 'SitesReleasesList' request conforms to.+type SitesReleasesListResource =+     "v1beta1" :>+       Capture "parent" Text :>+         "releases" :>+           QueryParam "$.xgafv" Xgafv :>+             QueryParam "upload_protocol" Text :>+               QueryParam "access_token" Text :>+                 QueryParam "uploadType" Text :>+                   QueryParam "pageToken" Text :>+                     QueryParam "pageSize" (Textual Int32) :>+                       QueryParam "callback" Text :>+                         QueryParam "alt" AltJSON :>+                           Get '[JSON] ListReleasesResponse++-- | Lists the releases that have been created on the specified site.+--+-- /See:/ 'sitesReleasesList' smart constructor.+data SitesReleasesList = SitesReleasesList'+    { _srlParent         :: !Text+    , _srlXgafv          :: !(Maybe Xgafv)+    , _srlUploadProtocol :: !(Maybe Text)+    , _srlAccessToken    :: !(Maybe Text)+    , _srlUploadType     :: !(Maybe Text)+    , _srlPageToken      :: !(Maybe Text)+    , _srlPageSize       :: !(Maybe (Textual Int32))+    , _srlCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'SitesReleasesList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'srlParent'+--+-- * 'srlXgafv'+--+-- * 'srlUploadProtocol'+--+-- * 'srlAccessToken'+--+-- * 'srlUploadType'+--+-- * 'srlPageToken'+--+-- * 'srlPageSize'+--+-- * 'srlCallback'+sitesReleasesList+    :: Text -- ^ 'srlParent'+    -> SitesReleasesList+sitesReleasesList pSrlParent_ =+    SitesReleasesList'+    { _srlParent = pSrlParent_+    , _srlXgafv = Nothing+    , _srlUploadProtocol = Nothing+    , _srlAccessToken = Nothing+    , _srlUploadType = Nothing+    , _srlPageToken = Nothing+    , _srlPageSize = Nothing+    , _srlCallback = Nothing+    }++-- | Required. The parent for which to list files, in the format:+-- 'sites\/site-name'+srlParent :: Lens' SitesReleasesList Text+srlParent+  = lens _srlParent (\ s a -> s{_srlParent = a})++-- | V1 error format.+srlXgafv :: Lens' SitesReleasesList (Maybe Xgafv)+srlXgafv = lens _srlXgafv (\ s a -> s{_srlXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+srlUploadProtocol :: Lens' SitesReleasesList (Maybe Text)+srlUploadProtocol+  = lens _srlUploadProtocol+      (\ s a -> s{_srlUploadProtocol = a})++-- | OAuth access token.+srlAccessToken :: Lens' SitesReleasesList (Maybe Text)+srlAccessToken+  = lens _srlAccessToken+      (\ s a -> s{_srlAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+srlUploadType :: Lens' SitesReleasesList (Maybe Text)+srlUploadType+  = lens _srlUploadType+      (\ s a -> s{_srlUploadType = a})++-- | The next_page_token from a previous request, if provided.+srlPageToken :: Lens' SitesReleasesList (Maybe Text)+srlPageToken+  = lens _srlPageToken (\ s a -> s{_srlPageToken = a})++-- | The page size to return. Defaults to 100.+srlPageSize :: Lens' SitesReleasesList (Maybe Int32)+srlPageSize+  = lens _srlPageSize (\ s a -> s{_srlPageSize = a}) .+      mapping _Coerce++-- | JSONP+srlCallback :: Lens' SitesReleasesList (Maybe Text)+srlCallback+  = lens _srlCallback (\ s a -> s{_srlCallback = a})++instance GoogleRequest SitesReleasesList where+        type Rs SitesReleasesList = ListReleasesResponse+        type Scopes SitesReleasesList =+             '["https://www.googleapis.com/auth/cloud-platform",+               "https://www.googleapis.com/auth/cloud-platform.read-only",+               "https://www.googleapis.com/auth/firebase",+               "https://www.googleapis.com/auth/firebase.readonly"]+        requestClient SitesReleasesList'{..}+          = go _srlParent _srlXgafv _srlUploadProtocol+              _srlAccessToken+              _srlUploadType+              _srlPageToken+              _srlPageSize+              _srlCallback+              (Just AltJSON)+              firebaseHostingService+          where go+                  = buildClient+                      (Proxy :: Proxy SitesReleasesListResource)+                      mempty
+ gen/Network/Google/Resource/FirebaseHosting/Sites/UpdateConfig.hs view
@@ -0,0 +1,177 @@+{-# 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.FirebaseHosting.Sites.UpdateConfig+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Sets the Hosting metadata for a specific site.+--+-- /See:/ <https://firebase.google.com/docs/hosting/ Firebase Hosting API Reference> for @firebasehosting.sites.updateConfig@.+module Network.Google.Resource.FirebaseHosting.Sites.UpdateConfig+    (+    -- * REST Resource+      SitesUpdateConfigResource++    -- * Creating a Request+    , sitesUpdateConfig+    , SitesUpdateConfig++    -- * Request Lenses+    , sucXgafv+    , sucUploadProtocol+    , sucUpdateMask+    , sucAccessToken+    , sucUploadType+    , sucPayload+    , sucName+    , sucCallback+    ) where++import           Network.Google.FirebaseHosting.Types+import           Network.Google.Prelude++-- | A resource alias for @firebasehosting.sites.updateConfig@ method which the+-- 'SitesUpdateConfig' request conforms to.+type SitesUpdateConfigResource =+     "v1beta1" :>+       Capture "name" Text :>+         QueryParam "$.xgafv" Xgafv :>+           QueryParam "upload_protocol" Text :>+             QueryParam "updateMask" GFieldMask :>+               QueryParam "access_token" Text :>+                 QueryParam "uploadType" Text :>+                   QueryParam "callback" Text :>+                     QueryParam "alt" AltJSON :>+                       ReqBody '[JSON] SiteConfig :>+                         Patch '[JSON] SiteConfig++-- | Sets the Hosting metadata for a specific site.+--+-- /See:/ 'sitesUpdateConfig' smart constructor.+data SitesUpdateConfig = SitesUpdateConfig'+    { _sucXgafv          :: !(Maybe Xgafv)+    , _sucUploadProtocol :: !(Maybe Text)+    , _sucUpdateMask     :: !(Maybe GFieldMask)+    , _sucAccessToken    :: !(Maybe Text)+    , _sucUploadType     :: !(Maybe Text)+    , _sucPayload        :: !SiteConfig+    , _sucName           :: !Text+    , _sucCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'SitesUpdateConfig' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sucXgafv'+--+-- * 'sucUploadProtocol'+--+-- * 'sucUpdateMask'+--+-- * 'sucAccessToken'+--+-- * 'sucUploadType'+--+-- * 'sucPayload'+--+-- * 'sucName'+--+-- * 'sucCallback'+sitesUpdateConfig+    :: SiteConfig -- ^ 'sucPayload'+    -> Text -- ^ 'sucName'+    -> SitesUpdateConfig+sitesUpdateConfig pSucPayload_ pSucName_ =+    SitesUpdateConfig'+    { _sucXgafv = Nothing+    , _sucUploadProtocol = Nothing+    , _sucUpdateMask = Nothing+    , _sucAccessToken = Nothing+    , _sucUploadType = Nothing+    , _sucPayload = pSucPayload_+    , _sucName = pSucName_+    , _sucCallback = Nothing+    }++-- | V1 error format.+sucXgafv :: Lens' SitesUpdateConfig (Maybe Xgafv)+sucXgafv = lens _sucXgafv (\ s a -> s{_sucXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+sucUploadProtocol :: Lens' SitesUpdateConfig (Maybe Text)+sucUploadProtocol+  = lens _sucUploadProtocol+      (\ s a -> s{_sucUploadProtocol = a})++-- | A set of field names from your [site+-- configuration](..\/sites.SiteConfig) that you want to update.+-- A field will be overwritten if, and only if, it\'s in the mask.+-- If a mask is not provided then a default mask of only+-- [\`max_versions\`](..\/sites.SiteConfig.max_versions) will be used.+sucUpdateMask :: Lens' SitesUpdateConfig (Maybe GFieldMask)+sucUpdateMask+  = lens _sucUpdateMask+      (\ s a -> s{_sucUpdateMask = a})++-- | OAuth access token.+sucAccessToken :: Lens' SitesUpdateConfig (Maybe Text)+sucAccessToken+  = lens _sucAccessToken+      (\ s a -> s{_sucAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+sucUploadType :: Lens' SitesUpdateConfig (Maybe Text)+sucUploadType+  = lens _sucUploadType+      (\ s a -> s{_sucUploadType = a})++-- | Multipart request metadata.+sucPayload :: Lens' SitesUpdateConfig SiteConfig+sucPayload+  = lens _sucPayload (\ s a -> s{_sucPayload = a})++-- | Required. The site for which to update the SiteConfig, in the format:+-- 'sites\/site-name\/config'+sucName :: Lens' SitesUpdateConfig Text+sucName = lens _sucName (\ s a -> s{_sucName = a})++-- | JSONP+sucCallback :: Lens' SitesUpdateConfig (Maybe Text)+sucCallback+  = lens _sucCallback (\ s a -> s{_sucCallback = a})++instance GoogleRequest SitesUpdateConfig where+        type Rs SitesUpdateConfig = SiteConfig+        type Scopes SitesUpdateConfig =+             '["https://www.googleapis.com/auth/cloud-platform",+               "https://www.googleapis.com/auth/firebase"]+        requestClient SitesUpdateConfig'{..}+          = go _sucName _sucXgafv _sucUploadProtocol+              _sucUpdateMask+              _sucAccessToken+              _sucUploadType+              _sucCallback+              (Just AltJSON)+              _sucPayload+              firebaseHostingService+          where go+                  = buildClient+                      (Proxy :: Proxy SitesUpdateConfigResource)+                      mempty
+ gen/Network/Google/Resource/FirebaseHosting/Sites/Versions/Create.hs view
@@ -0,0 +1,187 @@+{-# 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.FirebaseHosting.Sites.Versions.Create+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a new version for a site.+--+-- /See:/ <https://firebase.google.com/docs/hosting/ Firebase Hosting API Reference> for @firebasehosting.sites.versions.create@.+module Network.Google.Resource.FirebaseHosting.Sites.Versions.Create+    (+    -- * REST Resource+      SitesVersionsCreateResource++    -- * Creating a Request+    , sitesVersionsCreate+    , SitesVersionsCreate++    -- * Request Lenses+    , svcSizeBytes+    , svcParent+    , svcXgafv+    , svcVersionId+    , svcUploadProtocol+    , svcAccessToken+    , svcUploadType+    , svcPayload+    , svcCallback+    ) where++import           Network.Google.FirebaseHosting.Types+import           Network.Google.Prelude++-- | A resource alias for @firebasehosting.sites.versions.create@ method which the+-- 'SitesVersionsCreate' request conforms to.+type SitesVersionsCreateResource =+     "v1beta1" :>+       Capture "parent" Text :>+         "versions" :>+           QueryParam "sizeBytes" (Textual Int64) :>+             QueryParam "$.xgafv" Xgafv :>+               QueryParam "versionId" Text :>+                 QueryParam "upload_protocol" Text :>+                   QueryParam "access_token" Text :>+                     QueryParam "uploadType" Text :>+                       QueryParam "callback" Text :>+                         QueryParam "alt" AltJSON :>+                           ReqBody '[JSON] Version :> Post '[JSON] Version++-- | Creates a new version for a site.+--+-- /See:/ 'sitesVersionsCreate' smart constructor.+data SitesVersionsCreate = SitesVersionsCreate'+    { _svcSizeBytes      :: !(Maybe (Textual Int64))+    , _svcParent         :: !Text+    , _svcXgafv          :: !(Maybe Xgafv)+    , _svcVersionId      :: !(Maybe Text)+    , _svcUploadProtocol :: !(Maybe Text)+    , _svcAccessToken    :: !(Maybe Text)+    , _svcUploadType     :: !(Maybe Text)+    , _svcPayload        :: !Version+    , _svcCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'SitesVersionsCreate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'svcSizeBytes'+--+-- * 'svcParent'+--+-- * 'svcXgafv'+--+-- * 'svcVersionId'+--+-- * 'svcUploadProtocol'+--+-- * 'svcAccessToken'+--+-- * 'svcUploadType'+--+-- * 'svcPayload'+--+-- * 'svcCallback'+sitesVersionsCreate+    :: Text -- ^ 'svcParent'+    -> Version -- ^ 'svcPayload'+    -> SitesVersionsCreate+sitesVersionsCreate pSvcParent_ pSvcPayload_ =+    SitesVersionsCreate'+    { _svcSizeBytes = Nothing+    , _svcParent = pSvcParent_+    , _svcXgafv = Nothing+    , _svcVersionId = Nothing+    , _svcUploadProtocol = Nothing+    , _svcAccessToken = Nothing+    , _svcUploadType = Nothing+    , _svcPayload = pSvcPayload_+    , _svcCallback = Nothing+    }++-- | The self-reported size of the version. This value is used for a+-- pre-emptive quota check for legacy version uploads.+svcSizeBytes :: Lens' SitesVersionsCreate (Maybe Int64)+svcSizeBytes+  = lens _svcSizeBytes (\ s a -> s{_svcSizeBytes = a})+      . mapping _Coerce++-- | Required. The parent to create the version for, in the format:+-- 'sites\/site-name'+svcParent :: Lens' SitesVersionsCreate Text+svcParent+  = lens _svcParent (\ s a -> s{_svcParent = a})++-- | V1 error format.+svcXgafv :: Lens' SitesVersionsCreate (Maybe Xgafv)+svcXgafv = lens _svcXgafv (\ s a -> s{_svcXgafv = a})++-- | A unique id for the new version. This is only specified for legacy+-- version creations.+svcVersionId :: Lens' SitesVersionsCreate (Maybe Text)+svcVersionId+  = lens _svcVersionId (\ s a -> s{_svcVersionId = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+svcUploadProtocol :: Lens' SitesVersionsCreate (Maybe Text)+svcUploadProtocol+  = lens _svcUploadProtocol+      (\ s a -> s{_svcUploadProtocol = a})++-- | OAuth access token.+svcAccessToken :: Lens' SitesVersionsCreate (Maybe Text)+svcAccessToken+  = lens _svcAccessToken+      (\ s a -> s{_svcAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+svcUploadType :: Lens' SitesVersionsCreate (Maybe Text)+svcUploadType+  = lens _svcUploadType+      (\ s a -> s{_svcUploadType = a})++-- | Multipart request metadata.+svcPayload :: Lens' SitesVersionsCreate Version+svcPayload+  = lens _svcPayload (\ s a -> s{_svcPayload = a})++-- | JSONP+svcCallback :: Lens' SitesVersionsCreate (Maybe Text)+svcCallback+  = lens _svcCallback (\ s a -> s{_svcCallback = a})++instance GoogleRequest SitesVersionsCreate where+        type Rs SitesVersionsCreate = Version+        type Scopes SitesVersionsCreate =+             '["https://www.googleapis.com/auth/cloud-platform",+               "https://www.googleapis.com/auth/firebase"]+        requestClient SitesVersionsCreate'{..}+          = go _svcParent _svcSizeBytes _svcXgafv _svcVersionId+              _svcUploadProtocol+              _svcAccessToken+              _svcUploadType+              _svcCallback+              (Just AltJSON)+              _svcPayload+              firebaseHostingService+          where go+                  = buildClient+                      (Proxy :: Proxy SitesVersionsCreateResource)+                      mempty
+ gen/Network/Google/Resource/FirebaseHosting/Sites/Versions/Delete.hs view
@@ -0,0 +1,146 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.FirebaseHosting.Sites.Versions.Delete+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes the specified version.+--+-- /See:/ <https://firebase.google.com/docs/hosting/ Firebase Hosting API Reference> for @firebasehosting.sites.versions.delete@.+module Network.Google.Resource.FirebaseHosting.Sites.Versions.Delete+    (+    -- * REST Resource+      SitesVersionsDeleteResource++    -- * Creating a Request+    , sitesVersionsDelete+    , SitesVersionsDelete++    -- * Request Lenses+    , svdXgafv+    , svdUploadProtocol+    , svdAccessToken+    , svdUploadType+    , svdName+    , svdCallback+    ) where++import           Network.Google.FirebaseHosting.Types+import           Network.Google.Prelude++-- | A resource alias for @firebasehosting.sites.versions.delete@ method which the+-- 'SitesVersionsDelete' request conforms to.+type SitesVersionsDeleteResource =+     "v1beta1" :>+       Capture "name" Text :>+         QueryParam "$.xgafv" Xgafv :>+           QueryParam "upload_protocol" Text :>+             QueryParam "access_token" Text :>+               QueryParam "uploadType" Text :>+                 QueryParam "callback" Text :>+                   QueryParam "alt" AltJSON :> Delete '[JSON] Empty++-- | Deletes the specified version.+--+-- /See:/ 'sitesVersionsDelete' smart constructor.+data SitesVersionsDelete = SitesVersionsDelete'+    { _svdXgafv          :: !(Maybe Xgafv)+    , _svdUploadProtocol :: !(Maybe Text)+    , _svdAccessToken    :: !(Maybe Text)+    , _svdUploadType     :: !(Maybe Text)+    , _svdName           :: !Text+    , _svdCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'SitesVersionsDelete' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'svdXgafv'+--+-- * 'svdUploadProtocol'+--+-- * 'svdAccessToken'+--+-- * 'svdUploadType'+--+-- * 'svdName'+--+-- * 'svdCallback'+sitesVersionsDelete+    :: Text -- ^ 'svdName'+    -> SitesVersionsDelete+sitesVersionsDelete pSvdName_ =+    SitesVersionsDelete'+    { _svdXgafv = Nothing+    , _svdUploadProtocol = Nothing+    , _svdAccessToken = Nothing+    , _svdUploadType = Nothing+    , _svdName = pSvdName_+    , _svdCallback = Nothing+    }++-- | V1 error format.+svdXgafv :: Lens' SitesVersionsDelete (Maybe Xgafv)+svdXgafv = lens _svdXgafv (\ s a -> s{_svdXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+svdUploadProtocol :: Lens' SitesVersionsDelete (Maybe Text)+svdUploadProtocol+  = lens _svdUploadProtocol+      (\ s a -> s{_svdUploadProtocol = a})++-- | OAuth access token.+svdAccessToken :: Lens' SitesVersionsDelete (Maybe Text)+svdAccessToken+  = lens _svdAccessToken+      (\ s a -> s{_svdAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+svdUploadType :: Lens' SitesVersionsDelete (Maybe Text)+svdUploadType+  = lens _svdUploadType+      (\ s a -> s{_svdUploadType = a})++-- | Required. The name of the version to be deleted, in the format:+-- 'sites\/site-name\/versions\/versionID'+svdName :: Lens' SitesVersionsDelete Text+svdName = lens _svdName (\ s a -> s{_svdName = a})++-- | JSONP+svdCallback :: Lens' SitesVersionsDelete (Maybe Text)+svdCallback+  = lens _svdCallback (\ s a -> s{_svdCallback = a})++instance GoogleRequest SitesVersionsDelete where+        type Rs SitesVersionsDelete = Empty+        type Scopes SitesVersionsDelete =+             '["https://www.googleapis.com/auth/cloud-platform",+               "https://www.googleapis.com/auth/firebase"]+        requestClient SitesVersionsDelete'{..}+          = go _svdName _svdXgafv _svdUploadProtocol+              _svdAccessToken+              _svdUploadType+              _svdCallback+              (Just AltJSON)+              firebaseHostingService+          where go+                  = buildClient+                      (Proxy :: Proxy SitesVersionsDeleteResource)+                      mempty
+ gen/Network/Google/Resource/FirebaseHosting/Sites/Versions/Files/List.hs view
@@ -0,0 +1,193 @@+{-# 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.FirebaseHosting.Sites.Versions.Files.List+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists the remaining files to be uploaded for the specified version.+--+-- /See:/ <https://firebase.google.com/docs/hosting/ Firebase Hosting API Reference> for @firebasehosting.sites.versions.files.list@.+module Network.Google.Resource.FirebaseHosting.Sites.Versions.Files.List+    (+    -- * REST Resource+      SitesVersionsFilesListResource++    -- * Creating a Request+    , sitesVersionsFilesList+    , SitesVersionsFilesList++    -- * Request Lenses+    , svflParent+    , svflStatus+    , svflXgafv+    , svflUploadProtocol+    , svflAccessToken+    , svflUploadType+    , svflPageToken+    , svflPageSize+    , svflCallback+    ) where++import           Network.Google.FirebaseHosting.Types+import           Network.Google.Prelude++-- | A resource alias for @firebasehosting.sites.versions.files.list@ method which the+-- 'SitesVersionsFilesList' request conforms to.+type SitesVersionsFilesListResource =+     "v1beta1" :>+       Capture "parent" Text :>+         "files" :>+           QueryParam "status" Text :>+             QueryParam "$.xgafv" Xgafv :>+               QueryParam "upload_protocol" Text :>+                 QueryParam "access_token" Text :>+                   QueryParam "uploadType" Text :>+                     QueryParam "pageToken" Text :>+                       QueryParam "pageSize" (Textual Int32) :>+                         QueryParam "callback" Text :>+                           QueryParam "alt" AltJSON :>+                             Get '[JSON] ListVersionFilesResponse++-- | Lists the remaining files to be uploaded for the specified version.+--+-- /See:/ 'sitesVersionsFilesList' smart constructor.+data SitesVersionsFilesList = SitesVersionsFilesList'+    { _svflParent         :: !Text+    , _svflStatus         :: !(Maybe Text)+    , _svflXgafv          :: !(Maybe Xgafv)+    , _svflUploadProtocol :: !(Maybe Text)+    , _svflAccessToken    :: !(Maybe Text)+    , _svflUploadType     :: !(Maybe Text)+    , _svflPageToken      :: !(Maybe Text)+    , _svflPageSize       :: !(Maybe (Textual Int32))+    , _svflCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'SitesVersionsFilesList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'svflParent'+--+-- * 'svflStatus'+--+-- * 'svflXgafv'+--+-- * 'svflUploadProtocol'+--+-- * 'svflAccessToken'+--+-- * 'svflUploadType'+--+-- * 'svflPageToken'+--+-- * 'svflPageSize'+--+-- * 'svflCallback'+sitesVersionsFilesList+    :: Text -- ^ 'svflParent'+    -> SitesVersionsFilesList+sitesVersionsFilesList pSvflParent_ =+    SitesVersionsFilesList'+    { _svflParent = pSvflParent_+    , _svflStatus = Nothing+    , _svflXgafv = Nothing+    , _svflUploadProtocol = Nothing+    , _svflAccessToken = Nothing+    , _svflUploadType = Nothing+    , _svflPageToken = Nothing+    , _svflPageSize = Nothing+    , _svflCallback = Nothing+    }++-- | Required. The parent to list files for, in the format:+-- 'sites\/site-name\/versions\/versionID'+svflParent :: Lens' SitesVersionsFilesList Text+svflParent+  = lens _svflParent (\ s a -> s{_svflParent = a})++-- | The type of files in the version that should be listed.+svflStatus :: Lens' SitesVersionsFilesList (Maybe Text)+svflStatus+  = lens _svflStatus (\ s a -> s{_svflStatus = a})++-- | V1 error format.+svflXgafv :: Lens' SitesVersionsFilesList (Maybe Xgafv)+svflXgafv+  = lens _svflXgafv (\ s a -> s{_svflXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+svflUploadProtocol :: Lens' SitesVersionsFilesList (Maybe Text)+svflUploadProtocol+  = lens _svflUploadProtocol+      (\ s a -> s{_svflUploadProtocol = a})++-- | OAuth access token.+svflAccessToken :: Lens' SitesVersionsFilesList (Maybe Text)+svflAccessToken+  = lens _svflAccessToken+      (\ s a -> s{_svflAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+svflUploadType :: Lens' SitesVersionsFilesList (Maybe Text)+svflUploadType+  = lens _svflUploadType+      (\ s a -> s{_svflUploadType = a})++-- | The next_page_token from a previous request, if provided. This will be+-- the encoded version of a+-- firebase.hosting.proto.metadata.ListFilesPageToken.+svflPageToken :: Lens' SitesVersionsFilesList (Maybe Text)+svflPageToken+  = lens _svflPageToken+      (\ s a -> s{_svflPageToken = a})++-- | The page size to return. Defaults to 1000.+svflPageSize :: Lens' SitesVersionsFilesList (Maybe Int32)+svflPageSize+  = lens _svflPageSize (\ s a -> s{_svflPageSize = a})+      . mapping _Coerce++-- | JSONP+svflCallback :: Lens' SitesVersionsFilesList (Maybe Text)+svflCallback+  = lens _svflCallback (\ s a -> s{_svflCallback = a})++instance GoogleRequest SitesVersionsFilesList where+        type Rs SitesVersionsFilesList =+             ListVersionFilesResponse+        type Scopes SitesVersionsFilesList =+             '["https://www.googleapis.com/auth/cloud-platform",+               "https://www.googleapis.com/auth/cloud-platform.read-only",+               "https://www.googleapis.com/auth/firebase",+               "https://www.googleapis.com/auth/firebase.readonly"]+        requestClient SitesVersionsFilesList'{..}+          = go _svflParent _svflStatus _svflXgafv+              _svflUploadProtocol+              _svflAccessToken+              _svflUploadType+              _svflPageToken+              _svflPageSize+              _svflCallback+              (Just AltJSON)+              firebaseHostingService+          where go+                  = buildClient+                      (Proxy :: Proxy SitesVersionsFilesListResource)+                      mempty
+ gen/Network/Google/Resource/FirebaseHosting/Sites/Versions/Patch.hs view
@@ -0,0 +1,188 @@+{-# 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.FirebaseHosting.Sites.Versions.Patch+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates the specified metadata for a version. Note that this method will+-- fail with \`FAILED_PRECONDITION\` in the event of an invalid state+-- transition. The only valid transition for a version is currently from a+-- \`CREATED\` status to a \`FINALIZED\` status. Use+-- [\`DeleteVersion\`](..\/sites.versions\/delete) to set the status of a+-- version to \`DELETED\`.+--+-- /See:/ <https://firebase.google.com/docs/hosting/ Firebase Hosting API Reference> for @firebasehosting.sites.versions.patch@.+module Network.Google.Resource.FirebaseHosting.Sites.Versions.Patch+    (+    -- * REST Resource+      SitesVersionsPatchResource++    -- * Creating a Request+    , sitesVersionsPatch+    , SitesVersionsPatch++    -- * Request Lenses+    , svpXgafv+    , svpUploadProtocol+    , svpUpdateMask+    , svpAccessToken+    , svpUploadType+    , svpPayload+    , svpName+    , svpCallback+    ) where++import           Network.Google.FirebaseHosting.Types+import           Network.Google.Prelude++-- | A resource alias for @firebasehosting.sites.versions.patch@ method which the+-- 'SitesVersionsPatch' request conforms to.+type SitesVersionsPatchResource =+     "v1beta1" :>+       Capture "name" Text :>+         QueryParam "$.xgafv" Xgafv :>+           QueryParam "upload_protocol" Text :>+             QueryParam "updateMask" GFieldMask :>+               QueryParam "access_token" Text :>+                 QueryParam "uploadType" Text :>+                   QueryParam "callback" Text :>+                     QueryParam "alt" AltJSON :>+                       ReqBody '[JSON] Version :> Patch '[JSON] Version++-- | Updates the specified metadata for a version. Note that this method will+-- fail with \`FAILED_PRECONDITION\` in the event of an invalid state+-- transition. The only valid transition for a version is currently from a+-- \`CREATED\` status to a \`FINALIZED\` status. Use+-- [\`DeleteVersion\`](..\/sites.versions\/delete) to set the status of a+-- version to \`DELETED\`.+--+-- /See:/ 'sitesVersionsPatch' smart constructor.+data SitesVersionsPatch = SitesVersionsPatch'+    { _svpXgafv          :: !(Maybe Xgafv)+    , _svpUploadProtocol :: !(Maybe Text)+    , _svpUpdateMask     :: !(Maybe GFieldMask)+    , _svpAccessToken    :: !(Maybe Text)+    , _svpUploadType     :: !(Maybe Text)+    , _svpPayload        :: !Version+    , _svpName           :: !Text+    , _svpCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'SitesVersionsPatch' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'svpXgafv'+--+-- * 'svpUploadProtocol'+--+-- * 'svpUpdateMask'+--+-- * 'svpAccessToken'+--+-- * 'svpUploadType'+--+-- * 'svpPayload'+--+-- * 'svpName'+--+-- * 'svpCallback'+sitesVersionsPatch+    :: Version -- ^ 'svpPayload'+    -> Text -- ^ 'svpName'+    -> SitesVersionsPatch+sitesVersionsPatch pSvpPayload_ pSvpName_ =+    SitesVersionsPatch'+    { _svpXgafv = Nothing+    , _svpUploadProtocol = Nothing+    , _svpUpdateMask = Nothing+    , _svpAccessToken = Nothing+    , _svpUploadType = Nothing+    , _svpPayload = pSvpPayload_+    , _svpName = pSvpName_+    , _svpCallback = Nothing+    }++-- | V1 error format.+svpXgafv :: Lens' SitesVersionsPatch (Maybe Xgafv)+svpXgafv = lens _svpXgafv (\ s a -> s{_svpXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+svpUploadProtocol :: Lens' SitesVersionsPatch (Maybe Text)+svpUploadProtocol+  = lens _svpUploadProtocol+      (\ s a -> s{_svpUploadProtocol = a})++-- | A set of field names from your [version](..\/sites.versions) that you+-- want to update.+-- A field will be overwritten if, and only if, it\'s in the mask.+-- If a mask is not provided then a default mask of only+-- [\`status\`](..\/sites.versions#Version.FIELDS.status) will be used.+svpUpdateMask :: Lens' SitesVersionsPatch (Maybe GFieldMask)+svpUpdateMask+  = lens _svpUpdateMask+      (\ s a -> s{_svpUpdateMask = a})++-- | OAuth access token.+svpAccessToken :: Lens' SitesVersionsPatch (Maybe Text)+svpAccessToken+  = lens _svpAccessToken+      (\ s a -> s{_svpAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+svpUploadType :: Lens' SitesVersionsPatch (Maybe Text)+svpUploadType+  = lens _svpUploadType+      (\ s a -> s{_svpUploadType = a})++-- | Multipart request metadata.+svpPayload :: Lens' SitesVersionsPatch Version+svpPayload+  = lens _svpPayload (\ s a -> s{_svpPayload = a})++-- | The unique identifier for a version, in the format:+-- 'sites\/site-name\/versions\/versionID' This name is provided in the+-- response body when you call the+-- [\`CreateVersion\`](..\/sites.versions\/create) endpoint.+svpName :: Lens' SitesVersionsPatch Text+svpName = lens _svpName (\ s a -> s{_svpName = a})++-- | JSONP+svpCallback :: Lens' SitesVersionsPatch (Maybe Text)+svpCallback+  = lens _svpCallback (\ s a -> s{_svpCallback = a})++instance GoogleRequest SitesVersionsPatch where+        type Rs SitesVersionsPatch = Version+        type Scopes SitesVersionsPatch =+             '["https://www.googleapis.com/auth/cloud-platform",+               "https://www.googleapis.com/auth/firebase"]+        requestClient SitesVersionsPatch'{..}+          = go _svpName _svpXgafv _svpUploadProtocol+              _svpUpdateMask+              _svpAccessToken+              _svpUploadType+              _svpCallback+              (Just AltJSON)+              _svpPayload+              firebaseHostingService+          where go+                  = buildClient+                      (Proxy :: Proxy SitesVersionsPatchResource)+                      mempty
+ gen/Network/Google/Resource/FirebaseHosting/Sites/Versions/PopulateFiles.hs view
@@ -0,0 +1,164 @@+{-# 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.FirebaseHosting.Sites.Versions.PopulateFiles+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Adds content files to a version.+--+-- /See:/ <https://firebase.google.com/docs/hosting/ Firebase Hosting API Reference> for @firebasehosting.sites.versions.populateFiles@.+module Network.Google.Resource.FirebaseHosting.Sites.Versions.PopulateFiles+    (+    -- * REST Resource+      SitesVersionsPopulateFilesResource++    -- * Creating a Request+    , sitesVersionsPopulateFiles+    , SitesVersionsPopulateFiles++    -- * Request Lenses+    , svpfParent+    , svpfXgafv+    , svpfUploadProtocol+    , svpfAccessToken+    , svpfUploadType+    , svpfPayload+    , svpfCallback+    ) where++import           Network.Google.FirebaseHosting.Types+import           Network.Google.Prelude++-- | A resource alias for @firebasehosting.sites.versions.populateFiles@ method which the+-- 'SitesVersionsPopulateFiles' request conforms to.+type SitesVersionsPopulateFilesResource =+     "v1beta1" :>+       CaptureMode "parent" "populateFiles" Text :>+         QueryParam "$.xgafv" Xgafv :>+           QueryParam "upload_protocol" Text :>+             QueryParam "access_token" Text :>+               QueryParam "uploadType" Text :>+                 QueryParam "callback" Text :>+                   QueryParam "alt" AltJSON :>+                     ReqBody '[JSON] PopulateVersionFilesRequest :>+                       Post '[JSON] PopulateVersionFilesResponse++-- | Adds content files to a version.+--+-- /See:/ 'sitesVersionsPopulateFiles' smart constructor.+data SitesVersionsPopulateFiles = SitesVersionsPopulateFiles'+    { _svpfParent         :: !Text+    , _svpfXgafv          :: !(Maybe Xgafv)+    , _svpfUploadProtocol :: !(Maybe Text)+    , _svpfAccessToken    :: !(Maybe Text)+    , _svpfUploadType     :: !(Maybe Text)+    , _svpfPayload        :: !PopulateVersionFilesRequest+    , _svpfCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'SitesVersionsPopulateFiles' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'svpfParent'+--+-- * 'svpfXgafv'+--+-- * 'svpfUploadProtocol'+--+-- * 'svpfAccessToken'+--+-- * 'svpfUploadType'+--+-- * 'svpfPayload'+--+-- * 'svpfCallback'+sitesVersionsPopulateFiles+    :: Text -- ^ 'svpfParent'+    -> PopulateVersionFilesRequest -- ^ 'svpfPayload'+    -> SitesVersionsPopulateFiles+sitesVersionsPopulateFiles pSvpfParent_ pSvpfPayload_ =+    SitesVersionsPopulateFiles'+    { _svpfParent = pSvpfParent_+    , _svpfXgafv = Nothing+    , _svpfUploadProtocol = Nothing+    , _svpfAccessToken = Nothing+    , _svpfUploadType = Nothing+    , _svpfPayload = pSvpfPayload_+    , _svpfCallback = Nothing+    }++-- | Required. The version to add files to, in the format:+-- 'sites\/site-name\/versions\/versionID'+svpfParent :: Lens' SitesVersionsPopulateFiles Text+svpfParent+  = lens _svpfParent (\ s a -> s{_svpfParent = a})++-- | V1 error format.+svpfXgafv :: Lens' SitesVersionsPopulateFiles (Maybe Xgafv)+svpfXgafv+  = lens _svpfXgafv (\ s a -> s{_svpfXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+svpfUploadProtocol :: Lens' SitesVersionsPopulateFiles (Maybe Text)+svpfUploadProtocol+  = lens _svpfUploadProtocol+      (\ s a -> s{_svpfUploadProtocol = a})++-- | OAuth access token.+svpfAccessToken :: Lens' SitesVersionsPopulateFiles (Maybe Text)+svpfAccessToken+  = lens _svpfAccessToken+      (\ s a -> s{_svpfAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+svpfUploadType :: Lens' SitesVersionsPopulateFiles (Maybe Text)+svpfUploadType+  = lens _svpfUploadType+      (\ s a -> s{_svpfUploadType = a})++-- | Multipart request metadata.+svpfPayload :: Lens' SitesVersionsPopulateFiles PopulateVersionFilesRequest+svpfPayload+  = lens _svpfPayload (\ s a -> s{_svpfPayload = a})++-- | JSONP+svpfCallback :: Lens' SitesVersionsPopulateFiles (Maybe Text)+svpfCallback+  = lens _svpfCallback (\ s a -> s{_svpfCallback = a})++instance GoogleRequest SitesVersionsPopulateFiles+         where+        type Rs SitesVersionsPopulateFiles =+             PopulateVersionFilesResponse+        type Scopes SitesVersionsPopulateFiles =+             '["https://www.googleapis.com/auth/cloud-platform",+               "https://www.googleapis.com/auth/firebase"]+        requestClient SitesVersionsPopulateFiles'{..}+          = go _svpfParent _svpfXgafv _svpfUploadProtocol+              _svpfAccessToken+              _svpfUploadType+              _svpfCallback+              (Just AltJSON)+              _svpfPayload+              firebaseHostingService+          where go+                  = buildClient+                      (Proxy :: Proxy SitesVersionsPopulateFilesResource)+                      mempty
+ gogol-firebasehosting.cabal view
@@ -0,0 +1,61 @@+name:                  gogol-firebasehosting+version:               0.4.0+synopsis:              Google Firebase Hosting SDK.+homepage:              https://github.com/brendanhay/gogol+bug-reports:           https://github.com/brendanhay/gogol/issues+license:               OtherLicense+license-file:          LICENSE+author:                Brendan Hay+maintainer:            Brendan Hay <brendan.g.hay@gmail.com>+copyright:             Copyright (c) 2015-2016 Brendan Hay+category:              Network, Google, Cloud+build-type:            Simple+cabal-version:         >= 1.10+extra-source-files:    README.md src/.gitkeep++description:+    The Firebase Hosting REST API enables programmatic custom deployment for+    releasing versions of your Firebase hosted content and configuration+    files.+    .+    /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 @v1beta1@+    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.FirebaseHosting+        , Network.Google.FirebaseHosting.Types+        , Network.Google.Resource.FirebaseHosting.Sites.Domains.Create+        , Network.Google.Resource.FirebaseHosting.Sites.Domains.Delete+        , Network.Google.Resource.FirebaseHosting.Sites.Domains.Get+        , Network.Google.Resource.FirebaseHosting.Sites.Domains.List+        , Network.Google.Resource.FirebaseHosting.Sites.Domains.Update+        , Network.Google.Resource.FirebaseHosting.Sites.GetConfig+        , Network.Google.Resource.FirebaseHosting.Sites.Releases.Create+        , Network.Google.Resource.FirebaseHosting.Sites.Releases.List+        , Network.Google.Resource.FirebaseHosting.Sites.UpdateConfig+        , Network.Google.Resource.FirebaseHosting.Sites.Versions.Create+        , Network.Google.Resource.FirebaseHosting.Sites.Versions.Delete+        , Network.Google.Resource.FirebaseHosting.Sites.Versions.Files.List+        , Network.Google.Resource.FirebaseHosting.Sites.Versions.Patch+        , Network.Google.Resource.FirebaseHosting.Sites.Versions.PopulateFiles++    other-modules:+          Network.Google.FirebaseHosting.Types.Product+        , Network.Google.FirebaseHosting.Types.Sum++    build-depends:+          gogol-core == 0.4.0.*+        , base       >= 4.7 && < 5
+ src/.gitkeep view