packages feed

gogol-compute (empty) → 0.0.1

raw patch · 198 files changed

+46149/−0 lines, 198 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-compute++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version++`0.0.1`+++## Description++A client library for the Google Compute Engine.+++## Contribute++For any problems, comments, or feedback please create an issue [here on GitHub](https://github.com/brendanhay/amazonka/issues).++> _Note:_ this library is an auto-generated Haskell package. Please see `amazonka-gen` for more information.+++## Licence++`gogol-compute` 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/Compute.hs view
@@ -0,0 +1,2802 @@+{-# LANGUAGE DataKinds         #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE TypeOperators     #-}++{-# OPTIONS_GHC -fno-warn-unused-imports    #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}++-- |+-- Module      : Network.Google.Compute+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- API for the Google Compute Engine service.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference>+module Network.Google.Compute+    (+    -- * Service Configuration+      computeService++    -- * API Declaration+    , ComputeAPI++    -- * Resources++    -- ** compute.addresses.aggregatedList+    , module Network.Google.Resource.Compute.Addresses.AggregatedList++    -- ** compute.addresses.delete+    , module Network.Google.Resource.Compute.Addresses.Delete++    -- ** compute.addresses.get+    , module Network.Google.Resource.Compute.Addresses.Get++    -- ** compute.addresses.insert+    , module Network.Google.Resource.Compute.Addresses.Insert++    -- ** compute.addresses.list+    , module Network.Google.Resource.Compute.Addresses.List++    -- ** compute.autoscalers.aggregatedList+    , module Network.Google.Resource.Compute.Autoscalers.AggregatedList++    -- ** compute.autoscalers.delete+    , module Network.Google.Resource.Compute.Autoscalers.Delete++    -- ** compute.autoscalers.get+    , module Network.Google.Resource.Compute.Autoscalers.Get++    -- ** compute.autoscalers.insert+    , module Network.Google.Resource.Compute.Autoscalers.Insert++    -- ** compute.autoscalers.list+    , module Network.Google.Resource.Compute.Autoscalers.List++    -- ** compute.autoscalers.patch+    , module Network.Google.Resource.Compute.Autoscalers.Patch++    -- ** compute.autoscalers.update+    , module Network.Google.Resource.Compute.Autoscalers.Update++    -- ** compute.backendServices.delete+    , module Network.Google.Resource.Compute.BackendServices.Delete++    -- ** compute.backendServices.get+    , module Network.Google.Resource.Compute.BackendServices.Get++    -- ** compute.backendServices.getHealth+    , module Network.Google.Resource.Compute.BackendServices.GetHealth++    -- ** compute.backendServices.insert+    , module Network.Google.Resource.Compute.BackendServices.Insert++    -- ** compute.backendServices.list+    , module Network.Google.Resource.Compute.BackendServices.List++    -- ** compute.backendServices.patch+    , module Network.Google.Resource.Compute.BackendServices.Patch++    -- ** compute.backendServices.update+    , module Network.Google.Resource.Compute.BackendServices.Update++    -- ** compute.diskTypes.aggregatedList+    , module Network.Google.Resource.Compute.DiskTypes.AggregatedList++    -- ** compute.diskTypes.get+    , module Network.Google.Resource.Compute.DiskTypes.Get++    -- ** compute.diskTypes.list+    , module Network.Google.Resource.Compute.DiskTypes.List++    -- ** compute.disks.aggregatedList+    , module Network.Google.Resource.Compute.Disks.AggregatedList++    -- ** compute.disks.createSnapshot+    , module Network.Google.Resource.Compute.Disks.CreateSnapshot++    -- ** compute.disks.delete+    , module Network.Google.Resource.Compute.Disks.Delete++    -- ** compute.disks.get+    , module Network.Google.Resource.Compute.Disks.Get++    -- ** compute.disks.insert+    , module Network.Google.Resource.Compute.Disks.Insert++    -- ** compute.disks.list+    , module Network.Google.Resource.Compute.Disks.List++    -- ** compute.firewalls.delete+    , module Network.Google.Resource.Compute.Firewalls.Delete++    -- ** compute.firewalls.get+    , module Network.Google.Resource.Compute.Firewalls.Get++    -- ** compute.firewalls.insert+    , module Network.Google.Resource.Compute.Firewalls.Insert++    -- ** compute.firewalls.list+    , module Network.Google.Resource.Compute.Firewalls.List++    -- ** compute.firewalls.patch+    , module Network.Google.Resource.Compute.Firewalls.Patch++    -- ** compute.firewalls.update+    , module Network.Google.Resource.Compute.Firewalls.Update++    -- ** compute.forwardingRules.aggregatedList+    , module Network.Google.Resource.Compute.ForwardingRules.AggregatedList++    -- ** compute.forwardingRules.delete+    , module Network.Google.Resource.Compute.ForwardingRules.Delete++    -- ** compute.forwardingRules.get+    , module Network.Google.Resource.Compute.ForwardingRules.Get++    -- ** compute.forwardingRules.insert+    , module Network.Google.Resource.Compute.ForwardingRules.Insert++    -- ** compute.forwardingRules.list+    , module Network.Google.Resource.Compute.ForwardingRules.List++    -- ** compute.forwardingRules.setTarget+    , module Network.Google.Resource.Compute.ForwardingRules.SetTarget++    -- ** compute.globalAddresses.delete+    , module Network.Google.Resource.Compute.GlobalAddresses.Delete++    -- ** compute.globalAddresses.get+    , module Network.Google.Resource.Compute.GlobalAddresses.Get++    -- ** compute.globalAddresses.insert+    , module Network.Google.Resource.Compute.GlobalAddresses.Insert++    -- ** compute.globalAddresses.list+    , module Network.Google.Resource.Compute.GlobalAddresses.List++    -- ** compute.globalForwardingRules.delete+    , module Network.Google.Resource.Compute.GlobalForwardingRules.Delete++    -- ** compute.globalForwardingRules.get+    , module Network.Google.Resource.Compute.GlobalForwardingRules.Get++    -- ** compute.globalForwardingRules.insert+    , module Network.Google.Resource.Compute.GlobalForwardingRules.Insert++    -- ** compute.globalForwardingRules.list+    , module Network.Google.Resource.Compute.GlobalForwardingRules.List++    -- ** compute.globalForwardingRules.setTarget+    , module Network.Google.Resource.Compute.GlobalForwardingRules.SetTarget++    -- ** compute.globalOperations.aggregatedList+    , module Network.Google.Resource.Compute.GlobalOperations.AggregatedList++    -- ** compute.globalOperations.delete+    , module Network.Google.Resource.Compute.GlobalOperations.Delete++    -- ** compute.globalOperations.get+    , module Network.Google.Resource.Compute.GlobalOperations.Get++    -- ** compute.globalOperations.list+    , module Network.Google.Resource.Compute.GlobalOperations.List++    -- ** compute.httpHealthChecks.delete+    , module Network.Google.Resource.Compute.HTTPHealthChecks.Delete++    -- ** compute.httpHealthChecks.get+    , module Network.Google.Resource.Compute.HTTPHealthChecks.Get++    -- ** compute.httpHealthChecks.insert+    , module Network.Google.Resource.Compute.HTTPHealthChecks.Insert++    -- ** compute.httpHealthChecks.list+    , module Network.Google.Resource.Compute.HTTPHealthChecks.List++    -- ** compute.httpHealthChecks.patch+    , module Network.Google.Resource.Compute.HTTPHealthChecks.Patch++    -- ** compute.httpHealthChecks.update+    , module Network.Google.Resource.Compute.HTTPHealthChecks.Update++    -- ** compute.httpsHealthChecks.delete+    , module Network.Google.Resource.Compute.HTTPSHealthChecks.Delete++    -- ** compute.httpsHealthChecks.get+    , module Network.Google.Resource.Compute.HTTPSHealthChecks.Get++    -- ** compute.httpsHealthChecks.insert+    , module Network.Google.Resource.Compute.HTTPSHealthChecks.Insert++    -- ** compute.httpsHealthChecks.list+    , module Network.Google.Resource.Compute.HTTPSHealthChecks.List++    -- ** compute.httpsHealthChecks.patch+    , module Network.Google.Resource.Compute.HTTPSHealthChecks.Patch++    -- ** compute.httpsHealthChecks.update+    , module Network.Google.Resource.Compute.HTTPSHealthChecks.Update++    -- ** compute.images.delete+    , module Network.Google.Resource.Compute.Images.Delete++    -- ** compute.images.deprecate+    , module Network.Google.Resource.Compute.Images.Deprecate++    -- ** compute.images.get+    , module Network.Google.Resource.Compute.Images.Get++    -- ** compute.images.insert+    , module Network.Google.Resource.Compute.Images.Insert++    -- ** compute.images.list+    , module Network.Google.Resource.Compute.Images.List++    -- ** compute.instanceGroupManagers.abandonInstances+    , module Network.Google.Resource.Compute.InstanceGroupManagers.AbandonInstances++    -- ** compute.instanceGroupManagers.aggregatedList+    , module Network.Google.Resource.Compute.InstanceGroupManagers.AggregatedList++    -- ** compute.instanceGroupManagers.delete+    , module Network.Google.Resource.Compute.InstanceGroupManagers.Delete++    -- ** compute.instanceGroupManagers.deleteInstances+    , module Network.Google.Resource.Compute.InstanceGroupManagers.DeleteInstances++    -- ** compute.instanceGroupManagers.get+    , module Network.Google.Resource.Compute.InstanceGroupManagers.Get++    -- ** compute.instanceGroupManagers.insert+    , module Network.Google.Resource.Compute.InstanceGroupManagers.Insert++    -- ** compute.instanceGroupManagers.list+    , module Network.Google.Resource.Compute.InstanceGroupManagers.List++    -- ** compute.instanceGroupManagers.listManagedInstances+    , module Network.Google.Resource.Compute.InstanceGroupManagers.ListManagedInstances++    -- ** compute.instanceGroupManagers.recreateInstances+    , module Network.Google.Resource.Compute.InstanceGroupManagers.RecreateInstances++    -- ** compute.instanceGroupManagers.resize+    , module Network.Google.Resource.Compute.InstanceGroupManagers.Resize++    -- ** compute.instanceGroupManagers.setInstanceTemplate+    , module Network.Google.Resource.Compute.InstanceGroupManagers.SetInstanceTemplate++    -- ** compute.instanceGroupManagers.setTargetPools+    , module Network.Google.Resource.Compute.InstanceGroupManagers.SetTargetPools++    -- ** compute.instanceGroups.addInstances+    , module Network.Google.Resource.Compute.InstanceGroups.AddInstances++    -- ** compute.instanceGroups.aggregatedList+    , module Network.Google.Resource.Compute.InstanceGroups.AggregatedList++    -- ** compute.instanceGroups.delete+    , module Network.Google.Resource.Compute.InstanceGroups.Delete++    -- ** compute.instanceGroups.get+    , module Network.Google.Resource.Compute.InstanceGroups.Get++    -- ** compute.instanceGroups.insert+    , module Network.Google.Resource.Compute.InstanceGroups.Insert++    -- ** compute.instanceGroups.list+    , module Network.Google.Resource.Compute.InstanceGroups.List++    -- ** compute.instanceGroups.listInstances+    , module Network.Google.Resource.Compute.InstanceGroups.ListInstances++    -- ** compute.instanceGroups.removeInstances+    , module Network.Google.Resource.Compute.InstanceGroups.RemoveInstances++    -- ** compute.instanceGroups.setNamedPorts+    , module Network.Google.Resource.Compute.InstanceGroups.SetNamedPorts++    -- ** compute.instanceTemplates.delete+    , module Network.Google.Resource.Compute.InstanceTemplates.Delete++    -- ** compute.instanceTemplates.get+    , module Network.Google.Resource.Compute.InstanceTemplates.Get++    -- ** compute.instanceTemplates.insert+    , module Network.Google.Resource.Compute.InstanceTemplates.Insert++    -- ** compute.instanceTemplates.list+    , module Network.Google.Resource.Compute.InstanceTemplates.List++    -- ** compute.instances.addAccessConfig+    , module Network.Google.Resource.Compute.Instances.AddAccessConfig++    -- ** compute.instances.aggregatedList+    , module Network.Google.Resource.Compute.Instances.AggregatedList++    -- ** compute.instances.attachDisk+    , module Network.Google.Resource.Compute.Instances.AttachDisk++    -- ** compute.instances.delete+    , module Network.Google.Resource.Compute.Instances.Delete++    -- ** compute.instances.deleteAccessConfig+    , module Network.Google.Resource.Compute.Instances.DeleteAccessConfig++    -- ** compute.instances.detachDisk+    , module Network.Google.Resource.Compute.Instances.DetachDisk++    -- ** compute.instances.get+    , module Network.Google.Resource.Compute.Instances.Get++    -- ** compute.instances.getSerialPortOutput+    , module Network.Google.Resource.Compute.Instances.GetSerialPortOutput++    -- ** compute.instances.insert+    , module Network.Google.Resource.Compute.Instances.Insert++    -- ** compute.instances.list+    , module Network.Google.Resource.Compute.Instances.List++    -- ** compute.instances.reset+    , module Network.Google.Resource.Compute.Instances.Reset++    -- ** compute.instances.setDiskAutoDelete+    , module Network.Google.Resource.Compute.Instances.SetDiskAutoDelete++    -- ** compute.instances.setMetadata+    , module Network.Google.Resource.Compute.Instances.SetMetadata++    -- ** compute.instances.setScheduling+    , module Network.Google.Resource.Compute.Instances.SetScheduling++    -- ** compute.instances.setTags+    , module Network.Google.Resource.Compute.Instances.SetTags++    -- ** compute.instances.start+    , module Network.Google.Resource.Compute.Instances.Start++    -- ** compute.instances.stop+    , module Network.Google.Resource.Compute.Instances.Stop++    -- ** compute.licenses.get+    , module Network.Google.Resource.Compute.Licenses.Get++    -- ** compute.machineTypes.aggregatedList+    , module Network.Google.Resource.Compute.MachineTypes.AggregatedList++    -- ** compute.machineTypes.get+    , module Network.Google.Resource.Compute.MachineTypes.Get++    -- ** compute.machineTypes.list+    , module Network.Google.Resource.Compute.MachineTypes.List++    -- ** compute.networks.delete+    , module Network.Google.Resource.Compute.Networks.Delete++    -- ** compute.networks.get+    , module Network.Google.Resource.Compute.Networks.Get++    -- ** compute.networks.insert+    , module Network.Google.Resource.Compute.Networks.Insert++    -- ** compute.networks.list+    , module Network.Google.Resource.Compute.Networks.List++    -- ** compute.projects.get+    , module Network.Google.Resource.Compute.Projects.Get++    -- ** compute.projects.moveDisk+    , module Network.Google.Resource.Compute.Projects.MoveDisk++    -- ** compute.projects.moveInstance+    , module Network.Google.Resource.Compute.Projects.MoveInstance++    -- ** compute.projects.setCommonInstanceMetadata+    , module Network.Google.Resource.Compute.Projects.SetCommonInstanceMetadata++    -- ** compute.projects.setUsageExportBucket+    , module Network.Google.Resource.Compute.Projects.SetUsageExportBucket++    -- ** compute.regionOperations.delete+    , module Network.Google.Resource.Compute.RegionOperations.Delete++    -- ** compute.regionOperations.get+    , module Network.Google.Resource.Compute.RegionOperations.Get++    -- ** compute.regionOperations.list+    , module Network.Google.Resource.Compute.RegionOperations.List++    -- ** compute.regions.get+    , module Network.Google.Resource.Compute.Regions.Get++    -- ** compute.regions.list+    , module Network.Google.Resource.Compute.Regions.List++    -- ** compute.routes.delete+    , module Network.Google.Resource.Compute.Routes.Delete++    -- ** compute.routes.get+    , module Network.Google.Resource.Compute.Routes.Get++    -- ** compute.routes.insert+    , module Network.Google.Resource.Compute.Routes.Insert++    -- ** compute.routes.list+    , module Network.Google.Resource.Compute.Routes.List++    -- ** compute.snapshots.delete+    , module Network.Google.Resource.Compute.Snapshots.Delete++    -- ** compute.snapshots.get+    , module Network.Google.Resource.Compute.Snapshots.Get++    -- ** compute.snapshots.list+    , module Network.Google.Resource.Compute.Snapshots.List++    -- ** compute.sslCertificates.delete+    , module Network.Google.Resource.Compute.SSLCertificates.Delete++    -- ** compute.sslCertificates.get+    , module Network.Google.Resource.Compute.SSLCertificates.Get++    -- ** compute.sslCertificates.insert+    , module Network.Google.Resource.Compute.SSLCertificates.Insert++    -- ** compute.sslCertificates.list+    , module Network.Google.Resource.Compute.SSLCertificates.List++    -- ** compute.targetHttpProxies.delete+    , module Network.Google.Resource.Compute.TargetHTTPProxies.Delete++    -- ** compute.targetHttpProxies.get+    , module Network.Google.Resource.Compute.TargetHTTPProxies.Get++    -- ** compute.targetHttpProxies.insert+    , module Network.Google.Resource.Compute.TargetHTTPProxies.Insert++    -- ** compute.targetHttpProxies.list+    , module Network.Google.Resource.Compute.TargetHTTPProxies.List++    -- ** compute.targetHttpProxies.setUrlMap+    , module Network.Google.Resource.Compute.TargetHTTPProxies.SetURLMap++    -- ** compute.targetHttpsProxies.delete+    , module Network.Google.Resource.Compute.TargetHTTPSProxies.Delete++    -- ** compute.targetHttpsProxies.get+    , module Network.Google.Resource.Compute.TargetHTTPSProxies.Get++    -- ** compute.targetHttpsProxies.insert+    , module Network.Google.Resource.Compute.TargetHTTPSProxies.Insert++    -- ** compute.targetHttpsProxies.list+    , module Network.Google.Resource.Compute.TargetHTTPSProxies.List++    -- ** compute.targetHttpsProxies.setSslCertificates+    , module Network.Google.Resource.Compute.TargetHTTPSProxies.SetSSLCertificates++    -- ** compute.targetHttpsProxies.setUrlMap+    , module Network.Google.Resource.Compute.TargetHTTPSProxies.SetURLMap++    -- ** compute.targetInstances.aggregatedList+    , module Network.Google.Resource.Compute.TargetInstances.AggregatedList++    -- ** compute.targetInstances.delete+    , module Network.Google.Resource.Compute.TargetInstances.Delete++    -- ** compute.targetInstances.get+    , module Network.Google.Resource.Compute.TargetInstances.Get++    -- ** compute.targetInstances.insert+    , module Network.Google.Resource.Compute.TargetInstances.Insert++    -- ** compute.targetInstances.list+    , module Network.Google.Resource.Compute.TargetInstances.List++    -- ** compute.targetPools.addHealthCheck+    , module Network.Google.Resource.Compute.TargetPools.AddHealthCheck++    -- ** compute.targetPools.addInstance+    , module Network.Google.Resource.Compute.TargetPools.AddInstance++    -- ** compute.targetPools.aggregatedList+    , module Network.Google.Resource.Compute.TargetPools.AggregatedList++    -- ** compute.targetPools.delete+    , module Network.Google.Resource.Compute.TargetPools.Delete++    -- ** compute.targetPools.get+    , module Network.Google.Resource.Compute.TargetPools.Get++    -- ** compute.targetPools.getHealth+    , module Network.Google.Resource.Compute.TargetPools.GetHealth++    -- ** compute.targetPools.insert+    , module Network.Google.Resource.Compute.TargetPools.Insert++    -- ** compute.targetPools.list+    , module Network.Google.Resource.Compute.TargetPools.List++    -- ** compute.targetPools.removeHealthCheck+    , module Network.Google.Resource.Compute.TargetPools.RemoveHealthCheck++    -- ** compute.targetPools.removeInstance+    , module Network.Google.Resource.Compute.TargetPools.RemoveInstance++    -- ** compute.targetPools.setBackup+    , module Network.Google.Resource.Compute.TargetPools.SetBackup++    -- ** compute.targetVpnGateways.aggregatedList+    , module Network.Google.Resource.Compute.TargetVPNGateways.AggregatedList++    -- ** compute.targetVpnGateways.delete+    , module Network.Google.Resource.Compute.TargetVPNGateways.Delete++    -- ** compute.targetVpnGateways.get+    , module Network.Google.Resource.Compute.TargetVPNGateways.Get++    -- ** compute.targetVpnGateways.insert+    , module Network.Google.Resource.Compute.TargetVPNGateways.Insert++    -- ** compute.targetVpnGateways.list+    , module Network.Google.Resource.Compute.TargetVPNGateways.List++    -- ** compute.urlMaps.delete+    , module Network.Google.Resource.Compute.URLMaps.Delete++    -- ** compute.urlMaps.get+    , module Network.Google.Resource.Compute.URLMaps.Get++    -- ** compute.urlMaps.insert+    , module Network.Google.Resource.Compute.URLMaps.Insert++    -- ** compute.urlMaps.list+    , module Network.Google.Resource.Compute.URLMaps.List++    -- ** compute.urlMaps.patch+    , module Network.Google.Resource.Compute.URLMaps.Patch++    -- ** compute.urlMaps.update+    , module Network.Google.Resource.Compute.URLMaps.Update++    -- ** compute.urlMaps.validate+    , module Network.Google.Resource.Compute.URLMaps.Validate++    -- ** compute.vpnTunnels.aggregatedList+    , module Network.Google.Resource.Compute.VPNTunnels.AggregatedList++    -- ** compute.vpnTunnels.delete+    , module Network.Google.Resource.Compute.VPNTunnels.Delete++    -- ** compute.vpnTunnels.get+    , module Network.Google.Resource.Compute.VPNTunnels.Get++    -- ** compute.vpnTunnels.insert+    , module Network.Google.Resource.Compute.VPNTunnels.Insert++    -- ** compute.vpnTunnels.list+    , module Network.Google.Resource.Compute.VPNTunnels.List++    -- ** compute.zoneOperations.delete+    , module Network.Google.Resource.Compute.ZoneOperations.Delete++    -- ** compute.zoneOperations.get+    , module Network.Google.Resource.Compute.ZoneOperations.Get++    -- ** compute.zoneOperations.list+    , module Network.Google.Resource.Compute.ZoneOperations.List++    -- ** compute.zones.get+    , module Network.Google.Resource.Compute.Zones.Get++    -- ** compute.zones.list+    , module Network.Google.Resource.Compute.Zones.List++    -- * Types++    -- ** TargetHTTPSProxyList+    , TargetHTTPSProxyList+    , targetHTTPSProxyList+    , thplNextPageToken+    , thplKind+    , thplItems+    , thplSelfLink+    , thplId++    -- ** AddressesScopedList+    , AddressesScopedList+    , addressesScopedList+    , aslAddresses+    , aslWarning++    -- ** OperationWarningsItemDataItem+    , OperationWarningsItemDataItem+    , operationWarningsItemDataItem+    , owidiValue+    , owidiKey++    -- ** SchedulingOnHostMaintenance+    , SchedulingOnHostMaintenance (..)++    -- ** AutoscalingPolicyCustomMetricUtilizationUtilizationTargetType+    , AutoscalingPolicyCustomMetricUtilizationUtilizationTargetType (..)++    -- ** InstanceGroupManagersAbandonInstancesRequest+    , InstanceGroupManagersAbandonInstancesRequest+    , instanceGroupManagersAbandonInstancesRequest+    , igmairInstances++    -- ** MachineTypeAggregatedListItems+    , MachineTypeAggregatedListItems+    , machineTypeAggregatedListItems+    , mtaliAddtional++    -- ** DiskTypeAggregatedListItems+    , DiskTypeAggregatedListItems+    , diskTypeAggregatedListItems+    , dtaliAddtional++    -- ** FirewallList+    , FirewallList+    , firewallList+    , flNextPageToken+    , flKind+    , flItems+    , flSelfLink+    , flId++    -- ** InstancesScopedListWarning+    , InstancesScopedListWarning+    , instancesScopedListWarning+    , islwData+    , islwCode+    , islwMessage++    -- ** InstanceGroupList+    , InstanceGroupList+    , instanceGroupList+    , iglNextPageToken+    , iglKind+    , iglItems+    , iglSelfLink+    , iglId++    -- ** AutoscalerAggregatedListItems+    , AutoscalerAggregatedListItems+    , autoscalerAggregatedListItems+    , aaliAddtional++    -- ** InstanceGroupManagersSetInstanceTemplateRequest+    , InstanceGroupManagersSetInstanceTemplateRequest+    , instanceGroupManagersSetInstanceTemplateRequest+    , igmsitrInstanceTemplate++    -- ** DeprecationStatus+    , DeprecationStatus+    , deprecationStatus+    , dsState+    , dsDeleted+    , dsReplacement+    , dsObsolete+    , dsDeprecated++    -- ** OperationWarningsItemCode+    , OperationWarningsItemCode (..)++    -- ** Snapshot+    , Snapshot+    , snapshot+    , sStorageBytesStatus+    , sStatus+    , sDiskSizeGb+    , sSourceDiskId+    , sKind+    , sStorageBytes+    , sSelfLink+    , sName+    , sCreationTimestamp+    , sId+    , sLicenses+    , sSourceDisk+    , sDescription++    -- ** AutoscalingPolicyCustomMetricUtilization+    , AutoscalingPolicyCustomMetricUtilization+    , autoscalingPolicyCustomMetricUtilization+    , apcmuUtilizationTarget+    , apcmuMetric+    , apcmuUtilizationTargetType++    -- ** ForwardingRuleList+    , ForwardingRuleList+    , forwardingRuleList+    , frlNextPageToken+    , frlKind+    , frlItems+    , frlSelfLink+    , frlId++    -- ** VPNTunnelsScopedList+    , VPNTunnelsScopedList+    , vpnTunnelsScopedList+    , vtslVPNTunnels+    , vtslWarning++    -- ** BackendServiceProtocol+    , BackendServiceProtocol (..)++    -- ** InstanceGroupsSetNamedPortsRequest+    , InstanceGroupsSetNamedPortsRequest+    , instanceGroupsSetNamedPortsRequest+    , igsnprFingerprint+    , igsnprNamedPorts++    -- ** OperationList+    , OperationList+    , operationList+    , olNextPageToken+    , olKind+    , olItems+    , olSelfLink+    , olId++    -- ** DiskList+    , DiskList+    , diskList+    , dlNextPageToken+    , dlKind+    , dlItems+    , dlSelfLink+    , dlId++    -- ** TargetPoolsAddInstanceRequest+    , TargetPoolsAddInstanceRequest+    , targetPoolsAddInstanceRequest+    , tpairInstances++    -- ** InstanceGroupsAddInstancesRequest+    , InstanceGroupsAddInstancesRequest+    , instanceGroupsAddInstancesRequest+    , igairInstances++    -- ** InstanceGroupManagerList+    , InstanceGroupManagerList+    , instanceGroupManagerList+    , igmlNextPageToken+    , igmlKind+    , igmlItems+    , igmlSelfLink+    , igmlId++    -- ** AttachedDiskType+    , AttachedDiskType (..)++    -- ** Image+    , Image+    , image+    , iStatus+    , iDiskSizeGb+    , iSourceType+    , iSourceDiskId+    , iKind+    , iArchiveSizeBytes+    , iRawDisk+    , iSelfLink+    , iName+    , iCreationTimestamp+    , iId+    , iLicenses+    , iSourceDisk+    , iDescription+    , iDeprecated++    -- ** URLMap+    , URLMap+    , urlMap+    , umTests+    , umKind+    , umFingerprint+    , umDefaultService+    , umSelfLink+    , umName+    , umCreationTimestamp+    , umPathMatchers+    , umId+    , umHostRules+    , umDescription++    -- ** InstanceGroupAggregatedListItems+    , InstanceGroupAggregatedListItems+    , instanceGroupAggregatedListItems+    , igaliAddtional++    -- ** TargetPoolList+    , TargetPoolList+    , targetPoolList+    , tplNextPageToken+    , tplKind+    , tplItems+    , tplSelfLink+    , tplId++    -- ** TargetInstanceAggregatedList+    , TargetInstanceAggregatedList+    , targetInstanceAggregatedList+    , tialNextPageToken+    , tialKind+    , tialItems+    , tialSelfLink+    , tialId++    -- ** DisksScopedList+    , DisksScopedList+    , disksScopedList+    , dslWarning+    , dslDisks++    -- ** InstanceGroupManagersScopedList+    , InstanceGroupManagersScopedList+    , instanceGroupManagersScopedList+    , igmslWarning+    , igmslInstanceGroupManagers++    -- ** DiskAggregatedList+    , DiskAggregatedList+    , diskAggregatedList+    , dalNextPageToken+    , dalKind+    , dalItems+    , dalSelfLink+    , dalId++    -- ** InstanceWithNamedPorts+    , InstanceWithNamedPorts+    , instanceWithNamedPorts+    , iwnpStatus+    , iwnpNamedPorts+    , iwnpInstance++    -- ** ForwardingRulesScopedList+    , ForwardingRulesScopedList+    , forwardingRulesScopedList+    , frslWarning+    , frslForwardingRules++    -- ** InstanceReference+    , InstanceReference+    , instanceReference+    , iInstance++    -- ** OperationAggregatedList+    , OperationAggregatedList+    , operationAggregatedList+    , oalNextPageToken+    , oalKind+    , oalItems+    , oalSelfLink+    , oalId++    -- ** OperationsScopedList+    , OperationsScopedList+    , operationsScopedList+    , oslWarning+    , oslOperations++    -- ** NamedPort+    , NamedPort+    , namedPort+    , npName+    , npPort++    -- ** TargetInstanceList+    , TargetInstanceList+    , targetInstanceList+    , tilNextPageToken+    , tilKind+    , tilItems+    , tilSelfLink+    , tilId++    -- ** InstanceGroupManagerAggregatedList+    , InstanceGroupManagerAggregatedList+    , instanceGroupManagerAggregatedList+    , igmalNextPageToken+    , igmalKind+    , igmalItems+    , igmalSelfLink+    , igmalId++    -- ** ImageSourceType+    , ImageSourceType (..)++    -- ** TargetPoolsScopedList+    , TargetPoolsScopedList+    , targetPoolsScopedList+    , tpslWarning+    , tpslTargetPools++    -- ** ForwardingRuleAggregatedList+    , ForwardingRuleAggregatedList+    , forwardingRuleAggregatedList+    , fralNextPageToken+    , fralKind+    , fralItems+    , fralSelfLink+    , fralId++    -- ** TargetReference+    , TargetReference+    , targetReference+    , trTarget++    -- ** TargetPoolAggregatedList+    , TargetPoolAggregatedList+    , targetPoolAggregatedList+    , tpalNextPageToken+    , tpalKind+    , tpalItems+    , tpalSelfLink+    , tpalId++    -- ** OperationsScopedListWarningDataItem+    , OperationsScopedListWarningDataItem+    , operationsScopedListWarningDataItem+    , oslwdiValue+    , oslwdiKey++    -- ** TargetPool+    , TargetPool+    , targetPool+    , tpSessionAffinity+    , tpBackupPool+    , tpKind+    , tpSelfLink+    , tpName+    , tpCreationTimestamp+    , tpInstances+    , tpId+    , tpFailoverRatio+    , tpRegion+    , tpDescription+    , tpHealthChecks++    -- ** ImageList+    , ImageList+    , imageList+    , ilNextPageToken+    , ilKind+    , ilItems+    , ilSelfLink+    , ilId++    -- ** VPNTunnelsScopedListWarning+    , VPNTunnelsScopedListWarning+    , vpnTunnelsScopedListWarning+    , vtslwData+    , vtslwCode+    , vtslwMessage++    -- ** ForwardingRulesScopedListWarningCode+    , ForwardingRulesScopedListWarningCode (..)++    -- ** OperationsScopedListWarningCode+    , OperationsScopedListWarningCode (..)++    -- ** ForwardingRule+    , ForwardingRule+    , forwardingRule+    , frIPAddress+    , frKind+    , frPortRange+    , frSelfLink+    , frName+    , frIPProtocol+    , frCreationTimestamp+    , frId+    , frRegion+    , frDescription+    , frTarget++    -- ** URLMapList+    , URLMapList+    , urlMapList+    , umlNextPageToken+    , umlKind+    , umlItems+    , umlSelfLink+    , umlId++    -- ** ForwardingRulesScopedListWarningDataItem+    , ForwardingRulesScopedListWarningDataItem+    , forwardingRulesScopedListWarningDataItem+    , frslwdiValue+    , frslwdiKey++    -- ** InstanceGroupManagersScopedListWarningDataItem+    , InstanceGroupManagersScopedListWarningDataItem+    , instanceGroupManagersScopedListWarningDataItem+    , igmslwdiValue+    , igmslwdiKey++    -- ** DisksScopedListWarningCode+    , DisksScopedListWarningCode (..)++    -- ** Project+    , Project+    , project+    , pKind+    , pUsageExportLocation+    , pSelfLink+    , pName+    , pCreationTimestamp+    , pEnabledFeatures+    , pQuotas+    , pId+    , pDescription+    , pCommonInstanceMetadata++    -- ** Operation+    , Operation+    , operation+    , oTargetId+    , oStatus+    , oInsertTime+    , oProgress+    , oStartTime+    , oKind+    , oError+    , oHTTPErrorMessage+    , oZone+    , oWarnings+    , oHTTPErrorStatusCode+    , oUser+    , oSelfLink+    , oName+    , oStatusMessage+    , oCreationTimestamp+    , oEndTime+    , oId+    , oOperationType+    , oRegion+    , oTargetLink+    , oClientOperationId++    -- ** DisksScopedListWarningDataItem+    , DisksScopedListWarningDataItem+    , disksScopedListWarningDataItem+    , dslwdiValue+    , dslwdiKey++    -- ** InstanceGroupManagersScopedListWarningCode+    , InstanceGroupManagersScopedListWarningCode (..)++    -- ** Disk+    , Disk+    , disk+    , dStatus+    , dSourceSnapshotId+    , dLastAttachTimestamp+    , dUsers+    , dSourceImage+    , dSizeGb+    , dKind+    , dLastDetachTimestamp+    , dZone+    , dSelfLink+    , dName+    , dSourceImageId+    , dCreationTimestamp+    , dId+    , dLicenses+    , dOptions+    , dType+    , dDescription+    , dSourceSnapshot++    -- ** DiskMoveRequest+    , DiskMoveRequest+    , diskMoveRequest+    , dmrTargetDisk+    , dmrDestinationZone++    -- ** AutoscalingPolicyLoadBalancingUtilization+    , AutoscalingPolicyLoadBalancingUtilization+    , autoscalingPolicyLoadBalancingUtilization+    , aplbuUtilizationTarget++    -- ** TargetPoolsScopedListWarningDataItem+    , TargetPoolsScopedListWarningDataItem+    , targetPoolsScopedListWarningDataItem+    , tpslwdiValue+    , tpslwdiKey++    -- ** InstanceGroupManager+    , InstanceGroupManager+    , instanceGroupManager+    , igmKind+    , igmFingerprint+    , igmBaseInstanceName+    , igmZone+    , igmInstanceTemplate+    , igmTargetSize+    , igmSelfLink+    , igmCurrentActions+    , igmName+    , igmCreationTimestamp+    , igmId+    , igmTargetPools+    , igmDescription+    , igmInstanceGroup++    -- ** TargetPoolsScopedListWarningCode+    , TargetPoolsScopedListWarningCode (..)++    -- ** TargetVPNGatewayStatus+    , TargetVPNGatewayStatus (..)++    -- ** InstanceGroupsRemoveInstancesRequest+    , InstanceGroupsRemoveInstancesRequest+    , instanceGroupsRemoveInstancesRequest+    , igrirInstances++    -- ** SnapshotStatus+    , SnapshotStatus (..)++    -- ** RouteWarningsItemDataItem+    , RouteWarningsItemDataItem+    , routeWarningsItemDataItem+    , rwidiValue+    , rwidiKey++    -- ** TargetInstancesScopedListWarningCode+    , TargetInstancesScopedListWarningCode (..)++    -- ** InstanceAggregatedListItems+    , InstanceAggregatedListItems+    , instanceAggregatedListItems+    , ialiAddtional++    -- ** AutoscalersScopedListWarning+    , AutoscalersScopedListWarning+    , autoscalersScopedListWarning+    , aslwData+    , aslwCode+    , aslwMessage++    -- ** ManagedInstanceLastAttemptErrors+    , ManagedInstanceLastAttemptErrors+    , managedInstanceLastAttemptErrors+    , milaeErrors++    -- ** RouteWarningsItemCode+    , RouteWarningsItemCode (..)++    -- ** TargetPoolsRemoveInstanceRequest+    , TargetPoolsRemoveInstanceRequest+    , targetPoolsRemoveInstanceRequest+    , tprirInstances++    -- ** TargetInstancesScopedListWarningDataItem+    , TargetInstancesScopedListWarningDataItem+    , targetInstancesScopedListWarningDataItem+    , tislwdiValue+    , tislwdiKey++    -- ** MachineTypesScopedListWarning+    , MachineTypesScopedListWarning+    , machineTypesScopedListWarning+    , mtslwData+    , mtslwCode+    , mtslwMessage++    -- ** TargetInstance+    , TargetInstance+    , targetInstance+    , tiKind+    , tiNATPolicy+    , tiZone+    , tiSelfLink+    , tiName+    , tiCreationTimestamp+    , tiId+    , tiDescription+    , tiInstance++    -- ** TargetPoolInstanceHealth+    , TargetPoolInstanceHealth+    , targetPoolInstanceHealth+    , tpihKind+    , tpihHealthStatus++    -- ** SnapshotStorageBytesStatus+    , SnapshotStorageBytesStatus (..)++    -- ** InstanceGroupManagersListManagedInstancesResponse+    , InstanceGroupManagersListManagedInstancesResponse+    , instanceGroupManagersListManagedInstancesResponse+    , igmlmirManagedInstances++    -- ** InstanceProperties+    , InstanceProperties+    , instanceProperties+    , ipServiceAccounts+    , ipNetworkInterfaces+    , ipMachineType+    , ipMetadata+    , ipScheduling+    , ipDisks+    , ipCanIPForward+    , ipDescription+    , ipTags++    -- ** DiskTypesScopedListWarning+    , DiskTypesScopedListWarning+    , diskTypesScopedListWarning+    , dtslwData+    , dtslwCode+    , dtslwMessage++    -- ** AddressesScopedListWarningCode+    , AddressesScopedListWarningCode (..)++    -- ** AttachedDiskInitializeParams+    , AttachedDiskInitializeParams+    , attachedDiskInitializeParams+    , adipSourceImage+    , adipDiskSizeGb+    , adipDiskName+    , adipDiskType++    -- ** AddressesScopedListWarningDataItem+    , AddressesScopedListWarningDataItem+    , addressesScopedListWarningDataItem+    , aslwdiValue+    , aslwdiKey++    -- ** ImageStatus+    , ImageStatus (..)++    -- ** NetworkInterface+    , NetworkInterface+    , networkInterface+    , niNetwork+    , niName+    , niNetworkIP+    , niAccessConfigs++    -- ** TargetPoolsRemoveHealthCheckRequest+    , TargetPoolsRemoveHealthCheckRequest+    , targetPoolsRemoveHealthCheckRequest+    , tprhcrHealthChecks++    -- ** HealthStatusHealthState+    , HealthStatusHealthState (..)++    -- ** InstanceTemplateList+    , InstanceTemplateList+    , instanceTemplateList+    , itlNextPageToken+    , itlKind+    , itlItems+    , itlSelfLink+    , itlId++    -- ** RouteList+    , RouteList+    , routeList+    , rlNextPageToken+    , rlKind+    , rlItems+    , rlSelfLink+    , rlId++    -- ** DeprecationStatusState+    , DeprecationStatusState (..)++    -- ** ManagedInstanceCurrentAction+    , ManagedInstanceCurrentAction (..)++    -- ** TargetVPNGatewayList+    , TargetVPNGatewayList+    , targetVPNGatewayList+    , tvglNextPageToken+    , tvglKind+    , tvglItems+    , tvglSelfLink+    , tvglId++    -- ** TargetInstanceNATPolicy+    , TargetInstanceNATPolicy (..)++    -- ** SSLCertificateList+    , SSLCertificateList+    , sslCertificateList+    , sclNextPageToken+    , sclKind+    , sclItems+    , sclSelfLink+    , sclId++    -- ** FirewallAllowedItem+    , FirewallAllowedItem+    , firewallAllowedItem+    , faiIPProtocol+    , faiPorts++    -- ** Network+    , Network+    , network+    , nKind+    , nIPv4Range+    , nSelfLink+    , nName+    , nCreationTimestamp+    , nId+    , nGatewayIPv4+    , nDescription++    -- ** AccessConfigType+    , AccessConfigType (..)++    -- ** AddressesScopedListWarning+    , AddressesScopedListWarning+    , addressesScopedListWarning+    , aData+    , aCode+    , aMessage++    -- ** ImageRawDisk+    , ImageRawDisk+    , imageRawDisk+    , irdContainerType+    , irdSource+    , irdSha1Checksum++    -- ** InstanceAggregatedList+    , InstanceAggregatedList+    , instanceAggregatedList+    , ialNextPageToken+    , ialKind+    , ialItems+    , ialSelfLink+    , ialId++    -- ** Address+    , Address+    , address+    , aStatus+    , aUsers+    , aKind+    , aAddress+    , aSelfLink+    , aName+    , aCreationTimestamp+    , aId+    , aRegion+    , aDescription++    -- ** Zone+    , Zone+    , zone+    , zStatus+    , zMaintenanceWindows+    , zKind+    , zSelfLink+    , zName+    , zCreationTimestamp+    , zId+    , zRegion+    , zDescription+    , zDeprecated++    -- ** InstanceGroupManagersRecreateInstancesRequest+    , InstanceGroupManagersRecreateInstancesRequest+    , instanceGroupManagersRecreateInstancesRequest+    , igmrirInstances++    -- ** InstancesScopedList+    , InstancesScopedList+    , instancesScopedList+    , islWarning+    , islInstances++    -- ** HealthCheckReference+    , HealthCheckReference+    , healthCheckReference+    , hcrHealthCheck++    -- ** TargetInstanceAggregatedListItems+    , TargetInstanceAggregatedListItems+    , targetInstanceAggregatedListItems+    , tialiAddtional++    -- ** InstanceGroupAggregatedList+    , InstanceGroupAggregatedList+    , instanceGroupAggregatedList+    , igalNextPageToken+    , igalKind+    , igalItems+    , igalSelfLink+    , igalId++    -- ** OperationStatus+    , OperationStatus (..)++    -- ** Route+    , Route+    , route+    , rPriority+    , rKind+    , rNextHopGateway+    , rNextHopNetwork+    , rNetwork+    , rWarnings+    , rNextHopIP+    , rDestRange+    , rSelfLink+    , rName+    , rCreationTimestamp+    , rId+    , rNextHopVPNTunnel+    , rDescription+    , rTags+    , rNextHopInstance++    -- ** TargetVPNGatewaysScopedListWarningDataItem+    , TargetVPNGatewaysScopedListWarningDataItem+    , targetVPNGatewaysScopedListWarningDataItem+    , tvgslwdiValue+    , tvgslwdiKey++    -- ** TargetVPNGatewaysScopedListWarningCode+    , TargetVPNGatewaysScopedListWarningCode (..)++    -- ** TargetHTTPSProxiesSetSSLCertificatesRequest+    , TargetHTTPSProxiesSetSSLCertificatesRequest+    , targetHTTPSProxiesSetSSLCertificatesRequest+    , thpsscrSSLCertificates++    -- ** InstanceTemplate+    , InstanceTemplate+    , instanceTemplate+    , itKind+    , itSelfLink+    , itName+    , itCreationTimestamp+    , itId+    , itDescription+    , itProperties++    -- ** ZoneMaintenanceWindowsItem+    , ZoneMaintenanceWindowsItem+    , zoneMaintenanceWindowsItem+    , zmwiBeginTime+    , zmwiName+    , zmwiEndTime+    , zmwiDescription++    -- ** TargetVPNGateway+    , TargetVPNGateway+    , targetVPNGateway+    , tvgStatus+    , tvgKind+    , tvgNetwork+    , tvgSelfLink+    , tvgName+    , tvgCreationTimestamp+    , tvgId+    , tvgRegion+    , tvgTunnels+    , tvgDescription+    , tvgForwardingRules++    -- ** DiskStatus+    , DiskStatus (..)++    -- ** ManagedInstanceInstanceStatus+    , ManagedInstanceInstanceStatus (..)++    -- ** URLMapsValidateResponse+    , URLMapsValidateResponse+    , urlMapsValidateResponse+    , umvrResult++    -- ** SSLCertificate+    , SSLCertificate+    , sslCertificate+    , scPrivateKey+    , scKind+    , scSelfLink+    , scName+    , scCreationTimestamp+    , scId+    , scCertificate+    , scDescription++    -- ** URLMapReference+    , URLMapReference+    , urlMapReference+    , umrURLMap++    -- ** AttachedDiskMode+    , AttachedDiskMode (..)++    -- ** TargetPoolsAddHealthCheckRequest+    , TargetPoolsAddHealthCheckRequest+    , targetPoolsAddHealthCheckRequest+    , tpahcrHealthChecks++    -- ** DiskAggregatedListItems+    , DiskAggregatedListItems+    , diskAggregatedListItems+    , daliAddtional++    -- ** UsageExportLocation+    , UsageExportLocation+    , usageExportLocation+    , uelReportNamePrefix+    , uelBucketName++    -- ** ZoneList+    , ZoneList+    , zoneList+    , zlNextPageToken+    , zlKind+    , zlItems+    , zlSelfLink+    , zlId++    -- ** RegionStatus+    , RegionStatus (..)++    -- ** ManagedInstance+    , ManagedInstance+    , managedInstance+    , miLastAttempt+    , miCurrentAction+    , miId+    , miInstanceStatus+    , miInstance++    -- ** InstanceGroupManagerAggregatedListItems+    , InstanceGroupManagerAggregatedListItems+    , instanceGroupManagerAggregatedListItems+    , igmaliAddtional++    -- ** InstanceGroupManagersDeleteInstancesRequest+    , InstanceGroupManagersDeleteInstancesRequest+    , instanceGroupManagersDeleteInstancesRequest+    , igmdirInstances++    -- ** Backend+    , Backend+    , backend+    , bGroup+    , bBalancingMode+    , bMaxUtilization+    , bMaxRate+    , bMaxRatePerInstance+    , bDescription+    , bCapacityScaler++    -- ** TargetVPNGatewaysScopedListWarning+    , TargetVPNGatewaysScopedListWarning+    , targetVPNGatewaysScopedListWarning+    , tvgslwData+    , tvgslwCode+    , tvgslwMessage++    -- ** AddressList+    , AddressList+    , addressList+    , alNextPageToken+    , alKind+    , alItems+    , alSelfLink+    , alId++    -- ** ForwardingRuleAggregatedListItems+    , ForwardingRuleAggregatedListItems+    , forwardingRuleAggregatedListItems+    , fraliAddtional++    -- ** OperationAggregatedListItems+    , OperationAggregatedListItems+    , operationAggregatedListItems+    , oaliAddtional++    -- ** InstanceGroupManagerActionsSummary+    , InstanceGroupManagerActionsSummary+    , instanceGroupManagerActionsSummary+    , igmasDeleting+    , igmasRestarting+    , igmasNone+    , igmasCreating+    , igmasRefreshing+    , igmasRecreating+    , igmasAbandoning++    -- ** VPNTunnelStatus+    , VPNTunnelStatus (..)++    -- ** ServiceAccount+    , ServiceAccount+    , serviceAccount+    , saEmail+    , saScopes++    -- ** NetworkList+    , NetworkList+    , networkList+    , nlNextPageToken+    , nlKind+    , nlItems+    , nlSelfLink+    , nlId++    -- ** InstanceGroupsListInstancesRequest+    , InstanceGroupsListInstancesRequest+    , instanceGroupsListInstancesRequest+    , iglirInstanceState++    -- ** BackendBalancingMode+    , BackendBalancingMode (..)++    -- ** TargetPoolAggregatedListItems+    , TargetPoolAggregatedListItems+    , targetPoolAggregatedListItems+    , tpaliAddtional++    -- ** TargetInstancesScopedList+    , TargetInstancesScopedList+    , targetInstancesScopedList+    , tislWarning+    , tislTargetInstances++    -- ** AddressAggregatedListItems+    , AddressAggregatedListItems+    , addressAggregatedListItems+    , aAddtional++    -- ** AutoscalerList+    , AutoscalerList+    , autoscalerList+    , autNextPageToken+    , autKind+    , autItems+    , autSelfLink+    , autId++    -- ** VPNTunnelAggregatedList+    , VPNTunnelAggregatedList+    , vpnTunnelAggregatedList+    , vtalNextPageToken+    , vtalKind+    , vtalItems+    , vtalSelfLink+    , vtalId++    -- ** AttachedDisk+    , AttachedDisk+    , attachedDisk+    , adKind+    , adMode+    , adBoot+    , adAutoDelete+    , adInitializeParams+    , adDeviceName+    , adInterface+    , adSource+    , adLicenses+    , adType+    , adIndex++    -- ** DiskTypeList+    , DiskTypeList+    , diskTypeList+    , dtlNextPageToken+    , dtlKind+    , dtlItems+    , dtlSelfLink+    , dtlId++    -- ** MachineTypeList+    , MachineTypeList+    , machineTypeList+    , mtlNextPageToken+    , mtlKind+    , mtlItems+    , mtlSelfLink+    , mtlId++    -- ** TargetHTTPProxyList+    , TargetHTTPProxyList+    , targetHTTPProxyList+    , thttpplNextPageToken+    , thttpplKind+    , thttpplItems+    , thttpplSelfLink+    , thttpplId++    -- ** ForwardingRuleIPProtocol+    , ForwardingRuleIPProtocol (..)++    -- ** DiskTypesScopedList+    , DiskTypesScopedList+    , diskTypesScopedList+    , dtslDiskTypes+    , dtslWarning++    -- ** AddressStatus+    , AddressStatus (..)++    -- ** DiskTypeAggregatedList+    , DiskTypeAggregatedList+    , diskTypeAggregatedList+    , dtalNextPageToken+    , dtalKind+    , dtalItems+    , dtalSelfLink+    , dtalId++    -- ** HTTPHealthCheck+    , HTTPHealthCheck+    , hTTPHealthCheck+    , httphcHealthyThreshold+    , httphcKind+    , httphcRequestPath+    , httphcSelfLink+    , httphcCheckIntervalSec+    , httphcName+    , httphcCreationTimestamp+    , httphcId+    , httphcHost+    , httphcTimeoutSec+    , httphcDescription+    , httphcUnhealthyThreshold+    , httphcPort++    -- ** BackendServiceGroupHealth+    , BackendServiceGroupHealth+    , backendServiceGroupHealth+    , bsghKind+    , bsghHealthStatus++    -- ** InstanceGroupsListInstancesRequestInstanceState+    , InstanceGroupsListInstancesRequestInstanceState (..)++    -- ** AutoscalersScopedList+    , AutoscalersScopedList+    , autoscalersScopedList+    , aAutoscalers+    , aWarning++    -- ** AutoscalerAggregatedList+    , AutoscalerAggregatedList+    , autoscalerAggregatedList+    , aalNextPageToken+    , aalKind+    , aalItems+    , aalSelfLink+    , aalId++    -- ** AutoscalingPolicy+    , AutoscalingPolicy+    , autoscalingPolicy+    , apCustomMetricUtilizations+    , apMaxNumReplicas+    , apCPUUtilization+    , apLoadBalancingUtilization+    , apMinNumReplicas+    , apCoolDownPeriodSec++    -- ** RegionList+    , RegionList+    , regionList+    , regNextPageToken+    , regKind+    , regItems+    , regSelfLink+    , regId++    -- ** AttachedDiskInterface+    , AttachedDiskInterface (..)++    -- ** ZoneStatus+    , ZoneStatus (..)++    -- ** VPNTunnelList+    , VPNTunnelList+    , vpnTunnelList+    , vtlNextPageToken+    , vtlKind+    , vtlItems+    , vtlSelfLink+    , vtlId++    -- ** MachineTypeScratchDisksItem+    , MachineTypeScratchDisksItem+    , machineTypeScratchDisksItem+    , mtsdiDiskGb++    -- ** MachineTypesScopedList+    , MachineTypesScopedList+    , machineTypesScopedList+    , mtslMachineTypes+    , mtslWarning++    -- ** MachineTypeAggregatedList+    , MachineTypeAggregatedList+    , machineTypeAggregatedList+    , mtalNextPageToken+    , mtalKind+    , mtalItems+    , mtalSelfLink+    , mtalId++    -- ** QuotaMetric+    , QuotaMetric (..)++    -- ** DiskType+    , DiskType+    , diskType+    , dtKind+    , dtZone+    , dtSelfLink+    , dtName+    , dtCreationTimestamp+    , dtId+    , dtValidDiskSize+    , dtDescription+    , dtDefaultDiskSizeGb+    , dtDeprecated++    -- ** URLMapValidationResult+    , URLMapValidationResult+    , urlMapValidationResult+    , umvrLoadErrors+    , umvrLoadSucceeded+    , umvrTestPassed+    , umvrTestFailures++    -- ** Metadata+    , Metadata+    , metadata+    , mKind+    , mFingerprint+    , mItems++    -- ** RouteWarningsItem+    , RouteWarningsItem+    , routeWarningsItem+    , rwiData+    , rwiCode+    , rwiMessage++    -- ** MachineTypesScopedListWarningDataItem+    , MachineTypesScopedListWarningDataItem+    , machineTypesScopedListWarningDataItem+    , mtslwdiValue+    , mtslwdiKey++    -- ** InstanceStatus+    , InstanceStatus (..)++    -- ** MachineTypesScopedListWarningCode+    , MachineTypesScopedListWarningCode (..)++    -- ** DiskTypesScopedListWarningDataItem+    , DiskTypesScopedListWarningDataItem+    , diskTypesScopedListWarningDataItem+    , dtslwdiValue+    , dtslwdiKey++    -- ** TargetHTTPProxy+    , TargetHTTPProxy+    , targetHTTPProxy+    , thttppURLMap+    , thttppKind+    , thttppSelfLink+    , thttppName+    , thttppCreationTimestamp+    , thttppId+    , thttppDescription++    -- ** MachineType+    , MachineType+    , machineType+    , mtKind+    , mtImageSpaceGb+    , mtZone+    , mtSelfLink+    , mtName+    , mtCreationTimestamp+    , mtScratchDisks+    , mtId+    , mtGuestCPUs+    , mtMaximumPersistentDisksSizeGb+    , mtMaximumPersistentDisks+    , mtMemoryMb+    , mtDescription+    , mtDeprecated++    -- ** DiskTypesScopedListWarningCode+    , DiskTypesScopedListWarningCode (..)++    -- ** OperationError+    , OperationError+    , operationError+    , oeErrors++    -- ** TargetInstancesScopedListWarning+    , TargetInstancesScopedListWarning+    , targetInstancesScopedListWarning+    , tislwData+    , tislwCode+    , tislwMessage++    -- ** AutoscalersScopedListWarningDataItem+    , AutoscalersScopedListWarningDataItem+    , autoscalersScopedListWarningDataItem+    , aValue+    , aKey++    -- ** AutoscalersScopedListWarningCode+    , AutoscalersScopedListWarningCode (..)++    -- ** InstanceGroupsListInstances+    , InstanceGroupsListInstances+    , instanceGroupsListInstances+    , igliNextPageToken+    , igliKind+    , igliItems+    , igliSelfLink+    , igliId++    -- ** Autoscaler+    , Autoscaler+    , autoscaler+    , aaKind+    , aaZone+    , aaSelfLink+    , aaName+    , aaCreationTimestamp+    , aaAutoscalingPolicy+    , aaId+    , aaDescription+    , aaTarget++    -- ** DisksScopedListWarning+    , DisksScopedListWarning+    , disksScopedListWarning+    , dslwData+    , dslwCode+    , dslwMessage++    -- ** TargetVPNGatewayAggregatedListItems+    , TargetVPNGatewayAggregatedListItems+    , targetVPNGatewayAggregatedListItems+    , tvgaliAddtional++    -- ** TargetPoolsScopedListWarning+    , TargetPoolsScopedListWarning+    , targetPoolsScopedListWarning+    , tpslwData+    , tpslwCode+    , tpslwMessage++    -- ** HealthStatus+    , HealthStatus+    , healthStatus+    , hsIPAddress+    , hsHealthState+    , hsPort+    , hsInstance++    -- ** Region+    , Region+    , region+    , rrStatus+    , rrZones+    , rrKind+    , rrSelfLink+    , rrName+    , rrCreationTimestamp+    , rrQuotas+    , rrId+    , rrDescription+    , rrDeprecated++    -- ** VPNTunnel+    , VPNTunnel+    , vpnTunnel+    , vtDetailedStatus+    , vtStatus+    , vtKind+    , vtPeerIP+    , vtTargetVPNGateway+    , vtSelfLink+    , vtSharedSecret+    , vtName+    , vtCreationTimestamp+    , vtSharedSecretHash+    , vtId+    , vtIkeVersion+    , vtRegion+    , vtDescription++    -- ** VPNTunnelsScopedListWarningCode+    , VPNTunnelsScopedListWarningCode (..)++    -- ** OperationsScopedListWarning+    , OperationsScopedListWarning+    , operationsScopedListWarning+    , oslwData+    , oslwCode+    , oslwMessage++    -- ** Scheduling+    , Scheduling+    , scheduling+    , sAutomaticRestart+    , sOnHostMaintenance+    , sPreemptible++    -- ** VPNTunnelsScopedListWarningDataItem+    , VPNTunnelsScopedListWarningDataItem+    , vpnTunnelsScopedListWarningDataItem+    , vtslwdiValue+    , vtslwdiKey++    -- ** ForwardingRulesScopedListWarning+    , ForwardingRulesScopedListWarning+    , forwardingRulesScopedListWarning+    , frslwData+    , frslwCode+    , frslwMessage++    -- ** HTTPHealthCheckList+    , HTTPHealthCheckList+    , hTTPHealthCheckList+    , httphclNextPageToken+    , httphclKind+    , httphclItems+    , httphclSelfLink+    , httphclId++    -- ** InstanceGroupManagersScopedListWarning+    , InstanceGroupManagersScopedListWarning+    , instanceGroupManagersScopedListWarning+    , igmslwData+    , igmslwCode+    , igmslwMessage++    -- ** URLMapsValidateRequest+    , URLMapsValidateRequest+    , urlMapsValidateRequest+    , umvrResource++    -- ** InstanceGroupManagersSetTargetPoolsRequest+    , InstanceGroupManagersSetTargetPoolsRequest+    , instanceGroupManagersSetTargetPoolsRequest+    , igmstprFingerprint+    , igmstprTargetPools++    -- ** HTTPSHealthCheckList+    , HTTPSHealthCheckList+    , httpsHealthCheckList+    , hhclNextPageToken+    , hhclKind+    , hhclItems+    , hhclSelfLink+    , hhclId++    -- ** OperationErrorErrorsItem+    , OperationErrorErrorsItem+    , operationErrorErrorsItem+    , oeeiLocation+    , oeeiCode+    , oeeiMessage++    -- ** License+    , License+    , license+    , lChargesUseFee+    , lKind+    , lSelfLink+    , lName++    -- ** PathRule+    , PathRule+    , pathRule+    , prService+    , prPaths++    -- ** InstanceList+    , InstanceList+    , instanceList+    , insNextPageToken+    , insKind+    , insItems+    , insSelfLink+    , insId++    -- ** ManagedInstanceLastAttempt+    , ManagedInstanceLastAttempt+    , managedInstanceLastAttempt+    , milaErrors++    -- ** BackendServiceList+    , BackendServiceList+    , backendServiceList+    , bslNextPageToken+    , bslKind+    , bslItems+    , bslSelfLink+    , bslId++    -- ** InstanceGroupsScopedListWarning+    , InstanceGroupsScopedListWarning+    , instanceGroupsScopedListWarning+    , igslwData+    , igslwCode+    , igslwMessage++    -- ** AutoscalingPolicyCPUUtilization+    , AutoscalingPolicyCPUUtilization+    , autoscalingPolicyCPUUtilization+    , apcuUtilizationTarget++    -- ** InstanceGroupsScopedListWarningCode+    , InstanceGroupsScopedListWarningCode (..)++    -- ** InstanceGroupsScopedListWarningDataItem+    , InstanceGroupsScopedListWarningDataItem+    , instanceGroupsScopedListWarningDataItem+    , igslwdiValue+    , igslwdiKey++    -- ** ResourceGroupReference+    , ResourceGroupReference+    , resourceGroupReference+    , rgrGroup++    -- ** Firewall+    , Firewall+    , firewall+    , fSourceTags+    , fKind+    , fTargetTags+    , fNetwork+    , fSourceRanges+    , fSelfLink+    , fName+    , fCreationTimestamp+    , fId+    , fAllowed+    , fDescription++    -- ** HostRule+    , HostRule+    , hostRule+    , hrHosts+    , hrDescription+    , hrPathMatcher++    -- ** Quota+    , Quota+    , quota+    , qMetric+    , qLimit+    , qUsage++    -- ** InstanceGroup+    , InstanceGroup+    , instanceGroup+    , iiSize+    , iiKind+    , iiFingerprint+    , iiNetwork+    , iiZone+    , iiSelfLink+    , iiName+    , iiCreationTimestamp+    , iiId+    , iiDescription+    , iiNamedPorts++    -- ** InstanceWithNamedPortsStatus+    , InstanceWithNamedPortsStatus (..)++    -- ** SnapshotList+    , SnapshotList+    , snapshotList+    , slNextPageToken+    , slKind+    , slItems+    , slSelfLink+    , slId++    -- ** TestFailure+    , TestFailure+    , testFailure+    , tfPath+    , tfExpectedService+    , tfHost+    , tfActualService++    -- ** SerialPortOutput+    , SerialPortOutput+    , serialPortOutput+    , spoContents+    , spoKind+    , spoSelfLink++    -- ** TargetVPNGatewayAggregatedList+    , TargetVPNGatewayAggregatedList+    , targetVPNGatewayAggregatedList+    , tvgalNextPageToken+    , tvgalKind+    , tvgalItems+    , tvgalSelfLink+    , tvgalId++    -- ** MetadataItemsItem+    , MetadataItemsItem+    , metadataItemsItem+    , miiValue+    , miiKey++    -- ** TargetHTTPSProxy+    , TargetHTTPSProxy+    , targetHTTPSProxy+    , thpURLMap+    , thpSSLCertificates+    , thpKind+    , thpSelfLink+    , thpName+    , thpCreationTimestamp+    , thpId+    , thpDescription++    -- ** TargetVPNGatewaysScopedList+    , TargetVPNGatewaysScopedList+    , targetVPNGatewaysScopedList+    , tvgslTargetVPNGateways+    , tvgslWarning++    -- ** AccessConfig+    , AccessConfig+    , accessConfig+    , acKind+    , acName+    , acNATIP+    , acType++    -- ** ManagedInstanceLastAttemptErrorsErrorsItem+    , ManagedInstanceLastAttemptErrorsErrorsItem+    , managedInstanceLastAttemptErrorsErrorsItem+    , milaeeiLocation+    , milaeeiCode+    , milaeeiMessage++    -- ** InstancesScopedListWarningCode+    , InstancesScopedListWarningCode (..)++    -- ** InstancesScopedListWarningDataItem+    , InstancesScopedListWarningDataItem+    , instancesScopedListWarningDataItem+    , islwdiValue+    , islwdiKey++    -- ** BackendService+    , BackendService+    , backendService+    , bsBackends+    , bsKind+    , bsFingerprint+    , bsProtocol+    , bsSelfLink+    , bsName+    , bsCreationTimestamp+    , bsId+    , bsTimeoutSec+    , bsDescription+    , bsPortName+    , bsHealthChecks+    , bsPort++    -- ** InstanceMoveRequest+    , InstanceMoveRequest+    , instanceMoveRequest+    , imrTargetInstance+    , imrDestinationZone++    -- ** TargetPoolSessionAffinity+    , TargetPoolSessionAffinity (..)++    -- ** InstanceGroupsScopedList+    , InstanceGroupsScopedList+    , instanceGroupsScopedList+    , igslWarning+    , igslInstanceGroups++    -- ** HTTPSHealthCheck+    , HTTPSHealthCheck+    , httpsHealthCheck+    , hhcHealthyThreshold+    , hhcKind+    , hhcRequestPath+    , hhcSelfLink+    , hhcCheckIntervalSec+    , hhcName+    , hhcCreationTimestamp+    , hhcId+    , hhcHost+    , hhcTimeoutSec+    , hhcDescription+    , hhcUnhealthyThreshold+    , hhcPort++    -- ** ImageRawDiskContainerType+    , ImageRawDiskContainerType (..)++    -- ** VPNTunnelAggregatedListItems+    , VPNTunnelAggregatedListItems+    , vpnTunnelAggregatedListItems+    , vtaliAddtional++    -- ** Tags+    , Tags+    , tags+    , tFingerprint+    , tItems++    -- ** AddressAggregatedList+    , AddressAggregatedList+    , addressAggregatedList+    , addNextPageToken+    , addKind+    , addItems+    , addSelfLink+    , addId++    -- ** OperationWarningsItem+    , OperationWarningsItem+    , operationWarningsItem+    , owiData+    , owiCode+    , owiMessage++    -- ** URLMapTest+    , URLMapTest+    , urlMapTest+    , umtPath+    , umtService+    , umtHost+    , umtDescription++    -- ** Instance+    , Instance+    , instance'+    , insnStatus+    , insnServiceAccounts+    , insnNetworkInterfaces+    , insnKind+    , insnZone+    , insnCPUPlatform+    , insnSelfLink+    , insnName+    , insnStatusMessage+    , insnCreationTimestamp+    , insnMachineType+    , insnMetadata+    , insnId+    , insnScheduling+    , insnDisks+    , insnCanIPForward+    , insnDescription+    , insnTags++    -- ** PathMatcher+    , PathMatcher+    , pathMatcher+    , pmDefaultService+    , pmName+    , pmPathRules+    , pmDescription+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude+import           Network.Google.Resource.Compute.Addresses.AggregatedList+import           Network.Google.Resource.Compute.Addresses.Delete+import           Network.Google.Resource.Compute.Addresses.Get+import           Network.Google.Resource.Compute.Addresses.Insert+import           Network.Google.Resource.Compute.Addresses.List+import           Network.Google.Resource.Compute.Autoscalers.AggregatedList+import           Network.Google.Resource.Compute.Autoscalers.Delete+import           Network.Google.Resource.Compute.Autoscalers.Get+import           Network.Google.Resource.Compute.Autoscalers.Insert+import           Network.Google.Resource.Compute.Autoscalers.List+import           Network.Google.Resource.Compute.Autoscalers.Patch+import           Network.Google.Resource.Compute.Autoscalers.Update+import           Network.Google.Resource.Compute.BackendServices.Delete+import           Network.Google.Resource.Compute.BackendServices.Get+import           Network.Google.Resource.Compute.BackendServices.GetHealth+import           Network.Google.Resource.Compute.BackendServices.Insert+import           Network.Google.Resource.Compute.BackendServices.List+import           Network.Google.Resource.Compute.BackendServices.Patch+import           Network.Google.Resource.Compute.BackendServices.Update+import           Network.Google.Resource.Compute.Disks.AggregatedList+import           Network.Google.Resource.Compute.Disks.CreateSnapshot+import           Network.Google.Resource.Compute.Disks.Delete+import           Network.Google.Resource.Compute.Disks.Get+import           Network.Google.Resource.Compute.Disks.Insert+import           Network.Google.Resource.Compute.Disks.List+import           Network.Google.Resource.Compute.DiskTypes.AggregatedList+import           Network.Google.Resource.Compute.DiskTypes.Get+import           Network.Google.Resource.Compute.DiskTypes.List+import           Network.Google.Resource.Compute.Firewalls.Delete+import           Network.Google.Resource.Compute.Firewalls.Get+import           Network.Google.Resource.Compute.Firewalls.Insert+import           Network.Google.Resource.Compute.Firewalls.List+import           Network.Google.Resource.Compute.Firewalls.Patch+import           Network.Google.Resource.Compute.Firewalls.Update+import           Network.Google.Resource.Compute.ForwardingRules.AggregatedList+import           Network.Google.Resource.Compute.ForwardingRules.Delete+import           Network.Google.Resource.Compute.ForwardingRules.Get+import           Network.Google.Resource.Compute.ForwardingRules.Insert+import           Network.Google.Resource.Compute.ForwardingRules.List+import           Network.Google.Resource.Compute.ForwardingRules.SetTarget+import           Network.Google.Resource.Compute.GlobalAddresses.Delete+import           Network.Google.Resource.Compute.GlobalAddresses.Get+import           Network.Google.Resource.Compute.GlobalAddresses.Insert+import           Network.Google.Resource.Compute.GlobalAddresses.List+import           Network.Google.Resource.Compute.GlobalForwardingRules.Delete+import           Network.Google.Resource.Compute.GlobalForwardingRules.Get+import           Network.Google.Resource.Compute.GlobalForwardingRules.Insert+import           Network.Google.Resource.Compute.GlobalForwardingRules.List+import           Network.Google.Resource.Compute.GlobalForwardingRules.SetTarget+import           Network.Google.Resource.Compute.GlobalOperations.AggregatedList+import           Network.Google.Resource.Compute.GlobalOperations.Delete+import           Network.Google.Resource.Compute.GlobalOperations.Get+import           Network.Google.Resource.Compute.GlobalOperations.List+import           Network.Google.Resource.Compute.HTTPHealthChecks.Delete+import           Network.Google.Resource.Compute.HTTPHealthChecks.Get+import           Network.Google.Resource.Compute.HTTPHealthChecks.Insert+import           Network.Google.Resource.Compute.HTTPHealthChecks.List+import           Network.Google.Resource.Compute.HTTPHealthChecks.Patch+import           Network.Google.Resource.Compute.HTTPHealthChecks.Update+import           Network.Google.Resource.Compute.HTTPSHealthChecks.Delete+import           Network.Google.Resource.Compute.HTTPSHealthChecks.Get+import           Network.Google.Resource.Compute.HTTPSHealthChecks.Insert+import           Network.Google.Resource.Compute.HTTPSHealthChecks.List+import           Network.Google.Resource.Compute.HTTPSHealthChecks.Patch+import           Network.Google.Resource.Compute.HTTPSHealthChecks.Update+import           Network.Google.Resource.Compute.Images.Delete+import           Network.Google.Resource.Compute.Images.Deprecate+import           Network.Google.Resource.Compute.Images.Get+import           Network.Google.Resource.Compute.Images.Insert+import           Network.Google.Resource.Compute.Images.List+import           Network.Google.Resource.Compute.InstanceGroupManagers.AbandonInstances+import           Network.Google.Resource.Compute.InstanceGroupManagers.AggregatedList+import           Network.Google.Resource.Compute.InstanceGroupManagers.Delete+import           Network.Google.Resource.Compute.InstanceGroupManagers.DeleteInstances+import           Network.Google.Resource.Compute.InstanceGroupManagers.Get+import           Network.Google.Resource.Compute.InstanceGroupManagers.Insert+import           Network.Google.Resource.Compute.InstanceGroupManagers.List+import           Network.Google.Resource.Compute.InstanceGroupManagers.ListManagedInstances+import           Network.Google.Resource.Compute.InstanceGroupManagers.RecreateInstances+import           Network.Google.Resource.Compute.InstanceGroupManagers.Resize+import           Network.Google.Resource.Compute.InstanceGroupManagers.SetInstanceTemplate+import           Network.Google.Resource.Compute.InstanceGroupManagers.SetTargetPools+import           Network.Google.Resource.Compute.InstanceGroups.AddInstances+import           Network.Google.Resource.Compute.InstanceGroups.AggregatedList+import           Network.Google.Resource.Compute.InstanceGroups.Delete+import           Network.Google.Resource.Compute.InstanceGroups.Get+import           Network.Google.Resource.Compute.InstanceGroups.Insert+import           Network.Google.Resource.Compute.InstanceGroups.List+import           Network.Google.Resource.Compute.InstanceGroups.ListInstances+import           Network.Google.Resource.Compute.InstanceGroups.RemoveInstances+import           Network.Google.Resource.Compute.InstanceGroups.SetNamedPorts+import           Network.Google.Resource.Compute.Instances.AddAccessConfig+import           Network.Google.Resource.Compute.Instances.AggregatedList+import           Network.Google.Resource.Compute.Instances.AttachDisk+import           Network.Google.Resource.Compute.Instances.Delete+import           Network.Google.Resource.Compute.Instances.DeleteAccessConfig+import           Network.Google.Resource.Compute.Instances.DetachDisk+import           Network.Google.Resource.Compute.Instances.Get+import           Network.Google.Resource.Compute.Instances.GetSerialPortOutput+import           Network.Google.Resource.Compute.Instances.Insert+import           Network.Google.Resource.Compute.Instances.List+import           Network.Google.Resource.Compute.Instances.Reset+import           Network.Google.Resource.Compute.Instances.SetDiskAutoDelete+import           Network.Google.Resource.Compute.Instances.SetMetadata+import           Network.Google.Resource.Compute.Instances.SetScheduling+import           Network.Google.Resource.Compute.Instances.SetTags+import           Network.Google.Resource.Compute.Instances.Start+import           Network.Google.Resource.Compute.Instances.Stop+import           Network.Google.Resource.Compute.InstanceTemplates.Delete+import           Network.Google.Resource.Compute.InstanceTemplates.Get+import           Network.Google.Resource.Compute.InstanceTemplates.Insert+import           Network.Google.Resource.Compute.InstanceTemplates.List+import           Network.Google.Resource.Compute.Licenses.Get+import           Network.Google.Resource.Compute.MachineTypes.AggregatedList+import           Network.Google.Resource.Compute.MachineTypes.Get+import           Network.Google.Resource.Compute.MachineTypes.List+import           Network.Google.Resource.Compute.Networks.Delete+import           Network.Google.Resource.Compute.Networks.Get+import           Network.Google.Resource.Compute.Networks.Insert+import           Network.Google.Resource.Compute.Networks.List+import           Network.Google.Resource.Compute.Projects.Get+import           Network.Google.Resource.Compute.Projects.MoveDisk+import           Network.Google.Resource.Compute.Projects.MoveInstance+import           Network.Google.Resource.Compute.Projects.SetCommonInstanceMetadata+import           Network.Google.Resource.Compute.Projects.SetUsageExportBucket+import           Network.Google.Resource.Compute.RegionOperations.Delete+import           Network.Google.Resource.Compute.RegionOperations.Get+import           Network.Google.Resource.Compute.RegionOperations.List+import           Network.Google.Resource.Compute.Regions.Get+import           Network.Google.Resource.Compute.Regions.List+import           Network.Google.Resource.Compute.Routes.Delete+import           Network.Google.Resource.Compute.Routes.Get+import           Network.Google.Resource.Compute.Routes.Insert+import           Network.Google.Resource.Compute.Routes.List+import           Network.Google.Resource.Compute.Snapshots.Delete+import           Network.Google.Resource.Compute.Snapshots.Get+import           Network.Google.Resource.Compute.Snapshots.List+import           Network.Google.Resource.Compute.SSLCertificates.Delete+import           Network.Google.Resource.Compute.SSLCertificates.Get+import           Network.Google.Resource.Compute.SSLCertificates.Insert+import           Network.Google.Resource.Compute.SSLCertificates.List+import           Network.Google.Resource.Compute.TargetHTTPProxies.Delete+import           Network.Google.Resource.Compute.TargetHTTPProxies.Get+import           Network.Google.Resource.Compute.TargetHTTPProxies.Insert+import           Network.Google.Resource.Compute.TargetHTTPProxies.List+import           Network.Google.Resource.Compute.TargetHTTPProxies.SetURLMap+import           Network.Google.Resource.Compute.TargetHTTPSProxies.Delete+import           Network.Google.Resource.Compute.TargetHTTPSProxies.Get+import           Network.Google.Resource.Compute.TargetHTTPSProxies.Insert+import           Network.Google.Resource.Compute.TargetHTTPSProxies.List+import           Network.Google.Resource.Compute.TargetHTTPSProxies.SetSSLCertificates+import           Network.Google.Resource.Compute.TargetHTTPSProxies.SetURLMap+import           Network.Google.Resource.Compute.TargetInstances.AggregatedList+import           Network.Google.Resource.Compute.TargetInstances.Delete+import           Network.Google.Resource.Compute.TargetInstances.Get+import           Network.Google.Resource.Compute.TargetInstances.Insert+import           Network.Google.Resource.Compute.TargetInstances.List+import           Network.Google.Resource.Compute.TargetPools.AddHealthCheck+import           Network.Google.Resource.Compute.TargetPools.AddInstance+import           Network.Google.Resource.Compute.TargetPools.AggregatedList+import           Network.Google.Resource.Compute.TargetPools.Delete+import           Network.Google.Resource.Compute.TargetPools.Get+import           Network.Google.Resource.Compute.TargetPools.GetHealth+import           Network.Google.Resource.Compute.TargetPools.Insert+import           Network.Google.Resource.Compute.TargetPools.List+import           Network.Google.Resource.Compute.TargetPools.RemoveHealthCheck+import           Network.Google.Resource.Compute.TargetPools.RemoveInstance+import           Network.Google.Resource.Compute.TargetPools.SetBackup+import           Network.Google.Resource.Compute.TargetVPNGateways.AggregatedList+import           Network.Google.Resource.Compute.TargetVPNGateways.Delete+import           Network.Google.Resource.Compute.TargetVPNGateways.Get+import           Network.Google.Resource.Compute.TargetVPNGateways.Insert+import           Network.Google.Resource.Compute.TargetVPNGateways.List+import           Network.Google.Resource.Compute.URLMaps.Delete+import           Network.Google.Resource.Compute.URLMaps.Get+import           Network.Google.Resource.Compute.URLMaps.Insert+import           Network.Google.Resource.Compute.URLMaps.List+import           Network.Google.Resource.Compute.URLMaps.Patch+import           Network.Google.Resource.Compute.URLMaps.Update+import           Network.Google.Resource.Compute.URLMaps.Validate+import           Network.Google.Resource.Compute.VPNTunnels.AggregatedList+import           Network.Google.Resource.Compute.VPNTunnels.Delete+import           Network.Google.Resource.Compute.VPNTunnels.Get+import           Network.Google.Resource.Compute.VPNTunnels.Insert+import           Network.Google.Resource.Compute.VPNTunnels.List+import           Network.Google.Resource.Compute.ZoneOperations.Delete+import           Network.Google.Resource.Compute.ZoneOperations.Get+import           Network.Google.Resource.Compute.ZoneOperations.List+import           Network.Google.Resource.Compute.Zones.Get+import           Network.Google.Resource.Compute.Zones.List++{- $resources+TODO+-}++-- | Represents the entirety of the methods and resources available for the Compute Engine API service.+type ComputeAPI =+     ImagesInsertResource :<|> ImagesListResource :<|>+       ImagesGetResource+       :<|> ImagesDeprecateResource+       :<|> ImagesDeleteResource+       :<|> URLMapsInsertResource+       :<|> URLMapsListResource+       :<|> URLMapsPatchResource+       :<|> URLMapsGetResource+       :<|> URLMapsValidateResource+       :<|> URLMapsDeleteResource+       :<|> URLMapsUpdateResource+       :<|> RoutesInsertResource+       :<|> RoutesListResource+       :<|> RoutesGetResource+       :<|> RoutesDeleteResource+       :<|> InstanceTemplatesInsertResource+       :<|> InstanceTemplatesListResource+       :<|> InstanceTemplatesGetResource+       :<|> InstanceTemplatesDeleteResource+       :<|> TargetVPNGatewaysAggregatedListResource+       :<|> TargetVPNGatewaysInsertResource+       :<|> TargetVPNGatewaysListResource+       :<|> TargetVPNGatewaysGetResource+       :<|> TargetVPNGatewaysDeleteResource+       :<|> SSLCertificatesInsertResource+       :<|> SSLCertificatesListResource+       :<|> SSLCertificatesGetResource+       :<|> SSLCertificatesDeleteResource+       :<|> ZonesListResource+       :<|> ZonesGetResource+       :<|> GlobalForwardingRulesInsertResource+       :<|> GlobalForwardingRulesListResource+       :<|> GlobalForwardingRulesGetResource+       :<|> GlobalForwardingRulesSetTargetResource+       :<|> GlobalForwardingRulesDeleteResource+       :<|> NetworksInsertResource+       :<|> NetworksListResource+       :<|> NetworksGetResource+       :<|> NetworksDeleteResource+       :<|> AddressesAggregatedListResource+       :<|> AddressesInsertResource+       :<|> AddressesListResource+       :<|> AddressesGetResource+       :<|> AddressesDeleteResource+       :<|> GlobalAddressesInsertResource+       :<|> GlobalAddressesListResource+       :<|> GlobalAddressesGetResource+       :<|> GlobalAddressesDeleteResource+       :<|> RegionsListResource+       :<|> RegionsGetResource+       :<|> TargetHTTPProxiesInsertResource+       :<|> TargetHTTPProxiesListResource+       :<|> TargetHTTPProxiesSetURLMapResource+       :<|> TargetHTTPProxiesGetResource+       :<|> TargetHTTPProxiesDeleteResource+       :<|> VPNTunnelsAggregatedListResource+       :<|> VPNTunnelsInsertResource+       :<|> VPNTunnelsListResource+       :<|> VPNTunnelsGetResource+       :<|> VPNTunnelsDeleteResource+       :<|> AutoscalersAggregatedListResource+       :<|> AutoscalersInsertResource+       :<|> AutoscalersListResource+       :<|> AutoscalersPatchResource+       :<|> AutoscalersGetResource+       :<|> AutoscalersDeleteResource+       :<|> AutoscalersUpdateResource+       :<|> DiskTypesAggregatedListResource+       :<|> DiskTypesListResource+       :<|> DiskTypesGetResource+       :<|> RegionOperationsListResource+       :<|> RegionOperationsGetResource+       :<|> RegionOperationsDeleteResource+       :<|> MachineTypesAggregatedListResource+       :<|> MachineTypesListResource+       :<|> MachineTypesGetResource+       :<|> HTTPHealthChecksInsertResource+       :<|> HTTPHealthChecksListResource+       :<|> HTTPHealthChecksPatchResource+       :<|> HTTPHealthChecksGetResource+       :<|> HTTPHealthChecksDeleteResource+       :<|> HTTPHealthChecksUpdateResource+       :<|> SnapshotsListResource+       :<|> SnapshotsGetResource+       :<|> SnapshotsDeleteResource+       :<|> HTTPSHealthChecksInsertResource+       :<|> HTTPSHealthChecksListResource+       :<|> HTTPSHealthChecksPatchResource+       :<|> HTTPSHealthChecksGetResource+       :<|> HTTPSHealthChecksDeleteResource+       :<|> HTTPSHealthChecksUpdateResource+       :<|> InstancesAddAccessConfigResource+       :<|> InstancesAggregatedListResource+       :<|> InstancesInsertResource+       :<|> InstancesDetachDiskResource+       :<|> InstancesListResource+       :<|> InstancesStartResource+       :<|> InstancesGetResource+       :<|> InstancesDeleteAccessConfigResource+       :<|> InstancesSetMetadataResource+       :<|> InstancesSetSchedulingResource+       :<|> InstancesResetResource+       :<|> InstancesStopResource+       :<|> InstancesGetSerialPortOutputResource+       :<|> InstancesSetTagsResource+       :<|> InstancesAttachDiskResource+       :<|> InstancesDeleteResource+       :<|> InstancesSetDiskAutoDeleteResource+       :<|> BackendServicesInsertResource+       :<|> BackendServicesListResource+       :<|> BackendServicesGetHealthResource+       :<|> BackendServicesPatchResource+       :<|> BackendServicesGetResource+       :<|> BackendServicesDeleteResource+       :<|> BackendServicesUpdateResource+       :<|> InstanceGroupsRemoveInstancesResource+       :<|> InstanceGroupsAggregatedListResource+       :<|> InstanceGroupsInsertResource+       :<|> InstanceGroupsListResource+       :<|> InstanceGroupsAddInstancesResource+       :<|> InstanceGroupsGetResource+       :<|> InstanceGroupsListInstancesResource+       :<|> InstanceGroupsSetNamedPortsResource+       :<|> InstanceGroupsDeleteResource+       :<|> FirewallsInsertResource+       :<|> FirewallsListResource+       :<|> FirewallsPatchResource+       :<|> FirewallsGetResource+       :<|> FirewallsDeleteResource+       :<|> FirewallsUpdateResource+       :<|> GlobalOperationsAggregatedListResource+       :<|> GlobalOperationsListResource+       :<|> GlobalOperationsGetResource+       :<|> GlobalOperationsDeleteResource+       :<|> LicensesGetResource+       :<|> ZoneOperationsListResource+       :<|> ZoneOperationsGetResource+       :<|> ZoneOperationsDeleteResource+       :<|> TargetHTTPSProxiesInsertResource+       :<|> TargetHTTPSProxiesListResource+       :<|> TargetHTTPSProxiesSetURLMapResource+       :<|> TargetHTTPSProxiesSetSSLCertificatesResource+       :<|> TargetHTTPSProxiesGetResource+       :<|> TargetHTTPSProxiesDeleteResource+       :<|> TargetInstancesAggregatedListResource+       :<|> TargetInstancesInsertResource+       :<|> TargetInstancesListResource+       :<|> TargetInstancesGetResource+       :<|> TargetInstancesDeleteResource+       :<|> DisksAggregatedListResource+       :<|> DisksInsertResource+       :<|> DisksListResource+       :<|> DisksGetResource+       :<|> DisksCreateSnapshotResource+       :<|> DisksDeleteResource+       :<|> ForwardingRulesAggregatedListResource+       :<|> ForwardingRulesInsertResource+       :<|> ForwardingRulesListResource+       :<|> ForwardingRulesGetResource+       :<|> ForwardingRulesSetTargetResource+       :<|> ForwardingRulesDeleteResource+       :<|> InstanceGroupManagersSetTargetPoolsResource+       :<|> InstanceGroupManagersAggregatedListResource+       :<|> InstanceGroupManagersInsertResource+       :<|> InstanceGroupManagersResizeResource+       :<|> InstanceGroupManagersListResource+       :<|>+       InstanceGroupManagersListManagedInstancesResource+       :<|> InstanceGroupManagersAbandonInstancesResource+       :<|> InstanceGroupManagersSetInstanceTemplateResource+       :<|> InstanceGroupManagersGetResource+       :<|> InstanceGroupManagersDeleteInstancesResource+       :<|> InstanceGroupManagersDeleteResource+       :<|> InstanceGroupManagersRecreateInstancesResource+       :<|> ProjectsSetUsageExportBucketResource+       :<|> ProjectsMoveInstanceResource+       :<|> ProjectsGetResource+       :<|> ProjectsMoveDiskResource+       :<|> ProjectsSetCommonInstanceMetadataResource+       :<|> TargetPoolsAggregatedListResource+       :<|> TargetPoolsRemoveInstanceResource+       :<|> TargetPoolsInsertResource+       :<|> TargetPoolsListResource+       :<|> TargetPoolsGetHealthResource+       :<|> TargetPoolsGetResource+       :<|> TargetPoolsRemoveHealthCheckResource+       :<|> TargetPoolsSetBackupResource+       :<|> TargetPoolsAddInstanceResource+       :<|> TargetPoolsAddHealthCheckResource+       :<|> TargetPoolsDeleteResource
+ gen/Network/Google/Compute/Types.hs view
@@ -0,0 +1,1874 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Network.Google.Compute.Types+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Network.Google.Compute.Types+    (+    -- * Service Configuration+      computeService++    -- * OAuth Scopes+    , computeScope+    , cloudPlatformScope+    , devstorageReadOnlyScope+    , devstorageReadWriteScope+    , computeReadonlyScope+    , devstorageFullControlScope++    -- * TargetHTTPSProxyList+    , TargetHTTPSProxyList+    , targetHTTPSProxyList+    , thplNextPageToken+    , thplKind+    , thplItems+    , thplSelfLink+    , thplId++    -- * AddressesScopedList+    , AddressesScopedList+    , addressesScopedList+    , aslAddresses+    , aslWarning++    -- * OperationWarningsItemDataItem+    , OperationWarningsItemDataItem+    , operationWarningsItemDataItem+    , owidiValue+    , owidiKey++    -- * SchedulingOnHostMaintenance+    , SchedulingOnHostMaintenance (..)++    -- * AutoscalingPolicyCustomMetricUtilizationUtilizationTargetType+    , AutoscalingPolicyCustomMetricUtilizationUtilizationTargetType (..)++    -- * InstanceGroupManagersAbandonInstancesRequest+    , InstanceGroupManagersAbandonInstancesRequest+    , instanceGroupManagersAbandonInstancesRequest+    , igmairInstances++    -- * MachineTypeAggregatedListItems+    , MachineTypeAggregatedListItems+    , machineTypeAggregatedListItems+    , mtaliAddtional++    -- * DiskTypeAggregatedListItems+    , DiskTypeAggregatedListItems+    , diskTypeAggregatedListItems+    , dtaliAddtional++    -- * FirewallList+    , FirewallList+    , firewallList+    , flNextPageToken+    , flKind+    , flItems+    , flSelfLink+    , flId++    -- * InstancesScopedListWarning+    , InstancesScopedListWarning+    , instancesScopedListWarning+    , islwData+    , islwCode+    , islwMessage++    -- * InstanceGroupList+    , InstanceGroupList+    , instanceGroupList+    , iglNextPageToken+    , iglKind+    , iglItems+    , iglSelfLink+    , iglId++    -- * AutoscalerAggregatedListItems+    , AutoscalerAggregatedListItems+    , autoscalerAggregatedListItems+    , aaliAddtional++    -- * InstanceGroupManagersSetInstanceTemplateRequest+    , InstanceGroupManagersSetInstanceTemplateRequest+    , instanceGroupManagersSetInstanceTemplateRequest+    , igmsitrInstanceTemplate++    -- * DeprecationStatus+    , DeprecationStatus+    , deprecationStatus+    , dsState+    , dsDeleted+    , dsReplacement+    , dsObsolete+    , dsDeprecated++    -- * OperationWarningsItemCode+    , OperationWarningsItemCode (..)++    -- * Snapshot+    , Snapshot+    , snapshot+    , sStorageBytesStatus+    , sStatus+    , sDiskSizeGb+    , sSourceDiskId+    , sKind+    , sStorageBytes+    , sSelfLink+    , sName+    , sCreationTimestamp+    , sId+    , sLicenses+    , sSourceDisk+    , sDescription++    -- * AutoscalingPolicyCustomMetricUtilization+    , AutoscalingPolicyCustomMetricUtilization+    , autoscalingPolicyCustomMetricUtilization+    , apcmuUtilizationTarget+    , apcmuMetric+    , apcmuUtilizationTargetType++    -- * ForwardingRuleList+    , ForwardingRuleList+    , forwardingRuleList+    , frlNextPageToken+    , frlKind+    , frlItems+    , frlSelfLink+    , frlId++    -- * VPNTunnelsScopedList+    , VPNTunnelsScopedList+    , vpnTunnelsScopedList+    , vtslVPNTunnels+    , vtslWarning++    -- * BackendServiceProtocol+    , BackendServiceProtocol (..)++    -- * InstanceGroupsSetNamedPortsRequest+    , InstanceGroupsSetNamedPortsRequest+    , instanceGroupsSetNamedPortsRequest+    , igsnprFingerprint+    , igsnprNamedPorts++    -- * OperationList+    , OperationList+    , operationList+    , olNextPageToken+    , olKind+    , olItems+    , olSelfLink+    , olId++    -- * DiskList+    , DiskList+    , diskList+    , dlNextPageToken+    , dlKind+    , dlItems+    , dlSelfLink+    , dlId++    -- * TargetPoolsAddInstanceRequest+    , TargetPoolsAddInstanceRequest+    , targetPoolsAddInstanceRequest+    , tpairInstances++    -- * InstanceGroupsAddInstancesRequest+    , InstanceGroupsAddInstancesRequest+    , instanceGroupsAddInstancesRequest+    , igairInstances++    -- * InstanceGroupManagerList+    , InstanceGroupManagerList+    , instanceGroupManagerList+    , igmlNextPageToken+    , igmlKind+    , igmlItems+    , igmlSelfLink+    , igmlId++    -- * AttachedDiskType+    , AttachedDiskType (..)++    -- * Image+    , Image+    , image+    , iStatus+    , iDiskSizeGb+    , iSourceType+    , iSourceDiskId+    , iKind+    , iArchiveSizeBytes+    , iRawDisk+    , iSelfLink+    , iName+    , iCreationTimestamp+    , iId+    , iLicenses+    , iSourceDisk+    , iDescription+    , iDeprecated++    -- * URLMap+    , URLMap+    , urlMap+    , umTests+    , umKind+    , umFingerprint+    , umDefaultService+    , umSelfLink+    , umName+    , umCreationTimestamp+    , umPathMatchers+    , umId+    , umHostRules+    , umDescription++    -- * InstanceGroupAggregatedListItems+    , InstanceGroupAggregatedListItems+    , instanceGroupAggregatedListItems+    , igaliAddtional++    -- * TargetPoolList+    , TargetPoolList+    , targetPoolList+    , tplNextPageToken+    , tplKind+    , tplItems+    , tplSelfLink+    , tplId++    -- * TargetInstanceAggregatedList+    , TargetInstanceAggregatedList+    , targetInstanceAggregatedList+    , tialNextPageToken+    , tialKind+    , tialItems+    , tialSelfLink+    , tialId++    -- * DisksScopedList+    , DisksScopedList+    , disksScopedList+    , dslWarning+    , dslDisks++    -- * InstanceGroupManagersScopedList+    , InstanceGroupManagersScopedList+    , instanceGroupManagersScopedList+    , igmslWarning+    , igmslInstanceGroupManagers++    -- * DiskAggregatedList+    , DiskAggregatedList+    , diskAggregatedList+    , dalNextPageToken+    , dalKind+    , dalItems+    , dalSelfLink+    , dalId++    -- * InstanceWithNamedPorts+    , InstanceWithNamedPorts+    , instanceWithNamedPorts+    , iwnpStatus+    , iwnpNamedPorts+    , iwnpInstance++    -- * ForwardingRulesScopedList+    , ForwardingRulesScopedList+    , forwardingRulesScopedList+    , frslWarning+    , frslForwardingRules++    -- * InstanceReference+    , InstanceReference+    , instanceReference+    , iInstance++    -- * OperationAggregatedList+    , OperationAggregatedList+    , operationAggregatedList+    , oalNextPageToken+    , oalKind+    , oalItems+    , oalSelfLink+    , oalId++    -- * OperationsScopedList+    , OperationsScopedList+    , operationsScopedList+    , oslWarning+    , oslOperations++    -- * NamedPort+    , NamedPort+    , namedPort+    , npName+    , npPort++    -- * TargetInstanceList+    , TargetInstanceList+    , targetInstanceList+    , tilNextPageToken+    , tilKind+    , tilItems+    , tilSelfLink+    , tilId++    -- * InstanceGroupManagerAggregatedList+    , InstanceGroupManagerAggregatedList+    , instanceGroupManagerAggregatedList+    , igmalNextPageToken+    , igmalKind+    , igmalItems+    , igmalSelfLink+    , igmalId++    -- * ImageSourceType+    , ImageSourceType (..)++    -- * TargetPoolsScopedList+    , TargetPoolsScopedList+    , targetPoolsScopedList+    , tpslWarning+    , tpslTargetPools++    -- * ForwardingRuleAggregatedList+    , ForwardingRuleAggregatedList+    , forwardingRuleAggregatedList+    , fralNextPageToken+    , fralKind+    , fralItems+    , fralSelfLink+    , fralId++    -- * TargetReference+    , TargetReference+    , targetReference+    , trTarget++    -- * TargetPoolAggregatedList+    , TargetPoolAggregatedList+    , targetPoolAggregatedList+    , tpalNextPageToken+    , tpalKind+    , tpalItems+    , tpalSelfLink+    , tpalId++    -- * OperationsScopedListWarningDataItem+    , OperationsScopedListWarningDataItem+    , operationsScopedListWarningDataItem+    , oslwdiValue+    , oslwdiKey++    -- * TargetPool+    , TargetPool+    , targetPool+    , tpSessionAffinity+    , tpBackupPool+    , tpKind+    , tpSelfLink+    , tpName+    , tpCreationTimestamp+    , tpInstances+    , tpId+    , tpFailoverRatio+    , tpRegion+    , tpDescription+    , tpHealthChecks++    -- * ImageList+    , ImageList+    , imageList+    , ilNextPageToken+    , ilKind+    , ilItems+    , ilSelfLink+    , ilId++    -- * VPNTunnelsScopedListWarning+    , VPNTunnelsScopedListWarning+    , vpnTunnelsScopedListWarning+    , vtslwData+    , vtslwCode+    , vtslwMessage++    -- * ForwardingRulesScopedListWarningCode+    , ForwardingRulesScopedListWarningCode (..)++    -- * OperationsScopedListWarningCode+    , OperationsScopedListWarningCode (..)++    -- * ForwardingRule+    , ForwardingRule+    , forwardingRule+    , frIPAddress+    , frKind+    , frPortRange+    , frSelfLink+    , frName+    , frIPProtocol+    , frCreationTimestamp+    , frId+    , frRegion+    , frDescription+    , frTarget++    -- * URLMapList+    , URLMapList+    , urlMapList+    , umlNextPageToken+    , umlKind+    , umlItems+    , umlSelfLink+    , umlId++    -- * ForwardingRulesScopedListWarningDataItem+    , ForwardingRulesScopedListWarningDataItem+    , forwardingRulesScopedListWarningDataItem+    , frslwdiValue+    , frslwdiKey++    -- * InstanceGroupManagersScopedListWarningDataItem+    , InstanceGroupManagersScopedListWarningDataItem+    , instanceGroupManagersScopedListWarningDataItem+    , igmslwdiValue+    , igmslwdiKey++    -- * DisksScopedListWarningCode+    , DisksScopedListWarningCode (..)++    -- * Project+    , Project+    , project+    , pKind+    , pUsageExportLocation+    , pSelfLink+    , pName+    , pCreationTimestamp+    , pEnabledFeatures+    , pQuotas+    , pId+    , pDescription+    , pCommonInstanceMetadata++    -- * Operation+    , Operation+    , operation+    , oTargetId+    , oStatus+    , oInsertTime+    , oProgress+    , oStartTime+    , oKind+    , oError+    , oHTTPErrorMessage+    , oZone+    , oWarnings+    , oHTTPErrorStatusCode+    , oUser+    , oSelfLink+    , oName+    , oStatusMessage+    , oCreationTimestamp+    , oEndTime+    , oId+    , oOperationType+    , oRegion+    , oTargetLink+    , oClientOperationId++    -- * DisksScopedListWarningDataItem+    , DisksScopedListWarningDataItem+    , disksScopedListWarningDataItem+    , dslwdiValue+    , dslwdiKey++    -- * InstanceGroupManagersScopedListWarningCode+    , InstanceGroupManagersScopedListWarningCode (..)++    -- * Disk+    , Disk+    , disk+    , dStatus+    , dSourceSnapshotId+    , dLastAttachTimestamp+    , dUsers+    , dSourceImage+    , dSizeGb+    , dKind+    , dLastDetachTimestamp+    , dZone+    , dSelfLink+    , dName+    , dSourceImageId+    , dCreationTimestamp+    , dId+    , dLicenses+    , dOptions+    , dType+    , dDescription+    , dSourceSnapshot++    -- * DiskMoveRequest+    , DiskMoveRequest+    , diskMoveRequest+    , dmrTargetDisk+    , dmrDestinationZone++    -- * AutoscalingPolicyLoadBalancingUtilization+    , AutoscalingPolicyLoadBalancingUtilization+    , autoscalingPolicyLoadBalancingUtilization+    , aplbuUtilizationTarget++    -- * TargetPoolsScopedListWarningDataItem+    , TargetPoolsScopedListWarningDataItem+    , targetPoolsScopedListWarningDataItem+    , tpslwdiValue+    , tpslwdiKey++    -- * InstanceGroupManager+    , InstanceGroupManager+    , instanceGroupManager+    , igmKind+    , igmFingerprint+    , igmBaseInstanceName+    , igmZone+    , igmInstanceTemplate+    , igmTargetSize+    , igmSelfLink+    , igmCurrentActions+    , igmName+    , igmCreationTimestamp+    , igmId+    , igmTargetPools+    , igmDescription+    , igmInstanceGroup++    -- * TargetPoolsScopedListWarningCode+    , TargetPoolsScopedListWarningCode (..)++    -- * TargetVPNGatewayStatus+    , TargetVPNGatewayStatus (..)++    -- * InstanceGroupsRemoveInstancesRequest+    , InstanceGroupsRemoveInstancesRequest+    , instanceGroupsRemoveInstancesRequest+    , igrirInstances++    -- * SnapshotStatus+    , SnapshotStatus (..)++    -- * RouteWarningsItemDataItem+    , RouteWarningsItemDataItem+    , routeWarningsItemDataItem+    , rwidiValue+    , rwidiKey++    -- * TargetInstancesScopedListWarningCode+    , TargetInstancesScopedListWarningCode (..)++    -- * InstanceAggregatedListItems+    , InstanceAggregatedListItems+    , instanceAggregatedListItems+    , ialiAddtional++    -- * AutoscalersScopedListWarning+    , AutoscalersScopedListWarning+    , autoscalersScopedListWarning+    , aslwData+    , aslwCode+    , aslwMessage++    -- * ManagedInstanceLastAttemptErrors+    , ManagedInstanceLastAttemptErrors+    , managedInstanceLastAttemptErrors+    , milaeErrors++    -- * RouteWarningsItemCode+    , RouteWarningsItemCode (..)++    -- * TargetPoolsRemoveInstanceRequest+    , TargetPoolsRemoveInstanceRequest+    , targetPoolsRemoveInstanceRequest+    , tprirInstances++    -- * TargetInstancesScopedListWarningDataItem+    , TargetInstancesScopedListWarningDataItem+    , targetInstancesScopedListWarningDataItem+    , tislwdiValue+    , tislwdiKey++    -- * MachineTypesScopedListWarning+    , MachineTypesScopedListWarning+    , machineTypesScopedListWarning+    , mtslwData+    , mtslwCode+    , mtslwMessage++    -- * TargetInstance+    , TargetInstance+    , targetInstance+    , tiKind+    , tiNATPolicy+    , tiZone+    , tiSelfLink+    , tiName+    , tiCreationTimestamp+    , tiId+    , tiDescription+    , tiInstance++    -- * TargetPoolInstanceHealth+    , TargetPoolInstanceHealth+    , targetPoolInstanceHealth+    , tpihKind+    , tpihHealthStatus++    -- * SnapshotStorageBytesStatus+    , SnapshotStorageBytesStatus (..)++    -- * InstanceGroupManagersListManagedInstancesResponse+    , InstanceGroupManagersListManagedInstancesResponse+    , instanceGroupManagersListManagedInstancesResponse+    , igmlmirManagedInstances++    -- * InstanceProperties+    , InstanceProperties+    , instanceProperties+    , ipServiceAccounts+    , ipNetworkInterfaces+    , ipMachineType+    , ipMetadata+    , ipScheduling+    , ipDisks+    , ipCanIPForward+    , ipDescription+    , ipTags++    -- * DiskTypesScopedListWarning+    , DiskTypesScopedListWarning+    , diskTypesScopedListWarning+    , dtslwData+    , dtslwCode+    , dtslwMessage++    -- * AddressesScopedListWarningCode+    , AddressesScopedListWarningCode (..)++    -- * AttachedDiskInitializeParams+    , AttachedDiskInitializeParams+    , attachedDiskInitializeParams+    , adipSourceImage+    , adipDiskSizeGb+    , adipDiskName+    , adipDiskType++    -- * AddressesScopedListWarningDataItem+    , AddressesScopedListWarningDataItem+    , addressesScopedListWarningDataItem+    , aslwdiValue+    , aslwdiKey++    -- * ImageStatus+    , ImageStatus (..)++    -- * NetworkInterface+    , NetworkInterface+    , networkInterface+    , niNetwork+    , niName+    , niNetworkIP+    , niAccessConfigs++    -- * TargetPoolsRemoveHealthCheckRequest+    , TargetPoolsRemoveHealthCheckRequest+    , targetPoolsRemoveHealthCheckRequest+    , tprhcrHealthChecks++    -- * HealthStatusHealthState+    , HealthStatusHealthState (..)++    -- * InstanceTemplateList+    , InstanceTemplateList+    , instanceTemplateList+    , itlNextPageToken+    , itlKind+    , itlItems+    , itlSelfLink+    , itlId++    -- * RouteList+    , RouteList+    , routeList+    , rlNextPageToken+    , rlKind+    , rlItems+    , rlSelfLink+    , rlId++    -- * DeprecationStatusState+    , DeprecationStatusState (..)++    -- * ManagedInstanceCurrentAction+    , ManagedInstanceCurrentAction (..)++    -- * TargetVPNGatewayList+    , TargetVPNGatewayList+    , targetVPNGatewayList+    , tvglNextPageToken+    , tvglKind+    , tvglItems+    , tvglSelfLink+    , tvglId++    -- * TargetInstanceNATPolicy+    , TargetInstanceNATPolicy (..)++    -- * SSLCertificateList+    , SSLCertificateList+    , sslCertificateList+    , sclNextPageToken+    , sclKind+    , sclItems+    , sclSelfLink+    , sclId++    -- * FirewallAllowedItem+    , FirewallAllowedItem+    , firewallAllowedItem+    , faiIPProtocol+    , faiPorts++    -- * Network+    , Network+    , network+    , nKind+    , nIPv4Range+    , nSelfLink+    , nName+    , nCreationTimestamp+    , nId+    , nGatewayIPv4+    , nDescription++    -- * AccessConfigType+    , AccessConfigType (..)++    -- * AddressesScopedListWarning+    , AddressesScopedListWarning+    , addressesScopedListWarning+    , aData+    , aCode+    , aMessage++    -- * ImageRawDisk+    , ImageRawDisk+    , imageRawDisk+    , irdContainerType+    , irdSource+    , irdSha1Checksum++    -- * InstanceAggregatedList+    , InstanceAggregatedList+    , instanceAggregatedList+    , ialNextPageToken+    , ialKind+    , ialItems+    , ialSelfLink+    , ialId++    -- * Address+    , Address+    , address+    , aStatus+    , aUsers+    , aKind+    , aAddress+    , aSelfLink+    , aName+    , aCreationTimestamp+    , aId+    , aRegion+    , aDescription++    -- * Zone+    , Zone+    , zone+    , zStatus+    , zMaintenanceWindows+    , zKind+    , zSelfLink+    , zName+    , zCreationTimestamp+    , zId+    , zRegion+    , zDescription+    , zDeprecated++    -- * InstanceGroupManagersRecreateInstancesRequest+    , InstanceGroupManagersRecreateInstancesRequest+    , instanceGroupManagersRecreateInstancesRequest+    , igmrirInstances++    -- * InstancesScopedList+    , InstancesScopedList+    , instancesScopedList+    , islWarning+    , islInstances++    -- * HealthCheckReference+    , HealthCheckReference+    , healthCheckReference+    , hcrHealthCheck++    -- * TargetInstanceAggregatedListItems+    , TargetInstanceAggregatedListItems+    , targetInstanceAggregatedListItems+    , tialiAddtional++    -- * InstanceGroupAggregatedList+    , InstanceGroupAggregatedList+    , instanceGroupAggregatedList+    , igalNextPageToken+    , igalKind+    , igalItems+    , igalSelfLink+    , igalId++    -- * OperationStatus+    , OperationStatus (..)++    -- * Route+    , Route+    , route+    , rPriority+    , rKind+    , rNextHopGateway+    , rNextHopNetwork+    , rNetwork+    , rWarnings+    , rNextHopIP+    , rDestRange+    , rSelfLink+    , rName+    , rCreationTimestamp+    , rId+    , rNextHopVPNTunnel+    , rDescription+    , rTags+    , rNextHopInstance++    -- * TargetVPNGatewaysScopedListWarningDataItem+    , TargetVPNGatewaysScopedListWarningDataItem+    , targetVPNGatewaysScopedListWarningDataItem+    , tvgslwdiValue+    , tvgslwdiKey++    -- * TargetVPNGatewaysScopedListWarningCode+    , TargetVPNGatewaysScopedListWarningCode (..)++    -- * TargetHTTPSProxiesSetSSLCertificatesRequest+    , TargetHTTPSProxiesSetSSLCertificatesRequest+    , targetHTTPSProxiesSetSSLCertificatesRequest+    , thpsscrSSLCertificates++    -- * InstanceTemplate+    , InstanceTemplate+    , instanceTemplate+    , itKind+    , itSelfLink+    , itName+    , itCreationTimestamp+    , itId+    , itDescription+    , itProperties++    -- * ZoneMaintenanceWindowsItem+    , ZoneMaintenanceWindowsItem+    , zoneMaintenanceWindowsItem+    , zmwiBeginTime+    , zmwiName+    , zmwiEndTime+    , zmwiDescription++    -- * TargetVPNGateway+    , TargetVPNGateway+    , targetVPNGateway+    , tvgStatus+    , tvgKind+    , tvgNetwork+    , tvgSelfLink+    , tvgName+    , tvgCreationTimestamp+    , tvgId+    , tvgRegion+    , tvgTunnels+    , tvgDescription+    , tvgForwardingRules++    -- * DiskStatus+    , DiskStatus (..)++    -- * ManagedInstanceInstanceStatus+    , ManagedInstanceInstanceStatus (..)++    -- * URLMapsValidateResponse+    , URLMapsValidateResponse+    , urlMapsValidateResponse+    , umvrResult++    -- * SSLCertificate+    , SSLCertificate+    , sslCertificate+    , scPrivateKey+    , scKind+    , scSelfLink+    , scName+    , scCreationTimestamp+    , scId+    , scCertificate+    , scDescription++    -- * URLMapReference+    , URLMapReference+    , urlMapReference+    , umrURLMap++    -- * AttachedDiskMode+    , AttachedDiskMode (..)++    -- * TargetPoolsAddHealthCheckRequest+    , TargetPoolsAddHealthCheckRequest+    , targetPoolsAddHealthCheckRequest+    , tpahcrHealthChecks++    -- * DiskAggregatedListItems+    , DiskAggregatedListItems+    , diskAggregatedListItems+    , daliAddtional++    -- * UsageExportLocation+    , UsageExportLocation+    , usageExportLocation+    , uelReportNamePrefix+    , uelBucketName++    -- * ZoneList+    , ZoneList+    , zoneList+    , zlNextPageToken+    , zlKind+    , zlItems+    , zlSelfLink+    , zlId++    -- * RegionStatus+    , RegionStatus (..)++    -- * ManagedInstance+    , ManagedInstance+    , managedInstance+    , miLastAttempt+    , miCurrentAction+    , miId+    , miInstanceStatus+    , miInstance++    -- * InstanceGroupManagerAggregatedListItems+    , InstanceGroupManagerAggregatedListItems+    , instanceGroupManagerAggregatedListItems+    , igmaliAddtional++    -- * InstanceGroupManagersDeleteInstancesRequest+    , InstanceGroupManagersDeleteInstancesRequest+    , instanceGroupManagersDeleteInstancesRequest+    , igmdirInstances++    -- * Backend+    , Backend+    , backend+    , bGroup+    , bBalancingMode+    , bMaxUtilization+    , bMaxRate+    , bMaxRatePerInstance+    , bDescription+    , bCapacityScaler++    -- * TargetVPNGatewaysScopedListWarning+    , TargetVPNGatewaysScopedListWarning+    , targetVPNGatewaysScopedListWarning+    , tvgslwData+    , tvgslwCode+    , tvgslwMessage++    -- * AddressList+    , AddressList+    , addressList+    , alNextPageToken+    , alKind+    , alItems+    , alSelfLink+    , alId++    -- * ForwardingRuleAggregatedListItems+    , ForwardingRuleAggregatedListItems+    , forwardingRuleAggregatedListItems+    , fraliAddtional++    -- * OperationAggregatedListItems+    , OperationAggregatedListItems+    , operationAggregatedListItems+    , oaliAddtional++    -- * InstanceGroupManagerActionsSummary+    , InstanceGroupManagerActionsSummary+    , instanceGroupManagerActionsSummary+    , igmasDeleting+    , igmasRestarting+    , igmasNone+    , igmasCreating+    , igmasRefreshing+    , igmasRecreating+    , igmasAbandoning++    -- * VPNTunnelStatus+    , VPNTunnelStatus (..)++    -- * ServiceAccount+    , ServiceAccount+    , serviceAccount+    , saEmail+    , saScopes++    -- * NetworkList+    , NetworkList+    , networkList+    , nlNextPageToken+    , nlKind+    , nlItems+    , nlSelfLink+    , nlId++    -- * InstanceGroupsListInstancesRequest+    , InstanceGroupsListInstancesRequest+    , instanceGroupsListInstancesRequest+    , iglirInstanceState++    -- * BackendBalancingMode+    , BackendBalancingMode (..)++    -- * TargetPoolAggregatedListItems+    , TargetPoolAggregatedListItems+    , targetPoolAggregatedListItems+    , tpaliAddtional++    -- * TargetInstancesScopedList+    , TargetInstancesScopedList+    , targetInstancesScopedList+    , tislWarning+    , tislTargetInstances++    -- * AddressAggregatedListItems+    , AddressAggregatedListItems+    , addressAggregatedListItems+    , aAddtional++    -- * AutoscalerList+    , AutoscalerList+    , autoscalerList+    , autNextPageToken+    , autKind+    , autItems+    , autSelfLink+    , autId++    -- * VPNTunnelAggregatedList+    , VPNTunnelAggregatedList+    , vpnTunnelAggregatedList+    , vtalNextPageToken+    , vtalKind+    , vtalItems+    , vtalSelfLink+    , vtalId++    -- * AttachedDisk+    , AttachedDisk+    , attachedDisk+    , adKind+    , adMode+    , adBoot+    , adAutoDelete+    , adInitializeParams+    , adDeviceName+    , adInterface+    , adSource+    , adLicenses+    , adType+    , adIndex++    -- * DiskTypeList+    , DiskTypeList+    , diskTypeList+    , dtlNextPageToken+    , dtlKind+    , dtlItems+    , dtlSelfLink+    , dtlId++    -- * MachineTypeList+    , MachineTypeList+    , machineTypeList+    , mtlNextPageToken+    , mtlKind+    , mtlItems+    , mtlSelfLink+    , mtlId++    -- * TargetHTTPProxyList+    , TargetHTTPProxyList+    , targetHTTPProxyList+    , thttpplNextPageToken+    , thttpplKind+    , thttpplItems+    , thttpplSelfLink+    , thttpplId++    -- * ForwardingRuleIPProtocol+    , ForwardingRuleIPProtocol (..)++    -- * DiskTypesScopedList+    , DiskTypesScopedList+    , diskTypesScopedList+    , dtslDiskTypes+    , dtslWarning++    -- * AddressStatus+    , AddressStatus (..)++    -- * DiskTypeAggregatedList+    , DiskTypeAggregatedList+    , diskTypeAggregatedList+    , dtalNextPageToken+    , dtalKind+    , dtalItems+    , dtalSelfLink+    , dtalId++    -- * HTTPHealthCheck+    , HTTPHealthCheck+    , hTTPHealthCheck+    , httphcHealthyThreshold+    , httphcKind+    , httphcRequestPath+    , httphcSelfLink+    , httphcCheckIntervalSec+    , httphcName+    , httphcCreationTimestamp+    , httphcId+    , httphcHost+    , httphcTimeoutSec+    , httphcDescription+    , httphcUnhealthyThreshold+    , httphcPort++    -- * BackendServiceGroupHealth+    , BackendServiceGroupHealth+    , backendServiceGroupHealth+    , bsghKind+    , bsghHealthStatus++    -- * InstanceGroupsListInstancesRequestInstanceState+    , InstanceGroupsListInstancesRequestInstanceState (..)++    -- * AutoscalersScopedList+    , AutoscalersScopedList+    , autoscalersScopedList+    , aAutoscalers+    , aWarning++    -- * AutoscalerAggregatedList+    , AutoscalerAggregatedList+    , autoscalerAggregatedList+    , aalNextPageToken+    , aalKind+    , aalItems+    , aalSelfLink+    , aalId++    -- * AutoscalingPolicy+    , AutoscalingPolicy+    , autoscalingPolicy+    , apCustomMetricUtilizations+    , apMaxNumReplicas+    , apCPUUtilization+    , apLoadBalancingUtilization+    , apMinNumReplicas+    , apCoolDownPeriodSec++    -- * RegionList+    , RegionList+    , regionList+    , regNextPageToken+    , regKind+    , regItems+    , regSelfLink+    , regId++    -- * AttachedDiskInterface+    , AttachedDiskInterface (..)++    -- * ZoneStatus+    , ZoneStatus (..)++    -- * VPNTunnelList+    , VPNTunnelList+    , vpnTunnelList+    , vtlNextPageToken+    , vtlKind+    , vtlItems+    , vtlSelfLink+    , vtlId++    -- * MachineTypeScratchDisksItem+    , MachineTypeScratchDisksItem+    , machineTypeScratchDisksItem+    , mtsdiDiskGb++    -- * MachineTypesScopedList+    , MachineTypesScopedList+    , machineTypesScopedList+    , mtslMachineTypes+    , mtslWarning++    -- * MachineTypeAggregatedList+    , MachineTypeAggregatedList+    , machineTypeAggregatedList+    , mtalNextPageToken+    , mtalKind+    , mtalItems+    , mtalSelfLink+    , mtalId++    -- * QuotaMetric+    , QuotaMetric (..)++    -- * DiskType+    , DiskType+    , diskType+    , dtKind+    , dtZone+    , dtSelfLink+    , dtName+    , dtCreationTimestamp+    , dtId+    , dtValidDiskSize+    , dtDescription+    , dtDefaultDiskSizeGb+    , dtDeprecated++    -- * URLMapValidationResult+    , URLMapValidationResult+    , urlMapValidationResult+    , umvrLoadErrors+    , umvrLoadSucceeded+    , umvrTestPassed+    , umvrTestFailures++    -- * Metadata+    , Metadata+    , metadata+    , mKind+    , mFingerprint+    , mItems++    -- * RouteWarningsItem+    , RouteWarningsItem+    , routeWarningsItem+    , rwiData+    , rwiCode+    , rwiMessage++    -- * MachineTypesScopedListWarningDataItem+    , MachineTypesScopedListWarningDataItem+    , machineTypesScopedListWarningDataItem+    , mtslwdiValue+    , mtslwdiKey++    -- * InstanceStatus+    , InstanceStatus (..)++    -- * MachineTypesScopedListWarningCode+    , MachineTypesScopedListWarningCode (..)++    -- * DiskTypesScopedListWarningDataItem+    , DiskTypesScopedListWarningDataItem+    , diskTypesScopedListWarningDataItem+    , dtslwdiValue+    , dtslwdiKey++    -- * TargetHTTPProxy+    , TargetHTTPProxy+    , targetHTTPProxy+    , thttppURLMap+    , thttppKind+    , thttppSelfLink+    , thttppName+    , thttppCreationTimestamp+    , thttppId+    , thttppDescription++    -- * MachineType+    , MachineType+    , machineType+    , mtKind+    , mtImageSpaceGb+    , mtZone+    , mtSelfLink+    , mtName+    , mtCreationTimestamp+    , mtScratchDisks+    , mtId+    , mtGuestCPUs+    , mtMaximumPersistentDisksSizeGb+    , mtMaximumPersistentDisks+    , mtMemoryMb+    , mtDescription+    , mtDeprecated++    -- * DiskTypesScopedListWarningCode+    , DiskTypesScopedListWarningCode (..)++    -- * OperationError+    , OperationError+    , operationError+    , oeErrors++    -- * TargetInstancesScopedListWarning+    , TargetInstancesScopedListWarning+    , targetInstancesScopedListWarning+    , tislwData+    , tislwCode+    , tislwMessage++    -- * AutoscalersScopedListWarningDataItem+    , AutoscalersScopedListWarningDataItem+    , autoscalersScopedListWarningDataItem+    , aValue+    , aKey++    -- * AutoscalersScopedListWarningCode+    , AutoscalersScopedListWarningCode (..)++    -- * InstanceGroupsListInstances+    , InstanceGroupsListInstances+    , instanceGroupsListInstances+    , igliNextPageToken+    , igliKind+    , igliItems+    , igliSelfLink+    , igliId++    -- * Autoscaler+    , Autoscaler+    , autoscaler+    , aaKind+    , aaZone+    , aaSelfLink+    , aaName+    , aaCreationTimestamp+    , aaAutoscalingPolicy+    , aaId+    , aaDescription+    , aaTarget++    -- * DisksScopedListWarning+    , DisksScopedListWarning+    , disksScopedListWarning+    , dslwData+    , dslwCode+    , dslwMessage++    -- * TargetVPNGatewayAggregatedListItems+    , TargetVPNGatewayAggregatedListItems+    , targetVPNGatewayAggregatedListItems+    , tvgaliAddtional++    -- * TargetPoolsScopedListWarning+    , TargetPoolsScopedListWarning+    , targetPoolsScopedListWarning+    , tpslwData+    , tpslwCode+    , tpslwMessage++    -- * HealthStatus+    , HealthStatus+    , healthStatus+    , hsIPAddress+    , hsHealthState+    , hsPort+    , hsInstance++    -- * Region+    , Region+    , region+    , rrStatus+    , rrZones+    , rrKind+    , rrSelfLink+    , rrName+    , rrCreationTimestamp+    , rrQuotas+    , rrId+    , rrDescription+    , rrDeprecated++    -- * VPNTunnel+    , VPNTunnel+    , vpnTunnel+    , vtDetailedStatus+    , vtStatus+    , vtKind+    , vtPeerIP+    , vtTargetVPNGateway+    , vtSelfLink+    , vtSharedSecret+    , vtName+    , vtCreationTimestamp+    , vtSharedSecretHash+    , vtId+    , vtIkeVersion+    , vtRegion+    , vtDescription++    -- * VPNTunnelsScopedListWarningCode+    , VPNTunnelsScopedListWarningCode (..)++    -- * OperationsScopedListWarning+    , OperationsScopedListWarning+    , operationsScopedListWarning+    , oslwData+    , oslwCode+    , oslwMessage++    -- * Scheduling+    , Scheduling+    , scheduling+    , sAutomaticRestart+    , sOnHostMaintenance+    , sPreemptible++    -- * VPNTunnelsScopedListWarningDataItem+    , VPNTunnelsScopedListWarningDataItem+    , vpnTunnelsScopedListWarningDataItem+    , vtslwdiValue+    , vtslwdiKey++    -- * ForwardingRulesScopedListWarning+    , ForwardingRulesScopedListWarning+    , forwardingRulesScopedListWarning+    , frslwData+    , frslwCode+    , frslwMessage++    -- * HTTPHealthCheckList+    , HTTPHealthCheckList+    , hTTPHealthCheckList+    , httphclNextPageToken+    , httphclKind+    , httphclItems+    , httphclSelfLink+    , httphclId++    -- * InstanceGroupManagersScopedListWarning+    , InstanceGroupManagersScopedListWarning+    , instanceGroupManagersScopedListWarning+    , igmslwData+    , igmslwCode+    , igmslwMessage++    -- * URLMapsValidateRequest+    , URLMapsValidateRequest+    , urlMapsValidateRequest+    , umvrResource++    -- * InstanceGroupManagersSetTargetPoolsRequest+    , InstanceGroupManagersSetTargetPoolsRequest+    , instanceGroupManagersSetTargetPoolsRequest+    , igmstprFingerprint+    , igmstprTargetPools++    -- * HTTPSHealthCheckList+    , HTTPSHealthCheckList+    , httpsHealthCheckList+    , hhclNextPageToken+    , hhclKind+    , hhclItems+    , hhclSelfLink+    , hhclId++    -- * OperationErrorErrorsItem+    , OperationErrorErrorsItem+    , operationErrorErrorsItem+    , oeeiLocation+    , oeeiCode+    , oeeiMessage++    -- * License+    , License+    , license+    , lChargesUseFee+    , lKind+    , lSelfLink+    , lName++    -- * PathRule+    , PathRule+    , pathRule+    , prService+    , prPaths++    -- * InstanceList+    , InstanceList+    , instanceList+    , insNextPageToken+    , insKind+    , insItems+    , insSelfLink+    , insId++    -- * ManagedInstanceLastAttempt+    , ManagedInstanceLastAttempt+    , managedInstanceLastAttempt+    , milaErrors++    -- * BackendServiceList+    , BackendServiceList+    , backendServiceList+    , bslNextPageToken+    , bslKind+    , bslItems+    , bslSelfLink+    , bslId++    -- * InstanceGroupsScopedListWarning+    , InstanceGroupsScopedListWarning+    , instanceGroupsScopedListWarning+    , igslwData+    , igslwCode+    , igslwMessage++    -- * AutoscalingPolicyCPUUtilization+    , AutoscalingPolicyCPUUtilization+    , autoscalingPolicyCPUUtilization+    , apcuUtilizationTarget++    -- * InstanceGroupsScopedListWarningCode+    , InstanceGroupsScopedListWarningCode (..)++    -- * InstanceGroupsScopedListWarningDataItem+    , InstanceGroupsScopedListWarningDataItem+    , instanceGroupsScopedListWarningDataItem+    , igslwdiValue+    , igslwdiKey++    -- * ResourceGroupReference+    , ResourceGroupReference+    , resourceGroupReference+    , rgrGroup++    -- * Firewall+    , Firewall+    , firewall+    , fSourceTags+    , fKind+    , fTargetTags+    , fNetwork+    , fSourceRanges+    , fSelfLink+    , fName+    , fCreationTimestamp+    , fId+    , fAllowed+    , fDescription++    -- * HostRule+    , HostRule+    , hostRule+    , hrHosts+    , hrDescription+    , hrPathMatcher++    -- * Quota+    , Quota+    , quota+    , qMetric+    , qLimit+    , qUsage++    -- * InstanceGroup+    , InstanceGroup+    , instanceGroup+    , iiSize+    , iiKind+    , iiFingerprint+    , iiNetwork+    , iiZone+    , iiSelfLink+    , iiName+    , iiCreationTimestamp+    , iiId+    , iiDescription+    , iiNamedPorts++    -- * InstanceWithNamedPortsStatus+    , InstanceWithNamedPortsStatus (..)++    -- * SnapshotList+    , SnapshotList+    , snapshotList+    , slNextPageToken+    , slKind+    , slItems+    , slSelfLink+    , slId++    -- * TestFailure+    , TestFailure+    , testFailure+    , tfPath+    , tfExpectedService+    , tfHost+    , tfActualService++    -- * SerialPortOutput+    , SerialPortOutput+    , serialPortOutput+    , spoContents+    , spoKind+    , spoSelfLink++    -- * TargetVPNGatewayAggregatedList+    , TargetVPNGatewayAggregatedList+    , targetVPNGatewayAggregatedList+    , tvgalNextPageToken+    , tvgalKind+    , tvgalItems+    , tvgalSelfLink+    , tvgalId++    -- * MetadataItemsItem+    , MetadataItemsItem+    , metadataItemsItem+    , miiValue+    , miiKey++    -- * TargetHTTPSProxy+    , TargetHTTPSProxy+    , targetHTTPSProxy+    , thpURLMap+    , thpSSLCertificates+    , thpKind+    , thpSelfLink+    , thpName+    , thpCreationTimestamp+    , thpId+    , thpDescription++    -- * TargetVPNGatewaysScopedList+    , TargetVPNGatewaysScopedList+    , targetVPNGatewaysScopedList+    , tvgslTargetVPNGateways+    , tvgslWarning++    -- * AccessConfig+    , AccessConfig+    , accessConfig+    , acKind+    , acName+    , acNATIP+    , acType++    -- * ManagedInstanceLastAttemptErrorsErrorsItem+    , ManagedInstanceLastAttemptErrorsErrorsItem+    , managedInstanceLastAttemptErrorsErrorsItem+    , milaeeiLocation+    , milaeeiCode+    , milaeeiMessage++    -- * InstancesScopedListWarningCode+    , InstancesScopedListWarningCode (..)++    -- * InstancesScopedListWarningDataItem+    , InstancesScopedListWarningDataItem+    , instancesScopedListWarningDataItem+    , islwdiValue+    , islwdiKey++    -- * BackendService+    , BackendService+    , backendService+    , bsBackends+    , bsKind+    , bsFingerprint+    , bsProtocol+    , bsSelfLink+    , bsName+    , bsCreationTimestamp+    , bsId+    , bsTimeoutSec+    , bsDescription+    , bsPortName+    , bsHealthChecks+    , bsPort++    -- * InstanceMoveRequest+    , InstanceMoveRequest+    , instanceMoveRequest+    , imrTargetInstance+    , imrDestinationZone++    -- * TargetPoolSessionAffinity+    , TargetPoolSessionAffinity (..)++    -- * InstanceGroupsScopedList+    , InstanceGroupsScopedList+    , instanceGroupsScopedList+    , igslWarning+    , igslInstanceGroups++    -- * HTTPSHealthCheck+    , HTTPSHealthCheck+    , httpsHealthCheck+    , hhcHealthyThreshold+    , hhcKind+    , hhcRequestPath+    , hhcSelfLink+    , hhcCheckIntervalSec+    , hhcName+    , hhcCreationTimestamp+    , hhcId+    , hhcHost+    , hhcTimeoutSec+    , hhcDescription+    , hhcUnhealthyThreshold+    , hhcPort++    -- * ImageRawDiskContainerType+    , ImageRawDiskContainerType (..)++    -- * VPNTunnelAggregatedListItems+    , VPNTunnelAggregatedListItems+    , vpnTunnelAggregatedListItems+    , vtaliAddtional++    -- * Tags+    , Tags+    , tags+    , tFingerprint+    , tItems++    -- * AddressAggregatedList+    , AddressAggregatedList+    , addressAggregatedList+    , addNextPageToken+    , addKind+    , addItems+    , addSelfLink+    , addId++    -- * OperationWarningsItem+    , OperationWarningsItem+    , operationWarningsItem+    , owiData+    , owiCode+    , owiMessage++    -- * URLMapTest+    , URLMapTest+    , urlMapTest+    , umtPath+    , umtService+    , umtHost+    , umtDescription++    -- * Instance+    , Instance+    , instance'+    , insnStatus+    , insnServiceAccounts+    , insnNetworkInterfaces+    , insnKind+    , insnZone+    , insnCPUPlatform+    , insnSelfLink+    , insnName+    , insnStatusMessage+    , insnCreationTimestamp+    , insnMachineType+    , insnMetadata+    , insnId+    , insnScheduling+    , insnDisks+    , insnCanIPForward+    , insnDescription+    , insnTags++    -- * PathMatcher+    , PathMatcher+    , pathMatcher+    , pmDefaultService+    , pmName+    , pmPathRules+    , pmDescription+    ) where++import           Network.Google.Compute.Types.Product+import           Network.Google.Compute.Types.Sum+import           Network.Google.Prelude++-- | Default request referring to version 'v1' of the Compute Engine API. This contains the host and root path used as a starting point for constructing service requests.+computeService :: Service+computeService+  = defaultService (ServiceId "compute:v1")+      "www.googleapis.com"++-- | View and manage your Google Compute Engine resources+computeScope :: OAuthScope+computeScope = "https://www.googleapis.com/auth/compute";++-- | View and manage your data across Google Cloud Platform services+cloudPlatformScope :: OAuthScope+cloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform";++-- | View your data in Google Cloud Storage+devstorageReadOnlyScope :: OAuthScope+devstorageReadOnlyScope = "https://www.googleapis.com/auth/devstorage.read_only";++-- | Manage your data in Google Cloud Storage+devstorageReadWriteScope :: OAuthScope+devstorageReadWriteScope = "https://www.googleapis.com/auth/devstorage.read_write";++-- | View your Google Compute Engine resources+computeReadonlyScope :: OAuthScope+computeReadonlyScope = "https://www.googleapis.com/auth/compute.readonly";++-- | Manage your data and permissions in Google Cloud Storage+devstorageFullControlScope :: OAuthScope+devstorageFullControlScope = "https://www.googleapis.com/auth/devstorage.full_control";
+ gen/Network/Google/Compute/Types/Product.hs view
@@ -0,0 +1,15819 @@+{-# 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.Compute.Types.Product+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Network.Google.Compute.Types.Product where++import           Network.Google.Compute.Types.Sum+import           Network.Google.Prelude++-- | Contains a list of TargetHttpsProxy resources.+--+-- /See:/ 'targetHTTPSProxyList' smart constructor.+data TargetHTTPSProxyList = TargetHTTPSProxyList+    { _thplNextPageToken :: !(Maybe Text)+    , _thplKind          :: !Text+    , _thplItems         :: !(Maybe [TargetHTTPSProxy])+    , _thplSelfLink      :: !(Maybe Text)+    , _thplId            :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TargetHTTPSProxyList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'thplNextPageToken'+--+-- * 'thplKind'+--+-- * 'thplItems'+--+-- * 'thplSelfLink'+--+-- * 'thplId'+targetHTTPSProxyList+    :: TargetHTTPSProxyList+targetHTTPSProxyList =+    TargetHTTPSProxyList+    { _thplNextPageToken = Nothing+    , _thplKind = "compute#targetHttpsProxyList"+    , _thplItems = Nothing+    , _thplSelfLink = Nothing+    , _thplId = Nothing+    }++-- | [Output Only] A token used to continue a truncated list request.+thplNextPageToken :: Lens' TargetHTTPSProxyList (Maybe Text)+thplNextPageToken+  = lens _thplNextPageToken+      (\ s a -> s{_thplNextPageToken = a})++-- | Type of resource.+thplKind :: Lens' TargetHTTPSProxyList Text+thplKind = lens _thplKind (\ s a -> s{_thplKind = a})++-- | A list of TargetHttpsProxy resources.+thplItems :: Lens' TargetHTTPSProxyList [TargetHTTPSProxy]+thplItems+  = lens _thplItems (\ s a -> s{_thplItems = a}) .+      _Default+      . _Coerce++-- | [Output Only] Server-defined URL for this resource.+thplSelfLink :: Lens' TargetHTTPSProxyList (Maybe Text)+thplSelfLink+  = lens _thplSelfLink (\ s a -> s{_thplSelfLink = a})++-- | [Output Only] Unique identifier for the resource; defined by the server.+thplId :: Lens' TargetHTTPSProxyList (Maybe Text)+thplId = lens _thplId (\ s a -> s{_thplId = a})++instance FromJSON TargetHTTPSProxyList where+        parseJSON+          = withObject "TargetHTTPSProxyList"+              (\ o ->+                 TargetHTTPSProxyList <$>+                   (o .:? "nextPageToken") <*>+                     (o .:? "kind" .!= "compute#targetHttpsProxyList")+                     <*> (o .:? "items" .!= mempty)+                     <*> (o .:? "selfLink")+                     <*> (o .:? "id"))++instance ToJSON TargetHTTPSProxyList where+        toJSON TargetHTTPSProxyList{..}+          = object+              (catMaybes+                 [("nextPageToken" .=) <$> _thplNextPageToken,+                  Just ("kind" .= _thplKind),+                  ("items" .=) <$> _thplItems,+                  ("selfLink" .=) <$> _thplSelfLink,+                  ("id" .=) <$> _thplId])++--+-- /See:/ 'addressesScopedList' smart constructor.+data AddressesScopedList = AddressesScopedList+    { _aslAddresses :: !(Maybe [Address])+    , _aslWarning   :: !(Maybe AddressesScopedListWarning)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'AddressesScopedList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aslAddresses'+--+-- * 'aslWarning'+addressesScopedList+    :: AddressesScopedList+addressesScopedList =+    AddressesScopedList+    { _aslAddresses = Nothing+    , _aslWarning = Nothing+    }++-- | [Output Only] List of addresses contained in this scope.+aslAddresses :: Lens' AddressesScopedList [Address]+aslAddresses+  = lens _aslAddresses (\ s a -> s{_aslAddresses = a})+      . _Default+      . _Coerce++-- | [Output Only] Informational warning which replaces the list of addresses+-- when the list is empty.+aslWarning :: Lens' AddressesScopedList (Maybe AddressesScopedListWarning)+aslWarning+  = lens _aslWarning (\ s a -> s{_aslWarning = a})++instance FromJSON AddressesScopedList where+        parseJSON+          = withObject "AddressesScopedList"+              (\ o ->+                 AddressesScopedList <$>+                   (o .:? "addresses" .!= mempty) <*> (o .:? "warning"))++instance ToJSON AddressesScopedList where+        toJSON AddressesScopedList{..}+          = object+              (catMaybes+                 [("addresses" .=) <$> _aslAddresses,+                  ("warning" .=) <$> _aslWarning])++--+-- /See:/ 'operationWarningsItemDataItem' smart constructor.+data OperationWarningsItemDataItem = OperationWarningsItemDataItem+    { _owidiValue :: !(Maybe Text)+    , _owidiKey   :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'OperationWarningsItemDataItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'owidiValue'+--+-- * 'owidiKey'+operationWarningsItemDataItem+    :: OperationWarningsItemDataItem+operationWarningsItemDataItem =+    OperationWarningsItemDataItem+    { _owidiValue = Nothing+    , _owidiKey = Nothing+    }++-- | [Output Only] A warning data value corresponding to the key.+owidiValue :: Lens' OperationWarningsItemDataItem (Maybe Text)+owidiValue+  = lens _owidiValue (\ s a -> s{_owidiValue = a})++-- | [Output Only] A key for the warning data.+owidiKey :: Lens' OperationWarningsItemDataItem (Maybe Text)+owidiKey = lens _owidiKey (\ s a -> s{_owidiKey = a})++instance FromJSON OperationWarningsItemDataItem where+        parseJSON+          = withObject "OperationWarningsItemDataItem"+              (\ o ->+                 OperationWarningsItemDataItem <$>+                   (o .:? "value") <*> (o .:? "key"))++instance ToJSON OperationWarningsItemDataItem where+        toJSON OperationWarningsItemDataItem{..}+          = object+              (catMaybes+                 [("value" .=) <$> _owidiValue,+                  ("key" .=) <$> _owidiKey])++--+-- /See:/ 'instanceGroupManagersAbandonInstancesRequest' smart constructor.+newtype InstanceGroupManagersAbandonInstancesRequest = InstanceGroupManagersAbandonInstancesRequest+    { _igmairInstances :: Maybe [Text]+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstanceGroupManagersAbandonInstancesRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'igmairInstances'+instanceGroupManagersAbandonInstancesRequest+    :: InstanceGroupManagersAbandonInstancesRequest+instanceGroupManagersAbandonInstancesRequest =+    InstanceGroupManagersAbandonInstancesRequest+    { _igmairInstances = Nothing+    }++-- | The URL for one or more instances to abandon from the managed instance+-- group.+igmairInstances :: Lens' InstanceGroupManagersAbandonInstancesRequest [Text]+igmairInstances+  = lens _igmairInstances+      (\ s a -> s{_igmairInstances = a})+      . _Default+      . _Coerce++instance FromJSON+         InstanceGroupManagersAbandonInstancesRequest where+        parseJSON+          = withObject+              "InstanceGroupManagersAbandonInstancesRequest"+              (\ o ->+                 InstanceGroupManagersAbandonInstancesRequest <$>+                   (o .:? "instances" .!= mempty))++instance ToJSON+         InstanceGroupManagersAbandonInstancesRequest where+        toJSON+          InstanceGroupManagersAbandonInstancesRequest{..}+          = object+              (catMaybes [("instances" .=) <$> _igmairInstances])++-- | [Output Only] A map of scoped machine type lists.+--+-- /See:/ 'machineTypeAggregatedListItems' smart constructor.+newtype MachineTypeAggregatedListItems = MachineTypeAggregatedListItems+    { _mtaliAddtional :: HashMap Text MachineTypesScopedList+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'MachineTypeAggregatedListItems' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mtaliAddtional'+machineTypeAggregatedListItems+    :: HashMap Text MachineTypesScopedList -- ^ 'mtaliAddtional'+    -> MachineTypeAggregatedListItems+machineTypeAggregatedListItems pMtaliAddtional_ =+    MachineTypeAggregatedListItems+    { _mtaliAddtional = _Coerce # pMtaliAddtional_+    }++-- | [Output Only] Name of the scope containing this set of machine types.+mtaliAddtional :: Lens' MachineTypeAggregatedListItems (HashMap Text MachineTypesScopedList)+mtaliAddtional+  = lens _mtaliAddtional+      (\ s a -> s{_mtaliAddtional = a})+      . _Coerce++instance FromJSON MachineTypeAggregatedListItems+         where+        parseJSON+          = withObject "MachineTypeAggregatedListItems"+              (\ o ->+                 MachineTypeAggregatedListItems <$>+                   (parseJSONObject o))++instance ToJSON MachineTypeAggregatedListItems where+        toJSON = toJSON . _mtaliAddtional++-- | [Output Only] A map of scoped disk type lists.+--+-- /See:/ 'diskTypeAggregatedListItems' smart constructor.+newtype DiskTypeAggregatedListItems = DiskTypeAggregatedListItems+    { _dtaliAddtional :: HashMap Text DiskTypesScopedList+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DiskTypeAggregatedListItems' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dtaliAddtional'+diskTypeAggregatedListItems+    :: HashMap Text DiskTypesScopedList -- ^ 'dtaliAddtional'+    -> DiskTypeAggregatedListItems+diskTypeAggregatedListItems pDtaliAddtional_ =+    DiskTypeAggregatedListItems+    { _dtaliAddtional = _Coerce # pDtaliAddtional_+    }++-- | [Output Only] Name of the scope containing this set of disk types.+dtaliAddtional :: Lens' DiskTypeAggregatedListItems (HashMap Text DiskTypesScopedList)+dtaliAddtional+  = lens _dtaliAddtional+      (\ s a -> s{_dtaliAddtional = a})+      . _Coerce++instance FromJSON DiskTypeAggregatedListItems where+        parseJSON+          = withObject "DiskTypeAggregatedListItems"+              (\ o ->+                 DiskTypeAggregatedListItems <$> (parseJSONObject o))++instance ToJSON DiskTypeAggregatedListItems where+        toJSON = toJSON . _dtaliAddtional++-- | Contains a list of Firewall resources.+--+-- /See:/ 'firewallList' smart constructor.+data FirewallList = FirewallList+    { _flNextPageToken :: !(Maybe Text)+    , _flKind          :: !Text+    , _flItems         :: !(Maybe [Firewall])+    , _flSelfLink      :: !(Maybe Text)+    , _flId            :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'FirewallList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'flNextPageToken'+--+-- * 'flKind'+--+-- * 'flItems'+--+-- * 'flSelfLink'+--+-- * 'flId'+firewallList+    :: FirewallList+firewallList =+    FirewallList+    { _flNextPageToken = Nothing+    , _flKind = "compute#firewallList"+    , _flItems = Nothing+    , _flSelfLink = Nothing+    , _flId = Nothing+    }++-- | [Output Only] A token used to continue a truncated list request.+flNextPageToken :: Lens' FirewallList (Maybe Text)+flNextPageToken+  = lens _flNextPageToken+      (\ s a -> s{_flNextPageToken = a})++-- | [Output Only] Type of resource. Always compute#firewallList for lists of+-- firewalls.+flKind :: Lens' FirewallList Text+flKind = lens _flKind (\ s a -> s{_flKind = a})++-- | [Output Only] A list of Firewall resources.+flItems :: Lens' FirewallList [Firewall]+flItems+  = lens _flItems (\ s a -> s{_flItems = a}) . _Default+      . _Coerce++-- | [Output Only] Server-defined URL for this resource.+flSelfLink :: Lens' FirewallList (Maybe Text)+flSelfLink+  = lens _flSelfLink (\ s a -> s{_flSelfLink = a})++-- | [Output Only] Unique identifier for the resource; defined by the server.+flId :: Lens' FirewallList (Maybe Text)+flId = lens _flId (\ s a -> s{_flId = a})++instance FromJSON FirewallList where+        parseJSON+          = withObject "FirewallList"+              (\ o ->+                 FirewallList <$>+                   (o .:? "nextPageToken") <*>+                     (o .:? "kind" .!= "compute#firewallList")+                     <*> (o .:? "items" .!= mempty)+                     <*> (o .:? "selfLink")+                     <*> (o .:? "id"))++instance ToJSON FirewallList where+        toJSON FirewallList{..}+          = object+              (catMaybes+                 [("nextPageToken" .=) <$> _flNextPageToken,+                  Just ("kind" .= _flKind), ("items" .=) <$> _flItems,+                  ("selfLink" .=) <$> _flSelfLink,+                  ("id" .=) <$> _flId])++-- | [Output Only] Informational warning which replaces the list of instances+-- when the list is empty.+--+-- /See:/ 'instancesScopedListWarning' smart constructor.+data InstancesScopedListWarning = InstancesScopedListWarning+    { _islwData    :: !(Maybe [InstancesScopedListWarningDataItem])+    , _islwCode    :: !(Maybe InstancesScopedListWarningCode)+    , _islwMessage :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstancesScopedListWarning' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'islwData'+--+-- * 'islwCode'+--+-- * 'islwMessage'+instancesScopedListWarning+    :: InstancesScopedListWarning+instancesScopedListWarning =+    InstancesScopedListWarning+    { _islwData = Nothing+    , _islwCode = Nothing+    , _islwMessage = Nothing+    }++-- | [Output Only] Metadata for this warning in key: value format.+islwData :: Lens' InstancesScopedListWarning [InstancesScopedListWarningDataItem]+islwData+  = lens _islwData (\ s a -> s{_islwData = a}) .+      _Default+      . _Coerce++-- | [Output Only] The warning type identifier for this warning.+islwCode :: Lens' InstancesScopedListWarning (Maybe InstancesScopedListWarningCode)+islwCode = lens _islwCode (\ s a -> s{_islwCode = a})++-- | [Output Only] Optional human-readable details for this warning.+islwMessage :: Lens' InstancesScopedListWarning (Maybe Text)+islwMessage+  = lens _islwMessage (\ s a -> s{_islwMessage = a})++instance FromJSON InstancesScopedListWarning where+        parseJSON+          = withObject "InstancesScopedListWarning"+              (\ o ->+                 InstancesScopedListWarning <$>+                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>+                     (o .:? "message"))++instance ToJSON InstancesScopedListWarning where+        toJSON InstancesScopedListWarning{..}+          = object+              (catMaybes+                 [("data" .=) <$> _islwData,+                  ("code" .=) <$> _islwCode,+                  ("message" .=) <$> _islwMessage])++-- | A list of InstanceGroup resources.+--+-- /See:/ 'instanceGroupList' smart constructor.+data InstanceGroupList = InstanceGroupList+    { _iglNextPageToken :: !(Maybe Text)+    , _iglKind          :: !Text+    , _iglItems         :: !(Maybe [InstanceGroup])+    , _iglSelfLink      :: !(Maybe Text)+    , _iglId            :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstanceGroupList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'iglNextPageToken'+--+-- * 'iglKind'+--+-- * 'iglItems'+--+-- * 'iglSelfLink'+--+-- * 'iglId'+instanceGroupList+    :: InstanceGroupList+instanceGroupList =+    InstanceGroupList+    { _iglNextPageToken = Nothing+    , _iglKind = "compute#instanceGroupList"+    , _iglItems = Nothing+    , _iglSelfLink = Nothing+    , _iglId = Nothing+    }++-- | [Output Only] A token that is used to continue a truncated list request.+iglNextPageToken :: Lens' InstanceGroupList (Maybe Text)+iglNextPageToken+  = lens _iglNextPageToken+      (\ s a -> s{_iglNextPageToken = a})++-- | [Output Only] The resource type, which is always+-- compute#instanceGroupList for instance group lists.+iglKind :: Lens' InstanceGroupList Text+iglKind = lens _iglKind (\ s a -> s{_iglKind = a})++-- | A list of instance groups.+iglItems :: Lens' InstanceGroupList [InstanceGroup]+iglItems+  = lens _iglItems (\ s a -> s{_iglItems = a}) .+      _Default+      . _Coerce++-- | [Output Only] The URL for this resource type. The server generates this+-- URL.+iglSelfLink :: Lens' InstanceGroupList (Maybe Text)+iglSelfLink+  = lens _iglSelfLink (\ s a -> s{_iglSelfLink = a})++-- | [Output Only] A unique identifier for this list of instance groups. The+-- server generates this identifier.+iglId :: Lens' InstanceGroupList (Maybe Text)+iglId = lens _iglId (\ s a -> s{_iglId = a})++instance FromJSON InstanceGroupList where+        parseJSON+          = withObject "InstanceGroupList"+              (\ o ->+                 InstanceGroupList <$>+                   (o .:? "nextPageToken") <*>+                     (o .:? "kind" .!= "compute#instanceGroupList")+                     <*> (o .:? "items" .!= mempty)+                     <*> (o .:? "selfLink")+                     <*> (o .:? "id"))++instance ToJSON InstanceGroupList where+        toJSON InstanceGroupList{..}+          = object+              (catMaybes+                 [("nextPageToken" .=) <$> _iglNextPageToken,+                  Just ("kind" .= _iglKind),+                  ("items" .=) <$> _iglItems,+                  ("selfLink" .=) <$> _iglSelfLink,+                  ("id" .=) <$> _iglId])++-- | A map of scoped autoscaler lists.+--+-- /See:/ 'autoscalerAggregatedListItems' smart constructor.+newtype AutoscalerAggregatedListItems = AutoscalerAggregatedListItems+    { _aaliAddtional :: HashMap Text AutoscalersScopedList+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'AutoscalerAggregatedListItems' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aaliAddtional'+autoscalerAggregatedListItems+    :: HashMap Text AutoscalersScopedList -- ^ 'aaliAddtional'+    -> AutoscalerAggregatedListItems+autoscalerAggregatedListItems pAaliAddtional_ =+    AutoscalerAggregatedListItems+    { _aaliAddtional = _Coerce # pAaliAddtional_+    }++-- | Name of the scope containing this set of autoscalers.+aaliAddtional :: Lens' AutoscalerAggregatedListItems (HashMap Text AutoscalersScopedList)+aaliAddtional+  = lens _aaliAddtional+      (\ s a -> s{_aaliAddtional = a})+      . _Coerce++instance FromJSON AutoscalerAggregatedListItems where+        parseJSON+          = withObject "AutoscalerAggregatedListItems"+              (\ o ->+                 AutoscalerAggregatedListItems <$>+                   (parseJSONObject o))++instance ToJSON AutoscalerAggregatedListItems where+        toJSON = toJSON . _aaliAddtional++--+-- /See:/ 'instanceGroupManagersSetInstanceTemplateRequest' smart constructor.+newtype InstanceGroupManagersSetInstanceTemplateRequest = InstanceGroupManagersSetInstanceTemplateRequest+    { _igmsitrInstanceTemplate :: Maybe Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstanceGroupManagersSetInstanceTemplateRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'igmsitrInstanceTemplate'+instanceGroupManagersSetInstanceTemplateRequest+    :: InstanceGroupManagersSetInstanceTemplateRequest+instanceGroupManagersSetInstanceTemplateRequest =+    InstanceGroupManagersSetInstanceTemplateRequest+    { _igmsitrInstanceTemplate = Nothing+    }++-- | The URL of the instance template that is specified for this managed+-- instance group. The group uses this template to create all new instances+-- in the managed instance group.+igmsitrInstanceTemplate :: Lens' InstanceGroupManagersSetInstanceTemplateRequest (Maybe Text)+igmsitrInstanceTemplate+  = lens _igmsitrInstanceTemplate+      (\ s a -> s{_igmsitrInstanceTemplate = a})++instance FromJSON+         InstanceGroupManagersSetInstanceTemplateRequest where+        parseJSON+          = withObject+              "InstanceGroupManagersSetInstanceTemplateRequest"+              (\ o ->+                 InstanceGroupManagersSetInstanceTemplateRequest <$>+                   (o .:? "instanceTemplate"))++instance ToJSON+         InstanceGroupManagersSetInstanceTemplateRequest where+        toJSON+          InstanceGroupManagersSetInstanceTemplateRequest{..}+          = object+              (catMaybes+                 [("instanceTemplate" .=) <$>+                    _igmsitrInstanceTemplate])++-- | Deprecation status for a public resource.+--+-- /See:/ 'deprecationStatus' smart constructor.+data DeprecationStatus = DeprecationStatus+    { _dsState       :: !(Maybe DeprecationStatusState)+    , _dsDeleted     :: !(Maybe Text)+    , _dsReplacement :: !(Maybe Text)+    , _dsObsolete    :: !(Maybe Text)+    , _dsDeprecated  :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DeprecationStatus' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dsState'+--+-- * 'dsDeleted'+--+-- * 'dsReplacement'+--+-- * 'dsObsolete'+--+-- * 'dsDeprecated'+deprecationStatus+    :: DeprecationStatus+deprecationStatus =+    DeprecationStatus+    { _dsState = Nothing+    , _dsDeleted = Nothing+    , _dsReplacement = Nothing+    , _dsObsolete = Nothing+    , _dsDeprecated = Nothing+    }++-- | The deprecation state of this resource. This can be DEPRECATED,+-- OBSOLETE, or DELETED. Operations which create a new resource using a+-- DEPRECATED resource will return successfully, but with a warning+-- indicating the deprecated resource and recommending its replacement.+-- Operations which use OBSOLETE or DELETED resources will be rejected and+-- result in an error.+dsState :: Lens' DeprecationStatus (Maybe DeprecationStatusState)+dsState = lens _dsState (\ s a -> s{_dsState = a})++-- | An optional RFC3339 timestamp on or after which the deprecation state of+-- this resource will be changed to DELETED.+dsDeleted :: Lens' DeprecationStatus (Maybe Text)+dsDeleted+  = lens _dsDeleted (\ s a -> s{_dsDeleted = a})++-- | The URL of the suggested replacement for a deprecated resource. The+-- suggested replacement resource must be the same kind of resource as the+-- deprecated resource.+dsReplacement :: Lens' DeprecationStatus (Maybe Text)+dsReplacement+  = lens _dsReplacement+      (\ s a -> s{_dsReplacement = a})++-- | An optional RFC3339 timestamp on or after which the deprecation state of+-- this resource will be changed to OBSOLETE.+dsObsolete :: Lens' DeprecationStatus (Maybe Text)+dsObsolete+  = lens _dsObsolete (\ s a -> s{_dsObsolete = a})++-- | An optional RFC3339 timestamp on or after which the deprecation state of+-- this resource will be changed to DEPRECATED.+dsDeprecated :: Lens' DeprecationStatus (Maybe Text)+dsDeprecated+  = lens _dsDeprecated (\ s a -> s{_dsDeprecated = a})++instance FromJSON DeprecationStatus where+        parseJSON+          = withObject "DeprecationStatus"+              (\ o ->+                 DeprecationStatus <$>+                   (o .:? "state") <*> (o .:? "deleted") <*>+                     (o .:? "replacement")+                     <*> (o .:? "obsolete")+                     <*> (o .:? "deprecated"))++instance ToJSON DeprecationStatus where+        toJSON DeprecationStatus{..}+          = object+              (catMaybes+                 [("state" .=) <$> _dsState,+                  ("deleted" .=) <$> _dsDeleted,+                  ("replacement" .=) <$> _dsReplacement,+                  ("obsolete" .=) <$> _dsObsolete,+                  ("deprecated" .=) <$> _dsDeprecated])++-- | A persistent disk snapshot resource.+--+-- /See:/ 'snapshot' smart constructor.+data Snapshot = Snapshot+    { _sStorageBytesStatus :: !(Maybe SnapshotStorageBytesStatus)+    , _sStatus             :: !(Maybe SnapshotStatus)+    , _sDiskSizeGb         :: !(Maybe (Textual Int64))+    , _sSourceDiskId       :: !(Maybe Text)+    , _sKind               :: !Text+    , _sStorageBytes       :: !(Maybe (Textual Int64))+    , _sSelfLink           :: !(Maybe Text)+    , _sName               :: !(Maybe Text)+    , _sCreationTimestamp  :: !(Maybe Text)+    , _sId                 :: !(Maybe (Textual Word64))+    , _sLicenses           :: !(Maybe [Text])+    , _sSourceDisk         :: !(Maybe Text)+    , _sDescription        :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Snapshot' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sStorageBytesStatus'+--+-- * 'sStatus'+--+-- * 'sDiskSizeGb'+--+-- * 'sSourceDiskId'+--+-- * 'sKind'+--+-- * 'sStorageBytes'+--+-- * 'sSelfLink'+--+-- * 'sName'+--+-- * 'sCreationTimestamp'+--+-- * 'sId'+--+-- * 'sLicenses'+--+-- * 'sSourceDisk'+--+-- * 'sDescription'+snapshot+    :: Snapshot+snapshot =+    Snapshot+    { _sStorageBytesStatus = Nothing+    , _sStatus = Nothing+    , _sDiskSizeGb = Nothing+    , _sSourceDiskId = Nothing+    , _sKind = "compute#snapshot"+    , _sStorageBytes = Nothing+    , _sSelfLink = Nothing+    , _sName = Nothing+    , _sCreationTimestamp = Nothing+    , _sId = Nothing+    , _sLicenses = Nothing+    , _sSourceDisk = Nothing+    , _sDescription = Nothing+    }++-- | [Output Only] An indicator whether storageBytes is in a stable state or+-- it is being adjusted as a result of shared storage reallocation.+sStorageBytesStatus :: Lens' Snapshot (Maybe SnapshotStorageBytesStatus)+sStorageBytesStatus+  = lens _sStorageBytesStatus+      (\ s a -> s{_sStorageBytesStatus = a})++-- | [Output Only] The status of the snapshot.+sStatus :: Lens' Snapshot (Maybe SnapshotStatus)+sStatus = lens _sStatus (\ s a -> s{_sStatus = a})++-- | [Output Only] Size of the snapshot, specified in GB.+sDiskSizeGb :: Lens' Snapshot (Maybe Int64)+sDiskSizeGb+  = lens _sDiskSizeGb (\ s a -> s{_sDiskSizeGb = a}) .+      mapping _Coerce++-- | [Output Only] The ID value of the disk used to create this snapshot.+-- This value may be used to determine whether the snapshot was taken from+-- the current or a previous instance of a given disk name.+sSourceDiskId :: Lens' Snapshot (Maybe Text)+sSourceDiskId+  = lens _sSourceDiskId+      (\ s a -> s{_sSourceDiskId = a})++-- | [Output Only] Type of the resource. Always compute#snapshot for Snapshot+-- resources.+sKind :: Lens' Snapshot Text+sKind = lens _sKind (\ s a -> s{_sKind = a})++-- | [Output Only] A size of the the storage used by the snapshot. As+-- snapshots share storage, this number is expected to change with snapshot+-- creation\/deletion.+sStorageBytes :: Lens' Snapshot (Maybe Int64)+sStorageBytes+  = lens _sStorageBytes+      (\ s a -> s{_sStorageBytes = a})+      . mapping _Coerce++-- | [Output Only] Server-defined URL for the resource.+sSelfLink :: Lens' Snapshot (Maybe Text)+sSelfLink+  = lens _sSelfLink (\ s a -> s{_sSelfLink = a})++-- | Name of the resource; provided by the client when the resource is+-- created. The name must be 1-63 characters long, and comply with RFC1035.+-- Specifically, the name must be 1-63 characters long and match the+-- regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first+-- character must be a lowercase letter, and all following characters must+-- be a dash, lowercase letter, or digit, except the last character, which+-- cannot be a dash.+sName :: Lens' Snapshot (Maybe Text)+sName = lens _sName (\ s a -> s{_sName = a})++-- | [Output Only] Creation timestamp in RFC3339 text format.+sCreationTimestamp :: Lens' Snapshot (Maybe Text)+sCreationTimestamp+  = lens _sCreationTimestamp+      (\ s a -> s{_sCreationTimestamp = a})++-- | [Output Only] Unique identifier for the resource; defined by the server.+sId :: Lens' Snapshot (Maybe Word64)+sId+  = lens _sId (\ s a -> s{_sId = a}) . mapping _Coerce++-- | Public visible licenses.+sLicenses :: Lens' Snapshot [Text]+sLicenses+  = lens _sLicenses (\ s a -> s{_sLicenses = a}) .+      _Default+      . _Coerce++-- | The source disk used to create this snapshot.+sSourceDisk :: Lens' Snapshot (Maybe Text)+sSourceDisk+  = lens _sSourceDisk (\ s a -> s{_sSourceDisk = a})++-- | An optional textual description of the resource; provided by the client+-- when the resource is created.+sDescription :: Lens' Snapshot (Maybe Text)+sDescription+  = lens _sDescription (\ s a -> s{_sDescription = a})++instance FromJSON Snapshot where+        parseJSON+          = withObject "Snapshot"+              (\ o ->+                 Snapshot <$>+                   (o .:? "storageBytesStatus") <*> (o .:? "status") <*>+                     (o .:? "diskSizeGb")+                     <*> (o .:? "sourceDiskId")+                     <*> (o .:? "kind" .!= "compute#snapshot")+                     <*> (o .:? "storageBytes")+                     <*> (o .:? "selfLink")+                     <*> (o .:? "name")+                     <*> (o .:? "creationTimestamp")+                     <*> (o .:? "id")+                     <*> (o .:? "licenses" .!= mempty)+                     <*> (o .:? "sourceDisk")+                     <*> (o .:? "description"))++instance ToJSON Snapshot where+        toJSON Snapshot{..}+          = object+              (catMaybes+                 [("storageBytesStatus" .=) <$> _sStorageBytesStatus,+                  ("status" .=) <$> _sStatus,+                  ("diskSizeGb" .=) <$> _sDiskSizeGb,+                  ("sourceDiskId" .=) <$> _sSourceDiskId,+                  Just ("kind" .= _sKind),+                  ("storageBytes" .=) <$> _sStorageBytes,+                  ("selfLink" .=) <$> _sSelfLink,+                  ("name" .=) <$> _sName,+                  ("creationTimestamp" .=) <$> _sCreationTimestamp,+                  ("id" .=) <$> _sId, ("licenses" .=) <$> _sLicenses,+                  ("sourceDisk" .=) <$> _sSourceDisk,+                  ("description" .=) <$> _sDescription])++-- | Custom utilization metric policy.+--+-- /See:/ 'autoscalingPolicyCustomMetricUtilization' smart constructor.+data AutoscalingPolicyCustomMetricUtilization = AutoscalingPolicyCustomMetricUtilization+    { _apcmuUtilizationTarget     :: !(Maybe (Textual Double))+    , _apcmuMetric                :: !(Maybe Text)+    , _apcmuUtilizationTargetType :: !(Maybe AutoscalingPolicyCustomMetricUtilizationUtilizationTargetType)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'AutoscalingPolicyCustomMetricUtilization' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'apcmuUtilizationTarget'+--+-- * 'apcmuMetric'+--+-- * 'apcmuUtilizationTargetType'+autoscalingPolicyCustomMetricUtilization+    :: AutoscalingPolicyCustomMetricUtilization+autoscalingPolicyCustomMetricUtilization =+    AutoscalingPolicyCustomMetricUtilization+    { _apcmuUtilizationTarget = Nothing+    , _apcmuMetric = Nothing+    , _apcmuUtilizationTargetType = Nothing+    }++-- | Target value of the metric which Autoscaler should maintain. Must be a+-- positive value.+apcmuUtilizationTarget :: Lens' AutoscalingPolicyCustomMetricUtilization (Maybe Double)+apcmuUtilizationTarget+  = lens _apcmuUtilizationTarget+      (\ s a -> s{_apcmuUtilizationTarget = a})+      . mapping _Coerce++-- | Identifier of the metric. It should be a Cloud Monitoring metric. The+-- metric can not have negative values. The metric should be an utilization+-- metric (increasing number of VMs handling requests x times should reduce+-- average value of the metric roughly x times). For example you could use:+-- compute.googleapis.com\/instance\/network\/received_bytes_count.+apcmuMetric :: Lens' AutoscalingPolicyCustomMetricUtilization (Maybe Text)+apcmuMetric+  = lens _apcmuMetric (\ s a -> s{_apcmuMetric = a})++-- | Defines type in which utilization_target is expressed.+apcmuUtilizationTargetType :: Lens' AutoscalingPolicyCustomMetricUtilization (Maybe AutoscalingPolicyCustomMetricUtilizationUtilizationTargetType)+apcmuUtilizationTargetType+  = lens _apcmuUtilizationTargetType+      (\ s a -> s{_apcmuUtilizationTargetType = a})++instance FromJSON+         AutoscalingPolicyCustomMetricUtilization where+        parseJSON+          = withObject+              "AutoscalingPolicyCustomMetricUtilization"+              (\ o ->+                 AutoscalingPolicyCustomMetricUtilization <$>+                   (o .:? "utilizationTarget") <*> (o .:? "metric") <*>+                     (o .:? "utilizationTargetType"))++instance ToJSON+         AutoscalingPolicyCustomMetricUtilization where+        toJSON AutoscalingPolicyCustomMetricUtilization{..}+          = object+              (catMaybes+                 [("utilizationTarget" .=) <$>+                    _apcmuUtilizationTarget,+                  ("metric" .=) <$> _apcmuMetric,+                  ("utilizationTargetType" .=) <$>+                    _apcmuUtilizationTargetType])++-- | Contains a list of ForwardingRule resources.+--+-- /See:/ 'forwardingRuleList' smart constructor.+data ForwardingRuleList = ForwardingRuleList+    { _frlNextPageToken :: !(Maybe Text)+    , _frlKind          :: !Text+    , _frlItems         :: !(Maybe [ForwardingRule])+    , _frlSelfLink      :: !(Maybe Text)+    , _frlId            :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ForwardingRuleList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'frlNextPageToken'+--+-- * 'frlKind'+--+-- * 'frlItems'+--+-- * 'frlSelfLink'+--+-- * 'frlId'+forwardingRuleList+    :: ForwardingRuleList+forwardingRuleList =+    ForwardingRuleList+    { _frlNextPageToken = Nothing+    , _frlKind = "compute#forwardingRuleList"+    , _frlItems = Nothing+    , _frlSelfLink = Nothing+    , _frlId = Nothing+    }++-- | [Output Only] A token used to continue a truncated list request.+frlNextPageToken :: Lens' ForwardingRuleList (Maybe Text)+frlNextPageToken+  = lens _frlNextPageToken+      (\ s a -> s{_frlNextPageToken = a})++-- | Type of resource.+frlKind :: Lens' ForwardingRuleList Text+frlKind = lens _frlKind (\ s a -> s{_frlKind = a})++-- | A list of ForwardingRule resources.+frlItems :: Lens' ForwardingRuleList [ForwardingRule]+frlItems+  = lens _frlItems (\ s a -> s{_frlItems = a}) .+      _Default+      . _Coerce++-- | [Output Only] Server-defined URL for this resource.+frlSelfLink :: Lens' ForwardingRuleList (Maybe Text)+frlSelfLink+  = lens _frlSelfLink (\ s a -> s{_frlSelfLink = a})++-- | [Output Only] Unique identifier for the resource. Set by the server.+frlId :: Lens' ForwardingRuleList (Maybe Text)+frlId = lens _frlId (\ s a -> s{_frlId = a})++instance FromJSON ForwardingRuleList where+        parseJSON+          = withObject "ForwardingRuleList"+              (\ o ->+                 ForwardingRuleList <$>+                   (o .:? "nextPageToken") <*>+                     (o .:? "kind" .!= "compute#forwardingRuleList")+                     <*> (o .:? "items" .!= mempty)+                     <*> (o .:? "selfLink")+                     <*> (o .:? "id"))++instance ToJSON ForwardingRuleList where+        toJSON ForwardingRuleList{..}+          = object+              (catMaybes+                 [("nextPageToken" .=) <$> _frlNextPageToken,+                  Just ("kind" .= _frlKind),+                  ("items" .=) <$> _frlItems,+                  ("selfLink" .=) <$> _frlSelfLink,+                  ("id" .=) <$> _frlId])++--+-- /See:/ 'vpnTunnelsScopedList' smart constructor.+data VPNTunnelsScopedList = VPNTunnelsScopedList+    { _vtslVPNTunnels :: !(Maybe [VPNTunnel])+    , _vtslWarning    :: !(Maybe VPNTunnelsScopedListWarning)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'VPNTunnelsScopedList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vtslVPNTunnels'+--+-- * 'vtslWarning'+vpnTunnelsScopedList+    :: VPNTunnelsScopedList+vpnTunnelsScopedList =+    VPNTunnelsScopedList+    { _vtslVPNTunnels = Nothing+    , _vtslWarning = Nothing+    }++-- | List of vpn tunnels contained in this scope.+vtslVPNTunnels :: Lens' VPNTunnelsScopedList [VPNTunnel]+vtslVPNTunnels+  = lens _vtslVPNTunnels+      (\ s a -> s{_vtslVPNTunnels = a})+      . _Default+      . _Coerce++-- | Informational warning which replaces the list of addresses when the list+-- is empty.+vtslWarning :: Lens' VPNTunnelsScopedList (Maybe VPNTunnelsScopedListWarning)+vtslWarning+  = lens _vtslWarning (\ s a -> s{_vtslWarning = a})++instance FromJSON VPNTunnelsScopedList where+        parseJSON+          = withObject "VPNTunnelsScopedList"+              (\ o ->+                 VPNTunnelsScopedList <$>+                   (o .:? "vpnTunnels" .!= mempty) <*>+                     (o .:? "warning"))++instance ToJSON VPNTunnelsScopedList where+        toJSON VPNTunnelsScopedList{..}+          = object+              (catMaybes+                 [("vpnTunnels" .=) <$> _vtslVPNTunnels,+                  ("warning" .=) <$> _vtslWarning])++--+-- /See:/ 'instanceGroupsSetNamedPortsRequest' smart constructor.+data InstanceGroupsSetNamedPortsRequest = InstanceGroupsSetNamedPortsRequest+    { _igsnprFingerprint :: !(Maybe (Textual Word8))+    , _igsnprNamedPorts  :: !(Maybe [NamedPort])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstanceGroupsSetNamedPortsRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'igsnprFingerprint'+--+-- * 'igsnprNamedPorts'+instanceGroupsSetNamedPortsRequest+    :: InstanceGroupsSetNamedPortsRequest+instanceGroupsSetNamedPortsRequest =+    InstanceGroupsSetNamedPortsRequest+    { _igsnprFingerprint = Nothing+    , _igsnprNamedPorts = Nothing+    }++-- | The fingerprint of the named ports information for this instance group.+-- Use this optional property to prevent conflicts when multiple users+-- change the named ports settings concurrently. Obtain the fingerprint+-- with the instanceGroups.get method. Then, include the fingerprint in+-- your request to ensure that you do not overwrite changes that were+-- applied from another concurrent request.+igsnprFingerprint :: Lens' InstanceGroupsSetNamedPortsRequest (Maybe Word8)+igsnprFingerprint+  = lens _igsnprFingerprint+      (\ s a -> s{_igsnprFingerprint = a})+      . mapping _Coerce++-- | The list of named ports to set for this instance group.+igsnprNamedPorts :: Lens' InstanceGroupsSetNamedPortsRequest [NamedPort]+igsnprNamedPorts+  = lens _igsnprNamedPorts+      (\ s a -> s{_igsnprNamedPorts = a})+      . _Default+      . _Coerce++instance FromJSON InstanceGroupsSetNamedPortsRequest+         where+        parseJSON+          = withObject "InstanceGroupsSetNamedPortsRequest"+              (\ o ->+                 InstanceGroupsSetNamedPortsRequest <$>+                   (o .:? "fingerprint") <*>+                     (o .:? "namedPorts" .!= mempty))++instance ToJSON InstanceGroupsSetNamedPortsRequest+         where+        toJSON InstanceGroupsSetNamedPortsRequest{..}+          = object+              (catMaybes+                 [("fingerprint" .=) <$> _igsnprFingerprint,+                  ("namedPorts" .=) <$> _igsnprNamedPorts])++-- | Contains a list of Operation resources.+--+-- /See:/ 'operationList' smart constructor.+data OperationList = OperationList+    { _olNextPageToken :: !(Maybe Text)+    , _olKind          :: !Text+    , _olItems         :: !(Maybe [Operation])+    , _olSelfLink      :: !(Maybe Text)+    , _olId            :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'OperationList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'olNextPageToken'+--+-- * 'olKind'+--+-- * 'olItems'+--+-- * 'olSelfLink'+--+-- * 'olId'+operationList+    :: OperationList+operationList =+    OperationList+    { _olNextPageToken = Nothing+    , _olKind = "compute#operationList"+    , _olItems = Nothing+    , _olSelfLink = Nothing+    , _olId = Nothing+    }++-- | [Output Only] A token used to continue a truncate.+olNextPageToken :: Lens' OperationList (Maybe Text)+olNextPageToken+  = lens _olNextPageToken+      (\ s a -> s{_olNextPageToken = a})++-- | [Output Only] Type of resource. Always compute#operations for Operations+-- resource.+olKind :: Lens' OperationList Text+olKind = lens _olKind (\ s a -> s{_olKind = a})++-- | [Output Only] The Operation resources.+olItems :: Lens' OperationList [Operation]+olItems+  = lens _olItems (\ s a -> s{_olItems = a}) . _Default+      . _Coerce++-- | [Output Only] Server-defined URL for this resource.+olSelfLink :: Lens' OperationList (Maybe Text)+olSelfLink+  = lens _olSelfLink (\ s a -> s{_olSelfLink = a})++-- | [Output Only] Unique identifier for the resource; defined by the server.+olId :: Lens' OperationList (Maybe Text)+olId = lens _olId (\ s a -> s{_olId = a})++instance FromJSON OperationList where+        parseJSON+          = withObject "OperationList"+              (\ o ->+                 OperationList <$>+                   (o .:? "nextPageToken") <*>+                     (o .:? "kind" .!= "compute#operationList")+                     <*> (o .:? "items" .!= mempty)+                     <*> (o .:? "selfLink")+                     <*> (o .:? "id"))++instance ToJSON OperationList where+        toJSON OperationList{..}+          = object+              (catMaybes+                 [("nextPageToken" .=) <$> _olNextPageToken,+                  Just ("kind" .= _olKind), ("items" .=) <$> _olItems,+                  ("selfLink" .=) <$> _olSelfLink,+                  ("id" .=) <$> _olId])++-- | A list of Disk resources.+--+-- /See:/ 'diskList' smart constructor.+data DiskList = DiskList+    { _dlNextPageToken :: !(Maybe Text)+    , _dlKind          :: !Text+    , _dlItems         :: !(Maybe [Disk])+    , _dlSelfLink      :: !(Maybe Text)+    , _dlId            :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DiskList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dlNextPageToken'+--+-- * 'dlKind'+--+-- * 'dlItems'+--+-- * 'dlSelfLink'+--+-- * 'dlId'+diskList+    :: DiskList+diskList =+    DiskList+    { _dlNextPageToken = Nothing+    , _dlKind = "compute#diskList"+    , _dlItems = Nothing+    , _dlSelfLink = Nothing+    , _dlId = Nothing+    }++-- | [Output Only] A token used to continue a truncated list request.+dlNextPageToken :: Lens' DiskList (Maybe Text)+dlNextPageToken+  = lens _dlNextPageToken+      (\ s a -> s{_dlNextPageToken = a})++-- | [Output Only] Type of resource. Always compute#diskList for lists of+-- disks.+dlKind :: Lens' DiskList Text+dlKind = lens _dlKind (\ s a -> s{_dlKind = a})++-- | [Output Only] A list of persistent disks.+dlItems :: Lens' DiskList [Disk]+dlItems+  = lens _dlItems (\ s a -> s{_dlItems = a}) . _Default+      . _Coerce++-- | [Output Only] Server-defined URL for this resource.+dlSelfLink :: Lens' DiskList (Maybe Text)+dlSelfLink+  = lens _dlSelfLink (\ s a -> s{_dlSelfLink = a})++-- | [Output Only] Unique identifier for the resource; defined by the server.+dlId :: Lens' DiskList (Maybe Text)+dlId = lens _dlId (\ s a -> s{_dlId = a})++instance FromJSON DiskList where+        parseJSON+          = withObject "DiskList"+              (\ o ->+                 DiskList <$>+                   (o .:? "nextPageToken") <*>+                     (o .:? "kind" .!= "compute#diskList")+                     <*> (o .:? "items" .!= mempty)+                     <*> (o .:? "selfLink")+                     <*> (o .:? "id"))++instance ToJSON DiskList where+        toJSON DiskList{..}+          = object+              (catMaybes+                 [("nextPageToken" .=) <$> _dlNextPageToken,+                  Just ("kind" .= _dlKind), ("items" .=) <$> _dlItems,+                  ("selfLink" .=) <$> _dlSelfLink,+                  ("id" .=) <$> _dlId])++--+-- /See:/ 'targetPoolsAddInstanceRequest' smart constructor.+newtype TargetPoolsAddInstanceRequest = TargetPoolsAddInstanceRequest+    { _tpairInstances :: Maybe [InstanceReference]+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TargetPoolsAddInstanceRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tpairInstances'+targetPoolsAddInstanceRequest+    :: TargetPoolsAddInstanceRequest+targetPoolsAddInstanceRequest =+    TargetPoolsAddInstanceRequest+    { _tpairInstances = Nothing+    }++-- | URLs of the instances to be added to targetPool.+tpairInstances :: Lens' TargetPoolsAddInstanceRequest [InstanceReference]+tpairInstances+  = lens _tpairInstances+      (\ s a -> s{_tpairInstances = a})+      . _Default+      . _Coerce++instance FromJSON TargetPoolsAddInstanceRequest where+        parseJSON+          = withObject "TargetPoolsAddInstanceRequest"+              (\ o ->+                 TargetPoolsAddInstanceRequest <$>+                   (o .:? "instances" .!= mempty))++instance ToJSON TargetPoolsAddInstanceRequest where+        toJSON TargetPoolsAddInstanceRequest{..}+          = object+              (catMaybes [("instances" .=) <$> _tpairInstances])++--+-- /See:/ 'instanceGroupsAddInstancesRequest' smart constructor.+newtype InstanceGroupsAddInstancesRequest = InstanceGroupsAddInstancesRequest+    { _igairInstances :: Maybe [InstanceReference]+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstanceGroupsAddInstancesRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'igairInstances'+instanceGroupsAddInstancesRequest+    :: InstanceGroupsAddInstancesRequest+instanceGroupsAddInstancesRequest =+    InstanceGroupsAddInstancesRequest+    { _igairInstances = Nothing+    }++-- | The list of instances to add to the instance group.+igairInstances :: Lens' InstanceGroupsAddInstancesRequest [InstanceReference]+igairInstances+  = lens _igairInstances+      (\ s a -> s{_igairInstances = a})+      . _Default+      . _Coerce++instance FromJSON InstanceGroupsAddInstancesRequest+         where+        parseJSON+          = withObject "InstanceGroupsAddInstancesRequest"+              (\ o ->+                 InstanceGroupsAddInstancesRequest <$>+                   (o .:? "instances" .!= mempty))++instance ToJSON InstanceGroupsAddInstancesRequest+         where+        toJSON InstanceGroupsAddInstancesRequest{..}+          = object+              (catMaybes [("instances" .=) <$> _igairInstances])++-- | [Output Only] A list of managed instance groups.+--+-- /See:/ 'instanceGroupManagerList' smart constructor.+data InstanceGroupManagerList = InstanceGroupManagerList+    { _igmlNextPageToken :: !(Maybe Text)+    , _igmlKind          :: !Text+    , _igmlItems         :: !(Maybe [InstanceGroupManager])+    , _igmlSelfLink      :: !(Maybe Text)+    , _igmlId            :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstanceGroupManagerList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'igmlNextPageToken'+--+-- * 'igmlKind'+--+-- * 'igmlItems'+--+-- * 'igmlSelfLink'+--+-- * 'igmlId'+instanceGroupManagerList+    :: InstanceGroupManagerList+instanceGroupManagerList =+    InstanceGroupManagerList+    { _igmlNextPageToken = Nothing+    , _igmlKind = "compute#instanceGroupManagerList"+    , _igmlItems = Nothing+    , _igmlSelfLink = Nothing+    , _igmlId = Nothing+    }++-- | [Output Only] A token that is used to continue a truncated list request.+igmlNextPageToken :: Lens' InstanceGroupManagerList (Maybe Text)+igmlNextPageToken+  = lens _igmlNextPageToken+      (\ s a -> s{_igmlNextPageToken = a})++-- | [Output Only] The resource type, which is always+-- compute#instanceGroupManagerList for a list of managed instance groups.+igmlKind :: Lens' InstanceGroupManagerList Text+igmlKind = lens _igmlKind (\ s a -> s{_igmlKind = a})++-- | [Output Only] A list of managed instance groups.+igmlItems :: Lens' InstanceGroupManagerList [InstanceGroupManager]+igmlItems+  = lens _igmlItems (\ s a -> s{_igmlItems = a}) .+      _Default+      . _Coerce++-- | [Output Only] The URL for this resource type. The server generates this+-- URL.+igmlSelfLink :: Lens' InstanceGroupManagerList (Maybe Text)+igmlSelfLink+  = lens _igmlSelfLink (\ s a -> s{_igmlSelfLink = a})++-- | [Output Only] A unique identifier for this resource type. The server+-- generates this identifier.+igmlId :: Lens' InstanceGroupManagerList (Maybe Text)+igmlId = lens _igmlId (\ s a -> s{_igmlId = a})++instance FromJSON InstanceGroupManagerList where+        parseJSON+          = withObject "InstanceGroupManagerList"+              (\ o ->+                 InstanceGroupManagerList <$>+                   (o .:? "nextPageToken") <*>+                     (o .:? "kind" .!= "compute#instanceGroupManagerList")+                     <*> (o .:? "items" .!= mempty)+                     <*> (o .:? "selfLink")+                     <*> (o .:? "id"))++instance ToJSON InstanceGroupManagerList where+        toJSON InstanceGroupManagerList{..}+          = object+              (catMaybes+                 [("nextPageToken" .=) <$> _igmlNextPageToken,+                  Just ("kind" .= _igmlKind),+                  ("items" .=) <$> _igmlItems,+                  ("selfLink" .=) <$> _igmlSelfLink,+                  ("id" .=) <$> _igmlId])++-- | An Image resource.+--+-- /See:/ 'image' smart constructor.+data Image = Image+    { _iStatus            :: !(Maybe ImageStatus)+    , _iDiskSizeGb        :: !(Maybe (Textual Int64))+    , _iSourceType        :: !ImageSourceType+    , _iSourceDiskId      :: !(Maybe Text)+    , _iKind              :: !Text+    , _iArchiveSizeBytes  :: !(Maybe (Textual Int64))+    , _iRawDisk           :: !(Maybe ImageRawDisk)+    , _iSelfLink          :: !(Maybe Text)+    , _iName              :: !(Maybe Text)+    , _iCreationTimestamp :: !(Maybe Text)+    , _iId                :: !(Maybe (Textual Word64))+    , _iLicenses          :: !(Maybe [Text])+    , _iSourceDisk        :: !(Maybe Text)+    , _iDescription       :: !(Maybe Text)+    , _iDeprecated        :: !(Maybe DeprecationStatus)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Image' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'iStatus'+--+-- * 'iDiskSizeGb'+--+-- * 'iSourceType'+--+-- * 'iSourceDiskId'+--+-- * 'iKind'+--+-- * 'iArchiveSizeBytes'+--+-- * 'iRawDisk'+--+-- * 'iSelfLink'+--+-- * 'iName'+--+-- * 'iCreationTimestamp'+--+-- * 'iId'+--+-- * 'iLicenses'+--+-- * 'iSourceDisk'+--+-- * 'iDescription'+--+-- * 'iDeprecated'+image+    :: Image+image =+    Image+    { _iStatus = Nothing+    , _iDiskSizeGb = Nothing+    , _iSourceType = Raw+    , _iSourceDiskId = Nothing+    , _iKind = "compute#image"+    , _iArchiveSizeBytes = Nothing+    , _iRawDisk = Nothing+    , _iSelfLink = Nothing+    , _iName = Nothing+    , _iCreationTimestamp = Nothing+    , _iId = Nothing+    , _iLicenses = Nothing+    , _iSourceDisk = Nothing+    , _iDescription = Nothing+    , _iDeprecated = Nothing+    }++-- | [Output Only] The status of the image. An image can be used to create+-- other resources, such as instances, only after the image has been+-- successfully created and the status is set to READY. Possible values are+-- FAILED, PENDING, or READY.+iStatus :: Lens' Image (Maybe ImageStatus)+iStatus = lens _iStatus (\ s a -> s{_iStatus = a})++-- | Size of the image when restored onto a persistent disk (in GB).+iDiskSizeGb :: Lens' Image (Maybe Int64)+iDiskSizeGb+  = lens _iDiskSizeGb (\ s a -> s{_iDiskSizeGb = a}) .+      mapping _Coerce++-- | The type of the image used to create this disk. The default and only+-- value is RAW+iSourceType :: Lens' Image ImageSourceType+iSourceType+  = lens _iSourceType (\ s a -> s{_iSourceType = a})++-- | The ID value of the disk used to create this image. This value may be+-- used to determine whether the image was taken from the current or a+-- previous instance of a given disk name.+iSourceDiskId :: Lens' Image (Maybe Text)+iSourceDiskId+  = lens _iSourceDiskId+      (\ s a -> s{_iSourceDiskId = a})++-- | [Output Only] Type of the resource. Always compute#image for images.+iKind :: Lens' Image Text+iKind = lens _iKind (\ s a -> s{_iKind = a})++-- | Size of the image tar.gz archive stored in Google Cloud Storage (in+-- bytes).+iArchiveSizeBytes :: Lens' Image (Maybe Int64)+iArchiveSizeBytes+  = lens _iArchiveSizeBytes+      (\ s a -> s{_iArchiveSizeBytes = a})+      . mapping _Coerce++-- | The parameters of the raw disk image.+iRawDisk :: Lens' Image (Maybe ImageRawDisk)+iRawDisk = lens _iRawDisk (\ s a -> s{_iRawDisk = a})++-- | [Output Only] Server-defined URL for the resource.+iSelfLink :: Lens' Image (Maybe Text)+iSelfLink+  = lens _iSelfLink (\ s a -> s{_iSelfLink = a})++-- | Name of the resource; provided by the client when the resource is+-- created. The name must be 1-63 characters long, and comply with RFC1035.+-- Specifically, the name must be 1-63 characters long and match the+-- regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first+-- character must be a lowercase letter, and all following characters must+-- be a dash, lowercase letter, or digit, except the last character, which+-- cannot be a dash.+iName :: Lens' Image (Maybe Text)+iName = lens _iName (\ s a -> s{_iName = a})++-- | [Output Only] Creation timestamp in RFC3339 text format.+iCreationTimestamp :: Lens' Image (Maybe Text)+iCreationTimestamp+  = lens _iCreationTimestamp+      (\ s a -> s{_iCreationTimestamp = a})++-- | [Output Only] Unique identifier for the resource; defined by the server.+iId :: Lens' Image (Maybe Word64)+iId+  = lens _iId (\ s a -> s{_iId = a}) . mapping _Coerce++-- | Any applicable publicly visible licenses.+iLicenses :: Lens' Image [Text]+iLicenses+  = lens _iLicenses (\ s a -> s{_iLicenses = a}) .+      _Default+      . _Coerce++-- | URL of the The source disk used to create this image. This can be a full+-- or valid partial URL. You must provide either this property or the+-- rawDisk.source property but not both to create an image. For example,+-- the following are valid values: -+-- https:\/\/www.googleapis.com\/compute\/v1\/projects\/project\/zones\/zone\/disk\/disk+-- - projects\/project\/zones\/zone\/disk\/disk - zones\/zone\/disks\/disk+iSourceDisk :: Lens' Image (Maybe Text)+iSourceDisk+  = lens _iSourceDisk (\ s a -> s{_iSourceDisk = a})++-- | Textual description of the resource; provided by the client when the+-- resource is created.+iDescription :: Lens' Image (Maybe Text)+iDescription+  = lens _iDescription (\ s a -> s{_iDescription = a})++-- | The deprecation status associated with this image.+iDeprecated :: Lens' Image (Maybe DeprecationStatus)+iDeprecated+  = lens _iDeprecated (\ s a -> s{_iDeprecated = a})++instance FromJSON Image where+        parseJSON+          = withObject "Image"+              (\ o ->+                 Image <$>+                   (o .:? "status") <*> (o .:? "diskSizeGb") <*>+                     (o .:? "sourceType" .!= Raw)+                     <*> (o .:? "sourceDiskId")+                     <*> (o .:? "kind" .!= "compute#image")+                     <*> (o .:? "archiveSizeBytes")+                     <*> (o .:? "rawDisk")+                     <*> (o .:? "selfLink")+                     <*> (o .:? "name")+                     <*> (o .:? "creationTimestamp")+                     <*> (o .:? "id")+                     <*> (o .:? "licenses" .!= mempty)+                     <*> (o .:? "sourceDisk")+                     <*> (o .:? "description")+                     <*> (o .:? "deprecated"))++instance ToJSON Image where+        toJSON Image{..}+          = object+              (catMaybes+                 [("status" .=) <$> _iStatus,+                  ("diskSizeGb" .=) <$> _iDiskSizeGb,+                  Just ("sourceType" .= _iSourceType),+                  ("sourceDiskId" .=) <$> _iSourceDiskId,+                  Just ("kind" .= _iKind),+                  ("archiveSizeBytes" .=) <$> _iArchiveSizeBytes,+                  ("rawDisk" .=) <$> _iRawDisk,+                  ("selfLink" .=) <$> _iSelfLink,+                  ("name" .=) <$> _iName,+                  ("creationTimestamp" .=) <$> _iCreationTimestamp,+                  ("id" .=) <$> _iId, ("licenses" .=) <$> _iLicenses,+                  ("sourceDisk" .=) <$> _iSourceDisk,+                  ("description" .=) <$> _iDescription,+                  ("deprecated" .=) <$> _iDeprecated])++-- | A UrlMap resource. This resource defines the mapping from URL to the+-- BackendService resource, based on the \"longest-match\" of the URL\'s+-- host and path.+--+-- /See:/ 'urlMap' smart constructor.+data URLMap = URLMap+    { _umTests             :: !(Maybe [URLMapTest])+    , _umKind              :: !Text+    , _umFingerprint       :: !(Maybe (Textual Word8))+    , _umDefaultService    :: !(Maybe Text)+    , _umSelfLink          :: !(Maybe Text)+    , _umName              :: !(Maybe Text)+    , _umCreationTimestamp :: !(Maybe Text)+    , _umPathMatchers      :: !(Maybe [PathMatcher])+    , _umId                :: !(Maybe (Textual Word64))+    , _umHostRules         :: !(Maybe [HostRule])+    , _umDescription       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'URLMap' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'umTests'+--+-- * 'umKind'+--+-- * 'umFingerprint'+--+-- * 'umDefaultService'+--+-- * 'umSelfLink'+--+-- * 'umName'+--+-- * 'umCreationTimestamp'+--+-- * 'umPathMatchers'+--+-- * 'umId'+--+-- * 'umHostRules'+--+-- * 'umDescription'+urlMap+    :: URLMap+urlMap =+    URLMap+    { _umTests = Nothing+    , _umKind = "compute#urlMap"+    , _umFingerprint = Nothing+    , _umDefaultService = Nothing+    , _umSelfLink = Nothing+    , _umName = Nothing+    , _umCreationTimestamp = Nothing+    , _umPathMatchers = Nothing+    , _umId = Nothing+    , _umHostRules = Nothing+    , _umDescription = Nothing+    }++-- | The list of expected URL mappings. Request to update this UrlMap will+-- succeed only all of the test cases pass.+umTests :: Lens' URLMap [URLMapTest]+umTests+  = lens _umTests (\ s a -> s{_umTests = a}) . _Default+      . _Coerce++-- | Type of the resource.+umKind :: Lens' URLMap Text+umKind = lens _umKind (\ s a -> s{_umKind = a})++-- | Fingerprint of this resource. A hash of the contents stored in this+-- object. This field is used in optimistic locking. This field will be+-- ignored when inserting a UrlMap. An up-to-date fingerprint must be+-- provided in order to update the UrlMap.+umFingerprint :: Lens' URLMap (Maybe Word8)+umFingerprint+  = lens _umFingerprint+      (\ s a -> s{_umFingerprint = a})+      . mapping _Coerce++-- | The URL of the BackendService resource if none of the hostRules match.+umDefaultService :: Lens' URLMap (Maybe Text)+umDefaultService+  = lens _umDefaultService+      (\ s a -> s{_umDefaultService = a})++-- | [Output Only] Server-defined URL for the resource.+umSelfLink :: Lens' URLMap (Maybe Text)+umSelfLink+  = lens _umSelfLink (\ s a -> s{_umSelfLink = a})++-- | Name of the resource. Provided by the client when the resource is+-- created. The name must be 1-63 characters long, and comply with RFC1035.+-- Specifically, the name must be 1-63 characters long and match the+-- regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first+-- character must be a lowercase letter, and all following characters must+-- be a dash, lowercase letter, or digit, except the last character, which+-- cannot be a dash.+umName :: Lens' URLMap (Maybe Text)+umName = lens _umName (\ s a -> s{_umName = a})++-- | [Output Only] Creation timestamp in RFC3339 text format.+umCreationTimestamp :: Lens' URLMap (Maybe Text)+umCreationTimestamp+  = lens _umCreationTimestamp+      (\ s a -> s{_umCreationTimestamp = a})++-- | The list of named PathMatchers to use against the URL.+umPathMatchers :: Lens' URLMap [PathMatcher]+umPathMatchers+  = lens _umPathMatchers+      (\ s a -> s{_umPathMatchers = a})+      . _Default+      . _Coerce++-- | [Output Only] Unique identifier for the resource. Set by the server.+umId :: Lens' URLMap (Maybe Word64)+umId+  = lens _umId (\ s a -> s{_umId = a}) .+      mapping _Coerce++-- | The list of HostRules to use against the URL.+umHostRules :: Lens' URLMap [HostRule]+umHostRules+  = lens _umHostRules (\ s a -> s{_umHostRules = a}) .+      _Default+      . _Coerce++-- | An optional textual description of the resource. Provided by the client+-- when the resource is created.+umDescription :: Lens' URLMap (Maybe Text)+umDescription+  = lens _umDescription+      (\ s a -> s{_umDescription = a})++instance FromJSON URLMap where+        parseJSON+          = withObject "URLMap"+              (\ o ->+                 URLMap <$>+                   (o .:? "tests" .!= mempty) <*>+                     (o .:? "kind" .!= "compute#urlMap")+                     <*> (o .:? "fingerprint")+                     <*> (o .:? "defaultService")+                     <*> (o .:? "selfLink")+                     <*> (o .:? "name")+                     <*> (o .:? "creationTimestamp")+                     <*> (o .:? "pathMatchers" .!= mempty)+                     <*> (o .:? "id")+                     <*> (o .:? "hostRules" .!= mempty)+                     <*> (o .:? "description"))++instance ToJSON URLMap where+        toJSON URLMap{..}+          = object+              (catMaybes+                 [("tests" .=) <$> _umTests, Just ("kind" .= _umKind),+                  ("fingerprint" .=) <$> _umFingerprint,+                  ("defaultService" .=) <$> _umDefaultService,+                  ("selfLink" .=) <$> _umSelfLink,+                  ("name" .=) <$> _umName,+                  ("creationTimestamp" .=) <$> _umCreationTimestamp,+                  ("pathMatchers" .=) <$> _umPathMatchers,+                  ("id" .=) <$> _umId,+                  ("hostRules" .=) <$> _umHostRules,+                  ("description" .=) <$> _umDescription])++-- | A map of scoped instance group lists.+--+-- /See:/ 'instanceGroupAggregatedListItems' smart constructor.+newtype InstanceGroupAggregatedListItems = InstanceGroupAggregatedListItems+    { _igaliAddtional :: HashMap Text InstanceGroupsScopedList+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstanceGroupAggregatedListItems' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'igaliAddtional'+instanceGroupAggregatedListItems+    :: HashMap Text InstanceGroupsScopedList -- ^ 'igaliAddtional'+    -> InstanceGroupAggregatedListItems+instanceGroupAggregatedListItems pIgaliAddtional_ =+    InstanceGroupAggregatedListItems+    { _igaliAddtional = _Coerce # pIgaliAddtional_+    }++-- | The name of the scope that contains this set of instance groups.+igaliAddtional :: Lens' InstanceGroupAggregatedListItems (HashMap Text InstanceGroupsScopedList)+igaliAddtional+  = lens _igaliAddtional+      (\ s a -> s{_igaliAddtional = a})+      . _Coerce++instance FromJSON InstanceGroupAggregatedListItems+         where+        parseJSON+          = withObject "InstanceGroupAggregatedListItems"+              (\ o ->+                 InstanceGroupAggregatedListItems <$>+                   (parseJSONObject o))++instance ToJSON InstanceGroupAggregatedListItems+         where+        toJSON = toJSON . _igaliAddtional++-- | Contains a list of TargetPool resources.+--+-- /See:/ 'targetPoolList' smart constructor.+data TargetPoolList = TargetPoolList+    { _tplNextPageToken :: !(Maybe Text)+    , _tplKind          :: !Text+    , _tplItems         :: !(Maybe [TargetPool])+    , _tplSelfLink      :: !(Maybe Text)+    , _tplId            :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TargetPoolList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tplNextPageToken'+--+-- * 'tplKind'+--+-- * 'tplItems'+--+-- * 'tplSelfLink'+--+-- * 'tplId'+targetPoolList+    :: TargetPoolList+targetPoolList =+    TargetPoolList+    { _tplNextPageToken = Nothing+    , _tplKind = "compute#targetPoolList"+    , _tplItems = Nothing+    , _tplSelfLink = Nothing+    , _tplId = Nothing+    }++-- | [Output Only] A token used to continue a truncated list request.+tplNextPageToken :: Lens' TargetPoolList (Maybe Text)+tplNextPageToken+  = lens _tplNextPageToken+      (\ s a -> s{_tplNextPageToken = a})++-- | Type of resource.+tplKind :: Lens' TargetPoolList Text+tplKind = lens _tplKind (\ s a -> s{_tplKind = a})++-- | A list of TargetPool resources.+tplItems :: Lens' TargetPoolList [TargetPool]+tplItems+  = lens _tplItems (\ s a -> s{_tplItems = a}) .+      _Default+      . _Coerce++-- | [Output Only] Server-defined URL for this resource.+tplSelfLink :: Lens' TargetPoolList (Maybe Text)+tplSelfLink+  = lens _tplSelfLink (\ s a -> s{_tplSelfLink = a})++-- | [Output Only] Unique identifier for the resource. Defined by the server.+tplId :: Lens' TargetPoolList (Maybe Text)+tplId = lens _tplId (\ s a -> s{_tplId = a})++instance FromJSON TargetPoolList where+        parseJSON+          = withObject "TargetPoolList"+              (\ o ->+                 TargetPoolList <$>+                   (o .:? "nextPageToken") <*>+                     (o .:? "kind" .!= "compute#targetPoolList")+                     <*> (o .:? "items" .!= mempty)+                     <*> (o .:? "selfLink")+                     <*> (o .:? "id"))++instance ToJSON TargetPoolList where+        toJSON TargetPoolList{..}+          = object+              (catMaybes+                 [("nextPageToken" .=) <$> _tplNextPageToken,+                  Just ("kind" .= _tplKind),+                  ("items" .=) <$> _tplItems,+                  ("selfLink" .=) <$> _tplSelfLink,+                  ("id" .=) <$> _tplId])++--+-- /See:/ 'targetInstanceAggregatedList' smart constructor.+data TargetInstanceAggregatedList = TargetInstanceAggregatedList+    { _tialNextPageToken :: !(Maybe Text)+    , _tialKind          :: !Text+    , _tialItems         :: !(Maybe TargetInstanceAggregatedListItems)+    , _tialSelfLink      :: !(Maybe Text)+    , _tialId            :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TargetInstanceAggregatedList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tialNextPageToken'+--+-- * 'tialKind'+--+-- * 'tialItems'+--+-- * 'tialSelfLink'+--+-- * 'tialId'+targetInstanceAggregatedList+    :: TargetInstanceAggregatedList+targetInstanceAggregatedList =+    TargetInstanceAggregatedList+    { _tialNextPageToken = Nothing+    , _tialKind = "compute#targetInstanceAggregatedList"+    , _tialItems = Nothing+    , _tialSelfLink = Nothing+    , _tialId = Nothing+    }++-- | [Output Only] A token used to continue a truncated list request.+tialNextPageToken :: Lens' TargetInstanceAggregatedList (Maybe Text)+tialNextPageToken+  = lens _tialNextPageToken+      (\ s a -> s{_tialNextPageToken = a})++-- | Type of resource.+tialKind :: Lens' TargetInstanceAggregatedList Text+tialKind = lens _tialKind (\ s a -> s{_tialKind = a})++-- | A map of scoped target instance lists.+tialItems :: Lens' TargetInstanceAggregatedList (Maybe TargetInstanceAggregatedListItems)+tialItems+  = lens _tialItems (\ s a -> s{_tialItems = a})++-- | [Output Only] Server-defined URL for this resource.+tialSelfLink :: Lens' TargetInstanceAggregatedList (Maybe Text)+tialSelfLink+  = lens _tialSelfLink (\ s a -> s{_tialSelfLink = a})++-- | [Output Only] Unique identifier for the resource; defined by the server.+tialId :: Lens' TargetInstanceAggregatedList (Maybe Text)+tialId = lens _tialId (\ s a -> s{_tialId = a})++instance FromJSON TargetInstanceAggregatedList where+        parseJSON+          = withObject "TargetInstanceAggregatedList"+              (\ o ->+                 TargetInstanceAggregatedList <$>+                   (o .:? "nextPageToken") <*>+                     (o .:? "kind" .!=+                        "compute#targetInstanceAggregatedList")+                     <*> (o .:? "items")+                     <*> (o .:? "selfLink")+                     <*> (o .:? "id"))++instance ToJSON TargetInstanceAggregatedList where+        toJSON TargetInstanceAggregatedList{..}+          = object+              (catMaybes+                 [("nextPageToken" .=) <$> _tialNextPageToken,+                  Just ("kind" .= _tialKind),+                  ("items" .=) <$> _tialItems,+                  ("selfLink" .=) <$> _tialSelfLink,+                  ("id" .=) <$> _tialId])++--+-- /See:/ 'disksScopedList' smart constructor.+data DisksScopedList = DisksScopedList+    { _dslWarning :: !(Maybe DisksScopedListWarning)+    , _dslDisks   :: !(Maybe [Disk])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DisksScopedList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dslWarning'+--+-- * 'dslDisks'+disksScopedList+    :: DisksScopedList+disksScopedList =+    DisksScopedList+    { _dslWarning = Nothing+    , _dslDisks = Nothing+    }++-- | [Output Only] Informational warning which replaces the list of disks+-- when the list is empty.+dslWarning :: Lens' DisksScopedList (Maybe DisksScopedListWarning)+dslWarning+  = lens _dslWarning (\ s a -> s{_dslWarning = a})++-- | [Output Only] List of disks contained in this scope.+dslDisks :: Lens' DisksScopedList [Disk]+dslDisks+  = lens _dslDisks (\ s a -> s{_dslDisks = a}) .+      _Default+      . _Coerce++instance FromJSON DisksScopedList where+        parseJSON+          = withObject "DisksScopedList"+              (\ o ->+                 DisksScopedList <$>+                   (o .:? "warning") <*> (o .:? "disks" .!= mempty))++instance ToJSON DisksScopedList where+        toJSON DisksScopedList{..}+          = object+              (catMaybes+                 [("warning" .=) <$> _dslWarning,+                  ("disks" .=) <$> _dslDisks])++--+-- /See:/ 'instanceGroupManagersScopedList' smart constructor.+data InstanceGroupManagersScopedList = InstanceGroupManagersScopedList+    { _igmslWarning               :: !(Maybe InstanceGroupManagersScopedListWarning)+    , _igmslInstanceGroupManagers :: !(Maybe [InstanceGroupManager])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstanceGroupManagersScopedList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'igmslWarning'+--+-- * 'igmslInstanceGroupManagers'+instanceGroupManagersScopedList+    :: InstanceGroupManagersScopedList+instanceGroupManagersScopedList =+    InstanceGroupManagersScopedList+    { _igmslWarning = Nothing+    , _igmslInstanceGroupManagers = Nothing+    }++-- | [Output Only] The warning that replaces the list of managed instance+-- groups when the list is empty.+igmslWarning :: Lens' InstanceGroupManagersScopedList (Maybe InstanceGroupManagersScopedListWarning)+igmslWarning+  = lens _igmslWarning (\ s a -> s{_igmslWarning = a})++-- | [Output Only] The list of managed instance groups that are contained in+-- the specified project and zone.+igmslInstanceGroupManagers :: Lens' InstanceGroupManagersScopedList [InstanceGroupManager]+igmslInstanceGroupManagers+  = lens _igmslInstanceGroupManagers+      (\ s a -> s{_igmslInstanceGroupManagers = a})+      . _Default+      . _Coerce++instance FromJSON InstanceGroupManagersScopedList+         where+        parseJSON+          = withObject "InstanceGroupManagersScopedList"+              (\ o ->+                 InstanceGroupManagersScopedList <$>+                   (o .:? "warning") <*>+                     (o .:? "instanceGroupManagers" .!= mempty))++instance ToJSON InstanceGroupManagersScopedList where+        toJSON InstanceGroupManagersScopedList{..}+          = object+              (catMaybes+                 [("warning" .=) <$> _igmslWarning,+                  ("instanceGroupManagers" .=) <$>+                    _igmslInstanceGroupManagers])++--+-- /See:/ 'diskAggregatedList' smart constructor.+data DiskAggregatedList = DiskAggregatedList+    { _dalNextPageToken :: !(Maybe Text)+    , _dalKind          :: !Text+    , _dalItems         :: !(Maybe DiskAggregatedListItems)+    , _dalSelfLink      :: !(Maybe Text)+    , _dalId            :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DiskAggregatedList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dalNextPageToken'+--+-- * 'dalKind'+--+-- * 'dalItems'+--+-- * 'dalSelfLink'+--+-- * 'dalId'+diskAggregatedList+    :: DiskAggregatedList+diskAggregatedList =+    DiskAggregatedList+    { _dalNextPageToken = Nothing+    , _dalKind = "compute#diskAggregatedList"+    , _dalItems = Nothing+    , _dalSelfLink = Nothing+    , _dalId = Nothing+    }++-- | [Output Only] A token used to continue a truncated list request.+dalNextPageToken :: Lens' DiskAggregatedList (Maybe Text)+dalNextPageToken+  = lens _dalNextPageToken+      (\ s a -> s{_dalNextPageToken = a})++-- | [Output Only] Type of resource. Always compute#diskAggregatedList for+-- aggregated lists of persistent disks.+dalKind :: Lens' DiskAggregatedList Text+dalKind = lens _dalKind (\ s a -> s{_dalKind = a})++-- | [Output Only] A map of scoped disk lists.+dalItems :: Lens' DiskAggregatedList (Maybe DiskAggregatedListItems)+dalItems = lens _dalItems (\ s a -> s{_dalItems = a})++-- | [Output Only] Server-defined URL for this resource.+dalSelfLink :: Lens' DiskAggregatedList (Maybe Text)+dalSelfLink+  = lens _dalSelfLink (\ s a -> s{_dalSelfLink = a})++-- | [Output Only] Unique identifier for the resource; defined by the server.+dalId :: Lens' DiskAggregatedList (Maybe Text)+dalId = lens _dalId (\ s a -> s{_dalId = a})++instance FromJSON DiskAggregatedList where+        parseJSON+          = withObject "DiskAggregatedList"+              (\ o ->+                 DiskAggregatedList <$>+                   (o .:? "nextPageToken") <*>+                     (o .:? "kind" .!= "compute#diskAggregatedList")+                     <*> (o .:? "items")+                     <*> (o .:? "selfLink")+                     <*> (o .:? "id"))++instance ToJSON DiskAggregatedList where+        toJSON DiskAggregatedList{..}+          = object+              (catMaybes+                 [("nextPageToken" .=) <$> _dalNextPageToken,+                  Just ("kind" .= _dalKind),+                  ("items" .=) <$> _dalItems,+                  ("selfLink" .=) <$> _dalSelfLink,+                  ("id" .=) <$> _dalId])++--+-- /See:/ 'instanceWithNamedPorts' smart constructor.+data InstanceWithNamedPorts = InstanceWithNamedPorts+    { _iwnpStatus     :: !(Maybe InstanceWithNamedPortsStatus)+    , _iwnpNamedPorts :: !(Maybe [NamedPort])+    , _iwnpInstance   :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstanceWithNamedPorts' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'iwnpStatus'+--+-- * 'iwnpNamedPorts'+--+-- * 'iwnpInstance'+instanceWithNamedPorts+    :: InstanceWithNamedPorts+instanceWithNamedPorts =+    InstanceWithNamedPorts+    { _iwnpStatus = Nothing+    , _iwnpNamedPorts = Nothing+    , _iwnpInstance = Nothing+    }++-- | [Output Only] The status of the instance.+iwnpStatus :: Lens' InstanceWithNamedPorts (Maybe InstanceWithNamedPortsStatus)+iwnpStatus+  = lens _iwnpStatus (\ s a -> s{_iwnpStatus = a})++-- | [Output Only] The named ports that belong to this instance group.+iwnpNamedPorts :: Lens' InstanceWithNamedPorts [NamedPort]+iwnpNamedPorts+  = lens _iwnpNamedPorts+      (\ s a -> s{_iwnpNamedPorts = a})+      . _Default+      . _Coerce++-- | [Output Only] The URL of the instance.+iwnpInstance :: Lens' InstanceWithNamedPorts (Maybe Text)+iwnpInstance+  = lens _iwnpInstance (\ s a -> s{_iwnpInstance = a})++instance FromJSON InstanceWithNamedPorts where+        parseJSON+          = withObject "InstanceWithNamedPorts"+              (\ o ->+                 InstanceWithNamedPorts <$>+                   (o .:? "status") <*> (o .:? "namedPorts" .!= mempty)+                     <*> (o .:? "instance"))++instance ToJSON InstanceWithNamedPorts where+        toJSON InstanceWithNamedPorts{..}+          = object+              (catMaybes+                 [("status" .=) <$> _iwnpStatus,+                  ("namedPorts" .=) <$> _iwnpNamedPorts,+                  ("instance" .=) <$> _iwnpInstance])++--+-- /See:/ 'forwardingRulesScopedList' smart constructor.+data ForwardingRulesScopedList = ForwardingRulesScopedList+    { _frslWarning         :: !(Maybe ForwardingRulesScopedListWarning)+    , _frslForwardingRules :: !(Maybe [ForwardingRule])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ForwardingRulesScopedList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'frslWarning'+--+-- * 'frslForwardingRules'+forwardingRulesScopedList+    :: ForwardingRulesScopedList+forwardingRulesScopedList =+    ForwardingRulesScopedList+    { _frslWarning = Nothing+    , _frslForwardingRules = Nothing+    }++-- | Informational warning which replaces the list of forwarding rules when+-- the list is empty.+frslWarning :: Lens' ForwardingRulesScopedList (Maybe ForwardingRulesScopedListWarning)+frslWarning+  = lens _frslWarning (\ s a -> s{_frslWarning = a})++-- | List of forwarding rules contained in this scope.+frslForwardingRules :: Lens' ForwardingRulesScopedList [ForwardingRule]+frslForwardingRules+  = lens _frslForwardingRules+      (\ s a -> s{_frslForwardingRules = a})+      . _Default+      . _Coerce++instance FromJSON ForwardingRulesScopedList where+        parseJSON+          = withObject "ForwardingRulesScopedList"+              (\ o ->+                 ForwardingRulesScopedList <$>+                   (o .:? "warning") <*>+                     (o .:? "forwardingRules" .!= mempty))++instance ToJSON ForwardingRulesScopedList where+        toJSON ForwardingRulesScopedList{..}+          = object+              (catMaybes+                 [("warning" .=) <$> _frslWarning,+                  ("forwardingRules" .=) <$> _frslForwardingRules])++--+-- /See:/ 'instanceReference' smart constructor.+newtype InstanceReference = InstanceReference+    { _iInstance :: Maybe Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstanceReference' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'iInstance'+instanceReference+    :: InstanceReference+instanceReference =+    InstanceReference+    { _iInstance = Nothing+    }++-- | The URL for a specific instance.+iInstance :: Lens' InstanceReference (Maybe Text)+iInstance+  = lens _iInstance (\ s a -> s{_iInstance = a})++instance FromJSON InstanceReference where+        parseJSON+          = withObject "InstanceReference"+              (\ o -> InstanceReference <$> (o .:? "instance"))++instance ToJSON InstanceReference where+        toJSON InstanceReference{..}+          = object (catMaybes [("instance" .=) <$> _iInstance])++--+-- /See:/ 'operationAggregatedList' smart constructor.+data OperationAggregatedList = OperationAggregatedList+    { _oalNextPageToken :: !(Maybe Text)+    , _oalKind          :: !Text+    , _oalItems         :: !(Maybe OperationAggregatedListItems)+    , _oalSelfLink      :: !(Maybe Text)+    , _oalId            :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'OperationAggregatedList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'oalNextPageToken'+--+-- * 'oalKind'+--+-- * 'oalItems'+--+-- * 'oalSelfLink'+--+-- * 'oalId'+operationAggregatedList+    :: OperationAggregatedList+operationAggregatedList =+    OperationAggregatedList+    { _oalNextPageToken = Nothing+    , _oalKind = "compute#operationAggregatedList"+    , _oalItems = Nothing+    , _oalSelfLink = Nothing+    , _oalId = Nothing+    }++-- | [Output Only] A token used to continue a truncated list request.+oalNextPageToken :: Lens' OperationAggregatedList (Maybe Text)+oalNextPageToken+  = lens _oalNextPageToken+      (\ s a -> s{_oalNextPageToken = a})++-- | [Output Only] Type of resource. Always compute#operationAggregatedList+-- for aggregated lists of operations.+oalKind :: Lens' OperationAggregatedList Text+oalKind = lens _oalKind (\ s a -> s{_oalKind = a})++-- | [Output Only] A map of scoped operation lists.+oalItems :: Lens' OperationAggregatedList (Maybe OperationAggregatedListItems)+oalItems = lens _oalItems (\ s a -> s{_oalItems = a})++-- | [Output Only] Server-defined URL for this resource.+oalSelfLink :: Lens' OperationAggregatedList (Maybe Text)+oalSelfLink+  = lens _oalSelfLink (\ s a -> s{_oalSelfLink = a})++-- | [Output Only] Unique identifier for the resource; defined by the server.+oalId :: Lens' OperationAggregatedList (Maybe Text)+oalId = lens _oalId (\ s a -> s{_oalId = a})++instance FromJSON OperationAggregatedList where+        parseJSON+          = withObject "OperationAggregatedList"+              (\ o ->+                 OperationAggregatedList <$>+                   (o .:? "nextPageToken") <*>+                     (o .:? "kind" .!= "compute#operationAggregatedList")+                     <*> (o .:? "items")+                     <*> (o .:? "selfLink")+                     <*> (o .:? "id"))++instance ToJSON OperationAggregatedList where+        toJSON OperationAggregatedList{..}+          = object+              (catMaybes+                 [("nextPageToken" .=) <$> _oalNextPageToken,+                  Just ("kind" .= _oalKind),+                  ("items" .=) <$> _oalItems,+                  ("selfLink" .=) <$> _oalSelfLink,+                  ("id" .=) <$> _oalId])++--+-- /See:/ 'operationsScopedList' smart constructor.+data OperationsScopedList = OperationsScopedList+    { _oslWarning    :: !(Maybe OperationsScopedListWarning)+    , _oslOperations :: !(Maybe [Operation])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'OperationsScopedList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'oslWarning'+--+-- * 'oslOperations'+operationsScopedList+    :: OperationsScopedList+operationsScopedList =+    OperationsScopedList+    { _oslWarning = Nothing+    , _oslOperations = Nothing+    }++-- | [Output Only] Informational warning which replaces the list of+-- operations when the list is empty.+oslWarning :: Lens' OperationsScopedList (Maybe OperationsScopedListWarning)+oslWarning+  = lens _oslWarning (\ s a -> s{_oslWarning = a})++-- | [Output Only] List of operations contained in this scope.+oslOperations :: Lens' OperationsScopedList [Operation]+oslOperations+  = lens _oslOperations+      (\ s a -> s{_oslOperations = a})+      . _Default+      . _Coerce++instance FromJSON OperationsScopedList where+        parseJSON+          = withObject "OperationsScopedList"+              (\ o ->+                 OperationsScopedList <$>+                   (o .:? "warning") <*>+                     (o .:? "operations" .!= mempty))++instance ToJSON OperationsScopedList where+        toJSON OperationsScopedList{..}+          = object+              (catMaybes+                 [("warning" .=) <$> _oslWarning,+                  ("operations" .=) <$> _oslOperations])++-- | The named port. For example: .+--+-- /See:/ 'namedPort' smart constructor.+data NamedPort = NamedPort+    { _npName :: !(Maybe Text)+    , _npPort :: !(Maybe (Textual Int32))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'NamedPort' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'npName'+--+-- * 'npPort'+namedPort+    :: NamedPort+namedPort =+    NamedPort+    { _npName = Nothing+    , _npPort = Nothing+    }++-- | The name for this named port. The name must be 1-63 characters long, and+-- comply with RFC1035.+npName :: Lens' NamedPort (Maybe Text)+npName = lens _npName (\ s a -> s{_npName = a})++-- | The port number, which can be a value between 1 and 65535.+npPort :: Lens' NamedPort (Maybe Int32)+npPort+  = lens _npPort (\ s a -> s{_npPort = a}) .+      mapping _Coerce++instance FromJSON NamedPort where+        parseJSON+          = withObject "NamedPort"+              (\ o ->+                 NamedPort <$> (o .:? "name") <*> (o .:? "port"))++instance ToJSON NamedPort where+        toJSON NamedPort{..}+          = object+              (catMaybes+                 [("name" .=) <$> _npName, ("port" .=) <$> _npPort])++-- | Contains a list of TargetInstance resources.+--+-- /See:/ 'targetInstanceList' smart constructor.+data TargetInstanceList = TargetInstanceList+    { _tilNextPageToken :: !(Maybe Text)+    , _tilKind          :: !Text+    , _tilItems         :: !(Maybe [TargetInstance])+    , _tilSelfLink      :: !(Maybe Text)+    , _tilId            :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TargetInstanceList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tilNextPageToken'+--+-- * 'tilKind'+--+-- * 'tilItems'+--+-- * 'tilSelfLink'+--+-- * 'tilId'+targetInstanceList+    :: TargetInstanceList+targetInstanceList =+    TargetInstanceList+    { _tilNextPageToken = Nothing+    , _tilKind = "compute#targetInstanceList"+    , _tilItems = Nothing+    , _tilSelfLink = Nothing+    , _tilId = Nothing+    }++-- | [Output Only] A token used to continue a truncated list request.+tilNextPageToken :: Lens' TargetInstanceList (Maybe Text)+tilNextPageToken+  = lens _tilNextPageToken+      (\ s a -> s{_tilNextPageToken = a})++-- | Type of resource.+tilKind :: Lens' TargetInstanceList Text+tilKind = lens _tilKind (\ s a -> s{_tilKind = a})++-- | A list of TargetInstance resources.+tilItems :: Lens' TargetInstanceList [TargetInstance]+tilItems+  = lens _tilItems (\ s a -> s{_tilItems = a}) .+      _Default+      . _Coerce++-- | [Output Only] Server-defined URL for this resource.+tilSelfLink :: Lens' TargetInstanceList (Maybe Text)+tilSelfLink+  = lens _tilSelfLink (\ s a -> s{_tilSelfLink = a})++-- | [Output Only] Unique identifier for the resource; defined by the server.+tilId :: Lens' TargetInstanceList (Maybe Text)+tilId = lens _tilId (\ s a -> s{_tilId = a})++instance FromJSON TargetInstanceList where+        parseJSON+          = withObject "TargetInstanceList"+              (\ o ->+                 TargetInstanceList <$>+                   (o .:? "nextPageToken") <*>+                     (o .:? "kind" .!= "compute#targetInstanceList")+                     <*> (o .:? "items" .!= mempty)+                     <*> (o .:? "selfLink")+                     <*> (o .:? "id"))++instance ToJSON TargetInstanceList where+        toJSON TargetInstanceList{..}+          = object+              (catMaybes+                 [("nextPageToken" .=) <$> _tilNextPageToken,+                  Just ("kind" .= _tilKind),+                  ("items" .=) <$> _tilItems,+                  ("selfLink" .=) <$> _tilSelfLink,+                  ("id" .=) <$> _tilId])++--+-- /See:/ 'instanceGroupManagerAggregatedList' smart constructor.+data InstanceGroupManagerAggregatedList = InstanceGroupManagerAggregatedList+    { _igmalNextPageToken :: !(Maybe Text)+    , _igmalKind          :: !Text+    , _igmalItems         :: !(Maybe InstanceGroupManagerAggregatedListItems)+    , _igmalSelfLink      :: !(Maybe Text)+    , _igmalId            :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstanceGroupManagerAggregatedList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'igmalNextPageToken'+--+-- * 'igmalKind'+--+-- * 'igmalItems'+--+-- * 'igmalSelfLink'+--+-- * 'igmalId'+instanceGroupManagerAggregatedList+    :: InstanceGroupManagerAggregatedList+instanceGroupManagerAggregatedList =+    InstanceGroupManagerAggregatedList+    { _igmalNextPageToken = Nothing+    , _igmalKind = "compute#instanceGroupManagerAggregatedList"+    , _igmalItems = Nothing+    , _igmalSelfLink = Nothing+    , _igmalId = Nothing+    }++-- | [Output Only] A token that is used to continue a truncated list request.+igmalNextPageToken :: Lens' InstanceGroupManagerAggregatedList (Maybe Text)+igmalNextPageToken+  = lens _igmalNextPageToken+      (\ s a -> s{_igmalNextPageToken = a})++-- | [Output Only] The resource type, which is always+-- compute#instanceGroupManagerAggregatedList for an aggregated list of+-- managed instance groups.+igmalKind :: Lens' InstanceGroupManagerAggregatedList Text+igmalKind+  = lens _igmalKind (\ s a -> s{_igmalKind = a})++-- | [Output Only] A map of filtered managed instance group lists.+igmalItems :: Lens' InstanceGroupManagerAggregatedList (Maybe InstanceGroupManagerAggregatedListItems)+igmalItems+  = lens _igmalItems (\ s a -> s{_igmalItems = a})++-- | [Output Only] The URL for this resource type. The server generates this+-- URL.+igmalSelfLink :: Lens' InstanceGroupManagerAggregatedList (Maybe Text)+igmalSelfLink+  = lens _igmalSelfLink+      (\ s a -> s{_igmalSelfLink = a})++-- | [Output Only] A unique identifier for this aggregated list of managed+-- instance groups. The server generates this identifier.+igmalId :: Lens' InstanceGroupManagerAggregatedList (Maybe Text)+igmalId = lens _igmalId (\ s a -> s{_igmalId = a})++instance FromJSON InstanceGroupManagerAggregatedList+         where+        parseJSON+          = withObject "InstanceGroupManagerAggregatedList"+              (\ o ->+                 InstanceGroupManagerAggregatedList <$>+                   (o .:? "nextPageToken") <*>+                     (o .:? "kind" .!=+                        "compute#instanceGroupManagerAggregatedList")+                     <*> (o .:? "items")+                     <*> (o .:? "selfLink")+                     <*> (o .:? "id"))++instance ToJSON InstanceGroupManagerAggregatedList+         where+        toJSON InstanceGroupManagerAggregatedList{..}+          = object+              (catMaybes+                 [("nextPageToken" .=) <$> _igmalNextPageToken,+                  Just ("kind" .= _igmalKind),+                  ("items" .=) <$> _igmalItems,+                  ("selfLink" .=) <$> _igmalSelfLink,+                  ("id" .=) <$> _igmalId])++--+-- /See:/ 'targetPoolsScopedList' smart constructor.+data TargetPoolsScopedList = TargetPoolsScopedList+    { _tpslWarning     :: !(Maybe TargetPoolsScopedListWarning)+    , _tpslTargetPools :: !(Maybe [TargetPool])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TargetPoolsScopedList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tpslWarning'+--+-- * 'tpslTargetPools'+targetPoolsScopedList+    :: TargetPoolsScopedList+targetPoolsScopedList =+    TargetPoolsScopedList+    { _tpslWarning = Nothing+    , _tpslTargetPools = Nothing+    }++-- | Informational warning which replaces the list of addresses when the list+-- is empty.+tpslWarning :: Lens' TargetPoolsScopedList (Maybe TargetPoolsScopedListWarning)+tpslWarning+  = lens _tpslWarning (\ s a -> s{_tpslWarning = a})++-- | List of target pools contained in this scope.+tpslTargetPools :: Lens' TargetPoolsScopedList [TargetPool]+tpslTargetPools+  = lens _tpslTargetPools+      (\ s a -> s{_tpslTargetPools = a})+      . _Default+      . _Coerce++instance FromJSON TargetPoolsScopedList where+        parseJSON+          = withObject "TargetPoolsScopedList"+              (\ o ->+                 TargetPoolsScopedList <$>+                   (o .:? "warning") <*>+                     (o .:? "targetPools" .!= mempty))++instance ToJSON TargetPoolsScopedList where+        toJSON TargetPoolsScopedList{..}+          = object+              (catMaybes+                 [("warning" .=) <$> _tpslWarning,+                  ("targetPools" .=) <$> _tpslTargetPools])++--+-- /See:/ 'forwardingRuleAggregatedList' smart constructor.+data ForwardingRuleAggregatedList = ForwardingRuleAggregatedList+    { _fralNextPageToken :: !(Maybe Text)+    , _fralKind          :: !Text+    , _fralItems         :: !(Maybe ForwardingRuleAggregatedListItems)+    , _fralSelfLink      :: !(Maybe Text)+    , _fralId            :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ForwardingRuleAggregatedList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'fralNextPageToken'+--+-- * 'fralKind'+--+-- * 'fralItems'+--+-- * 'fralSelfLink'+--+-- * 'fralId'+forwardingRuleAggregatedList+    :: ForwardingRuleAggregatedList+forwardingRuleAggregatedList =+    ForwardingRuleAggregatedList+    { _fralNextPageToken = Nothing+    , _fralKind = "compute#forwardingRuleAggregatedList"+    , _fralItems = Nothing+    , _fralSelfLink = Nothing+    , _fralId = Nothing+    }++-- | [Output Only] A token used to continue a truncated list request.+fralNextPageToken :: Lens' ForwardingRuleAggregatedList (Maybe Text)+fralNextPageToken+  = lens _fralNextPageToken+      (\ s a -> s{_fralNextPageToken = a})++-- | Type of resource.+fralKind :: Lens' ForwardingRuleAggregatedList Text+fralKind = lens _fralKind (\ s a -> s{_fralKind = a})++-- | A map of scoped forwarding rule lists.+fralItems :: Lens' ForwardingRuleAggregatedList (Maybe ForwardingRuleAggregatedListItems)+fralItems+  = lens _fralItems (\ s a -> s{_fralItems = a})++-- | [Output Only] Server-defined URL for this resource.+fralSelfLink :: Lens' ForwardingRuleAggregatedList (Maybe Text)+fralSelfLink+  = lens _fralSelfLink (\ s a -> s{_fralSelfLink = a})++-- | [Output Only] Unique identifier for the resource; defined by the server.+fralId :: Lens' ForwardingRuleAggregatedList (Maybe Text)+fralId = lens _fralId (\ s a -> s{_fralId = a})++instance FromJSON ForwardingRuleAggregatedList where+        parseJSON+          = withObject "ForwardingRuleAggregatedList"+              (\ o ->+                 ForwardingRuleAggregatedList <$>+                   (o .:? "nextPageToken") <*>+                     (o .:? "kind" .!=+                        "compute#forwardingRuleAggregatedList")+                     <*> (o .:? "items")+                     <*> (o .:? "selfLink")+                     <*> (o .:? "id"))++instance ToJSON ForwardingRuleAggregatedList where+        toJSON ForwardingRuleAggregatedList{..}+          = object+              (catMaybes+                 [("nextPageToken" .=) <$> _fralNextPageToken,+                  Just ("kind" .= _fralKind),+                  ("items" .=) <$> _fralItems,+                  ("selfLink" .=) <$> _fralSelfLink,+                  ("id" .=) <$> _fralId])++--+-- /See:/ 'targetReference' smart constructor.+newtype TargetReference = TargetReference+    { _trTarget :: Maybe Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TargetReference' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'trTarget'+targetReference+    :: TargetReference+targetReference =+    TargetReference+    { _trTarget = Nothing+    }++trTarget :: Lens' TargetReference (Maybe Text)+trTarget = lens _trTarget (\ s a -> s{_trTarget = a})++instance FromJSON TargetReference where+        parseJSON+          = withObject "TargetReference"+              (\ o -> TargetReference <$> (o .:? "target"))++instance ToJSON TargetReference where+        toJSON TargetReference{..}+          = object (catMaybes [("target" .=) <$> _trTarget])++--+-- /See:/ 'targetPoolAggregatedList' smart constructor.+data TargetPoolAggregatedList = TargetPoolAggregatedList+    { _tpalNextPageToken :: !(Maybe Text)+    , _tpalKind          :: !Text+    , _tpalItems         :: !(Maybe TargetPoolAggregatedListItems)+    , _tpalSelfLink      :: !(Maybe Text)+    , _tpalId            :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TargetPoolAggregatedList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tpalNextPageToken'+--+-- * 'tpalKind'+--+-- * 'tpalItems'+--+-- * 'tpalSelfLink'+--+-- * 'tpalId'+targetPoolAggregatedList+    :: TargetPoolAggregatedList+targetPoolAggregatedList =+    TargetPoolAggregatedList+    { _tpalNextPageToken = Nothing+    , _tpalKind = "compute#targetPoolAggregatedList"+    , _tpalItems = Nothing+    , _tpalSelfLink = Nothing+    , _tpalId = Nothing+    }++-- | [Output Only] A token used to continue a truncated list request.+tpalNextPageToken :: Lens' TargetPoolAggregatedList (Maybe Text)+tpalNextPageToken+  = lens _tpalNextPageToken+      (\ s a -> s{_tpalNextPageToken = a})++-- | Type of resource.+tpalKind :: Lens' TargetPoolAggregatedList Text+tpalKind = lens _tpalKind (\ s a -> s{_tpalKind = a})++-- | A map of scoped target pool lists.+tpalItems :: Lens' TargetPoolAggregatedList (Maybe TargetPoolAggregatedListItems)+tpalItems+  = lens _tpalItems (\ s a -> s{_tpalItems = a})++-- | [Output Only] Server-defined URL for this resource.+tpalSelfLink :: Lens' TargetPoolAggregatedList (Maybe Text)+tpalSelfLink+  = lens _tpalSelfLink (\ s a -> s{_tpalSelfLink = a})++-- | [Output Only] Unique identifier for the resource. Defined by the server.+tpalId :: Lens' TargetPoolAggregatedList (Maybe Text)+tpalId = lens _tpalId (\ s a -> s{_tpalId = a})++instance FromJSON TargetPoolAggregatedList where+        parseJSON+          = withObject "TargetPoolAggregatedList"+              (\ o ->+                 TargetPoolAggregatedList <$>+                   (o .:? "nextPageToken") <*>+                     (o .:? "kind" .!= "compute#targetPoolAggregatedList")+                     <*> (o .:? "items")+                     <*> (o .:? "selfLink")+                     <*> (o .:? "id"))++instance ToJSON TargetPoolAggregatedList where+        toJSON TargetPoolAggregatedList{..}+          = object+              (catMaybes+                 [("nextPageToken" .=) <$> _tpalNextPageToken,+                  Just ("kind" .= _tpalKind),+                  ("items" .=) <$> _tpalItems,+                  ("selfLink" .=) <$> _tpalSelfLink,+                  ("id" .=) <$> _tpalId])++--+-- /See:/ 'operationsScopedListWarningDataItem' smart constructor.+data OperationsScopedListWarningDataItem = OperationsScopedListWarningDataItem+    { _oslwdiValue :: !(Maybe Text)+    , _oslwdiKey   :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'OperationsScopedListWarningDataItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'oslwdiValue'+--+-- * 'oslwdiKey'+operationsScopedListWarningDataItem+    :: OperationsScopedListWarningDataItem+operationsScopedListWarningDataItem =+    OperationsScopedListWarningDataItem+    { _oslwdiValue = Nothing+    , _oslwdiKey = Nothing+    }++-- | [Output Only] A warning data value corresponding to the key.+oslwdiValue :: Lens' OperationsScopedListWarningDataItem (Maybe Text)+oslwdiValue+  = lens _oslwdiValue (\ s a -> s{_oslwdiValue = a})++-- | [Output Only] A key for the warning data.+oslwdiKey :: Lens' OperationsScopedListWarningDataItem (Maybe Text)+oslwdiKey+  = lens _oslwdiKey (\ s a -> s{_oslwdiKey = a})++instance FromJSON OperationsScopedListWarningDataItem+         where+        parseJSON+          = withObject "OperationsScopedListWarningDataItem"+              (\ o ->+                 OperationsScopedListWarningDataItem <$>+                   (o .:? "value") <*> (o .:? "key"))++instance ToJSON OperationsScopedListWarningDataItem+         where+        toJSON OperationsScopedListWarningDataItem{..}+          = object+              (catMaybes+                 [("value" .=) <$> _oslwdiValue,+                  ("key" .=) <$> _oslwdiKey])++-- | A TargetPool resource. This resource defines a pool of instances,+-- associated HttpHealthCheck resources, and the fallback TargetPool.+--+-- /See:/ 'targetPool' smart constructor.+data TargetPool = TargetPool+    { _tpSessionAffinity   :: !(Maybe TargetPoolSessionAffinity)+    , _tpBackupPool        :: !(Maybe Text)+    , _tpKind              :: !Text+    , _tpSelfLink          :: !(Maybe Text)+    , _tpName              :: !(Maybe Text)+    , _tpCreationTimestamp :: !(Maybe Text)+    , _tpInstances         :: !(Maybe [Text])+    , _tpId                :: !(Maybe (Textual Word64))+    , _tpFailoverRatio     :: !(Maybe (Textual Double))+    , _tpRegion            :: !(Maybe Text)+    , _tpDescription       :: !(Maybe Text)+    , _tpHealthChecks      :: !(Maybe [Text])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TargetPool' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tpSessionAffinity'+--+-- * 'tpBackupPool'+--+-- * 'tpKind'+--+-- * 'tpSelfLink'+--+-- * 'tpName'+--+-- * 'tpCreationTimestamp'+--+-- * 'tpInstances'+--+-- * 'tpId'+--+-- * 'tpFailoverRatio'+--+-- * 'tpRegion'+--+-- * 'tpDescription'+--+-- * 'tpHealthChecks'+targetPool+    :: TargetPool+targetPool =+    TargetPool+    { _tpSessionAffinity = Nothing+    , _tpBackupPool = Nothing+    , _tpKind = "compute#targetPool"+    , _tpSelfLink = Nothing+    , _tpName = Nothing+    , _tpCreationTimestamp = Nothing+    , _tpInstances = Nothing+    , _tpId = Nothing+    , _tpFailoverRatio = Nothing+    , _tpRegion = Nothing+    , _tpDescription = Nothing+    , _tpHealthChecks = Nothing+    }++-- | Sesssion affinity option, must be one of the following values: NONE:+-- Connections from the same client IP may go to any instance in the pool.+-- CLIENT_IP: Connections from the same client IP will go to the same+-- instance in the pool while that instance remains healthy.+-- CLIENT_IP_PROTO: Connections from the same client IP with the same IP+-- protocol will go to the same instance in the pool while that instance+-- remains healthy.+tpSessionAffinity :: Lens' TargetPool (Maybe TargetPoolSessionAffinity)+tpSessionAffinity+  = lens _tpSessionAffinity+      (\ s a -> s{_tpSessionAffinity = a})++-- | This field is applicable only when the containing target pool is serving+-- a forwarding rule as the primary pool, and its failoverRatio field is+-- properly set to a value between [0, 1]. backupPool and failoverRatio+-- together define the fallback behavior of the primary target pool: if the+-- ratio of the healthy instances in the primary pool is at or below+-- failoverRatio, traffic arriving at the load-balanced IP will be directed+-- to the backup pool. In case where failoverRatio and backupPool are not+-- set, or all the instances in the backup pool are unhealthy, the traffic+-- will be directed back to the primary pool in the \"force\" mode, where+-- traffic will be spread to the healthy instances with the best effort, or+-- to all instances when no instance is healthy.+tpBackupPool :: Lens' TargetPool (Maybe Text)+tpBackupPool+  = lens _tpBackupPool (\ s a -> s{_tpBackupPool = a})++-- | Type of the resource.+tpKind :: Lens' TargetPool Text+tpKind = lens _tpKind (\ s a -> s{_tpKind = a})++-- | [Output Only] Server-defined URL for the resource.+tpSelfLink :: Lens' TargetPool (Maybe Text)+tpSelfLink+  = lens _tpSelfLink (\ s a -> s{_tpSelfLink = a})++-- | Name of the resource. Provided by the client when the resource is+-- created. The name must be 1-63 characters long, and comply with RFC1035.+-- Specifically, the name must be 1-63 characters long and match the+-- regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first+-- character must be a lowercase letter, and all following characters must+-- be a dash, lowercase letter, or digit, except the last character, which+-- cannot be a dash.+tpName :: Lens' TargetPool (Maybe Text)+tpName = lens _tpName (\ s a -> s{_tpName = a})++-- | [Output Only] Creation timestamp in RFC3339 text format.+tpCreationTimestamp :: Lens' TargetPool (Maybe Text)+tpCreationTimestamp+  = lens _tpCreationTimestamp+      (\ s a -> s{_tpCreationTimestamp = a})++-- | A list of resource URLs to the member virtual machines serving this+-- pool. They must live in zones contained in the same region as this pool.+tpInstances :: Lens' TargetPool [Text]+tpInstances+  = lens _tpInstances (\ s a -> s{_tpInstances = a}) .+      _Default+      . _Coerce++-- | [Output Only] Unique identifier for the resource; defined by the server.+tpId :: Lens' TargetPool (Maybe Word64)+tpId+  = lens _tpId (\ s a -> s{_tpId = a}) .+      mapping _Coerce++-- | This field is applicable only when the containing target pool is serving+-- a forwarding rule as the primary pool (i.e., not as a backup pool to+-- some other target pool). The value of the field must be in [0, 1]. If+-- set, backupPool must also be set. They together define the fallback+-- behavior of the primary target pool: if the ratio of the healthy+-- instances in the primary pool is at or below this number, traffic+-- arriving at the load-balanced IP will be directed to the backup pool. In+-- case where failoverRatio is not set or all the instances in the backup+-- pool are unhealthy, the traffic will be directed back to the primary+-- pool in the \"force\" mode, where traffic will be spread to the healthy+-- instances with the best effort, or to all instances when no instance is+-- healthy.+tpFailoverRatio :: Lens' TargetPool (Maybe Double)+tpFailoverRatio+  = lens _tpFailoverRatio+      (\ s a -> s{_tpFailoverRatio = a})+      . mapping _Coerce++-- | [Output Only] URL of the region where the target pool resides.+tpRegion :: Lens' TargetPool (Maybe Text)+tpRegion = lens _tpRegion (\ s a -> s{_tpRegion = a})++-- | An optional textual description of the resource; provided by the client+-- when the resource is created.+tpDescription :: Lens' TargetPool (Maybe Text)+tpDescription+  = lens _tpDescription+      (\ s a -> s{_tpDescription = a})++-- | A list of URLs to the HttpHealthCheck resource. A member instance in+-- this pool is considered healthy if and only if all specified health+-- checks pass. An empty list means all member instances will be considered+-- healthy at all times.+tpHealthChecks :: Lens' TargetPool [Text]+tpHealthChecks+  = lens _tpHealthChecks+      (\ s a -> s{_tpHealthChecks = a})+      . _Default+      . _Coerce++instance FromJSON TargetPool where+        parseJSON+          = withObject "TargetPool"+              (\ o ->+                 TargetPool <$>+                   (o .:? "sessionAffinity") <*> (o .:? "backupPool")+                     <*> (o .:? "kind" .!= "compute#targetPool")+                     <*> (o .:? "selfLink")+                     <*> (o .:? "name")+                     <*> (o .:? "creationTimestamp")+                     <*> (o .:? "instances" .!= mempty)+                     <*> (o .:? "id")+                     <*> (o .:? "failoverRatio")+                     <*> (o .:? "region")+                     <*> (o .:? "description")+                     <*> (o .:? "healthChecks" .!= mempty))++instance ToJSON TargetPool where+        toJSON TargetPool{..}+          = object+              (catMaybes+                 [("sessionAffinity" .=) <$> _tpSessionAffinity,+                  ("backupPool" .=) <$> _tpBackupPool,+                  Just ("kind" .= _tpKind),+                  ("selfLink" .=) <$> _tpSelfLink,+                  ("name" .=) <$> _tpName,+                  ("creationTimestamp" .=) <$> _tpCreationTimestamp,+                  ("instances" .=) <$> _tpInstances,+                  ("id" .=) <$> _tpId,+                  ("failoverRatio" .=) <$> _tpFailoverRatio,+                  ("region" .=) <$> _tpRegion,+                  ("description" .=) <$> _tpDescription,+                  ("healthChecks" .=) <$> _tpHealthChecks])++-- | Contains a list of Image resources.+--+-- /See:/ 'imageList' smart constructor.+data ImageList = ImageList+    { _ilNextPageToken :: !(Maybe Text)+    , _ilKind          :: !Text+    , _ilItems         :: !(Maybe [Image])+    , _ilSelfLink      :: !(Maybe Text)+    , _ilId            :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ImageList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ilNextPageToken'+--+-- * 'ilKind'+--+-- * 'ilItems'+--+-- * 'ilSelfLink'+--+-- * 'ilId'+imageList+    :: ImageList+imageList =+    ImageList+    { _ilNextPageToken = Nothing+    , _ilKind = "compute#imageList"+    , _ilItems = Nothing+    , _ilSelfLink = Nothing+    , _ilId = Nothing+    }++-- | [Output Only] A token used to continue a truncated list request.+ilNextPageToken :: Lens' ImageList (Maybe Text)+ilNextPageToken+  = lens _ilNextPageToken+      (\ s a -> s{_ilNextPageToken = a})++-- | Type of resource.+ilKind :: Lens' ImageList Text+ilKind = lens _ilKind (\ s a -> s{_ilKind = a})++-- | [Output Only] A list of Image resources.+ilItems :: Lens' ImageList [Image]+ilItems+  = lens _ilItems (\ s a -> s{_ilItems = a}) . _Default+      . _Coerce++-- | [Output Only] Server-defined URL for this resource.+ilSelfLink :: Lens' ImageList (Maybe Text)+ilSelfLink+  = lens _ilSelfLink (\ s a -> s{_ilSelfLink = a})++-- | [Output Only] Unique identifier for the resource; defined by the server.+ilId :: Lens' ImageList (Maybe Text)+ilId = lens _ilId (\ s a -> s{_ilId = a})++instance FromJSON ImageList where+        parseJSON+          = withObject "ImageList"+              (\ o ->+                 ImageList <$>+                   (o .:? "nextPageToken") <*>+                     (o .:? "kind" .!= "compute#imageList")+                     <*> (o .:? "items" .!= mempty)+                     <*> (o .:? "selfLink")+                     <*> (o .:? "id"))++instance ToJSON ImageList where+        toJSON ImageList{..}+          = object+              (catMaybes+                 [("nextPageToken" .=) <$> _ilNextPageToken,+                  Just ("kind" .= _ilKind), ("items" .=) <$> _ilItems,+                  ("selfLink" .=) <$> _ilSelfLink,+                  ("id" .=) <$> _ilId])++-- | Informational warning which replaces the list of addresses when the list+-- is empty.+--+-- /See:/ 'vpnTunnelsScopedListWarning' smart constructor.+data VPNTunnelsScopedListWarning = VPNTunnelsScopedListWarning+    { _vtslwData    :: !(Maybe [VPNTunnelsScopedListWarningDataItem])+    , _vtslwCode    :: !(Maybe VPNTunnelsScopedListWarningCode)+    , _vtslwMessage :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'VPNTunnelsScopedListWarning' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vtslwData'+--+-- * 'vtslwCode'+--+-- * 'vtslwMessage'+vpnTunnelsScopedListWarning+    :: VPNTunnelsScopedListWarning+vpnTunnelsScopedListWarning =+    VPNTunnelsScopedListWarning+    { _vtslwData = Nothing+    , _vtslwCode = Nothing+    , _vtslwMessage = Nothing+    }++-- | [Output Only] Metadata for this warning in key: value format.+vtslwData :: Lens' VPNTunnelsScopedListWarning [VPNTunnelsScopedListWarningDataItem]+vtslwData+  = lens _vtslwData (\ s a -> s{_vtslwData = a}) .+      _Default+      . _Coerce++-- | [Output Only] The warning type identifier for this warning.+vtslwCode :: Lens' VPNTunnelsScopedListWarning (Maybe VPNTunnelsScopedListWarningCode)+vtslwCode+  = lens _vtslwCode (\ s a -> s{_vtslwCode = a})++-- | [Output Only] Optional human-readable details for this warning.+vtslwMessage :: Lens' VPNTunnelsScopedListWarning (Maybe Text)+vtslwMessage+  = lens _vtslwMessage (\ s a -> s{_vtslwMessage = a})++instance FromJSON VPNTunnelsScopedListWarning where+        parseJSON+          = withObject "VPNTunnelsScopedListWarning"+              (\ o ->+                 VPNTunnelsScopedListWarning <$>+                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>+                     (o .:? "message"))++instance ToJSON VPNTunnelsScopedListWarning where+        toJSON VPNTunnelsScopedListWarning{..}+          = object+              (catMaybes+                 [("data" .=) <$> _vtslwData,+                  ("code" .=) <$> _vtslwCode,+                  ("message" .=) <$> _vtslwMessage])++-- | A ForwardingRule resource. A ForwardingRule resource specifies which+-- pool of target virtual machines to forward a packet to if it matches the+-- given [IPAddress, IPProtocol, portRange] tuple.+--+-- /See:/ 'forwardingRule' smart constructor.+data ForwardingRule = ForwardingRule+    { _frIPAddress         :: !(Maybe Text)+    , _frKind              :: !Text+    , _frPortRange         :: !(Maybe Text)+    , _frSelfLink          :: !(Maybe Text)+    , _frName              :: !(Maybe Text)+    , _frIPProtocol        :: !(Maybe ForwardingRuleIPProtocol)+    , _frCreationTimestamp :: !(Maybe Text)+    , _frId                :: !(Maybe (Textual Word64))+    , _frRegion            :: !(Maybe Text)+    , _frDescription       :: !(Maybe Text)+    , _frTarget            :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ForwardingRule' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'frIPAddress'+--+-- * 'frKind'+--+-- * 'frPortRange'+--+-- * 'frSelfLink'+--+-- * 'frName'+--+-- * 'frIPProtocol'+--+-- * 'frCreationTimestamp'+--+-- * 'frId'+--+-- * 'frRegion'+--+-- * 'frDescription'+--+-- * 'frTarget'+forwardingRule+    :: ForwardingRule+forwardingRule =+    ForwardingRule+    { _frIPAddress = Nothing+    , _frKind = "compute#forwardingRule"+    , _frPortRange = Nothing+    , _frSelfLink = Nothing+    , _frName = Nothing+    , _frIPProtocol = Nothing+    , _frCreationTimestamp = Nothing+    , _frId = Nothing+    , _frRegion = Nothing+    , _frDescription = Nothing+    , _frTarget = Nothing+    }++-- | Value of the reserved IP address that this forwarding rule is serving on+-- behalf of. For global forwarding rules, the address must be a global IP;+-- for regional forwarding rules, the address must live in the same region+-- as the forwarding rule. If left empty (default value), an ephemeral IP+-- from the same scope (global or regional) will be assigned.+frIPAddress :: Lens' ForwardingRule (Maybe Text)+frIPAddress+  = lens _frIPAddress (\ s a -> s{_frIPAddress = a})++-- | [Output Only] Type of the resource. Always compute#forwardingRule.+frKind :: Lens' ForwardingRule Text+frKind = lens _frKind (\ s a -> s{_frKind = a})++-- | Applicable only when IPProtocol is TCP, UDP, or SCTP, only packets+-- addressed to ports in the specified range will be forwarded to target.+-- Forwarding rules with the same \`[IPAddress, IPProtocol]\` pair must+-- have disjoint port ranges.+frPortRange :: Lens' ForwardingRule (Maybe Text)+frPortRange+  = lens _frPortRange (\ s a -> s{_frPortRange = a})++-- | [Output Only] Server-defined URL for the resource.+frSelfLink :: Lens' ForwardingRule (Maybe Text)+frSelfLink+  = lens _frSelfLink (\ s a -> s{_frSelfLink = a})++-- | Name of the resource; provided by the client when the resource is+-- created. The name must be 1-63 characters long, and comply with RFC1035.+-- Specifically, the name must be 1-63 characters long and match the+-- regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first+-- character must be a lowercase letter, and all following characters must+-- be a dash, lowercase letter, or digit, except the last character, which+-- cannot be a dash.+frName :: Lens' ForwardingRule (Maybe Text)+frName = lens _frName (\ s a -> s{_frName = a})++-- | The IP protocol to which this rule applies. Valid options are TCP, UDP,+-- ESP, AH or SCTP.+frIPProtocol :: Lens' ForwardingRule (Maybe ForwardingRuleIPProtocol)+frIPProtocol+  = lens _frIPProtocol (\ s a -> s{_frIPProtocol = a})++-- | [Output Only] Creation timestamp in RFC3339 text format.+frCreationTimestamp :: Lens' ForwardingRule (Maybe Text)+frCreationTimestamp+  = lens _frCreationTimestamp+      (\ s a -> s{_frCreationTimestamp = a})++-- | [Output Only] Unique identifier for the resource; defined by the server.+frId :: Lens' ForwardingRule (Maybe Word64)+frId+  = lens _frId (\ s a -> s{_frId = a}) .+      mapping _Coerce++-- | [Output Only] URL of the region where the regional forwarding rule+-- resides. This field is not applicable to global forwarding rules.+frRegion :: Lens' ForwardingRule (Maybe Text)+frRegion = lens _frRegion (\ s a -> s{_frRegion = a})++-- | An optional textual description of the resource; provided by the client+-- when the resource is created.+frDescription :: Lens' ForwardingRule (Maybe Text)+frDescription+  = lens _frDescription+      (\ s a -> s{_frDescription = a})++-- | The URL of the target resource to receive the matched traffic. For+-- regional forwarding rules, this target must live in the same region as+-- the forwarding rule. For global forwarding rules, this target must be a+-- global TargetHttpProxy or TargetHttpsProxy resource.+frTarget :: Lens' ForwardingRule (Maybe Text)+frTarget = lens _frTarget (\ s a -> s{_frTarget = a})++instance FromJSON ForwardingRule where+        parseJSON+          = withObject "ForwardingRule"+              (\ o ->+                 ForwardingRule <$>+                   (o .:? "IPAddress") <*>+                     (o .:? "kind" .!= "compute#forwardingRule")+                     <*> (o .:? "portRange")+                     <*> (o .:? "selfLink")+                     <*> (o .:? "name")+                     <*> (o .:? "IPProtocol")+                     <*> (o .:? "creationTimestamp")+                     <*> (o .:? "id")+                     <*> (o .:? "region")+                     <*> (o .:? "description")+                     <*> (o .:? "target"))++instance ToJSON ForwardingRule where+        toJSON ForwardingRule{..}+          = object+              (catMaybes+                 [("IPAddress" .=) <$> _frIPAddress,+                  Just ("kind" .= _frKind),+                  ("portRange" .=) <$> _frPortRange,+                  ("selfLink" .=) <$> _frSelfLink,+                  ("name" .=) <$> _frName,+                  ("IPProtocol" .=) <$> _frIPProtocol,+                  ("creationTimestamp" .=) <$> _frCreationTimestamp,+                  ("id" .=) <$> _frId, ("region" .=) <$> _frRegion,+                  ("description" .=) <$> _frDescription,+                  ("target" .=) <$> _frTarget])++-- | Contains a list of UrlMap resources.+--+-- /See:/ 'urlMapList' smart constructor.+data URLMapList = URLMapList+    { _umlNextPageToken :: !(Maybe Text)+    , _umlKind          :: !Text+    , _umlItems         :: !(Maybe [URLMap])+    , _umlSelfLink      :: !(Maybe Text)+    , _umlId            :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'URLMapList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'umlNextPageToken'+--+-- * 'umlKind'+--+-- * 'umlItems'+--+-- * 'umlSelfLink'+--+-- * 'umlId'+urlMapList+    :: URLMapList+urlMapList =+    URLMapList+    { _umlNextPageToken = Nothing+    , _umlKind = "compute#urlMapList"+    , _umlItems = Nothing+    , _umlSelfLink = Nothing+    , _umlId = Nothing+    }++-- | [Output Only] A token used to continue a truncated list request.+umlNextPageToken :: Lens' URLMapList (Maybe Text)+umlNextPageToken+  = lens _umlNextPageToken+      (\ s a -> s{_umlNextPageToken = a})++-- | Type of resource.+umlKind :: Lens' URLMapList Text+umlKind = lens _umlKind (\ s a -> s{_umlKind = a})++-- | A list of UrlMap resources.+umlItems :: Lens' URLMapList [URLMap]+umlItems+  = lens _umlItems (\ s a -> s{_umlItems = a}) .+      _Default+      . _Coerce++-- | [Output Only] Server-defined URL for this resource.+umlSelfLink :: Lens' URLMapList (Maybe Text)+umlSelfLink+  = lens _umlSelfLink (\ s a -> s{_umlSelfLink = a})++-- | [Output Only] Unique identifier for the resource. Set by the server.+umlId :: Lens' URLMapList (Maybe Text)+umlId = lens _umlId (\ s a -> s{_umlId = a})++instance FromJSON URLMapList where+        parseJSON+          = withObject "URLMapList"+              (\ o ->+                 URLMapList <$>+                   (o .:? "nextPageToken") <*>+                     (o .:? "kind" .!= "compute#urlMapList")+                     <*> (o .:? "items" .!= mempty)+                     <*> (o .:? "selfLink")+                     <*> (o .:? "id"))++instance ToJSON URLMapList where+        toJSON URLMapList{..}+          = object+              (catMaybes+                 [("nextPageToken" .=) <$> _umlNextPageToken,+                  Just ("kind" .= _umlKind),+                  ("items" .=) <$> _umlItems,+                  ("selfLink" .=) <$> _umlSelfLink,+                  ("id" .=) <$> _umlId])++--+-- /See:/ 'forwardingRulesScopedListWarningDataItem' smart constructor.+data ForwardingRulesScopedListWarningDataItem = ForwardingRulesScopedListWarningDataItem+    { _frslwdiValue :: !(Maybe Text)+    , _frslwdiKey   :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ForwardingRulesScopedListWarningDataItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'frslwdiValue'+--+-- * 'frslwdiKey'+forwardingRulesScopedListWarningDataItem+    :: ForwardingRulesScopedListWarningDataItem+forwardingRulesScopedListWarningDataItem =+    ForwardingRulesScopedListWarningDataItem+    { _frslwdiValue = Nothing+    , _frslwdiKey = Nothing+    }++-- | [Output Only] A warning data value corresponding to the key.+frslwdiValue :: Lens' ForwardingRulesScopedListWarningDataItem (Maybe Text)+frslwdiValue+  = lens _frslwdiValue (\ s a -> s{_frslwdiValue = a})++-- | [Output Only] A key for the warning data.+frslwdiKey :: Lens' ForwardingRulesScopedListWarningDataItem (Maybe Text)+frslwdiKey+  = lens _frslwdiKey (\ s a -> s{_frslwdiKey = a})++instance FromJSON+         ForwardingRulesScopedListWarningDataItem where+        parseJSON+          = withObject+              "ForwardingRulesScopedListWarningDataItem"+              (\ o ->+                 ForwardingRulesScopedListWarningDataItem <$>+                   (o .:? "value") <*> (o .:? "key"))++instance ToJSON+         ForwardingRulesScopedListWarningDataItem where+        toJSON ForwardingRulesScopedListWarningDataItem{..}+          = object+              (catMaybes+                 [("value" .=) <$> _frslwdiValue,+                  ("key" .=) <$> _frslwdiKey])++--+-- /See:/ 'instanceGroupManagersScopedListWarningDataItem' smart constructor.+data InstanceGroupManagersScopedListWarningDataItem = InstanceGroupManagersScopedListWarningDataItem+    { _igmslwdiValue :: !(Maybe Text)+    , _igmslwdiKey   :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstanceGroupManagersScopedListWarningDataItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'igmslwdiValue'+--+-- * 'igmslwdiKey'+instanceGroupManagersScopedListWarningDataItem+    :: InstanceGroupManagersScopedListWarningDataItem+instanceGroupManagersScopedListWarningDataItem =+    InstanceGroupManagersScopedListWarningDataItem+    { _igmslwdiValue = Nothing+    , _igmslwdiKey = Nothing+    }++-- | [Output Only] A warning data value corresponding to the key.+igmslwdiValue :: Lens' InstanceGroupManagersScopedListWarningDataItem (Maybe Text)+igmslwdiValue+  = lens _igmslwdiValue+      (\ s a -> s{_igmslwdiValue = a})++-- | [Output Only] A key for the warning data.+igmslwdiKey :: Lens' InstanceGroupManagersScopedListWarningDataItem (Maybe Text)+igmslwdiKey+  = lens _igmslwdiKey (\ s a -> s{_igmslwdiKey = a})++instance FromJSON+         InstanceGroupManagersScopedListWarningDataItem where+        parseJSON+          = withObject+              "InstanceGroupManagersScopedListWarningDataItem"+              (\ o ->+                 InstanceGroupManagersScopedListWarningDataItem <$>+                   (o .:? "value") <*> (o .:? "key"))++instance ToJSON+         InstanceGroupManagersScopedListWarningDataItem where+        toJSON+          InstanceGroupManagersScopedListWarningDataItem{..}+          = object+              (catMaybes+                 [("value" .=) <$> _igmslwdiValue,+                  ("key" .=) <$> _igmslwdiKey])++-- | A Project resource. Projects can only be created in the Google+-- Developers Console. Unless marked otherwise, values can only be modified+-- in the console.+--+-- /See:/ 'project' smart constructor.+data Project = Project+    { _pKind                   :: !Text+    , _pUsageExportLocation    :: !(Maybe UsageExportLocation)+    , _pSelfLink               :: !(Maybe Text)+    , _pName                   :: !(Maybe Text)+    , _pCreationTimestamp      :: !(Maybe Text)+    , _pEnabledFeatures        :: !(Maybe [Text])+    , _pQuotas                 :: !(Maybe [Quota])+    , _pId                     :: !(Maybe (Textual Word64))+    , _pDescription            :: !(Maybe Text)+    , _pCommonInstanceMetadata :: !(Maybe Metadata)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Project' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pKind'+--+-- * 'pUsageExportLocation'+--+-- * 'pSelfLink'+--+-- * 'pName'+--+-- * 'pCreationTimestamp'+--+-- * 'pEnabledFeatures'+--+-- * 'pQuotas'+--+-- * 'pId'+--+-- * 'pDescription'+--+-- * 'pCommonInstanceMetadata'+project+    :: Project+project =+    Project+    { _pKind = "compute#project"+    , _pUsageExportLocation = Nothing+    , _pSelfLink = Nothing+    , _pName = Nothing+    , _pCreationTimestamp = Nothing+    , _pEnabledFeatures = Nothing+    , _pQuotas = Nothing+    , _pId = Nothing+    , _pDescription = Nothing+    , _pCommonInstanceMetadata = Nothing+    }++-- | [Output Only] Type of the resource. Always compute#project for projects.+pKind :: Lens' Project Text+pKind = lens _pKind (\ s a -> s{_pKind = a})++-- | The location in Cloud Storage and naming method of the daily usage+-- report.+pUsageExportLocation :: Lens' Project (Maybe UsageExportLocation)+pUsageExportLocation+  = lens _pUsageExportLocation+      (\ s a -> s{_pUsageExportLocation = a})++-- | [Output Only] Server-defined URL for the resource.+pSelfLink :: Lens' Project (Maybe Text)+pSelfLink+  = lens _pSelfLink (\ s a -> s{_pSelfLink = a})++-- | Name of the resource.+pName :: Lens' Project (Maybe Text)+pName = lens _pName (\ s a -> s{_pName = a})++-- | [Output Only] Creation timestamp in RFC3339 text format.+pCreationTimestamp :: Lens' Project (Maybe Text)+pCreationTimestamp+  = lens _pCreationTimestamp+      (\ s a -> s{_pCreationTimestamp = a})++-- | Restricted features enabled for use on this project.+pEnabledFeatures :: Lens' Project [Text]+pEnabledFeatures+  = lens _pEnabledFeatures+      (\ s a -> s{_pEnabledFeatures = a})+      . _Default+      . _Coerce++-- | [Output Only] Quotas assigned to this project.+pQuotas :: Lens' Project [Quota]+pQuotas+  = lens _pQuotas (\ s a -> s{_pQuotas = a}) . _Default+      . _Coerce++-- | [Output Only] Unique identifier for the resource; defined by the server.+pId :: Lens' Project (Maybe Word64)+pId+  = lens _pId (\ s a -> s{_pId = a}) . mapping _Coerce++-- | An optional textual description of the resource.+pDescription :: Lens' Project (Maybe Text)+pDescription+  = lens _pDescription (\ s a -> s{_pDescription = a})++-- | Metadata key\/value pairs available to all instances contained in this+-- project. See Custom metadata for more information.+pCommonInstanceMetadata :: Lens' Project (Maybe Metadata)+pCommonInstanceMetadata+  = lens _pCommonInstanceMetadata+      (\ s a -> s{_pCommonInstanceMetadata = a})++instance FromJSON Project where+        parseJSON+          = withObject "Project"+              (\ o ->+                 Project <$>+                   (o .:? "kind" .!= "compute#project") <*>+                     (o .:? "usageExportLocation")+                     <*> (o .:? "selfLink")+                     <*> (o .:? "name")+                     <*> (o .:? "creationTimestamp")+                     <*> (o .:? "enabledFeatures" .!= mempty)+                     <*> (o .:? "quotas" .!= mempty)+                     <*> (o .:? "id")+                     <*> (o .:? "description")+                     <*> (o .:? "commonInstanceMetadata"))++instance ToJSON Project where+        toJSON Project{..}+          = object+              (catMaybes+                 [Just ("kind" .= _pKind),+                  ("usageExportLocation" .=) <$> _pUsageExportLocation,+                  ("selfLink" .=) <$> _pSelfLink,+                  ("name" .=) <$> _pName,+                  ("creationTimestamp" .=) <$> _pCreationTimestamp,+                  ("enabledFeatures" .=) <$> _pEnabledFeatures,+                  ("quotas" .=) <$> _pQuotas, ("id" .=) <$> _pId,+                  ("description" .=) <$> _pDescription,+                  ("commonInstanceMetadata" .=) <$>+                    _pCommonInstanceMetadata])++-- | An Operation resource, used to manage asynchronous API requests.+--+-- /See:/ 'operation' smart constructor.+data Operation = Operation+    { _oTargetId            :: !(Maybe (Textual Word64))+    , _oStatus              :: !(Maybe OperationStatus)+    , _oInsertTime          :: !(Maybe Text)+    , _oProgress            :: !(Maybe (Textual Int32))+    , _oStartTime           :: !(Maybe Text)+    , _oKind                :: !Text+    , _oError               :: !(Maybe OperationError)+    , _oHTTPErrorMessage    :: !(Maybe Text)+    , _oZone                :: !(Maybe Text)+    , _oWarnings            :: !(Maybe [OperationWarningsItem])+    , _oHTTPErrorStatusCode :: !(Maybe (Textual Int32))+    , _oUser                :: !(Maybe Text)+    , _oSelfLink            :: !(Maybe Text)+    , _oName                :: !(Maybe Text)+    , _oStatusMessage       :: !(Maybe Text)+    , _oCreationTimestamp   :: !(Maybe Text)+    , _oEndTime             :: !(Maybe Text)+    , _oId                  :: !(Maybe (Textual Word64))+    , _oOperationType       :: !(Maybe Text)+    , _oRegion              :: !(Maybe Text)+    , _oTargetLink          :: !(Maybe Text)+    , _oClientOperationId   :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Operation' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'oTargetId'+--+-- * 'oStatus'+--+-- * 'oInsertTime'+--+-- * 'oProgress'+--+-- * 'oStartTime'+--+-- * 'oKind'+--+-- * 'oError'+--+-- * 'oHTTPErrorMessage'+--+-- * 'oZone'+--+-- * 'oWarnings'+--+-- * 'oHTTPErrorStatusCode'+--+-- * 'oUser'+--+-- * 'oSelfLink'+--+-- * 'oName'+--+-- * 'oStatusMessage'+--+-- * 'oCreationTimestamp'+--+-- * 'oEndTime'+--+-- * 'oId'+--+-- * 'oOperationType'+--+-- * 'oRegion'+--+-- * 'oTargetLink'+--+-- * 'oClientOperationId'+operation+    :: Operation+operation =+    Operation+    { _oTargetId = Nothing+    , _oStatus = Nothing+    , _oInsertTime = Nothing+    , _oProgress = Nothing+    , _oStartTime = Nothing+    , _oKind = "compute#operation"+    , _oError = Nothing+    , _oHTTPErrorMessage = Nothing+    , _oZone = Nothing+    , _oWarnings = Nothing+    , _oHTTPErrorStatusCode = Nothing+    , _oUser = Nothing+    , _oSelfLink = Nothing+    , _oName = Nothing+    , _oStatusMessage = Nothing+    , _oCreationTimestamp = Nothing+    , _oEndTime = Nothing+    , _oId = Nothing+    , _oOperationType = Nothing+    , _oRegion = Nothing+    , _oTargetLink = Nothing+    , _oClientOperationId = Nothing+    }++-- | [Output Only] Unique target ID which identifies a particular incarnation+-- of the target.+oTargetId :: Lens' Operation (Maybe Word64)+oTargetId+  = lens _oTargetId (\ s a -> s{_oTargetId = a}) .+      mapping _Coerce++-- | [Output Only] Status of the operation. Can be one of the following:+-- PENDING, RUNNING, or DONE.+oStatus :: Lens' Operation (Maybe OperationStatus)+oStatus = lens _oStatus (\ s a -> s{_oStatus = a})++-- | [Output Only] The time that this operation was requested. This is in+-- RFC3339 text format.+oInsertTime :: Lens' Operation (Maybe Text)+oInsertTime+  = lens _oInsertTime (\ s a -> s{_oInsertTime = a})++-- | [Output Only] An optional progress indicator that ranges from 0 to 100.+-- There is no requirement that this be linear or support any granularity+-- of operations. This should not be used to guess at when the operation+-- will be complete. This number should monotonically increase as the+-- operation progresses.+oProgress :: Lens' Operation (Maybe Int32)+oProgress+  = lens _oProgress (\ s a -> s{_oProgress = a}) .+      mapping _Coerce++-- | [Output Only] The time that this operation was started by the server.+-- This is in RFC3339 text format.+oStartTime :: Lens' Operation (Maybe Text)+oStartTime+  = lens _oStartTime (\ s a -> s{_oStartTime = a})++-- | [Output Only] Type of the resource. Always compute#operation for+-- Operation resources.+oKind :: Lens' Operation Text+oKind = lens _oKind (\ s a -> s{_oKind = a})++-- | [Output Only] If errors are generated during processing of the+-- operation, this field will be populated.+oError :: Lens' Operation (Maybe OperationError)+oError = lens _oError (\ s a -> s{_oError = a})++-- | [Output Only] If the operation fails, this field contains the HTTP error+-- message that was returned, such as NOT FOUND.+oHTTPErrorMessage :: Lens' Operation (Maybe Text)+oHTTPErrorMessage+  = lens _oHTTPErrorMessage+      (\ s a -> s{_oHTTPErrorMessage = a})++-- | [Output Only] URL of the zone where the operation resides.+oZone :: Lens' Operation (Maybe Text)+oZone = lens _oZone (\ s a -> s{_oZone = a})++-- | [Output Only] If warning messages are generated during processing of the+-- operation, this field will be populated.+oWarnings :: Lens' Operation [OperationWarningsItem]+oWarnings+  = lens _oWarnings (\ s a -> s{_oWarnings = a}) .+      _Default+      . _Coerce++-- | [Output Only] If the operation fails, this field contains the HTTP error+-- message that was returned, such as 404.+oHTTPErrorStatusCode :: Lens' Operation (Maybe Int32)+oHTTPErrorStatusCode+  = lens _oHTTPErrorStatusCode+      (\ s a -> s{_oHTTPErrorStatusCode = a})+      . mapping _Coerce++-- | [Output Only] User who requested the operation, for example:+-- user\'example.com.+oUser :: Lens' Operation (Maybe Text)+oUser = lens _oUser (\ s a -> s{_oUser = a})++-- | [Output Only] Server-defined URL for the resource.+oSelfLink :: Lens' Operation (Maybe Text)+oSelfLink+  = lens _oSelfLink (\ s a -> s{_oSelfLink = a})++-- | [Output Only] Name of the resource.+oName :: Lens' Operation (Maybe Text)+oName = lens _oName (\ s a -> s{_oName = a})++-- | [Output Only] An optional textual description of the current status of+-- the operation.+oStatusMessage :: Lens' Operation (Maybe Text)+oStatusMessage+  = lens _oStatusMessage+      (\ s a -> s{_oStatusMessage = a})++-- | [Output Only] Creation timestamp in RFC3339 text format.+oCreationTimestamp :: Lens' Operation (Maybe Text)+oCreationTimestamp+  = lens _oCreationTimestamp+      (\ s a -> s{_oCreationTimestamp = a})++-- | [Output Only] The time that this operation was completed. This is in+-- RFC3339 text format.+oEndTime :: Lens' Operation (Maybe Text)+oEndTime = lens _oEndTime (\ s a -> s{_oEndTime = a})++-- | [Output Only] Unique identifier for the resource; defined by the server.+oId :: Lens' Operation (Maybe Word64)+oId+  = lens _oId (\ s a -> s{_oId = a}) . mapping _Coerce++-- | [Output Only] Type of the operation, such as insert,+-- compute.instanceGroups.update, or compute.instanceGroups.delete.+oOperationType :: Lens' Operation (Maybe Text)+oOperationType+  = lens _oOperationType+      (\ s a -> s{_oOperationType = a})++-- | [Output Only] URL of the region where the operation resides. Only+-- applicable for regional resources.+oRegion :: Lens' Operation (Maybe Text)+oRegion = lens _oRegion (\ s a -> s{_oRegion = a})++-- | [Output Only] URL of the resource the operation is mutating.+oTargetLink :: Lens' Operation (Maybe Text)+oTargetLink+  = lens _oTargetLink (\ s a -> s{_oTargetLink = a})++-- | [Output Only] An optional identifier specified by the client when the+-- mutation was initiated. Must be unique for all Operation resources in+-- the project.+oClientOperationId :: Lens' Operation (Maybe Text)+oClientOperationId+  = lens _oClientOperationId+      (\ s a -> s{_oClientOperationId = a})++instance FromJSON Operation where+        parseJSON+          = withObject "Operation"+              (\ o ->+                 Operation <$>+                   (o .:? "targetId") <*> (o .:? "status") <*>+                     (o .:? "insertTime")+                     <*> (o .:? "progress")+                     <*> (o .:? "startTime")+                     <*> (o .:? "kind" .!= "compute#operation")+                     <*> (o .:? "error")+                     <*> (o .:? "httpErrorMessage")+                     <*> (o .:? "zone")+                     <*> (o .:? "warnings" .!= mempty)+                     <*> (o .:? "httpErrorStatusCode")+                     <*> (o .:? "user")+                     <*> (o .:? "selfLink")+                     <*> (o .:? "name")+                     <*> (o .:? "statusMessage")+                     <*> (o .:? "creationTimestamp")+                     <*> (o .:? "endTime")+                     <*> (o .:? "id")+                     <*> (o .:? "operationType")+                     <*> (o .:? "region")+                     <*> (o .:? "targetLink")+                     <*> (o .:? "clientOperationId"))++instance ToJSON Operation where+        toJSON Operation{..}+          = object+              (catMaybes+                 [("targetId" .=) <$> _oTargetId,+                  ("status" .=) <$> _oStatus,+                  ("insertTime" .=) <$> _oInsertTime,+                  ("progress" .=) <$> _oProgress,+                  ("startTime" .=) <$> _oStartTime,+                  Just ("kind" .= _oKind), ("error" .=) <$> _oError,+                  ("httpErrorMessage" .=) <$> _oHTTPErrorMessage,+                  ("zone" .=) <$> _oZone,+                  ("warnings" .=) <$> _oWarnings,+                  ("httpErrorStatusCode" .=) <$> _oHTTPErrorStatusCode,+                  ("user" .=) <$> _oUser,+                  ("selfLink" .=) <$> _oSelfLink,+                  ("name" .=) <$> _oName,+                  ("statusMessage" .=) <$> _oStatusMessage,+                  ("creationTimestamp" .=) <$> _oCreationTimestamp,+                  ("endTime" .=) <$> _oEndTime, ("id" .=) <$> _oId,+                  ("operationType" .=) <$> _oOperationType,+                  ("region" .=) <$> _oRegion,+                  ("targetLink" .=) <$> _oTargetLink,+                  ("clientOperationId" .=) <$> _oClientOperationId])++--+-- /See:/ 'disksScopedListWarningDataItem' smart constructor.+data DisksScopedListWarningDataItem = DisksScopedListWarningDataItem+    { _dslwdiValue :: !(Maybe Text)+    , _dslwdiKey   :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DisksScopedListWarningDataItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dslwdiValue'+--+-- * 'dslwdiKey'+disksScopedListWarningDataItem+    :: DisksScopedListWarningDataItem+disksScopedListWarningDataItem =+    DisksScopedListWarningDataItem+    { _dslwdiValue = Nothing+    , _dslwdiKey = Nothing+    }++-- | [Output Only] A warning data value corresponding to the key.+dslwdiValue :: Lens' DisksScopedListWarningDataItem (Maybe Text)+dslwdiValue+  = lens _dslwdiValue (\ s a -> s{_dslwdiValue = a})++-- | [Output Only] A key for the warning data.+dslwdiKey :: Lens' DisksScopedListWarningDataItem (Maybe Text)+dslwdiKey+  = lens _dslwdiKey (\ s a -> s{_dslwdiKey = a})++instance FromJSON DisksScopedListWarningDataItem+         where+        parseJSON+          = withObject "DisksScopedListWarningDataItem"+              (\ o ->+                 DisksScopedListWarningDataItem <$>+                   (o .:? "value") <*> (o .:? "key"))++instance ToJSON DisksScopedListWarningDataItem where+        toJSON DisksScopedListWarningDataItem{..}+          = object+              (catMaybes+                 [("value" .=) <$> _dslwdiValue,+                  ("key" .=) <$> _dslwdiKey])++-- | A Disk resource.+--+-- /See:/ 'disk' smart constructor.+data Disk = Disk+    { _dStatus              :: !(Maybe DiskStatus)+    , _dSourceSnapshotId    :: !(Maybe Text)+    , _dLastAttachTimestamp :: !(Maybe Text)+    , _dUsers               :: !(Maybe [Text])+    , _dSourceImage         :: !(Maybe Text)+    , _dSizeGb              :: !(Maybe (Textual Int64))+    , _dKind                :: !Text+    , _dLastDetachTimestamp :: !(Maybe Text)+    , _dZone                :: !(Maybe Text)+    , _dSelfLink            :: !(Maybe Text)+    , _dName                :: !(Maybe Text)+    , _dSourceImageId       :: !(Maybe Text)+    , _dCreationTimestamp   :: !(Maybe Text)+    , _dId                  :: !(Maybe (Textual Word64))+    , _dLicenses            :: !(Maybe [Text])+    , _dOptions             :: !(Maybe Text)+    , _dType                :: !(Maybe Text)+    , _dDescription         :: !(Maybe Text)+    , _dSourceSnapshot      :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Disk' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dStatus'+--+-- * 'dSourceSnapshotId'+--+-- * 'dLastAttachTimestamp'+--+-- * 'dUsers'+--+-- * 'dSourceImage'+--+-- * 'dSizeGb'+--+-- * 'dKind'+--+-- * 'dLastDetachTimestamp'+--+-- * 'dZone'+--+-- * 'dSelfLink'+--+-- * 'dName'+--+-- * 'dSourceImageId'+--+-- * 'dCreationTimestamp'+--+-- * 'dId'+--+-- * 'dLicenses'+--+-- * 'dOptions'+--+-- * 'dType'+--+-- * 'dDescription'+--+-- * 'dSourceSnapshot'+disk+    :: Disk+disk =+    Disk+    { _dStatus = Nothing+    , _dSourceSnapshotId = Nothing+    , _dLastAttachTimestamp = Nothing+    , _dUsers = Nothing+    , _dSourceImage = Nothing+    , _dSizeGb = Nothing+    , _dKind = "compute#disk"+    , _dLastDetachTimestamp = Nothing+    , _dZone = Nothing+    , _dSelfLink = Nothing+    , _dName = Nothing+    , _dSourceImageId = Nothing+    , _dCreationTimestamp = Nothing+    , _dId = Nothing+    , _dLicenses = Nothing+    , _dOptions = Nothing+    , _dType = Nothing+    , _dDescription = Nothing+    , _dSourceSnapshot = Nothing+    }++-- | [Output Only] The status of disk creation. Applicable statuses includes:+-- CREATING, FAILED, READY, RESTORING.+dStatus :: Lens' Disk (Maybe DiskStatus)+dStatus = lens _dStatus (\ s a -> s{_dStatus = a})++-- | [Output Only] The unique ID of the snapshot used to create this disk.+-- This value identifies the exact snapshot that was used to create this+-- persistent disk. For example, if you created the persistent disk from a+-- snapshot that was later deleted and recreated under the same name, the+-- source snapshot ID would identify the exact version of the snapshot that+-- was used.+dSourceSnapshotId :: Lens' Disk (Maybe Text)+dSourceSnapshotId+  = lens _dSourceSnapshotId+      (\ s a -> s{_dSourceSnapshotId = a})++-- | [Output Only] Last attach timestamp in RFC3339 text format.+dLastAttachTimestamp :: Lens' Disk (Maybe Text)+dLastAttachTimestamp+  = lens _dLastAttachTimestamp+      (\ s a -> s{_dLastAttachTimestamp = a})++-- | Links to the users of the disk (attached instances) in form:+-- project\/zones\/zone\/instances\/instance+dUsers :: Lens' Disk [Text]+dUsers+  = lens _dUsers (\ s a -> s{_dUsers = a}) . _Default .+      _Coerce++-- | The source image used to create this disk. If the source image is+-- deleted from the system, this field will not be set, even if an image+-- with the same name has been re-created. When creating a disk, you can+-- provide a private (custom) image using the following input, and Compute+-- Engine will use the corresponding image from your project. For example:+-- global\/images\/my-private-image Or you can provide an image from a+-- publicly-available project. For example, to use a Debian image from the+-- debian-cloud project, make sure to include the project in the URL:+-- projects\/debian-cloud\/global\/images\/debian-7-wheezy-vYYYYMMDD where+-- vYYYYMMDD is the image version. The fully-qualified URL will also work+-- in both cases.+dSourceImage :: Lens' Disk (Maybe Text)+dSourceImage+  = lens _dSourceImage (\ s a -> s{_dSourceImage = a})++-- | Size of the persistent disk, specified in GB. You can specify this field+-- when creating a persistent disk using the sourceImage or sourceSnapshot+-- parameter, or specify it alone to create an empty persistent disk. If+-- you specify this field along with sourceImage or sourceSnapshot, the+-- value of sizeGb must not be less than the size of the sourceImage or the+-- size of the snapshot.+dSizeGb :: Lens' Disk (Maybe Int64)+dSizeGb+  = lens _dSizeGb (\ s a -> s{_dSizeGb = a}) .+      mapping _Coerce++-- | [Output Only] Type of the resource. Always compute#disk for disks.+dKind :: Lens' Disk Text+dKind = lens _dKind (\ s a -> s{_dKind = a})++-- | [Output Only] Last detach timestamp in RFC3339 text format.+dLastDetachTimestamp :: Lens' Disk (Maybe Text)+dLastDetachTimestamp+  = lens _dLastDetachTimestamp+      (\ s a -> s{_dLastDetachTimestamp = a})++-- | [Output Only] URL of the zone where the disk resides.+dZone :: Lens' Disk (Maybe Text)+dZone = lens _dZone (\ s a -> s{_dZone = a})++-- | [Output Only] Server-defined fully-qualified URL for this resource.+dSelfLink :: Lens' Disk (Maybe Text)+dSelfLink+  = lens _dSelfLink (\ s a -> s{_dSelfLink = a})++-- | Name of the resource; provided by the client when the resource is+-- created. The name must be 1-63 characters long, and comply with RFC1035.+-- Specifically, the name must be 1-63 characters long and match the+-- regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first+-- character must be a lowercase letter, and all following characters must+-- be a dash, lowercase letter, or digit, except the last character, which+-- cannot be a dash.+dName :: Lens' Disk (Maybe Text)+dName = lens _dName (\ s a -> s{_dName = a})++-- | The ID value of the image used to create this disk. This value+-- identifies the exact image that was used to create this persistent disk.+-- For example, if you created the persistent disk from an image that was+-- later deleted and recreated under the same name, the source image ID+-- would identify the exact version of the image that was used.+dSourceImageId :: Lens' Disk (Maybe Text)+dSourceImageId+  = lens _dSourceImageId+      (\ s a -> s{_dSourceImageId = a})++-- | [Output Only] Creation timestamp in RFC3339 text format.+dCreationTimestamp :: Lens' Disk (Maybe Text)+dCreationTimestamp+  = lens _dCreationTimestamp+      (\ s a -> s{_dCreationTimestamp = a})++-- | [Output Only] Unique identifier for the resource; defined by the server.+dId :: Lens' Disk (Maybe Word64)+dId+  = lens _dId (\ s a -> s{_dId = a}) . mapping _Coerce++-- | Any applicable publicly visible licenses.+dLicenses :: Lens' Disk [Text]+dLicenses+  = lens _dLicenses (\ s a -> s{_dLicenses = a}) .+      _Default+      . _Coerce++-- | Internal use only.+dOptions :: Lens' Disk (Maybe Text)+dOptions = lens _dOptions (\ s a -> s{_dOptions = a})++-- | URL of the disk type resource describing which disk type to use to+-- create the disk; provided by the client when the disk is created.+dType :: Lens' Disk (Maybe Text)+dType = lens _dType (\ s a -> s{_dType = a})++-- | An optional textual description of the resource; provided by the client+-- when the resource is created.+dDescription :: Lens' Disk (Maybe Text)+dDescription+  = lens _dDescription (\ s a -> s{_dDescription = a})++-- | The source snapshot used to create this disk. You can provide this as a+-- partial or full URL to the resource. For example, the following are+-- valid values: -+-- https:\/\/www.googleapis.com\/compute\/v1\/projects\/project\/global\/snapshots\/snapshot+-- - projects\/project\/global\/snapshots\/snapshot -+-- global\/snapshots\/snapshot+dSourceSnapshot :: Lens' Disk (Maybe Text)+dSourceSnapshot+  = lens _dSourceSnapshot+      (\ s a -> s{_dSourceSnapshot = a})++instance FromJSON Disk where+        parseJSON+          = withObject "Disk"+              (\ o ->+                 Disk <$>+                   (o .:? "status") <*> (o .:? "sourceSnapshotId") <*>+                     (o .:? "lastAttachTimestamp")+                     <*> (o .:? "users" .!= mempty)+                     <*> (o .:? "sourceImage")+                     <*> (o .:? "sizeGb")+                     <*> (o .:? "kind" .!= "compute#disk")+                     <*> (o .:? "lastDetachTimestamp")+                     <*> (o .:? "zone")+                     <*> (o .:? "selfLink")+                     <*> (o .:? "name")+                     <*> (o .:? "sourceImageId")+                     <*> (o .:? "creationTimestamp")+                     <*> (o .:? "id")+                     <*> (o .:? "licenses" .!= mempty)+                     <*> (o .:? "options")+                     <*> (o .:? "type")+                     <*> (o .:? "description")+                     <*> (o .:? "sourceSnapshot"))++instance ToJSON Disk where+        toJSON Disk{..}+          = object+              (catMaybes+                 [("status" .=) <$> _dStatus,+                  ("sourceSnapshotId" .=) <$> _dSourceSnapshotId,+                  ("lastAttachTimestamp" .=) <$> _dLastAttachTimestamp,+                  ("users" .=) <$> _dUsers,+                  ("sourceImage" .=) <$> _dSourceImage,+                  ("sizeGb" .=) <$> _dSizeGb, Just ("kind" .= _dKind),+                  ("lastDetachTimestamp" .=) <$> _dLastDetachTimestamp,+                  ("zone" .=) <$> _dZone,+                  ("selfLink" .=) <$> _dSelfLink,+                  ("name" .=) <$> _dName,+                  ("sourceImageId" .=) <$> _dSourceImageId,+                  ("creationTimestamp" .=) <$> _dCreationTimestamp,+                  ("id" .=) <$> _dId, ("licenses" .=) <$> _dLicenses,+                  ("options" .=) <$> _dOptions, ("type" .=) <$> _dType,+                  ("description" .=) <$> _dDescription,+                  ("sourceSnapshot" .=) <$> _dSourceSnapshot])++--+-- /See:/ 'diskMoveRequest' smart constructor.+data DiskMoveRequest = DiskMoveRequest+    { _dmrTargetDisk      :: !(Maybe Text)+    , _dmrDestinationZone :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DiskMoveRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dmrTargetDisk'+--+-- * 'dmrDestinationZone'+diskMoveRequest+    :: DiskMoveRequest+diskMoveRequest =+    DiskMoveRequest+    { _dmrTargetDisk = Nothing+    , _dmrDestinationZone = Nothing+    }++-- | The URL of the target disk to move. This can be a full or partial URL.+-- For example, the following are all valid URLs to a disk: -+-- https:\/\/www.googleapis.com\/compute\/v1\/projects\/project\/zones\/zone\/disks\/disk+-- - projects\/project\/zones\/zone\/disks\/disk - zones\/zone\/disks\/disk+dmrTargetDisk :: Lens' DiskMoveRequest (Maybe Text)+dmrTargetDisk+  = lens _dmrTargetDisk+      (\ s a -> s{_dmrTargetDisk = a})++-- | The URL of the destination zone to move the disk to. This can be a full+-- or partial URL. For example, the following are all valid URLs to a zone:+-- -+-- https:\/\/www.googleapis.com\/compute\/v1\/projects\/project\/zones\/zone+-- - projects\/project\/zones\/zone - zones\/zone+dmrDestinationZone :: Lens' DiskMoveRequest (Maybe Text)+dmrDestinationZone+  = lens _dmrDestinationZone+      (\ s a -> s{_dmrDestinationZone = a})++instance FromJSON DiskMoveRequest where+        parseJSON+          = withObject "DiskMoveRequest"+              (\ o ->+                 DiskMoveRequest <$>+                   (o .:? "targetDisk") <*> (o .:? "destinationZone"))++instance ToJSON DiskMoveRequest where+        toJSON DiskMoveRequest{..}+          = object+              (catMaybes+                 [("targetDisk" .=) <$> _dmrTargetDisk,+                  ("destinationZone" .=) <$> _dmrDestinationZone])++-- | Load balancing utilization policy.+--+-- /See:/ 'autoscalingPolicyLoadBalancingUtilization' smart constructor.+newtype AutoscalingPolicyLoadBalancingUtilization = AutoscalingPolicyLoadBalancingUtilization+    { _aplbuUtilizationTarget :: Maybe (Textual Double)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'AutoscalingPolicyLoadBalancingUtilization' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aplbuUtilizationTarget'+autoscalingPolicyLoadBalancingUtilization+    :: AutoscalingPolicyLoadBalancingUtilization+autoscalingPolicyLoadBalancingUtilization =+    AutoscalingPolicyLoadBalancingUtilization+    { _aplbuUtilizationTarget = Nothing+    }++-- | Fraction of backend capacity utilization (set in HTTP load balancing+-- configuration) that Autoscaler should maintain. Must be a positive float+-- value. If not defined, the default is 0.8. For example if your+-- maxRatePerInstance capacity (in HTTP Load Balancing configuration) is+-- set at 10 and you would like to keep number of instances such that each+-- instance receives 7 QPS on average, set this to 0.7.+aplbuUtilizationTarget :: Lens' AutoscalingPolicyLoadBalancingUtilization (Maybe Double)+aplbuUtilizationTarget+  = lens _aplbuUtilizationTarget+      (\ s a -> s{_aplbuUtilizationTarget = a})+      . mapping _Coerce++instance FromJSON+         AutoscalingPolicyLoadBalancingUtilization where+        parseJSON+          = withObject+              "AutoscalingPolicyLoadBalancingUtilization"+              (\ o ->+                 AutoscalingPolicyLoadBalancingUtilization <$>+                   (o .:? "utilizationTarget"))++instance ToJSON+         AutoscalingPolicyLoadBalancingUtilization where+        toJSON AutoscalingPolicyLoadBalancingUtilization{..}+          = object+              (catMaybes+                 [("utilizationTarget" .=) <$>+                    _aplbuUtilizationTarget])++--+-- /See:/ 'targetPoolsScopedListWarningDataItem' smart constructor.+data TargetPoolsScopedListWarningDataItem = TargetPoolsScopedListWarningDataItem+    { _tpslwdiValue :: !(Maybe Text)+    , _tpslwdiKey   :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TargetPoolsScopedListWarningDataItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tpslwdiValue'+--+-- * 'tpslwdiKey'+targetPoolsScopedListWarningDataItem+    :: TargetPoolsScopedListWarningDataItem+targetPoolsScopedListWarningDataItem =+    TargetPoolsScopedListWarningDataItem+    { _tpslwdiValue = Nothing+    , _tpslwdiKey = Nothing+    }++-- | [Output Only] A warning data value corresponding to the key.+tpslwdiValue :: Lens' TargetPoolsScopedListWarningDataItem (Maybe Text)+tpslwdiValue+  = lens _tpslwdiValue (\ s a -> s{_tpslwdiValue = a})++-- | [Output Only] A key for the warning data.+tpslwdiKey :: Lens' TargetPoolsScopedListWarningDataItem (Maybe Text)+tpslwdiKey+  = lens _tpslwdiKey (\ s a -> s{_tpslwdiKey = a})++instance FromJSON+         TargetPoolsScopedListWarningDataItem where+        parseJSON+          = withObject "TargetPoolsScopedListWarningDataItem"+              (\ o ->+                 TargetPoolsScopedListWarningDataItem <$>+                   (o .:? "value") <*> (o .:? "key"))++instance ToJSON TargetPoolsScopedListWarningDataItem+         where+        toJSON TargetPoolsScopedListWarningDataItem{..}+          = object+              (catMaybes+                 [("value" .=) <$> _tpslwdiValue,+                  ("key" .=) <$> _tpslwdiKey])++-- | InstanceGroupManagers Next available tag: 19+--+-- /See:/ 'instanceGroupManager' smart constructor.+data InstanceGroupManager = InstanceGroupManager+    { _igmKind              :: !Text+    , _igmFingerprint       :: !(Maybe (Textual Word8))+    , _igmBaseInstanceName  :: !(Maybe Text)+    , _igmZone              :: !(Maybe Text)+    , _igmInstanceTemplate  :: !(Maybe Text)+    , _igmTargetSize        :: !(Maybe (Textual Int32))+    , _igmSelfLink          :: !(Maybe Text)+    , _igmCurrentActions    :: !(Maybe InstanceGroupManagerActionsSummary)+    , _igmName              :: !(Maybe Text)+    , _igmCreationTimestamp :: !(Maybe Text)+    , _igmId                :: !(Maybe (Textual Word64))+    , _igmTargetPools       :: !(Maybe [Text])+    , _igmDescription       :: !(Maybe Text)+    , _igmInstanceGroup     :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstanceGroupManager' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'igmKind'+--+-- * 'igmFingerprint'+--+-- * 'igmBaseInstanceName'+--+-- * 'igmZone'+--+-- * 'igmInstanceTemplate'+--+-- * 'igmTargetSize'+--+-- * 'igmSelfLink'+--+-- * 'igmCurrentActions'+--+-- * 'igmName'+--+-- * 'igmCreationTimestamp'+--+-- * 'igmId'+--+-- * 'igmTargetPools'+--+-- * 'igmDescription'+--+-- * 'igmInstanceGroup'+instanceGroupManager+    :: InstanceGroupManager+instanceGroupManager =+    InstanceGroupManager+    { _igmKind = "compute#instanceGroupManager"+    , _igmFingerprint = Nothing+    , _igmBaseInstanceName = Nothing+    , _igmZone = Nothing+    , _igmInstanceTemplate = Nothing+    , _igmTargetSize = Nothing+    , _igmSelfLink = Nothing+    , _igmCurrentActions = Nothing+    , _igmName = Nothing+    , _igmCreationTimestamp = Nothing+    , _igmId = Nothing+    , _igmTargetPools = Nothing+    , _igmDescription = Nothing+    , _igmInstanceGroup = Nothing+    }++-- | [Output Only] The resource type, which is always+-- compute#instanceGroupManager for managed instance groups.+igmKind :: Lens' InstanceGroupManager Text+igmKind = lens _igmKind (\ s a -> s{_igmKind = a})++-- | [Output Only] The fingerprint of the target pools information. You can+-- use this optional field for optimistic locking when you update the+-- target pool entries.+igmFingerprint :: Lens' InstanceGroupManager (Maybe Word8)+igmFingerprint+  = lens _igmFingerprint+      (\ s a -> s{_igmFingerprint = a})+      . mapping _Coerce++-- | The base instance name to use for instances in this group. The value+-- must be 1-58 characters long. Instances are named by appending a hyphen+-- and a random four-character string to the base instance name. The base+-- instance name must comply with RFC1035.+igmBaseInstanceName :: Lens' InstanceGroupManager (Maybe Text)+igmBaseInstanceName+  = lens _igmBaseInstanceName+      (\ s a -> s{_igmBaseInstanceName = a})++-- | The name of the zone where the managed instance group is located.+igmZone :: Lens' InstanceGroupManager (Maybe Text)+igmZone = lens _igmZone (\ s a -> s{_igmZone = a})++-- | The URL of the instance template that is specified for this managed+-- instance group. The group uses this template to create all new instances+-- in the managed instance group.+igmInstanceTemplate :: Lens' InstanceGroupManager (Maybe Text)+igmInstanceTemplate+  = lens _igmInstanceTemplate+      (\ s a -> s{_igmInstanceTemplate = a})++-- | The target number of running instances for this managed instance group.+-- Deleting or abandoning instances reduces this number. Resizing the group+-- changes this number.+igmTargetSize :: Lens' InstanceGroupManager (Maybe Int32)+igmTargetSize+  = lens _igmTargetSize+      (\ s a -> s{_igmTargetSize = a})+      . mapping _Coerce++-- | [Output Only] The URL for this managed instance group. The server+-- defines this URL.+igmSelfLink :: Lens' InstanceGroupManager (Maybe Text)+igmSelfLink+  = lens _igmSelfLink (\ s a -> s{_igmSelfLink = a})++-- | [Output Only] The list of instance actions and the number of instances+-- in this managed instance group that are scheduled for each of those+-- actions.+igmCurrentActions :: Lens' InstanceGroupManager (Maybe InstanceGroupManagerActionsSummary)+igmCurrentActions+  = lens _igmCurrentActions+      (\ s a -> s{_igmCurrentActions = a})++-- | The name of the managed instance group. The name must be 1-63 characters+-- long, and comply with RFC1035.+igmName :: Lens' InstanceGroupManager (Maybe Text)+igmName = lens _igmName (\ s a -> s{_igmName = a})++-- | [Output Only] The creation timestamp for this managed instance group in+-- RFC3339 text format.+igmCreationTimestamp :: Lens' InstanceGroupManager (Maybe Text)+igmCreationTimestamp+  = lens _igmCreationTimestamp+      (\ s a -> s{_igmCreationTimestamp = a})++-- | [Output Only] A unique identifier for this resource type. The server+-- generates this identifier.+igmId :: Lens' InstanceGroupManager (Maybe Word64)+igmId+  = lens _igmId (\ s a -> s{_igmId = a}) .+      mapping _Coerce++-- | The URLs for all TargetPool resources to which instances in the+-- instanceGroup field are added. The target pools automatically apply to+-- all of the instances in the managed instance group.+igmTargetPools :: Lens' InstanceGroupManager [Text]+igmTargetPools+  = lens _igmTargetPools+      (\ s a -> s{_igmTargetPools = a})+      . _Default+      . _Coerce++-- | An optional text description for the managed instance group.+igmDescription :: Lens' InstanceGroupManager (Maybe Text)+igmDescription+  = lens _igmDescription+      (\ s a -> s{_igmDescription = a})++-- | [Output Only] The URL of the Instance Group resource.+igmInstanceGroup :: Lens' InstanceGroupManager (Maybe Text)+igmInstanceGroup+  = lens _igmInstanceGroup+      (\ s a -> s{_igmInstanceGroup = a})++instance FromJSON InstanceGroupManager where+        parseJSON+          = withObject "InstanceGroupManager"+              (\ o ->+                 InstanceGroupManager <$>+                   (o .:? "kind" .!= "compute#instanceGroupManager") <*>+                     (o .:? "fingerprint")+                     <*> (o .:? "baseInstanceName")+                     <*> (o .:? "zone")+                     <*> (o .:? "instanceTemplate")+                     <*> (o .:? "targetSize")+                     <*> (o .:? "selfLink")+                     <*> (o .:? "currentActions")+                     <*> (o .:? "name")+                     <*> (o .:? "creationTimestamp")+                     <*> (o .:? "id")+                     <*> (o .:? "targetPools" .!= mempty)+                     <*> (o .:? "description")+                     <*> (o .:? "instanceGroup"))++instance ToJSON InstanceGroupManager where+        toJSON InstanceGroupManager{..}+          = object+              (catMaybes+                 [Just ("kind" .= _igmKind),+                  ("fingerprint" .=) <$> _igmFingerprint,+                  ("baseInstanceName" .=) <$> _igmBaseInstanceName,+                  ("zone" .=) <$> _igmZone,+                  ("instanceTemplate" .=) <$> _igmInstanceTemplate,+                  ("targetSize" .=) <$> _igmTargetSize,+                  ("selfLink" .=) <$> _igmSelfLink,+                  ("currentActions" .=) <$> _igmCurrentActions,+                  ("name" .=) <$> _igmName,+                  ("creationTimestamp" .=) <$> _igmCreationTimestamp,+                  ("id" .=) <$> _igmId,+                  ("targetPools" .=) <$> _igmTargetPools,+                  ("description" .=) <$> _igmDescription,+                  ("instanceGroup" .=) <$> _igmInstanceGroup])++--+-- /See:/ 'instanceGroupsRemoveInstancesRequest' smart constructor.+newtype InstanceGroupsRemoveInstancesRequest = InstanceGroupsRemoveInstancesRequest+    { _igrirInstances :: Maybe [InstanceReference]+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstanceGroupsRemoveInstancesRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'igrirInstances'+instanceGroupsRemoveInstancesRequest+    :: InstanceGroupsRemoveInstancesRequest+instanceGroupsRemoveInstancesRequest =+    InstanceGroupsRemoveInstancesRequest+    { _igrirInstances = Nothing+    }++-- | The list of instances to remove from the instance group.+igrirInstances :: Lens' InstanceGroupsRemoveInstancesRequest [InstanceReference]+igrirInstances+  = lens _igrirInstances+      (\ s a -> s{_igrirInstances = a})+      . _Default+      . _Coerce++instance FromJSON+         InstanceGroupsRemoveInstancesRequest where+        parseJSON+          = withObject "InstanceGroupsRemoveInstancesRequest"+              (\ o ->+                 InstanceGroupsRemoveInstancesRequest <$>+                   (o .:? "instances" .!= mempty))++instance ToJSON InstanceGroupsRemoveInstancesRequest+         where+        toJSON InstanceGroupsRemoveInstancesRequest{..}+          = object+              (catMaybes [("instances" .=) <$> _igrirInstances])++--+-- /See:/ 'routeWarningsItemDataItem' smart constructor.+data RouteWarningsItemDataItem = RouteWarningsItemDataItem+    { _rwidiValue :: !(Maybe Text)+    , _rwidiKey   :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'RouteWarningsItemDataItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rwidiValue'+--+-- * 'rwidiKey'+routeWarningsItemDataItem+    :: RouteWarningsItemDataItem+routeWarningsItemDataItem =+    RouteWarningsItemDataItem+    { _rwidiValue = Nothing+    , _rwidiKey = Nothing+    }++-- | [Output Only] A warning data value corresponding to the key.+rwidiValue :: Lens' RouteWarningsItemDataItem (Maybe Text)+rwidiValue+  = lens _rwidiValue (\ s a -> s{_rwidiValue = a})++-- | [Output Only] A key for the warning data.+rwidiKey :: Lens' RouteWarningsItemDataItem (Maybe Text)+rwidiKey = lens _rwidiKey (\ s a -> s{_rwidiKey = a})++instance FromJSON RouteWarningsItemDataItem where+        parseJSON+          = withObject "RouteWarningsItemDataItem"+              (\ o ->+                 RouteWarningsItemDataItem <$>+                   (o .:? "value") <*> (o .:? "key"))++instance ToJSON RouteWarningsItemDataItem where+        toJSON RouteWarningsItemDataItem{..}+          = object+              (catMaybes+                 [("value" .=) <$> _rwidiValue,+                  ("key" .=) <$> _rwidiKey])++-- | [Output Only] A map of scoped instance lists.+--+-- /See:/ 'instanceAggregatedListItems' smart constructor.+newtype InstanceAggregatedListItems = InstanceAggregatedListItems+    { _ialiAddtional :: HashMap Text InstancesScopedList+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstanceAggregatedListItems' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ialiAddtional'+instanceAggregatedListItems+    :: HashMap Text InstancesScopedList -- ^ 'ialiAddtional'+    -> InstanceAggregatedListItems+instanceAggregatedListItems pIaliAddtional_ =+    InstanceAggregatedListItems+    { _ialiAddtional = _Coerce # pIaliAddtional_+    }++-- | Name of the scope containing this set of instances.+ialiAddtional :: Lens' InstanceAggregatedListItems (HashMap Text InstancesScopedList)+ialiAddtional+  = lens _ialiAddtional+      (\ s a -> s{_ialiAddtional = a})+      . _Coerce++instance FromJSON InstanceAggregatedListItems where+        parseJSON+          = withObject "InstanceAggregatedListItems"+              (\ o ->+                 InstanceAggregatedListItems <$> (parseJSONObject o))++instance ToJSON InstanceAggregatedListItems where+        toJSON = toJSON . _ialiAddtional++-- | Informational warning which replaces the list of autoscalers when the+-- list is empty.+--+-- /See:/ 'autoscalersScopedListWarning' smart constructor.+data AutoscalersScopedListWarning = AutoscalersScopedListWarning+    { _aslwData    :: !(Maybe [AutoscalersScopedListWarningDataItem])+    , _aslwCode    :: !(Maybe AutoscalersScopedListWarningCode)+    , _aslwMessage :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'AutoscalersScopedListWarning' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aslwData'+--+-- * 'aslwCode'+--+-- * 'aslwMessage'+autoscalersScopedListWarning+    :: AutoscalersScopedListWarning+autoscalersScopedListWarning =+    AutoscalersScopedListWarning+    { _aslwData = Nothing+    , _aslwCode = Nothing+    , _aslwMessage = Nothing+    }++-- | [Output Only] Metadata for this warning in key: value format.+aslwData :: Lens' AutoscalersScopedListWarning [AutoscalersScopedListWarningDataItem]+aslwData+  = lens _aslwData (\ s a -> s{_aslwData = a}) .+      _Default+      . _Coerce++-- | [Output Only] The warning type identifier for this warning.+aslwCode :: Lens' AutoscalersScopedListWarning (Maybe AutoscalersScopedListWarningCode)+aslwCode = lens _aslwCode (\ s a -> s{_aslwCode = a})++-- | [Output Only] Optional human-readable details for this warning.+aslwMessage :: Lens' AutoscalersScopedListWarning (Maybe Text)+aslwMessage+  = lens _aslwMessage (\ s a -> s{_aslwMessage = a})++instance FromJSON AutoscalersScopedListWarning where+        parseJSON+          = withObject "AutoscalersScopedListWarning"+              (\ o ->+                 AutoscalersScopedListWarning <$>+                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>+                     (o .:? "message"))++instance ToJSON AutoscalersScopedListWarning where+        toJSON AutoscalersScopedListWarning{..}+          = object+              (catMaybes+                 [("data" .=) <$> _aslwData,+                  ("code" .=) <$> _aslwCode,+                  ("message" .=) <$> _aslwMessage])++-- | [Output Only] Encountered errors during the last attempt to create or+-- delete the instance.+--+-- /See:/ 'managedInstanceLastAttemptErrors' smart constructor.+newtype ManagedInstanceLastAttemptErrors = ManagedInstanceLastAttemptErrors+    { _milaeErrors :: Maybe [ManagedInstanceLastAttemptErrorsErrorsItem]+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ManagedInstanceLastAttemptErrors' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'milaeErrors'+managedInstanceLastAttemptErrors+    :: ManagedInstanceLastAttemptErrors+managedInstanceLastAttemptErrors =+    ManagedInstanceLastAttemptErrors+    { _milaeErrors = Nothing+    }++-- | [Output Only] The array of errors encountered while processing this+-- operation.+milaeErrors :: Lens' ManagedInstanceLastAttemptErrors [ManagedInstanceLastAttemptErrorsErrorsItem]+milaeErrors+  = lens _milaeErrors (\ s a -> s{_milaeErrors = a}) .+      _Default+      . _Coerce++instance FromJSON ManagedInstanceLastAttemptErrors+         where+        parseJSON+          = withObject "ManagedInstanceLastAttemptErrors"+              (\ o ->+                 ManagedInstanceLastAttemptErrors <$>+                   (o .:? "errors" .!= mempty))++instance ToJSON ManagedInstanceLastAttemptErrors+         where+        toJSON ManagedInstanceLastAttemptErrors{..}+          = object (catMaybes [("errors" .=) <$> _milaeErrors])++--+-- /See:/ 'targetPoolsRemoveInstanceRequest' smart constructor.+newtype TargetPoolsRemoveInstanceRequest = TargetPoolsRemoveInstanceRequest+    { _tprirInstances :: Maybe [InstanceReference]+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TargetPoolsRemoveInstanceRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tprirInstances'+targetPoolsRemoveInstanceRequest+    :: TargetPoolsRemoveInstanceRequest+targetPoolsRemoveInstanceRequest =+    TargetPoolsRemoveInstanceRequest+    { _tprirInstances = Nothing+    }++-- | URLs of the instances to be removed from targetPool.+tprirInstances :: Lens' TargetPoolsRemoveInstanceRequest [InstanceReference]+tprirInstances+  = lens _tprirInstances+      (\ s a -> s{_tprirInstances = a})+      . _Default+      . _Coerce++instance FromJSON TargetPoolsRemoveInstanceRequest+         where+        parseJSON+          = withObject "TargetPoolsRemoveInstanceRequest"+              (\ o ->+                 TargetPoolsRemoveInstanceRequest <$>+                   (o .:? "instances" .!= mempty))++instance ToJSON TargetPoolsRemoveInstanceRequest+         where+        toJSON TargetPoolsRemoveInstanceRequest{..}+          = object+              (catMaybes [("instances" .=) <$> _tprirInstances])++--+-- /See:/ 'targetInstancesScopedListWarningDataItem' smart constructor.+data TargetInstancesScopedListWarningDataItem = TargetInstancesScopedListWarningDataItem+    { _tislwdiValue :: !(Maybe Text)+    , _tislwdiKey   :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TargetInstancesScopedListWarningDataItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tislwdiValue'+--+-- * 'tislwdiKey'+targetInstancesScopedListWarningDataItem+    :: TargetInstancesScopedListWarningDataItem+targetInstancesScopedListWarningDataItem =+    TargetInstancesScopedListWarningDataItem+    { _tislwdiValue = Nothing+    , _tislwdiKey = Nothing+    }++-- | [Output Only] A warning data value corresponding to the key.+tislwdiValue :: Lens' TargetInstancesScopedListWarningDataItem (Maybe Text)+tislwdiValue+  = lens _tislwdiValue (\ s a -> s{_tislwdiValue = a})++-- | [Output Only] A key for the warning data.+tislwdiKey :: Lens' TargetInstancesScopedListWarningDataItem (Maybe Text)+tislwdiKey+  = lens _tislwdiKey (\ s a -> s{_tislwdiKey = a})++instance FromJSON+         TargetInstancesScopedListWarningDataItem where+        parseJSON+          = withObject+              "TargetInstancesScopedListWarningDataItem"+              (\ o ->+                 TargetInstancesScopedListWarningDataItem <$>+                   (o .:? "value") <*> (o .:? "key"))++instance ToJSON+         TargetInstancesScopedListWarningDataItem where+        toJSON TargetInstancesScopedListWarningDataItem{..}+          = object+              (catMaybes+                 [("value" .=) <$> _tislwdiValue,+                  ("key" .=) <$> _tislwdiKey])++-- | [Output Only] An informational warning that appears when the machine+-- types list is empty.+--+-- /See:/ 'machineTypesScopedListWarning' smart constructor.+data MachineTypesScopedListWarning = MachineTypesScopedListWarning+    { _mtslwData    :: !(Maybe [MachineTypesScopedListWarningDataItem])+    , _mtslwCode    :: !(Maybe MachineTypesScopedListWarningCode)+    , _mtslwMessage :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'MachineTypesScopedListWarning' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mtslwData'+--+-- * 'mtslwCode'+--+-- * 'mtslwMessage'+machineTypesScopedListWarning+    :: MachineTypesScopedListWarning+machineTypesScopedListWarning =+    MachineTypesScopedListWarning+    { _mtslwData = Nothing+    , _mtslwCode = Nothing+    , _mtslwMessage = Nothing+    }++-- | [Output Only] Metadata for this warning in key: value format.+mtslwData :: Lens' MachineTypesScopedListWarning [MachineTypesScopedListWarningDataItem]+mtslwData+  = lens _mtslwData (\ s a -> s{_mtslwData = a}) .+      _Default+      . _Coerce++-- | [Output Only] The warning type identifier for this warning.+mtslwCode :: Lens' MachineTypesScopedListWarning (Maybe MachineTypesScopedListWarningCode)+mtslwCode+  = lens _mtslwCode (\ s a -> s{_mtslwCode = a})++-- | [Output Only] Optional human-readable details for this warning.+mtslwMessage :: Lens' MachineTypesScopedListWarning (Maybe Text)+mtslwMessage+  = lens _mtslwMessage (\ s a -> s{_mtslwMessage = a})++instance FromJSON MachineTypesScopedListWarning where+        parseJSON+          = withObject "MachineTypesScopedListWarning"+              (\ o ->+                 MachineTypesScopedListWarning <$>+                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>+                     (o .:? "message"))++instance ToJSON MachineTypesScopedListWarning where+        toJSON MachineTypesScopedListWarning{..}+          = object+              (catMaybes+                 [("data" .=) <$> _mtslwData,+                  ("code" .=) <$> _mtslwCode,+                  ("message" .=) <$> _mtslwMessage])++-- | A TargetInstance resource. This resource defines an endpoint instance+-- that terminates traffic of certain protocols.+--+-- /See:/ 'targetInstance' smart constructor.+data TargetInstance = TargetInstance+    { _tiKind              :: !Text+    , _tiNATPolicy         :: !(Maybe TargetInstanceNATPolicy)+    , _tiZone              :: !(Maybe Text)+    , _tiSelfLink          :: !(Maybe Text)+    , _tiName              :: !(Maybe Text)+    , _tiCreationTimestamp :: !(Maybe Text)+    , _tiId                :: !(Maybe (Textual Word64))+    , _tiDescription       :: !(Maybe Text)+    , _tiInstance          :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TargetInstance' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tiKind'+--+-- * 'tiNATPolicy'+--+-- * 'tiZone'+--+-- * 'tiSelfLink'+--+-- * 'tiName'+--+-- * 'tiCreationTimestamp'+--+-- * 'tiId'+--+-- * 'tiDescription'+--+-- * 'tiInstance'+targetInstance+    :: TargetInstance+targetInstance =+    TargetInstance+    { _tiKind = "compute#targetInstance"+    , _tiNATPolicy = Nothing+    , _tiZone = Nothing+    , _tiSelfLink = Nothing+    , _tiName = Nothing+    , _tiCreationTimestamp = Nothing+    , _tiId = Nothing+    , _tiDescription = Nothing+    , _tiInstance = Nothing+    }++-- | Type of the resource.+tiKind :: Lens' TargetInstance Text+tiKind = lens _tiKind (\ s a -> s{_tiKind = a})++-- | NAT option controlling how IPs are NAT\'ed to the instance. Currently+-- only NO_NAT (default value) is supported.+tiNATPolicy :: Lens' TargetInstance (Maybe TargetInstanceNATPolicy)+tiNATPolicy+  = lens _tiNATPolicy (\ s a -> s{_tiNATPolicy = a})++-- | [Output Only] URL of the zone where the target instance resides.+tiZone :: Lens' TargetInstance (Maybe Text)+tiZone = lens _tiZone (\ s a -> s{_tiZone = a})++-- | [Output Only] Server-defined URL for the resource.+tiSelfLink :: Lens' TargetInstance (Maybe Text)+tiSelfLink+  = lens _tiSelfLink (\ s a -> s{_tiSelfLink = a})++-- | Name of the resource. Provided by the client when the resource is+-- created. The name must be 1-63 characters long, and comply with RFC1035.+-- Specifically, the name must be 1-63 characters long and match the+-- regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first+-- character must be a lowercase letter, and all following characters must+-- be a dash, lowercase letter, or digit, except the last character, which+-- cannot be a dash.+tiName :: Lens' TargetInstance (Maybe Text)+tiName = lens _tiName (\ s a -> s{_tiName = a})++-- | [Output Only] Creation timestamp in RFC3339 text format.+tiCreationTimestamp :: Lens' TargetInstance (Maybe Text)+tiCreationTimestamp+  = lens _tiCreationTimestamp+      (\ s a -> s{_tiCreationTimestamp = a})++-- | [Output Only] Unique identifier for the resource; defined by the server.+tiId :: Lens' TargetInstance (Maybe Word64)+tiId+  = lens _tiId (\ s a -> s{_tiId = a}) .+      mapping _Coerce++-- | An optional textual description of the resource; provided by the client+-- when the resource is created.+tiDescription :: Lens' TargetInstance (Maybe Text)+tiDescription+  = lens _tiDescription+      (\ s a -> s{_tiDescription = a})++-- | The URL to the instance that terminates the relevant traffic.+tiInstance :: Lens' TargetInstance (Maybe Text)+tiInstance+  = lens _tiInstance (\ s a -> s{_tiInstance = a})++instance FromJSON TargetInstance where+        parseJSON+          = withObject "TargetInstance"+              (\ o ->+                 TargetInstance <$>+                   (o .:? "kind" .!= "compute#targetInstance") <*>+                     (o .:? "natPolicy")+                     <*> (o .:? "zone")+                     <*> (o .:? "selfLink")+                     <*> (o .:? "name")+                     <*> (o .:? "creationTimestamp")+                     <*> (o .:? "id")+                     <*> (o .:? "description")+                     <*> (o .:? "instance"))++instance ToJSON TargetInstance where+        toJSON TargetInstance{..}+          = object+              (catMaybes+                 [Just ("kind" .= _tiKind),+                  ("natPolicy" .=) <$> _tiNATPolicy,+                  ("zone" .=) <$> _tiZone,+                  ("selfLink" .=) <$> _tiSelfLink,+                  ("name" .=) <$> _tiName,+                  ("creationTimestamp" .=) <$> _tiCreationTimestamp,+                  ("id" .=) <$> _tiId,+                  ("description" .=) <$> _tiDescription,+                  ("instance" .=) <$> _tiInstance])++--+-- /See:/ 'targetPoolInstanceHealth' smart constructor.+data TargetPoolInstanceHealth = TargetPoolInstanceHealth+    { _tpihKind         :: !Text+    , _tpihHealthStatus :: !(Maybe [HealthStatus])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TargetPoolInstanceHealth' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tpihKind'+--+-- * 'tpihHealthStatus'+targetPoolInstanceHealth+    :: TargetPoolInstanceHealth+targetPoolInstanceHealth =+    TargetPoolInstanceHealth+    { _tpihKind = "compute#targetPoolInstanceHealth"+    , _tpihHealthStatus = Nothing+    }++-- | Type of resource.+tpihKind :: Lens' TargetPoolInstanceHealth Text+tpihKind = lens _tpihKind (\ s a -> s{_tpihKind = a})++tpihHealthStatus :: Lens' TargetPoolInstanceHealth [HealthStatus]+tpihHealthStatus+  = lens _tpihHealthStatus+      (\ s a -> s{_tpihHealthStatus = a})+      . _Default+      . _Coerce++instance FromJSON TargetPoolInstanceHealth where+        parseJSON+          = withObject "TargetPoolInstanceHealth"+              (\ o ->+                 TargetPoolInstanceHealth <$>+                   (o .:? "kind" .!= "compute#targetPoolInstanceHealth")+                     <*> (o .:? "healthStatus" .!= mempty))++instance ToJSON TargetPoolInstanceHealth where+        toJSON TargetPoolInstanceHealth{..}+          = object+              (catMaybes+                 [Just ("kind" .= _tpihKind),+                  ("healthStatus" .=) <$> _tpihHealthStatus])++--+-- /See:/ 'instanceGroupManagersListManagedInstancesResponse' smart constructor.+newtype InstanceGroupManagersListManagedInstancesResponse = InstanceGroupManagersListManagedInstancesResponse+    { _igmlmirManagedInstances :: Maybe [ManagedInstance]+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstanceGroupManagersListManagedInstancesResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'igmlmirManagedInstances'+instanceGroupManagersListManagedInstancesResponse+    :: InstanceGroupManagersListManagedInstancesResponse+instanceGroupManagersListManagedInstancesResponse =+    InstanceGroupManagersListManagedInstancesResponse+    { _igmlmirManagedInstances = Nothing+    }++-- | [Output Only] The list of instances in the managed instance group.+igmlmirManagedInstances :: Lens' InstanceGroupManagersListManagedInstancesResponse [ManagedInstance]+igmlmirManagedInstances+  = lens _igmlmirManagedInstances+      (\ s a -> s{_igmlmirManagedInstances = a})+      . _Default+      . _Coerce++instance FromJSON+         InstanceGroupManagersListManagedInstancesResponse+         where+        parseJSON+          = withObject+              "InstanceGroupManagersListManagedInstancesResponse"+              (\ o ->+                 InstanceGroupManagersListManagedInstancesResponse <$>+                   (o .:? "managedInstances" .!= mempty))++instance ToJSON+         InstanceGroupManagersListManagedInstancesResponse+         where+        toJSON+          InstanceGroupManagersListManagedInstancesResponse{..}+          = object+              (catMaybes+                 [("managedInstances" .=) <$>+                    _igmlmirManagedInstances])++-- |+--+-- /See:/ 'instanceProperties' smart constructor.+data InstanceProperties = InstanceProperties+    { _ipServiceAccounts   :: !(Maybe [ServiceAccount])+    , _ipNetworkInterfaces :: !(Maybe [NetworkInterface])+    , _ipMachineType       :: !(Maybe Text)+    , _ipMetadata          :: !(Maybe Metadata)+    , _ipScheduling        :: !(Maybe Scheduling)+    , _ipDisks             :: !(Maybe [AttachedDisk])+    , _ipCanIPForward      :: !(Maybe Bool)+    , _ipDescription       :: !(Maybe Text)+    , _ipTags              :: !(Maybe Tags)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstanceProperties' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ipServiceAccounts'+--+-- * 'ipNetworkInterfaces'+--+-- * 'ipMachineType'+--+-- * 'ipMetadata'+--+-- * 'ipScheduling'+--+-- * 'ipDisks'+--+-- * 'ipCanIPForward'+--+-- * 'ipDescription'+--+-- * 'ipTags'+instanceProperties+    :: InstanceProperties+instanceProperties =+    InstanceProperties+    { _ipServiceAccounts = Nothing+    , _ipNetworkInterfaces = Nothing+    , _ipMachineType = Nothing+    , _ipMetadata = Nothing+    , _ipScheduling = Nothing+    , _ipDisks = Nothing+    , _ipCanIPForward = Nothing+    , _ipDescription = Nothing+    , _ipTags = Nothing+    }++-- | A list of service accounts with specified scopes. Access tokens for+-- these service accounts are available to the instances that are created+-- from this template. Use metadata queries to obtain the access tokens for+-- these instances.+ipServiceAccounts :: Lens' InstanceProperties [ServiceAccount]+ipServiceAccounts+  = lens _ipServiceAccounts+      (\ s a -> s{_ipServiceAccounts = a})+      . _Default+      . _Coerce++-- | An array of network access configurations for this interface.+ipNetworkInterfaces :: Lens' InstanceProperties [NetworkInterface]+ipNetworkInterfaces+  = lens _ipNetworkInterfaces+      (\ s a -> s{_ipNetworkInterfaces = a})+      . _Default+      . _Coerce++-- | The machine type to use for instances that are created from this+-- template.+ipMachineType :: Lens' InstanceProperties (Maybe Text)+ipMachineType+  = lens _ipMachineType+      (\ s a -> s{_ipMachineType = a})++-- | The metadata key\/value pairs to assign to instances that are created+-- from this template. These pairs can consist of custom metadata or+-- predefined keys. See Project and instance metadata for more information.+ipMetadata :: Lens' InstanceProperties (Maybe Metadata)+ipMetadata+  = lens _ipMetadata (\ s a -> s{_ipMetadata = a})++-- | Specifies the scheduling options for the instances that are created from+-- this template.+ipScheduling :: Lens' InstanceProperties (Maybe Scheduling)+ipScheduling+  = lens _ipScheduling (\ s a -> s{_ipScheduling = a})++-- | An array of disks that are associated with the instances that are+-- created from this template.+ipDisks :: Lens' InstanceProperties [AttachedDisk]+ipDisks+  = lens _ipDisks (\ s a -> s{_ipDisks = a}) . _Default+      . _Coerce++-- | Enables instances created based on this template to send packets with+-- source IP addresses other than their own and receive packets with+-- destination IP addresses other than their own. If these instances will+-- be used as an IP gateway or it will be set as the next-hop in a Route+-- resource, specify true. If unsure, leave this set to false. See the+-- canIpForward documentation for more information.+ipCanIPForward :: Lens' InstanceProperties (Maybe Bool)+ipCanIPForward+  = lens _ipCanIPForward+      (\ s a -> s{_ipCanIPForward = a})++-- | An optional text description for the instances that are created from+-- this instance template.+ipDescription :: Lens' InstanceProperties (Maybe Text)+ipDescription+  = lens _ipDescription+      (\ s a -> s{_ipDescription = a})++-- | A list of tags to apply to the instances that are created from this+-- template. The tags identify valid sources or targets for network+-- firewalls. The setTags method can modify this list of tags. Each tag+-- within the list must comply with RFC1035.+ipTags :: Lens' InstanceProperties (Maybe Tags)+ipTags = lens _ipTags (\ s a -> s{_ipTags = a})++instance FromJSON InstanceProperties where+        parseJSON+          = withObject "InstanceProperties"+              (\ o ->+                 InstanceProperties <$>+                   (o .:? "serviceAccounts" .!= mempty) <*>+                     (o .:? "networkInterfaces" .!= mempty)+                     <*> (o .:? "machineType")+                     <*> (o .:? "metadata")+                     <*> (o .:? "scheduling")+                     <*> (o .:? "disks" .!= mempty)+                     <*> (o .:? "canIpForward")+                     <*> (o .:? "description")+                     <*> (o .:? "tags"))++instance ToJSON InstanceProperties where+        toJSON InstanceProperties{..}+          = object+              (catMaybes+                 [("serviceAccounts" .=) <$> _ipServiceAccounts,+                  ("networkInterfaces" .=) <$> _ipNetworkInterfaces,+                  ("machineType" .=) <$> _ipMachineType,+                  ("metadata" .=) <$> _ipMetadata,+                  ("scheduling" .=) <$> _ipScheduling,+                  ("disks" .=) <$> _ipDisks,+                  ("canIpForward" .=) <$> _ipCanIPForward,+                  ("description" .=) <$> _ipDescription,+                  ("tags" .=) <$> _ipTags])++-- | [Output Only] Informational warning which replaces the list of disk+-- types when the list is empty.+--+-- /See:/ 'diskTypesScopedListWarning' smart constructor.+data DiskTypesScopedListWarning = DiskTypesScopedListWarning+    { _dtslwData    :: !(Maybe [DiskTypesScopedListWarningDataItem])+    , _dtslwCode    :: !(Maybe DiskTypesScopedListWarningCode)+    , _dtslwMessage :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DiskTypesScopedListWarning' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dtslwData'+--+-- * 'dtslwCode'+--+-- * 'dtslwMessage'+diskTypesScopedListWarning+    :: DiskTypesScopedListWarning+diskTypesScopedListWarning =+    DiskTypesScopedListWarning+    { _dtslwData = Nothing+    , _dtslwCode = Nothing+    , _dtslwMessage = Nothing+    }++-- | [Output Only] Metadata for this warning in key: value format.+dtslwData :: Lens' DiskTypesScopedListWarning [DiskTypesScopedListWarningDataItem]+dtslwData+  = lens _dtslwData (\ s a -> s{_dtslwData = a}) .+      _Default+      . _Coerce++-- | [Output Only] The warning type identifier for this warning.+dtslwCode :: Lens' DiskTypesScopedListWarning (Maybe DiskTypesScopedListWarningCode)+dtslwCode+  = lens _dtslwCode (\ s a -> s{_dtslwCode = a})++-- | [Output Only] Optional human-readable details for this warning.+dtslwMessage :: Lens' DiskTypesScopedListWarning (Maybe Text)+dtslwMessage+  = lens _dtslwMessage (\ s a -> s{_dtslwMessage = a})++instance FromJSON DiskTypesScopedListWarning where+        parseJSON+          = withObject "DiskTypesScopedListWarning"+              (\ o ->+                 DiskTypesScopedListWarning <$>+                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>+                     (o .:? "message"))++instance ToJSON DiskTypesScopedListWarning where+        toJSON DiskTypesScopedListWarning{..}+          = object+              (catMaybes+                 [("data" .=) <$> _dtslwData,+                  ("code" .=) <$> _dtslwCode,+                  ("message" .=) <$> _dtslwMessage])++-- | [Input Only] Specifies the parameters for a new disk that will be+-- created alongside the new instance. Use initialization parameters to+-- create boot disks or local SSDs attached to the new instance. This+-- property is mutually exclusive with the source property; you can only+-- define one or the other, but not both.+--+-- /See:/ 'attachedDiskInitializeParams' smart constructor.+data AttachedDiskInitializeParams = AttachedDiskInitializeParams+    { _adipSourceImage :: !(Maybe Text)+    , _adipDiskSizeGb  :: !(Maybe (Textual Int64))+    , _adipDiskName    :: !(Maybe Text)+    , _adipDiskType    :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'AttachedDiskInitializeParams' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'adipSourceImage'+--+-- * 'adipDiskSizeGb'+--+-- * 'adipDiskName'+--+-- * 'adipDiskType'+attachedDiskInitializeParams+    :: AttachedDiskInitializeParams+attachedDiskInitializeParams =+    AttachedDiskInitializeParams+    { _adipSourceImage = Nothing+    , _adipDiskSizeGb = Nothing+    , _adipDiskName = Nothing+    , _adipDiskType = Nothing+    }++-- | A source image used to create the disk. You can provide a private+-- (custom) image, and Compute Engine will use the corresponding image from+-- your project. For example: global\/images\/my-private-image Or you can+-- provide an image from a publicly-available project. For example, to use+-- a Debian image from the debian-cloud project, make sure to include the+-- project in the URL:+-- projects\/debian-cloud\/global\/images\/debian-7-wheezy-vYYYYMMDD where+-- vYYYYMMDD is the image version. The fully-qualified URL will also work+-- in both cases.+adipSourceImage :: Lens' AttachedDiskInitializeParams (Maybe Text)+adipSourceImage+  = lens _adipSourceImage+      (\ s a -> s{_adipSourceImage = a})++-- | Specifies the size of the disk in base-2 GB.+adipDiskSizeGb :: Lens' AttachedDiskInitializeParams (Maybe Int64)+adipDiskSizeGb+  = lens _adipDiskSizeGb+      (\ s a -> s{_adipDiskSizeGb = a})+      . mapping _Coerce++-- | Specifies the disk name. If not specified, the default is to use the+-- name of the instance.+adipDiskName :: Lens' AttachedDiskInitializeParams (Maybe Text)+adipDiskName+  = lens _adipDiskName (\ s a -> s{_adipDiskName = a})++-- | Specifies the disk type to use to create the instance. If not specified,+-- the default is pd-standard, specified using the full URL. For example:+-- https:\/\/www.googleapis.com\/compute\/v1\/projects\/project\/zones\/zone\/diskTypes\/pd-standard+-- Other values include pd-ssd and local-ssd. If you define this field, you+-- can provide either the full or partial URL. For example, the following+-- are valid values: -+-- https:\/\/www.googleapis.com\/compute\/v1\/projects\/project\/zones\/zone\/diskTypes\/diskType+-- - projects\/project\/zones\/zone\/diskTypes\/diskType -+-- zones\/zone\/diskTypes\/diskType+adipDiskType :: Lens' AttachedDiskInitializeParams (Maybe Text)+adipDiskType+  = lens _adipDiskType (\ s a -> s{_adipDiskType = a})++instance FromJSON AttachedDiskInitializeParams where+        parseJSON+          = withObject "AttachedDiskInitializeParams"+              (\ o ->+                 AttachedDiskInitializeParams <$>+                   (o .:? "sourceImage") <*> (o .:? "diskSizeGb") <*>+                     (o .:? "diskName")+                     <*> (o .:? "diskType"))++instance ToJSON AttachedDiskInitializeParams where+        toJSON AttachedDiskInitializeParams{..}+          = object+              (catMaybes+                 [("sourceImage" .=) <$> _adipSourceImage,+                  ("diskSizeGb" .=) <$> _adipDiskSizeGb,+                  ("diskName" .=) <$> _adipDiskName,+                  ("diskType" .=) <$> _adipDiskType])++--+-- /See:/ 'addressesScopedListWarningDataItem' smart constructor.+data AddressesScopedListWarningDataItem = AddressesScopedListWarningDataItem+    { _aslwdiValue :: !(Maybe Text)+    , _aslwdiKey   :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'AddressesScopedListWarningDataItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aslwdiValue'+--+-- * 'aslwdiKey'+addressesScopedListWarningDataItem+    :: AddressesScopedListWarningDataItem+addressesScopedListWarningDataItem =+    AddressesScopedListWarningDataItem+    { _aslwdiValue = Nothing+    , _aslwdiKey = Nothing+    }++-- | [Output Only] A warning data value corresponding to the key.+aslwdiValue :: Lens' AddressesScopedListWarningDataItem (Maybe Text)+aslwdiValue+  = lens _aslwdiValue (\ s a -> s{_aslwdiValue = a})++-- | [Output Only] A key for the warning data.+aslwdiKey :: Lens' AddressesScopedListWarningDataItem (Maybe Text)+aslwdiKey+  = lens _aslwdiKey (\ s a -> s{_aslwdiKey = a})++instance FromJSON AddressesScopedListWarningDataItem+         where+        parseJSON+          = withObject "AddressesScopedListWarningDataItem"+              (\ o ->+                 AddressesScopedListWarningDataItem <$>+                   (o .:? "value") <*> (o .:? "key"))++instance ToJSON AddressesScopedListWarningDataItem+         where+        toJSON AddressesScopedListWarningDataItem{..}+          = object+              (catMaybes+                 [("value" .=) <$> _aslwdiValue,+                  ("key" .=) <$> _aslwdiKey])++-- | A network interface resource attached to an instance.+--+-- /See:/ 'networkInterface' smart constructor.+data NetworkInterface = NetworkInterface+    { _niNetwork       :: !(Maybe Text)+    , _niName          :: !(Maybe Text)+    , _niNetworkIP     :: !(Maybe Text)+    , _niAccessConfigs :: !(Maybe [AccessConfig])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'NetworkInterface' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'niNetwork'+--+-- * 'niName'+--+-- * 'niNetworkIP'+--+-- * 'niAccessConfigs'+networkInterface+    :: NetworkInterface+networkInterface =+    NetworkInterface+    { _niNetwork = Nothing+    , _niName = Nothing+    , _niNetworkIP = Nothing+    , _niAccessConfigs = Nothing+    }++-- | URL of the network resource for this instance. This is required for+-- creating an instance but optional when creating a firewall rule. If not+-- specified when creating a firewall rule, the default network is used:+-- global\/networks\/default If you specify this property, you can specify+-- the network as a full or partial URL. For example, the following are all+-- valid URLs: -+-- https:\/\/www.googleapis.com\/compute\/v1\/projects\/project\/global\/networks\/network+-- - projects\/project\/global\/networks\/network -+-- global\/networks\/default+niNetwork :: Lens' NetworkInterface (Maybe Text)+niNetwork+  = lens _niNetwork (\ s a -> s{_niNetwork = a})++-- | [Output Only] The name of the network interface, generated by the+-- server. For network devices, these are eth0, eth1, etc.+niName :: Lens' NetworkInterface (Maybe Text)+niName = lens _niName (\ s a -> s{_niName = a})++-- | [Output Only] An optional IPV4 internal network address assigned to the+-- instance for this network interface.+niNetworkIP :: Lens' NetworkInterface (Maybe Text)+niNetworkIP+  = lens _niNetworkIP (\ s a -> s{_niNetworkIP = a})++-- | An array of configurations for this interface. Currently, ONE_TO_ONE_NAT+-- is the only access config supported. If there are no accessConfigs+-- specified, then this instance will have no external internet access.+niAccessConfigs :: Lens' NetworkInterface [AccessConfig]+niAccessConfigs+  = lens _niAccessConfigs+      (\ s a -> s{_niAccessConfigs = a})+      . _Default+      . _Coerce++instance FromJSON NetworkInterface where+        parseJSON+          = withObject "NetworkInterface"+              (\ o ->+                 NetworkInterface <$>+                   (o .:? "network") <*> (o .:? "name") <*>+                     (o .:? "networkIP")+                     <*> (o .:? "accessConfigs" .!= mempty))++instance ToJSON NetworkInterface where+        toJSON NetworkInterface{..}+          = object+              (catMaybes+                 [("network" .=) <$> _niNetwork,+                  ("name" .=) <$> _niName,+                  ("networkIP" .=) <$> _niNetworkIP,+                  ("accessConfigs" .=) <$> _niAccessConfigs])++--+-- /See:/ 'targetPoolsRemoveHealthCheckRequest' smart constructor.+newtype TargetPoolsRemoveHealthCheckRequest = TargetPoolsRemoveHealthCheckRequest+    { _tprhcrHealthChecks :: Maybe [HealthCheckReference]+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TargetPoolsRemoveHealthCheckRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tprhcrHealthChecks'+targetPoolsRemoveHealthCheckRequest+    :: TargetPoolsRemoveHealthCheckRequest+targetPoolsRemoveHealthCheckRequest =+    TargetPoolsRemoveHealthCheckRequest+    { _tprhcrHealthChecks = Nothing+    }++-- | Health check URLs to be removed from targetPool.+tprhcrHealthChecks :: Lens' TargetPoolsRemoveHealthCheckRequest [HealthCheckReference]+tprhcrHealthChecks+  = lens _tprhcrHealthChecks+      (\ s a -> s{_tprhcrHealthChecks = a})+      . _Default+      . _Coerce++instance FromJSON TargetPoolsRemoveHealthCheckRequest+         where+        parseJSON+          = withObject "TargetPoolsRemoveHealthCheckRequest"+              (\ o ->+                 TargetPoolsRemoveHealthCheckRequest <$>+                   (o .:? "healthChecks" .!= mempty))++instance ToJSON TargetPoolsRemoveHealthCheckRequest+         where+        toJSON TargetPoolsRemoveHealthCheckRequest{..}+          = object+              (catMaybes+                 [("healthChecks" .=) <$> _tprhcrHealthChecks])++-- | A list of instance templates.+--+-- /See:/ 'instanceTemplateList' smart constructor.+data InstanceTemplateList = InstanceTemplateList+    { _itlNextPageToken :: !(Maybe Text)+    , _itlKind          :: !Text+    , _itlItems         :: !(Maybe [InstanceTemplate])+    , _itlSelfLink      :: !(Maybe Text)+    , _itlId            :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstanceTemplateList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'itlNextPageToken'+--+-- * 'itlKind'+--+-- * 'itlItems'+--+-- * 'itlSelfLink'+--+-- * 'itlId'+instanceTemplateList+    :: InstanceTemplateList+instanceTemplateList =+    InstanceTemplateList+    { _itlNextPageToken = Nothing+    , _itlKind = "compute#instanceTemplateList"+    , _itlItems = Nothing+    , _itlSelfLink = Nothing+    , _itlId = Nothing+    }++-- | [Output Only] A token that is used to continue a truncated list request.+itlNextPageToken :: Lens' InstanceTemplateList (Maybe Text)+itlNextPageToken+  = lens _itlNextPageToken+      (\ s a -> s{_itlNextPageToken = a})++-- | [Output Only] The resource type, which is always+-- compute#instanceTemplatesListResponse for instance template lists.+itlKind :: Lens' InstanceTemplateList Text+itlKind = lens _itlKind (\ s a -> s{_itlKind = a})++-- | [Output Only] list of InstanceTemplate resources.+itlItems :: Lens' InstanceTemplateList [InstanceTemplate]+itlItems+  = lens _itlItems (\ s a -> s{_itlItems = a}) .+      _Default+      . _Coerce++-- | [Output Only] The URL for this instance template list. The server+-- defines this URL.+itlSelfLink :: Lens' InstanceTemplateList (Maybe Text)+itlSelfLink+  = lens _itlSelfLink (\ s a -> s{_itlSelfLink = a})++-- | [Output Only] A unique identifier for this instance template. The server+-- defines this identifier.+itlId :: Lens' InstanceTemplateList (Maybe Text)+itlId = lens _itlId (\ s a -> s{_itlId = a})++instance FromJSON InstanceTemplateList where+        parseJSON+          = withObject "InstanceTemplateList"+              (\ o ->+                 InstanceTemplateList <$>+                   (o .:? "nextPageToken") <*>+                     (o .:? "kind" .!= "compute#instanceTemplateList")+                     <*> (o .:? "items" .!= mempty)+                     <*> (o .:? "selfLink")+                     <*> (o .:? "id"))++instance ToJSON InstanceTemplateList where+        toJSON InstanceTemplateList{..}+          = object+              (catMaybes+                 [("nextPageToken" .=) <$> _itlNextPageToken,+                  Just ("kind" .= _itlKind),+                  ("items" .=) <$> _itlItems,+                  ("selfLink" .=) <$> _itlSelfLink,+                  ("id" .=) <$> _itlId])++-- | Contains a list of route resources.+--+-- /See:/ 'routeList' smart constructor.+data RouteList = RouteList+    { _rlNextPageToken :: !(Maybe Text)+    , _rlKind          :: !Text+    , _rlItems         :: !(Maybe [Route])+    , _rlSelfLink      :: !(Maybe Text)+    , _rlId            :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'RouteList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rlNextPageToken'+--+-- * 'rlKind'+--+-- * 'rlItems'+--+-- * 'rlSelfLink'+--+-- * 'rlId'+routeList+    :: RouteList+routeList =+    RouteList+    { _rlNextPageToken = Nothing+    , _rlKind = "compute#routeList"+    , _rlItems = Nothing+    , _rlSelfLink = Nothing+    , _rlId = Nothing+    }++-- | [Output Only] A token used to continue a truncated list request.+rlNextPageToken :: Lens' RouteList (Maybe Text)+rlNextPageToken+  = lens _rlNextPageToken+      (\ s a -> s{_rlNextPageToken = a})++-- | Type of resource.+rlKind :: Lens' RouteList Text+rlKind = lens _rlKind (\ s a -> s{_rlKind = a})++-- | A list of Route resources.+rlItems :: Lens' RouteList [Route]+rlItems+  = lens _rlItems (\ s a -> s{_rlItems = a}) . _Default+      . _Coerce++-- | [Output Only] Server-defined URL for this resource.+rlSelfLink :: Lens' RouteList (Maybe Text)+rlSelfLink+  = lens _rlSelfLink (\ s a -> s{_rlSelfLink = a})++-- | [Output Only] Unique identifier for the resource. Defined by the server.+rlId :: Lens' RouteList (Maybe Text)+rlId = lens _rlId (\ s a -> s{_rlId = a})++instance FromJSON RouteList where+        parseJSON+          = withObject "RouteList"+              (\ o ->+                 RouteList <$>+                   (o .:? "nextPageToken") <*>+                     (o .:? "kind" .!= "compute#routeList")+                     <*> (o .:? "items" .!= mempty)+                     <*> (o .:? "selfLink")+                     <*> (o .:? "id"))++instance ToJSON RouteList where+        toJSON RouteList{..}+          = object+              (catMaybes+                 [("nextPageToken" .=) <$> _rlNextPageToken,+                  Just ("kind" .= _rlKind), ("items" .=) <$> _rlItems,+                  ("selfLink" .=) <$> _rlSelfLink,+                  ("id" .=) <$> _rlId])++-- | Contains a list of TargetVpnGateway resources.+--+-- /See:/ 'targetVPNGatewayList' smart constructor.+data TargetVPNGatewayList = TargetVPNGatewayList+    { _tvglNextPageToken :: !(Maybe Text)+    , _tvglKind          :: !Text+    , _tvglItems         :: !(Maybe [TargetVPNGateway])+    , _tvglSelfLink      :: !(Maybe Text)+    , _tvglId            :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TargetVPNGatewayList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tvglNextPageToken'+--+-- * 'tvglKind'+--+-- * 'tvglItems'+--+-- * 'tvglSelfLink'+--+-- * 'tvglId'+targetVPNGatewayList+    :: TargetVPNGatewayList+targetVPNGatewayList =+    TargetVPNGatewayList+    { _tvglNextPageToken = Nothing+    , _tvglKind = "compute#targetVpnGatewayList"+    , _tvglItems = Nothing+    , _tvglSelfLink = Nothing+    , _tvglId = Nothing+    }++-- | [Output Only] A token used to continue a truncated list request.+tvglNextPageToken :: Lens' TargetVPNGatewayList (Maybe Text)+tvglNextPageToken+  = lens _tvglNextPageToken+      (\ s a -> s{_tvglNextPageToken = a})++-- | [Output Only] Type of resource. Always compute#targetVpnGateway for+-- target VPN gateways.+tvglKind :: Lens' TargetVPNGatewayList Text+tvglKind = lens _tvglKind (\ s a -> s{_tvglKind = a})++-- | [Output Only] A list of TargetVpnGateway resources.+tvglItems :: Lens' TargetVPNGatewayList [TargetVPNGateway]+tvglItems+  = lens _tvglItems (\ s a -> s{_tvglItems = a}) .+      _Default+      . _Coerce++-- | [Output Only] Server-defined URL for the resource.+tvglSelfLink :: Lens' TargetVPNGatewayList (Maybe Text)+tvglSelfLink+  = lens _tvglSelfLink (\ s a -> s{_tvglSelfLink = a})++-- | [Output Only] Unique identifier for the resource. Defined by the server.+tvglId :: Lens' TargetVPNGatewayList (Maybe Text)+tvglId = lens _tvglId (\ s a -> s{_tvglId = a})++instance FromJSON TargetVPNGatewayList where+        parseJSON+          = withObject "TargetVPNGatewayList"+              (\ o ->+                 TargetVPNGatewayList <$>+                   (o .:? "nextPageToken") <*>+                     (o .:? "kind" .!= "compute#targetVpnGatewayList")+                     <*> (o .:? "items" .!= mempty)+                     <*> (o .:? "selfLink")+                     <*> (o .:? "id"))++instance ToJSON TargetVPNGatewayList where+        toJSON TargetVPNGatewayList{..}+          = object+              (catMaybes+                 [("nextPageToken" .=) <$> _tvglNextPageToken,+                  Just ("kind" .= _tvglKind),+                  ("items" .=) <$> _tvglItems,+                  ("selfLink" .=) <$> _tvglSelfLink,+                  ("id" .=) <$> _tvglId])++-- | Contains a list of SslCertificate resources.+--+-- /See:/ 'sslCertificateList' smart constructor.+data SSLCertificateList = SSLCertificateList+    { _sclNextPageToken :: !(Maybe Text)+    , _sclKind          :: !Text+    , _sclItems         :: !(Maybe [SSLCertificate])+    , _sclSelfLink      :: !(Maybe Text)+    , _sclId            :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'SSLCertificateList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sclNextPageToken'+--+-- * 'sclKind'+--+-- * 'sclItems'+--+-- * 'sclSelfLink'+--+-- * 'sclId'+sslCertificateList+    :: SSLCertificateList+sslCertificateList =+    SSLCertificateList+    { _sclNextPageToken = Nothing+    , _sclKind = "compute#sslCertificateList"+    , _sclItems = Nothing+    , _sclSelfLink = Nothing+    , _sclId = Nothing+    }++-- | [Output Only] A token used to continue a truncated list request.+sclNextPageToken :: Lens' SSLCertificateList (Maybe Text)+sclNextPageToken+  = lens _sclNextPageToken+      (\ s a -> s{_sclNextPageToken = a})++-- | Type of resource.+sclKind :: Lens' SSLCertificateList Text+sclKind = lens _sclKind (\ s a -> s{_sclKind = a})++-- | A list of SslCertificate resources.+sclItems :: Lens' SSLCertificateList [SSLCertificate]+sclItems+  = lens _sclItems (\ s a -> s{_sclItems = a}) .+      _Default+      . _Coerce++-- | [Output Only] Server-defined URL for this resource.+sclSelfLink :: Lens' SSLCertificateList (Maybe Text)+sclSelfLink+  = lens _sclSelfLink (\ s a -> s{_sclSelfLink = a})++-- | [Output Only] Unique identifier for the resource. Defined by the server.+sclId :: Lens' SSLCertificateList (Maybe Text)+sclId = lens _sclId (\ s a -> s{_sclId = a})++instance FromJSON SSLCertificateList where+        parseJSON+          = withObject "SSLCertificateList"+              (\ o ->+                 SSLCertificateList <$>+                   (o .:? "nextPageToken") <*>+                     (o .:? "kind" .!= "compute#sslCertificateList")+                     <*> (o .:? "items" .!= mempty)+                     <*> (o .:? "selfLink")+                     <*> (o .:? "id"))++instance ToJSON SSLCertificateList where+        toJSON SSLCertificateList{..}+          = object+              (catMaybes+                 [("nextPageToken" .=) <$> _sclNextPageToken,+                  Just ("kind" .= _sclKind),+                  ("items" .=) <$> _sclItems,+                  ("selfLink" .=) <$> _sclSelfLink,+                  ("id" .=) <$> _sclId])++--+-- /See:/ 'firewallAllowedItem' smart constructor.+data FirewallAllowedItem = FirewallAllowedItem+    { _faiIPProtocol :: !(Maybe Text)+    , _faiPorts      :: !(Maybe [Text])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'FirewallAllowedItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'faiIPProtocol'+--+-- * 'faiPorts'+firewallAllowedItem+    :: FirewallAllowedItem+firewallAllowedItem =+    FirewallAllowedItem+    { _faiIPProtocol = Nothing+    , _faiPorts = Nothing+    }++-- | The IP protocol that is allowed for this rule. The protocol type is+-- required when creating a firewall. This value can either be one of the+-- following well known protocol strings (tcp, udp, icmp, esp, ah, sctp),+-- or the IP protocol number.+faiIPProtocol :: Lens' FirewallAllowedItem (Maybe Text)+faiIPProtocol+  = lens _faiIPProtocol+      (\ s a -> s{_faiIPProtocol = a})++-- | An optional list of ports which are allowed. This field is only+-- applicable for UDP or TCP protocol. Each entry must be either an integer+-- or a range. If not specified, connections through any port are allowed+-- Example inputs include: [\"22\"], [\"80\",\"443\"], and+-- [\"12345-12349\"].+faiPorts :: Lens' FirewallAllowedItem [Text]+faiPorts+  = lens _faiPorts (\ s a -> s{_faiPorts = a}) .+      _Default+      . _Coerce++instance FromJSON FirewallAllowedItem where+        parseJSON+          = withObject "FirewallAllowedItem"+              (\ o ->+                 FirewallAllowedItem <$>+                   (o .:? "IPProtocol") <*> (o .:? "ports" .!= mempty))++instance ToJSON FirewallAllowedItem where+        toJSON FirewallAllowedItem{..}+          = object+              (catMaybes+                 [("IPProtocol" .=) <$> _faiIPProtocol,+                  ("ports" .=) <$> _faiPorts])++-- | A network resource.+--+-- /See:/ 'network' smart constructor.+data Network = Network+    { _nKind              :: !Text+    , _nIPv4Range         :: !(Maybe Text)+    , _nSelfLink          :: !(Maybe Text)+    , _nName              :: !(Maybe Text)+    , _nCreationTimestamp :: !(Maybe Text)+    , _nId                :: !(Maybe (Textual Word64))+    , _nGatewayIPv4       :: !(Maybe Text)+    , _nDescription       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Network' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'nKind'+--+-- * 'nIPv4Range'+--+-- * 'nSelfLink'+--+-- * 'nName'+--+-- * 'nCreationTimestamp'+--+-- * 'nId'+--+-- * 'nGatewayIPv4'+--+-- * 'nDescription'+network+    :: Network+network =+    Network+    { _nKind = "compute#network"+    , _nIPv4Range = Nothing+    , _nSelfLink = Nothing+    , _nName = Nothing+    , _nCreationTimestamp = Nothing+    , _nId = Nothing+    , _nGatewayIPv4 = Nothing+    , _nDescription = Nothing+    }++-- | [Output Only] Type of the resource. Always compute#network for networks.+nKind :: Lens' Network Text+nKind = lens _nKind (\ s a -> s{_nKind = a})++-- | The range of internal addresses that are legal on this network. This+-- range is a CIDR specification, for example: 192.168.0.0\/16. Provided by+-- the client when the network is created.+nIPv4Range :: Lens' Network (Maybe Text)+nIPv4Range+  = lens _nIPv4Range (\ s a -> s{_nIPv4Range = a})++-- | [Output Only] Server-defined URL for the resource.+nSelfLink :: Lens' Network (Maybe Text)+nSelfLink+  = lens _nSelfLink (\ s a -> s{_nSelfLink = a})++-- | Name of the resource. Provided by the client when the resource is+-- created. The name must be 1-63 characters long, and comply with RFC1035.+-- Specifically, the name must be 1-63 characters long and match the+-- regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first+-- character must be a lowercase letter, and all following characters must+-- be a dash, lowercase letter, or digit, except the last character, which+-- cannot be a dash.+nName :: Lens' Network (Maybe Text)+nName = lens _nName (\ s a -> s{_nName = a})++-- | [Output Only] Creation timestamp in RFC3339 text format.+nCreationTimestamp :: Lens' Network (Maybe Text)+nCreationTimestamp+  = lens _nCreationTimestamp+      (\ s a -> s{_nCreationTimestamp = a})++-- | [Output Only] Unique identifier for the resource. Defined by the server.+nId :: Lens' Network (Maybe Word64)+nId+  = lens _nId (\ s a -> s{_nId = a}) . mapping _Coerce++-- | A gateway address for default routing to other networks. This value is+-- read only and is selected by the Google Compute Engine, typically as the+-- first usable address in the IPv4Range.+nGatewayIPv4 :: Lens' Network (Maybe Text)+nGatewayIPv4+  = lens _nGatewayIPv4 (\ s a -> s{_nGatewayIPv4 = a})++-- | An optional textual description of the resource. Provided by the client+-- when the resource is created.+nDescription :: Lens' Network (Maybe Text)+nDescription+  = lens _nDescription (\ s a -> s{_nDescription = a})++instance FromJSON Network where+        parseJSON+          = withObject "Network"+              (\ o ->+                 Network <$>+                   (o .:? "kind" .!= "compute#network") <*>+                     (o .:? "IPv4Range")+                     <*> (o .:? "selfLink")+                     <*> (o .:? "name")+                     <*> (o .:? "creationTimestamp")+                     <*> (o .:? "id")+                     <*> (o .:? "gatewayIPv4")+                     <*> (o .:? "description"))++instance ToJSON Network where+        toJSON Network{..}+          = object+              (catMaybes+                 [Just ("kind" .= _nKind),+                  ("IPv4Range" .=) <$> _nIPv4Range,+                  ("selfLink" .=) <$> _nSelfLink,+                  ("name" .=) <$> _nName,+                  ("creationTimestamp" .=) <$> _nCreationTimestamp,+                  ("id" .=) <$> _nId,+                  ("gatewayIPv4" .=) <$> _nGatewayIPv4,+                  ("description" .=) <$> _nDescription])++-- | [Output Only] Informational warning which replaces the list of addresses+-- when the list is empty.+--+-- /See:/ 'addressesScopedListWarning' smart constructor.+data AddressesScopedListWarning = AddressesScopedListWarning+    { _aData    :: !(Maybe [AddressesScopedListWarningDataItem])+    , _aCode    :: !(Maybe AddressesScopedListWarningCode)+    , _aMessage :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'AddressesScopedListWarning' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aData'+--+-- * 'aCode'+--+-- * 'aMessage'+addressesScopedListWarning+    :: AddressesScopedListWarning+addressesScopedListWarning =+    AddressesScopedListWarning+    { _aData = Nothing+    , _aCode = Nothing+    , _aMessage = Nothing+    }++-- | [Output Only] Metadata for this warning in key: value format.+aData :: Lens' AddressesScopedListWarning [AddressesScopedListWarningDataItem]+aData+  = lens _aData (\ s a -> s{_aData = a}) . _Default .+      _Coerce++-- | [Output Only] The warning type identifier for this warning.+aCode :: Lens' AddressesScopedListWarning (Maybe AddressesScopedListWarningCode)+aCode = lens _aCode (\ s a -> s{_aCode = a})++-- | [Output Only] Optional human-readable details for this warning.+aMessage :: Lens' AddressesScopedListWarning (Maybe Text)+aMessage = lens _aMessage (\ s a -> s{_aMessage = a})++instance FromJSON AddressesScopedListWarning where+        parseJSON+          = withObject "AddressesScopedListWarning"+              (\ o ->+                 AddressesScopedListWarning <$>+                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>+                     (o .:? "message"))++instance ToJSON AddressesScopedListWarning where+        toJSON AddressesScopedListWarning{..}+          = object+              (catMaybes+                 [("data" .=) <$> _aData, ("code" .=) <$> _aCode,+                  ("message" .=) <$> _aMessage])++-- | The parameters of the raw disk image.+--+-- /See:/ 'imageRawDisk' smart constructor.+data ImageRawDisk = ImageRawDisk+    { _irdContainerType :: !(Maybe ImageRawDiskContainerType)+    , _irdSource        :: !(Maybe Text)+    , _irdSha1Checksum  :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ImageRawDisk' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'irdContainerType'+--+-- * 'irdSource'+--+-- * 'irdSha1Checksum'+imageRawDisk+    :: ImageRawDisk+imageRawDisk =+    ImageRawDisk+    { _irdContainerType = Nothing+    , _irdSource = Nothing+    , _irdSha1Checksum = Nothing+    }++-- | The format used to encode and transmit the block device, which should be+-- TAR. This is just a container and transmission format and not a runtime+-- format. Provided by the client when the disk image is created.+irdContainerType :: Lens' ImageRawDisk (Maybe ImageRawDiskContainerType)+irdContainerType+  = lens _irdContainerType+      (\ s a -> s{_irdContainerType = a})++-- | The full Google Cloud Storage URL where the disk image is stored. You+-- must provide either this property or the sourceDisk property but not+-- both.+irdSource :: Lens' ImageRawDisk (Maybe Text)+irdSource+  = lens _irdSource (\ s a -> s{_irdSource = a})++-- | An optional SHA1 checksum of the disk image before unpackaging; provided+-- by the client when the disk image is created.+irdSha1Checksum :: Lens' ImageRawDisk (Maybe Text)+irdSha1Checksum+  = lens _irdSha1Checksum+      (\ s a -> s{_irdSha1Checksum = a})++instance FromJSON ImageRawDisk where+        parseJSON+          = withObject "ImageRawDisk"+              (\ o ->+                 ImageRawDisk <$>+                   (o .:? "containerType") <*> (o .:? "source") <*>+                     (o .:? "sha1Checksum"))++instance ToJSON ImageRawDisk where+        toJSON ImageRawDisk{..}+          = object+              (catMaybes+                 [("containerType" .=) <$> _irdContainerType,+                  ("source" .=) <$> _irdSource,+                  ("sha1Checksum" .=) <$> _irdSha1Checksum])++--+-- /See:/ 'instanceAggregatedList' smart constructor.+data InstanceAggregatedList = InstanceAggregatedList+    { _ialNextPageToken :: !(Maybe Text)+    , _ialKind          :: !Text+    , _ialItems         :: !(Maybe InstanceAggregatedListItems)+    , _ialSelfLink      :: !(Maybe Text)+    , _ialId            :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstanceAggregatedList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ialNextPageToken'+--+-- * 'ialKind'+--+-- * 'ialItems'+--+-- * 'ialSelfLink'+--+-- * 'ialId'+instanceAggregatedList+    :: InstanceAggregatedList+instanceAggregatedList =+    InstanceAggregatedList+    { _ialNextPageToken = Nothing+    , _ialKind = "compute#instanceAggregatedList"+    , _ialItems = Nothing+    , _ialSelfLink = Nothing+    , _ialId = Nothing+    }++-- | [Output Only] A token used to continue a truncated list request.+ialNextPageToken :: Lens' InstanceAggregatedList (Maybe Text)+ialNextPageToken+  = lens _ialNextPageToken+      (\ s a -> s{_ialNextPageToken = a})++-- | [Output Only] Type of resource. Always compute#instanceAggregatedList+-- for aggregated lists of Instance resources.+ialKind :: Lens' InstanceAggregatedList Text+ialKind = lens _ialKind (\ s a -> s{_ialKind = a})++-- | [Output Only] A map of scoped instance lists.+ialItems :: Lens' InstanceAggregatedList (Maybe InstanceAggregatedListItems)+ialItems = lens _ialItems (\ s a -> s{_ialItems = a})++-- | [Output Only] Server defined URL for this resource.+ialSelfLink :: Lens' InstanceAggregatedList (Maybe Text)+ialSelfLink+  = lens _ialSelfLink (\ s a -> s{_ialSelfLink = a})++-- | [Output Only] Unique identifier for the resource; defined by the server.+ialId :: Lens' InstanceAggregatedList (Maybe Text)+ialId = lens _ialId (\ s a -> s{_ialId = a})++instance FromJSON InstanceAggregatedList where+        parseJSON+          = withObject "InstanceAggregatedList"+              (\ o ->+                 InstanceAggregatedList <$>+                   (o .:? "nextPageToken") <*>+                     (o .:? "kind" .!= "compute#instanceAggregatedList")+                     <*> (o .:? "items")+                     <*> (o .:? "selfLink")+                     <*> (o .:? "id"))++instance ToJSON InstanceAggregatedList where+        toJSON InstanceAggregatedList{..}+          = object+              (catMaybes+                 [("nextPageToken" .=) <$> _ialNextPageToken,+                  Just ("kind" .= _ialKind),+                  ("items" .=) <$> _ialItems,+                  ("selfLink" .=) <$> _ialSelfLink,+                  ("id" .=) <$> _ialId])++-- | A reserved address resource.+--+-- /See:/ 'address' smart constructor.+data Address = Address+    { _aStatus            :: !(Maybe AddressStatus)+    , _aUsers             :: !(Maybe [Text])+    , _aKind              :: !Text+    , _aAddress           :: !(Maybe Text)+    , _aSelfLink          :: !(Maybe Text)+    , _aName              :: !(Maybe Text)+    , _aCreationTimestamp :: !(Maybe Text)+    , _aId                :: !(Maybe (Textual Word64))+    , _aRegion            :: !(Maybe Text)+    , _aDescription       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Address' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aStatus'+--+-- * 'aUsers'+--+-- * 'aKind'+--+-- * 'aAddress'+--+-- * 'aSelfLink'+--+-- * 'aName'+--+-- * 'aCreationTimestamp'+--+-- * 'aId'+--+-- * 'aRegion'+--+-- * 'aDescription'+address+    :: Address+address =+    Address+    { _aStatus = Nothing+    , _aUsers = Nothing+    , _aKind = "compute#address"+    , _aAddress = Nothing+    , _aSelfLink = Nothing+    , _aName = Nothing+    , _aCreationTimestamp = Nothing+    , _aId = Nothing+    , _aRegion = Nothing+    , _aDescription = Nothing+    }++-- | [Output Only] The status of the address, which can be either IN_USE or+-- RESERVED. An address that is RESERVED is currently reserved and+-- available to use. An IN_USE address is currently being used by another+-- resource and is not available.+aStatus :: Lens' Address (Maybe AddressStatus)+aStatus = lens _aStatus (\ s a -> s{_aStatus = a})++-- | [Output Only] The URLs of the resources that are using this address.+aUsers :: Lens' Address [Text]+aUsers+  = lens _aUsers (\ s a -> s{_aUsers = a}) . _Default .+      _Coerce++-- | [Output Only] Type of the resource. Always compute#address for+-- addresses.+aKind :: Lens' Address Text+aKind = lens _aKind (\ s a -> s{_aKind = a})++-- | The static external IP address represented by this resource.+aAddress :: Lens' Address (Maybe Text)+aAddress = lens _aAddress (\ s a -> s{_aAddress = a})++-- | [Output Only] Server-defined URL for the resource.+aSelfLink :: Lens' Address (Maybe Text)+aSelfLink+  = lens _aSelfLink (\ s a -> s{_aSelfLink = a})++-- | Name of the resource; provided by the client when the resource is+-- created. The name must be 1-63 characters long, and comply with RFC1035.+-- Specifically, the name must be 1-63 characters long and match the+-- regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first+-- character must be a lowercase letter, and all following characters must+-- be a dash, lowercase letter, or digit, except the last character, which+-- cannot be a dash.+aName :: Lens' Address (Maybe Text)+aName = lens _aName (\ s a -> s{_aName = a})++-- | [Output Only] Creation timestamp in RFC3339 text format.+aCreationTimestamp :: Lens' Address (Maybe Text)+aCreationTimestamp+  = lens _aCreationTimestamp+      (\ s a -> s{_aCreationTimestamp = a})++-- | [Output Only] Unique identifier for the resource; defined by the server.+aId :: Lens' Address (Maybe Word64)+aId+  = lens _aId (\ s a -> s{_aId = a}) . mapping _Coerce++-- | [Output Only] URL of the region where the regional address resides. This+-- field is not applicable to global addresses.+aRegion :: Lens' Address (Maybe Text)+aRegion = lens _aRegion (\ s a -> s{_aRegion = a})++-- | An optional textual description of the resource; provided by the client+-- when the resource is created.+aDescription :: Lens' Address (Maybe Text)+aDescription+  = lens _aDescription (\ s a -> s{_aDescription = a})++instance FromJSON Address where+        parseJSON+          = withObject "Address"+              (\ o ->+                 Address <$>+                   (o .:? "status") <*> (o .:? "users" .!= mempty) <*>+                     (o .:? "kind" .!= "compute#address")+                     <*> (o .:? "address")+                     <*> (o .:? "selfLink")+                     <*> (o .:? "name")+                     <*> (o .:? "creationTimestamp")+                     <*> (o .:? "id")+                     <*> (o .:? "region")+                     <*> (o .:? "description"))++instance ToJSON Address where+        toJSON Address{..}+          = object+              (catMaybes+                 [("status" .=) <$> _aStatus,+                  ("users" .=) <$> _aUsers, Just ("kind" .= _aKind),+                  ("address" .=) <$> _aAddress,+                  ("selfLink" .=) <$> _aSelfLink,+                  ("name" .=) <$> _aName,+                  ("creationTimestamp" .=) <$> _aCreationTimestamp,+                  ("id" .=) <$> _aId, ("region" .=) <$> _aRegion,+                  ("description" .=) <$> _aDescription])++-- | A Zone resource.+--+-- /See:/ 'zone' smart constructor.+data Zone = Zone+    { _zStatus             :: !(Maybe ZoneStatus)+    , _zMaintenanceWindows :: !(Maybe [ZoneMaintenanceWindowsItem])+    , _zKind               :: !Text+    , _zSelfLink           :: !(Maybe Text)+    , _zName               :: !(Maybe Text)+    , _zCreationTimestamp  :: !(Maybe Text)+    , _zId                 :: !(Maybe (Textual Word64))+    , _zRegion             :: !(Maybe Text)+    , _zDescription        :: !(Maybe Text)+    , _zDeprecated         :: !(Maybe DeprecationStatus)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Zone' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'zStatus'+--+-- * 'zMaintenanceWindows'+--+-- * 'zKind'+--+-- * 'zSelfLink'+--+-- * 'zName'+--+-- * 'zCreationTimestamp'+--+-- * 'zId'+--+-- * 'zRegion'+--+-- * 'zDescription'+--+-- * 'zDeprecated'+zone+    :: Zone+zone =+    Zone+    { _zStatus = Nothing+    , _zMaintenanceWindows = Nothing+    , _zKind = "compute#zone"+    , _zSelfLink = Nothing+    , _zName = Nothing+    , _zCreationTimestamp = Nothing+    , _zId = Nothing+    , _zRegion = Nothing+    , _zDescription = Nothing+    , _zDeprecated = Nothing+    }++-- | [Output Only] Status of the zone, either UP or DOWN.+zStatus :: Lens' Zone (Maybe ZoneStatus)+zStatus = lens _zStatus (\ s a -> s{_zStatus = a})++-- | [Output Only] Any scheduled maintenance windows for this zone. When the+-- zone is in a maintenance window, all resources which reside in the zone+-- will be unavailable. For more information, see Maintenance Windows+zMaintenanceWindows :: Lens' Zone [ZoneMaintenanceWindowsItem]+zMaintenanceWindows+  = lens _zMaintenanceWindows+      (\ s a -> s{_zMaintenanceWindows = a})+      . _Default+      . _Coerce++-- | [Output Only] Type of the resource. Always kind#zone for zones.+zKind :: Lens' Zone Text+zKind = lens _zKind (\ s a -> s{_zKind = a})++-- | [Output Only] Server-defined URL for the resource.+zSelfLink :: Lens' Zone (Maybe Text)+zSelfLink+  = lens _zSelfLink (\ s a -> s{_zSelfLink = a})++-- | [Output Only] Name of the resource.+zName :: Lens' Zone (Maybe Text)+zName = lens _zName (\ s a -> s{_zName = a})++-- | [Output Only] Creation timestamp in RFC3339 text format.+zCreationTimestamp :: Lens' Zone (Maybe Text)+zCreationTimestamp+  = lens _zCreationTimestamp+      (\ s a -> s{_zCreationTimestamp = a})++-- | [Output Only] Unique identifier for the resource; defined by the server.+zId :: Lens' Zone (Maybe Word64)+zId+  = lens _zId (\ s a -> s{_zId = a}) . mapping _Coerce++-- | [Output Only] Full URL reference to the region which hosts the zone.+zRegion :: Lens' Zone (Maybe Text)+zRegion = lens _zRegion (\ s a -> s{_zRegion = a})++-- | [Output Only] Textual description of the resource.+zDescription :: Lens' Zone (Maybe Text)+zDescription+  = lens _zDescription (\ s a -> s{_zDescription = a})++-- | [Output Only] The deprecation status associated with this zone.+zDeprecated :: Lens' Zone (Maybe DeprecationStatus)+zDeprecated+  = lens _zDeprecated (\ s a -> s{_zDeprecated = a})++instance FromJSON Zone where+        parseJSON+          = withObject "Zone"+              (\ o ->+                 Zone <$>+                   (o .:? "status") <*>+                     (o .:? "maintenanceWindows" .!= mempty)+                     <*> (o .:? "kind" .!= "compute#zone")+                     <*> (o .:? "selfLink")+                     <*> (o .:? "name")+                     <*> (o .:? "creationTimestamp")+                     <*> (o .:? "id")+                     <*> (o .:? "region")+                     <*> (o .:? "description")+                     <*> (o .:? "deprecated"))++instance ToJSON Zone where+        toJSON Zone{..}+          = object+              (catMaybes+                 [("status" .=) <$> _zStatus,+                  ("maintenanceWindows" .=) <$> _zMaintenanceWindows,+                  Just ("kind" .= _zKind),+                  ("selfLink" .=) <$> _zSelfLink,+                  ("name" .=) <$> _zName,+                  ("creationTimestamp" .=) <$> _zCreationTimestamp,+                  ("id" .=) <$> _zId, ("region" .=) <$> _zRegion,+                  ("description" .=) <$> _zDescription,+                  ("deprecated" .=) <$> _zDeprecated])++--+-- /See:/ 'instanceGroupManagersRecreateInstancesRequest' smart constructor.+newtype InstanceGroupManagersRecreateInstancesRequest = InstanceGroupManagersRecreateInstancesRequest+    { _igmrirInstances :: Maybe [Text]+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstanceGroupManagersRecreateInstancesRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'igmrirInstances'+instanceGroupManagersRecreateInstancesRequest+    :: InstanceGroupManagersRecreateInstancesRequest+instanceGroupManagersRecreateInstancesRequest =+    InstanceGroupManagersRecreateInstancesRequest+    { _igmrirInstances = Nothing+    }++-- | The URL for one or more instances to recreate.+igmrirInstances :: Lens' InstanceGroupManagersRecreateInstancesRequest [Text]+igmrirInstances+  = lens _igmrirInstances+      (\ s a -> s{_igmrirInstances = a})+      . _Default+      . _Coerce++instance FromJSON+         InstanceGroupManagersRecreateInstancesRequest where+        parseJSON+          = withObject+              "InstanceGroupManagersRecreateInstancesRequest"+              (\ o ->+                 InstanceGroupManagersRecreateInstancesRequest <$>+                   (o .:? "instances" .!= mempty))++instance ToJSON+         InstanceGroupManagersRecreateInstancesRequest where+        toJSON+          InstanceGroupManagersRecreateInstancesRequest{..}+          = object+              (catMaybes [("instances" .=) <$> _igmrirInstances])++--+-- /See:/ 'instancesScopedList' smart constructor.+data InstancesScopedList = InstancesScopedList+    { _islWarning   :: !(Maybe InstancesScopedListWarning)+    , _islInstances :: !(Maybe [Instance])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstancesScopedList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'islWarning'+--+-- * 'islInstances'+instancesScopedList+    :: InstancesScopedList+instancesScopedList =+    InstancesScopedList+    { _islWarning = Nothing+    , _islInstances = Nothing+    }++-- | [Output Only] Informational warning which replaces the list of instances+-- when the list is empty.+islWarning :: Lens' InstancesScopedList (Maybe InstancesScopedListWarning)+islWarning+  = lens _islWarning (\ s a -> s{_islWarning = a})++-- | [Output Only] List of instances contained in this scope.+islInstances :: Lens' InstancesScopedList [Instance]+islInstances+  = lens _islInstances (\ s a -> s{_islInstances = a})+      . _Default+      . _Coerce++instance FromJSON InstancesScopedList where+        parseJSON+          = withObject "InstancesScopedList"+              (\ o ->+                 InstancesScopedList <$>+                   (o .:? "warning") <*> (o .:? "instances" .!= mempty))++instance ToJSON InstancesScopedList where+        toJSON InstancesScopedList{..}+          = object+              (catMaybes+                 [("warning" .=) <$> _islWarning,+                  ("instances" .=) <$> _islInstances])++--+-- /See:/ 'healthCheckReference' smart constructor.+newtype HealthCheckReference = HealthCheckReference+    { _hcrHealthCheck :: Maybe Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'HealthCheckReference' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'hcrHealthCheck'+healthCheckReference+    :: HealthCheckReference+healthCheckReference =+    HealthCheckReference+    { _hcrHealthCheck = Nothing+    }++hcrHealthCheck :: Lens' HealthCheckReference (Maybe Text)+hcrHealthCheck+  = lens _hcrHealthCheck+      (\ s a -> s{_hcrHealthCheck = a})++instance FromJSON HealthCheckReference where+        parseJSON+          = withObject "HealthCheckReference"+              (\ o ->+                 HealthCheckReference <$> (o .:? "healthCheck"))++instance ToJSON HealthCheckReference where+        toJSON HealthCheckReference{..}+          = object+              (catMaybes [("healthCheck" .=) <$> _hcrHealthCheck])++-- | A map of scoped target instance lists.+--+-- /See:/ 'targetInstanceAggregatedListItems' smart constructor.+newtype TargetInstanceAggregatedListItems = TargetInstanceAggregatedListItems+    { _tialiAddtional :: HashMap Text TargetInstancesScopedList+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TargetInstanceAggregatedListItems' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tialiAddtional'+targetInstanceAggregatedListItems+    :: HashMap Text TargetInstancesScopedList -- ^ 'tialiAddtional'+    -> TargetInstanceAggregatedListItems+targetInstanceAggregatedListItems pTialiAddtional_ =+    TargetInstanceAggregatedListItems+    { _tialiAddtional = _Coerce # pTialiAddtional_+    }++-- | Name of the scope containing this set of target instances.+tialiAddtional :: Lens' TargetInstanceAggregatedListItems (HashMap Text TargetInstancesScopedList)+tialiAddtional+  = lens _tialiAddtional+      (\ s a -> s{_tialiAddtional = a})+      . _Coerce++instance FromJSON TargetInstanceAggregatedListItems+         where+        parseJSON+          = withObject "TargetInstanceAggregatedListItems"+              (\ o ->+                 TargetInstanceAggregatedListItems <$>+                   (parseJSONObject o))++instance ToJSON TargetInstanceAggregatedListItems+         where+        toJSON = toJSON . _tialiAddtional++--+-- /See:/ 'instanceGroupAggregatedList' smart constructor.+data InstanceGroupAggregatedList = InstanceGroupAggregatedList+    { _igalNextPageToken :: !(Maybe Text)+    , _igalKind          :: !Text+    , _igalItems         :: !(Maybe InstanceGroupAggregatedListItems)+    , _igalSelfLink      :: !(Maybe Text)+    , _igalId            :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstanceGroupAggregatedList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'igalNextPageToken'+--+-- * 'igalKind'+--+-- * 'igalItems'+--+-- * 'igalSelfLink'+--+-- * 'igalId'+instanceGroupAggregatedList+    :: InstanceGroupAggregatedList+instanceGroupAggregatedList =+    InstanceGroupAggregatedList+    { _igalNextPageToken = Nothing+    , _igalKind = "compute#instanceGroupAggregatedList"+    , _igalItems = Nothing+    , _igalSelfLink = Nothing+    , _igalId = Nothing+    }++-- | [Output Only] A token that is used to continue a truncated list request.+igalNextPageToken :: Lens' InstanceGroupAggregatedList (Maybe Text)+igalNextPageToken+  = lens _igalNextPageToken+      (\ s a -> s{_igalNextPageToken = a})++-- | [Output Only] The resource type, which is always+-- compute#instanceGroupAggregatedList for aggregated lists of instance+-- groups.+igalKind :: Lens' InstanceGroupAggregatedList Text+igalKind = lens _igalKind (\ s a -> s{_igalKind = a})++-- | A map of scoped instance group lists.+igalItems :: Lens' InstanceGroupAggregatedList (Maybe InstanceGroupAggregatedListItems)+igalItems+  = lens _igalItems (\ s a -> s{_igalItems = a})++-- | [Output Only] The URL for this resource type. The server generates this+-- URL.+igalSelfLink :: Lens' InstanceGroupAggregatedList (Maybe Text)+igalSelfLink+  = lens _igalSelfLink (\ s a -> s{_igalSelfLink = a})++-- | [Output Only] A unique identifier for this aggregated list of instance+-- groups. The server generates this identifier.+igalId :: Lens' InstanceGroupAggregatedList (Maybe Text)+igalId = lens _igalId (\ s a -> s{_igalId = a})++instance FromJSON InstanceGroupAggregatedList where+        parseJSON+          = withObject "InstanceGroupAggregatedList"+              (\ o ->+                 InstanceGroupAggregatedList <$>+                   (o .:? "nextPageToken") <*>+                     (o .:? "kind" .!=+                        "compute#instanceGroupAggregatedList")+                     <*> (o .:? "items")+                     <*> (o .:? "selfLink")+                     <*> (o .:? "id"))++instance ToJSON InstanceGroupAggregatedList where+        toJSON InstanceGroupAggregatedList{..}+          = object+              (catMaybes+                 [("nextPageToken" .=) <$> _igalNextPageToken,+                  Just ("kind" .= _igalKind),+                  ("items" .=) <$> _igalItems,+                  ("selfLink" .=) <$> _igalSelfLink,+                  ("id" .=) <$> _igalId])++-- | The route resource. A Route is a rule that specifies how certain packets+-- should be handled by the virtual network. Routes are associated with+-- instances by tag and the set of Routes for a particular instance is+-- called its routing table. For each packet leaving a instance, the system+-- searches that instance\'s routing table for a single best matching+-- Route. Routes match packets by destination IP address, preferring+-- smaller or more specific ranges over larger ones. If there is a tie, the+-- system selects the Route with the smallest priority value. If there is+-- still a tie, it uses the layer three and four packet headers to select+-- just one of the remaining matching Routes. The packet is then forwarded+-- as specified by the nextHop field of the winning Route -- either to+-- another instance destination, a instance gateway or a Google Compute+-- Engien-operated gateway. Packets that do not match any Route in the+-- sending instance\'s routing table are dropped.+--+-- /See:/ 'route' smart constructor.+data Route = Route+    { _rPriority          :: !(Maybe (Textual Word32))+    , _rKind              :: !Text+    , _rNextHopGateway    :: !(Maybe Text)+    , _rNextHopNetwork    :: !(Maybe Text)+    , _rNetwork           :: !(Maybe Text)+    , _rWarnings          :: !(Maybe [RouteWarningsItem])+    , _rNextHopIP         :: !(Maybe Text)+    , _rDestRange         :: !(Maybe Text)+    , _rSelfLink          :: !(Maybe Text)+    , _rName              :: !(Maybe Text)+    , _rCreationTimestamp :: !(Maybe Text)+    , _rId                :: !(Maybe (Textual Word64))+    , _rNextHopVPNTunnel  :: !(Maybe Text)+    , _rDescription       :: !(Maybe Text)+    , _rTags              :: !(Maybe [Text])+    , _rNextHopInstance   :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Route' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rPriority'+--+-- * 'rKind'+--+-- * 'rNextHopGateway'+--+-- * 'rNextHopNetwork'+--+-- * 'rNetwork'+--+-- * 'rWarnings'+--+-- * 'rNextHopIP'+--+-- * 'rDestRange'+--+-- * 'rSelfLink'+--+-- * 'rName'+--+-- * 'rCreationTimestamp'+--+-- * 'rId'+--+-- * 'rNextHopVPNTunnel'+--+-- * 'rDescription'+--+-- * 'rTags'+--+-- * 'rNextHopInstance'+route+    :: Route+route =+    Route+    { _rPriority = Nothing+    , _rKind = "compute#route"+    , _rNextHopGateway = Nothing+    , _rNextHopNetwork = Nothing+    , _rNetwork = Nothing+    , _rWarnings = Nothing+    , _rNextHopIP = Nothing+    , _rDestRange = Nothing+    , _rSelfLink = Nothing+    , _rName = Nothing+    , _rCreationTimestamp = Nothing+    , _rId = Nothing+    , _rNextHopVPNTunnel = Nothing+    , _rDescription = Nothing+    , _rTags = Nothing+    , _rNextHopInstance = Nothing+    }++-- | Breaks ties between Routes of equal specificity. Routes with smaller+-- values win when tied with routes with larger values. Default value is+-- 1000. A valid range is between 0 and 65535.+rPriority :: Lens' Route (Maybe Word32)+rPriority+  = lens _rPriority (\ s a -> s{_rPriority = a}) .+      mapping _Coerce++-- | [Output Only] Type of this resource. Always compute#routes for Route+-- resources.+rKind :: Lens' Route Text+rKind = lens _rKind (\ s a -> s{_rKind = a})++-- | The URL to a gateway that should handle matching packets. Currently,+-- this is only the internet gateway:+-- projects\/\/global\/gateways\/default-internet-gateway+rNextHopGateway :: Lens' Route (Maybe Text)+rNextHopGateway+  = lens _rNextHopGateway+      (\ s a -> s{_rNextHopGateway = a})++-- | The URL of the local network if it should handle matching packets.+rNextHopNetwork :: Lens' Route (Maybe Text)+rNextHopNetwork+  = lens _rNextHopNetwork+      (\ s a -> s{_rNextHopNetwork = a})++-- | Fully-qualified URL of the network that this route applies to.+rNetwork :: Lens' Route (Maybe Text)+rNetwork = lens _rNetwork (\ s a -> s{_rNetwork = a})++-- | [Output Only] If potential misconfigurations are detected for this+-- route, this field will be populated with warning messages.+rWarnings :: Lens' Route [RouteWarningsItem]+rWarnings+  = lens _rWarnings (\ s a -> s{_rWarnings = a}) .+      _Default+      . _Coerce++-- | The network IP address of an instance that should handle matching+-- packets.+rNextHopIP :: Lens' Route (Maybe Text)+rNextHopIP+  = lens _rNextHopIP (\ s a -> s{_rNextHopIP = a})++-- | The destination range of outgoing packets that this route applies to.+rDestRange :: Lens' Route (Maybe Text)+rDestRange+  = lens _rDestRange (\ s a -> s{_rDestRange = a})++-- | [Output Only] Server-defined fully-qualified URL for this resource.+rSelfLink :: Lens' Route (Maybe Text)+rSelfLink+  = lens _rSelfLink (\ s a -> s{_rSelfLink = a})++-- | Name of the resource; provided by the client when the resource is+-- created. The name must be 1-63 characters long, and comply with RFC1035.+-- Specifically, the name must be 1-63 characters long and match the+-- regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first+-- character must be a lowercase letter, and all following characters must+-- be a dash, lowercase letter, or digit, except the last character, which+-- cannot be a dash.+rName :: Lens' Route (Maybe Text)+rName = lens _rName (\ s a -> s{_rName = a})++-- | [Output Only] Creation timestamp in RFC3339 text format.+rCreationTimestamp :: Lens' Route (Maybe Text)+rCreationTimestamp+  = lens _rCreationTimestamp+      (\ s a -> s{_rCreationTimestamp = a})++-- | [Output Only] Unique identifier for the resource. Defined by the server.+rId :: Lens' Route (Maybe Word64)+rId+  = lens _rId (\ s a -> s{_rId = a}) . mapping _Coerce++-- | The URL to a VpnTunnel that should handle matching packets.+rNextHopVPNTunnel :: Lens' Route (Maybe Text)+rNextHopVPNTunnel+  = lens _rNextHopVPNTunnel+      (\ s a -> s{_rNextHopVPNTunnel = a})++-- | An optional textual description of the resource. Provided by the client+-- when the resource is created.+rDescription :: Lens' Route (Maybe Text)+rDescription+  = lens _rDescription (\ s a -> s{_rDescription = a})++-- | A list of instance tags to which this route applies.+rTags :: Lens' Route [Text]+rTags+  = lens _rTags (\ s a -> s{_rTags = a}) . _Default .+      _Coerce++-- | The fully-qualified URL to an instance that should handle matching+-- packets. For example:+-- https:\/\/www.googleapis.com\/compute\/v1\/projects\/project\/zones\/zone\/instances\/+rNextHopInstance :: Lens' Route (Maybe Text)+rNextHopInstance+  = lens _rNextHopInstance+      (\ s a -> s{_rNextHopInstance = a})++instance FromJSON Route where+        parseJSON+          = withObject "Route"+              (\ o ->+                 Route <$>+                   (o .:? "priority") <*>+                     (o .:? "kind" .!= "compute#route")+                     <*> (o .:? "nextHopGateway")+                     <*> (o .:? "nextHopNetwork")+                     <*> (o .:? "network")+                     <*> (o .:? "warnings" .!= mempty)+                     <*> (o .:? "nextHopIp")+                     <*> (o .:? "destRange")+                     <*> (o .:? "selfLink")+                     <*> (o .:? "name")+                     <*> (o .:? "creationTimestamp")+                     <*> (o .:? "id")+                     <*> (o .:? "nextHopVpnTunnel")+                     <*> (o .:? "description")+                     <*> (o .:? "tags" .!= mempty)+                     <*> (o .:? "nextHopInstance"))++instance ToJSON Route where+        toJSON Route{..}+          = object+              (catMaybes+                 [("priority" .=) <$> _rPriority,+                  Just ("kind" .= _rKind),+                  ("nextHopGateway" .=) <$> _rNextHopGateway,+                  ("nextHopNetwork" .=) <$> _rNextHopNetwork,+                  ("network" .=) <$> _rNetwork,+                  ("warnings" .=) <$> _rWarnings,+                  ("nextHopIp" .=) <$> _rNextHopIP,+                  ("destRange" .=) <$> _rDestRange,+                  ("selfLink" .=) <$> _rSelfLink,+                  ("name" .=) <$> _rName,+                  ("creationTimestamp" .=) <$> _rCreationTimestamp,+                  ("id" .=) <$> _rId,+                  ("nextHopVpnTunnel" .=) <$> _rNextHopVPNTunnel,+                  ("description" .=) <$> _rDescription,+                  ("tags" .=) <$> _rTags,+                  ("nextHopInstance" .=) <$> _rNextHopInstance])++--+-- /See:/ 'targetVPNGatewaysScopedListWarningDataItem' smart constructor.+data TargetVPNGatewaysScopedListWarningDataItem = TargetVPNGatewaysScopedListWarningDataItem+    { _tvgslwdiValue :: !(Maybe Text)+    , _tvgslwdiKey   :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TargetVPNGatewaysScopedListWarningDataItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tvgslwdiValue'+--+-- * 'tvgslwdiKey'+targetVPNGatewaysScopedListWarningDataItem+    :: TargetVPNGatewaysScopedListWarningDataItem+targetVPNGatewaysScopedListWarningDataItem =+    TargetVPNGatewaysScopedListWarningDataItem+    { _tvgslwdiValue = Nothing+    , _tvgslwdiKey = Nothing+    }++-- | [Output Only] A warning data value corresponding to the key.+tvgslwdiValue :: Lens' TargetVPNGatewaysScopedListWarningDataItem (Maybe Text)+tvgslwdiValue+  = lens _tvgslwdiValue+      (\ s a -> s{_tvgslwdiValue = a})++-- | [Output Only] A key for the warning data.+tvgslwdiKey :: Lens' TargetVPNGatewaysScopedListWarningDataItem (Maybe Text)+tvgslwdiKey+  = lens _tvgslwdiKey (\ s a -> s{_tvgslwdiKey = a})++instance FromJSON+         TargetVPNGatewaysScopedListWarningDataItem where+        parseJSON+          = withObject+              "TargetVPNGatewaysScopedListWarningDataItem"+              (\ o ->+                 TargetVPNGatewaysScopedListWarningDataItem <$>+                   (o .:? "value") <*> (o .:? "key"))++instance ToJSON+         TargetVPNGatewaysScopedListWarningDataItem where+        toJSON TargetVPNGatewaysScopedListWarningDataItem{..}+          = object+              (catMaybes+                 [("value" .=) <$> _tvgslwdiValue,+                  ("key" .=) <$> _tvgslwdiKey])++--+-- /See:/ 'targetHTTPSProxiesSetSSLCertificatesRequest' smart constructor.+newtype TargetHTTPSProxiesSetSSLCertificatesRequest = TargetHTTPSProxiesSetSSLCertificatesRequest+    { _thpsscrSSLCertificates :: Maybe [Text]+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TargetHTTPSProxiesSetSSLCertificatesRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'thpsscrSSLCertificates'+targetHTTPSProxiesSetSSLCertificatesRequest+    :: TargetHTTPSProxiesSetSSLCertificatesRequest+targetHTTPSProxiesSetSSLCertificatesRequest =+    TargetHTTPSProxiesSetSSLCertificatesRequest+    { _thpsscrSSLCertificates = Nothing+    }++-- | New set of URLs to SslCertificate resources to associate with this+-- TargetHttpProxy. Currently exactly one ssl certificate must be+-- specified.+thpsscrSSLCertificates :: Lens' TargetHTTPSProxiesSetSSLCertificatesRequest [Text]+thpsscrSSLCertificates+  = lens _thpsscrSSLCertificates+      (\ s a -> s{_thpsscrSSLCertificates = a})+      . _Default+      . _Coerce++instance FromJSON+         TargetHTTPSProxiesSetSSLCertificatesRequest where+        parseJSON+          = withObject+              "TargetHTTPSProxiesSetSSLCertificatesRequest"+              (\ o ->+                 TargetHTTPSProxiesSetSSLCertificatesRequest <$>+                   (o .:? "sslCertificates" .!= mempty))++instance ToJSON+         TargetHTTPSProxiesSetSSLCertificatesRequest where+        toJSON+          TargetHTTPSProxiesSetSSLCertificatesRequest{..}+          = object+              (catMaybes+                 [("sslCertificates" .=) <$> _thpsscrSSLCertificates])++-- | An Instance Template resource.+--+-- /See:/ 'instanceTemplate' smart constructor.+data InstanceTemplate = InstanceTemplate+    { _itKind              :: !Text+    , _itSelfLink          :: !(Maybe Text)+    , _itName              :: !(Maybe Text)+    , _itCreationTimestamp :: !(Maybe Text)+    , _itId                :: !(Maybe (Textual Word64))+    , _itDescription       :: !(Maybe Text)+    , _itProperties        :: !(Maybe InstanceProperties)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstanceTemplate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'itKind'+--+-- * 'itSelfLink'+--+-- * 'itName'+--+-- * 'itCreationTimestamp'+--+-- * 'itId'+--+-- * 'itDescription'+--+-- * 'itProperties'+instanceTemplate+    :: InstanceTemplate+instanceTemplate =+    InstanceTemplate+    { _itKind = "compute#instanceTemplate"+    , _itSelfLink = Nothing+    , _itName = Nothing+    , _itCreationTimestamp = Nothing+    , _itId = Nothing+    , _itDescription = Nothing+    , _itProperties = Nothing+    }++-- | [Output Only] The resource type, which is always+-- compute#instanceTemplate for instance templates.+itKind :: Lens' InstanceTemplate Text+itKind = lens _itKind (\ s a -> s{_itKind = a})++-- | [Output Only] The URL for this instance template. The server defines+-- this URL.+itSelfLink :: Lens' InstanceTemplate (Maybe Text)+itSelfLink+  = lens _itSelfLink (\ s a -> s{_itSelfLink = a})++-- | Name of the resource; provided by the client when the resource is+-- created. The name must be 1-63 characters long, and comply with RFC1035.+-- Specifically, the name must be 1-63 characters long and match the+-- regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first+-- character must be a lowercase letter, and all following characters must+-- be a dash, lowercase letter, or digit, except the last character, which+-- cannot be a dash.+itName :: Lens' InstanceTemplate (Maybe Text)+itName = lens _itName (\ s a -> s{_itName = a})++-- | [Output Only] The creation timestamp for this instance template in+-- RFC3339 text format.+itCreationTimestamp :: Lens' InstanceTemplate (Maybe Text)+itCreationTimestamp+  = lens _itCreationTimestamp+      (\ s a -> s{_itCreationTimestamp = a})++-- | [Output Only] A unique identifier for this instance template. The server+-- defines this identifier.+itId :: Lens' InstanceTemplate (Maybe Word64)+itId+  = lens _itId (\ s a -> s{_itId = a}) .+      mapping _Coerce++-- | An optional text description for the instance template.+itDescription :: Lens' InstanceTemplate (Maybe Text)+itDescription+  = lens _itDescription+      (\ s a -> s{_itDescription = a})++-- | The instance properties for this instance template.+itProperties :: Lens' InstanceTemplate (Maybe InstanceProperties)+itProperties+  = lens _itProperties (\ s a -> s{_itProperties = a})++instance FromJSON InstanceTemplate where+        parseJSON+          = withObject "InstanceTemplate"+              (\ o ->+                 InstanceTemplate <$>+                   (o .:? "kind" .!= "compute#instanceTemplate") <*>+                     (o .:? "selfLink")+                     <*> (o .:? "name")+                     <*> (o .:? "creationTimestamp")+                     <*> (o .:? "id")+                     <*> (o .:? "description")+                     <*> (o .:? "properties"))++instance ToJSON InstanceTemplate where+        toJSON InstanceTemplate{..}+          = object+              (catMaybes+                 [Just ("kind" .= _itKind),+                  ("selfLink" .=) <$> _itSelfLink,+                  ("name" .=) <$> _itName,+                  ("creationTimestamp" .=) <$> _itCreationTimestamp,+                  ("id" .=) <$> _itId,+                  ("description" .=) <$> _itDescription,+                  ("properties" .=) <$> _itProperties])++--+-- /See:/ 'zoneMaintenanceWindowsItem' smart constructor.+data ZoneMaintenanceWindowsItem = ZoneMaintenanceWindowsItem+    { _zmwiBeginTime   :: !(Maybe Text)+    , _zmwiName        :: !(Maybe Text)+    , _zmwiEndTime     :: !(Maybe Text)+    , _zmwiDescription :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ZoneMaintenanceWindowsItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'zmwiBeginTime'+--+-- * 'zmwiName'+--+-- * 'zmwiEndTime'+--+-- * 'zmwiDescription'+zoneMaintenanceWindowsItem+    :: ZoneMaintenanceWindowsItem+zoneMaintenanceWindowsItem =+    ZoneMaintenanceWindowsItem+    { _zmwiBeginTime = Nothing+    , _zmwiName = Nothing+    , _zmwiEndTime = Nothing+    , _zmwiDescription = Nothing+    }++-- | [Output Only] Starting time of the maintenance window, in RFC3339+-- format.+zmwiBeginTime :: Lens' ZoneMaintenanceWindowsItem (Maybe Text)+zmwiBeginTime+  = lens _zmwiBeginTime+      (\ s a -> s{_zmwiBeginTime = a})++-- | [Output Only] Name of the maintenance window.+zmwiName :: Lens' ZoneMaintenanceWindowsItem (Maybe Text)+zmwiName = lens _zmwiName (\ s a -> s{_zmwiName = a})++-- | [Output Only] Ending time of the maintenance window, in RFC3339 format.+zmwiEndTime :: Lens' ZoneMaintenanceWindowsItem (Maybe Text)+zmwiEndTime+  = lens _zmwiEndTime (\ s a -> s{_zmwiEndTime = a})++-- | [Output Only] Textual description of the maintenance window.+zmwiDescription :: Lens' ZoneMaintenanceWindowsItem (Maybe Text)+zmwiDescription+  = lens _zmwiDescription+      (\ s a -> s{_zmwiDescription = a})++instance FromJSON ZoneMaintenanceWindowsItem where+        parseJSON+          = withObject "ZoneMaintenanceWindowsItem"+              (\ o ->+                 ZoneMaintenanceWindowsItem <$>+                   (o .:? "beginTime") <*> (o .:? "name") <*>+                     (o .:? "endTime")+                     <*> (o .:? "description"))++instance ToJSON ZoneMaintenanceWindowsItem where+        toJSON ZoneMaintenanceWindowsItem{..}+          = object+              (catMaybes+                 [("beginTime" .=) <$> _zmwiBeginTime,+                  ("name" .=) <$> _zmwiName,+                  ("endTime" .=) <$> _zmwiEndTime,+                  ("description" .=) <$> _zmwiDescription])++--+-- /See:/ 'targetVPNGateway' smart constructor.+data TargetVPNGateway = TargetVPNGateway+    { _tvgStatus            :: !(Maybe TargetVPNGatewayStatus)+    , _tvgKind              :: !Text+    , _tvgNetwork           :: !(Maybe Text)+    , _tvgSelfLink          :: !(Maybe Text)+    , _tvgName              :: !(Maybe Text)+    , _tvgCreationTimestamp :: !(Maybe Text)+    , _tvgId                :: !(Maybe (Textual Word64))+    , _tvgRegion            :: !(Maybe Text)+    , _tvgTunnels           :: !(Maybe [Text])+    , _tvgDescription       :: !(Maybe Text)+    , _tvgForwardingRules   :: !(Maybe [Text])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TargetVPNGateway' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tvgStatus'+--+-- * 'tvgKind'+--+-- * 'tvgNetwork'+--+-- * 'tvgSelfLink'+--+-- * 'tvgName'+--+-- * 'tvgCreationTimestamp'+--+-- * 'tvgId'+--+-- * 'tvgRegion'+--+-- * 'tvgTunnels'+--+-- * 'tvgDescription'+--+-- * 'tvgForwardingRules'+targetVPNGateway+    :: TargetVPNGateway+targetVPNGateway =+    TargetVPNGateway+    { _tvgStatus = Nothing+    , _tvgKind = "compute#targetVpnGateway"+    , _tvgNetwork = Nothing+    , _tvgSelfLink = Nothing+    , _tvgName = Nothing+    , _tvgCreationTimestamp = Nothing+    , _tvgId = Nothing+    , _tvgRegion = Nothing+    , _tvgTunnels = Nothing+    , _tvgDescription = Nothing+    , _tvgForwardingRules = Nothing+    }++-- | [Output Only] The status of the VPN gateway.+tvgStatus :: Lens' TargetVPNGateway (Maybe TargetVPNGatewayStatus)+tvgStatus+  = lens _tvgStatus (\ s a -> s{_tvgStatus = a})++-- | [Output Only] Type of resource. Always compute#targetVpnGateway for+-- target VPN gateways.+tvgKind :: Lens' TargetVPNGateway Text+tvgKind = lens _tvgKind (\ s a -> s{_tvgKind = a})++-- | URL of the network to which this VPN gateway is attached. Provided by+-- the client when the VPN gateway is created.+tvgNetwork :: Lens' TargetVPNGateway (Maybe Text)+tvgNetwork+  = lens _tvgNetwork (\ s a -> s{_tvgNetwork = a})++-- | [Output Only] Server-defined URL for the resource.+tvgSelfLink :: Lens' TargetVPNGateway (Maybe Text)+tvgSelfLink+  = lens _tvgSelfLink (\ s a -> s{_tvgSelfLink = a})++-- | Name of the resource; provided by the client when the resource is+-- created. The name must be 1-63 characters long, and comply with RFC1035.+-- Specifically, the name must be 1-63 characters long and match the+-- regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first+-- character must be a lowercase letter, and all following characters must+-- be a dash, lowercase letter, or digit, except the last character, which+-- cannot be a dash.+tvgName :: Lens' TargetVPNGateway (Maybe Text)+tvgName = lens _tvgName (\ s a -> s{_tvgName = a})++-- | [Output Only] Creation timestamp in RFC3339 text format.+tvgCreationTimestamp :: Lens' TargetVPNGateway (Maybe Text)+tvgCreationTimestamp+  = lens _tvgCreationTimestamp+      (\ s a -> s{_tvgCreationTimestamp = a})++-- | [Output Only] Unique identifier for the resource. Defined by the server.+tvgId :: Lens' TargetVPNGateway (Maybe Word64)+tvgId+  = lens _tvgId (\ s a -> s{_tvgId = a}) .+      mapping _Coerce++-- | [Output Only] URL of the region where the target VPN gateway resides.+tvgRegion :: Lens' TargetVPNGateway (Maybe Text)+tvgRegion+  = lens _tvgRegion (\ s a -> s{_tvgRegion = a})++-- | [Output Only] A list of URLs to VpnTunnel resources. VpnTunnels are+-- created using compute.vpntunnels.insert and associated to a VPN gateway.+tvgTunnels :: Lens' TargetVPNGateway [Text]+tvgTunnels+  = lens _tvgTunnels (\ s a -> s{_tvgTunnels = a}) .+      _Default+      . _Coerce++-- | An optional textual description of the resource. Provided by the client+-- when the resource is created.+tvgDescription :: Lens' TargetVPNGateway (Maybe Text)+tvgDescription+  = lens _tvgDescription+      (\ s a -> s{_tvgDescription = a})++-- | [Output Only] A list of URLs to the ForwardingRule resources.+-- ForwardingRules are created using compute.forwardingRules.insert and+-- associated to a VPN gateway.+tvgForwardingRules :: Lens' TargetVPNGateway [Text]+tvgForwardingRules+  = lens _tvgForwardingRules+      (\ s a -> s{_tvgForwardingRules = a})+      . _Default+      . _Coerce++instance FromJSON TargetVPNGateway where+        parseJSON+          = withObject "TargetVPNGateway"+              (\ o ->+                 TargetVPNGateway <$>+                   (o .:? "status") <*>+                     (o .:? "kind" .!= "compute#targetVpnGateway")+                     <*> (o .:? "network")+                     <*> (o .:? "selfLink")+                     <*> (o .:? "name")+                     <*> (o .:? "creationTimestamp")+                     <*> (o .:? "id")+                     <*> (o .:? "region")+                     <*> (o .:? "tunnels" .!= mempty)+                     <*> (o .:? "description")+                     <*> (o .:? "forwardingRules" .!= mempty))++instance ToJSON TargetVPNGateway where+        toJSON TargetVPNGateway{..}+          = object+              (catMaybes+                 [("status" .=) <$> _tvgStatus,+                  Just ("kind" .= _tvgKind),+                  ("network" .=) <$> _tvgNetwork,+                  ("selfLink" .=) <$> _tvgSelfLink,+                  ("name" .=) <$> _tvgName,+                  ("creationTimestamp" .=) <$> _tvgCreationTimestamp,+                  ("id" .=) <$> _tvgId, ("region" .=) <$> _tvgRegion,+                  ("tunnels" .=) <$> _tvgTunnels,+                  ("description" .=) <$> _tvgDescription,+                  ("forwardingRules" .=) <$> _tvgForwardingRules])++--+-- /See:/ 'urlMapsValidateResponse' smart constructor.+newtype URLMapsValidateResponse = URLMapsValidateResponse+    { _umvrResult :: Maybe URLMapValidationResult+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'URLMapsValidateResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'umvrResult'+urlMapsValidateResponse+    :: URLMapsValidateResponse+urlMapsValidateResponse =+    URLMapsValidateResponse+    { _umvrResult = Nothing+    }++umvrResult :: Lens' URLMapsValidateResponse (Maybe URLMapValidationResult)+umvrResult+  = lens _umvrResult (\ s a -> s{_umvrResult = a})++instance FromJSON URLMapsValidateResponse where+        parseJSON+          = withObject "URLMapsValidateResponse"+              (\ o -> URLMapsValidateResponse <$> (o .:? "result"))++instance ToJSON URLMapsValidateResponse where+        toJSON URLMapsValidateResponse{..}+          = object (catMaybes [("result" .=) <$> _umvrResult])++-- | An SslCertificate resource. This resource provides a mechanism to upload+-- an SSL key and certificate to global HTTPS loadbalancer to serve secure+-- connections.+--+-- /See:/ 'sslCertificate' smart constructor.+data SSLCertificate = SSLCertificate+    { _scPrivateKey        :: !(Maybe Text)+    , _scKind              :: !Text+    , _scSelfLink          :: !(Maybe Text)+    , _scName              :: !(Maybe Text)+    , _scCreationTimestamp :: !(Maybe Text)+    , _scId                :: !(Maybe (Textual Word64))+    , _scCertificate       :: !(Maybe Text)+    , _scDescription       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'SSLCertificate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'scPrivateKey'+--+-- * 'scKind'+--+-- * 'scSelfLink'+--+-- * 'scName'+--+-- * 'scCreationTimestamp'+--+-- * 'scId'+--+-- * 'scCertificate'+--+-- * 'scDescription'+sslCertificate+    :: SSLCertificate+sslCertificate =+    SSLCertificate+    { _scPrivateKey = Nothing+    , _scKind = "compute#sslCertificate"+    , _scSelfLink = Nothing+    , _scName = Nothing+    , _scCreationTimestamp = Nothing+    , _scId = Nothing+    , _scCertificate = Nothing+    , _scDescription = Nothing+    }++-- | A write-only private key in PEM format. Only insert RPCs will include+-- this field.+scPrivateKey :: Lens' SSLCertificate (Maybe Text)+scPrivateKey+  = lens _scPrivateKey (\ s a -> s{_scPrivateKey = a})++-- | [Output Only] Type of the resource. Always compute#sslCertificate for+-- SSL certificates.+scKind :: Lens' SSLCertificate Text+scKind = lens _scKind (\ s a -> s{_scKind = a})++-- | [Output only] Server-defined URL for the resource.+scSelfLink :: Lens' SSLCertificate (Maybe Text)+scSelfLink+  = lens _scSelfLink (\ s a -> s{_scSelfLink = a})++-- | Name of the resource. Provided by the client when the resource is+-- created. The name must be 1-63 characters long, and comply with RFC1035.+-- Specifically, the name must be 1-63 characters long and match the+-- regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first+-- character must be a lowercase letter, and all following characters must+-- be a dash, lowercase letter, or digit, except the last character, which+-- cannot be a dash.+scName :: Lens' SSLCertificate (Maybe Text)+scName = lens _scName (\ s a -> s{_scName = a})++-- | [Output Only] Creation timestamp in RFC3339 text format.+scCreationTimestamp :: Lens' SSLCertificate (Maybe Text)+scCreationTimestamp+  = lens _scCreationTimestamp+      (\ s a -> s{_scCreationTimestamp = a})++-- | [Output Only] Unique identifier for the resource. Defined by the server.+scId :: Lens' SSLCertificate (Maybe Word64)+scId+  = lens _scId (\ s a -> s{_scId = a}) .+      mapping _Coerce++-- | A local certificate file. The certificate must be in PEM format. The+-- certificate chain must be no greater than 5 certs long. The chain must+-- include at least one intermediate cert.+scCertificate :: Lens' SSLCertificate (Maybe Text)+scCertificate+  = lens _scCertificate+      (\ s a -> s{_scCertificate = a})++-- | An optional textual description of the resource. Provided by the client+-- when the resource is created.+scDescription :: Lens' SSLCertificate (Maybe Text)+scDescription+  = lens _scDescription+      (\ s a -> s{_scDescription = a})++instance FromJSON SSLCertificate where+        parseJSON+          = withObject "SSLCertificate"+              (\ o ->+                 SSLCertificate <$>+                   (o .:? "privateKey") <*>+                     (o .:? "kind" .!= "compute#sslCertificate")+                     <*> (o .:? "selfLink")+                     <*> (o .:? "name")+                     <*> (o .:? "creationTimestamp")+                     <*> (o .:? "id")+                     <*> (o .:? "certificate")+                     <*> (o .:? "description"))++instance ToJSON SSLCertificate where+        toJSON SSLCertificate{..}+          = object+              (catMaybes+                 [("privateKey" .=) <$> _scPrivateKey,+                  Just ("kind" .= _scKind),+                  ("selfLink" .=) <$> _scSelfLink,+                  ("name" .=) <$> _scName,+                  ("creationTimestamp" .=) <$> _scCreationTimestamp,+                  ("id" .=) <$> _scId,+                  ("certificate" .=) <$> _scCertificate,+                  ("description" .=) <$> _scDescription])++--+-- /See:/ 'urlMapReference' smart constructor.+newtype URLMapReference = URLMapReference+    { _umrURLMap :: Maybe Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'URLMapReference' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'umrURLMap'+urlMapReference+    :: URLMapReference+urlMapReference =+    URLMapReference+    { _umrURLMap = Nothing+    }++umrURLMap :: Lens' URLMapReference (Maybe Text)+umrURLMap+  = lens _umrURLMap (\ s a -> s{_umrURLMap = a})++instance FromJSON URLMapReference where+        parseJSON+          = withObject "URLMapReference"+              (\ o -> URLMapReference <$> (o .:? "urlMap"))++instance ToJSON URLMapReference where+        toJSON URLMapReference{..}+          = object (catMaybes [("urlMap" .=) <$> _umrURLMap])++--+-- /See:/ 'targetPoolsAddHealthCheckRequest' smart constructor.+newtype TargetPoolsAddHealthCheckRequest = TargetPoolsAddHealthCheckRequest+    { _tpahcrHealthChecks :: Maybe [HealthCheckReference]+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TargetPoolsAddHealthCheckRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tpahcrHealthChecks'+targetPoolsAddHealthCheckRequest+    :: TargetPoolsAddHealthCheckRequest+targetPoolsAddHealthCheckRequest =+    TargetPoolsAddHealthCheckRequest+    { _tpahcrHealthChecks = Nothing+    }++-- | Health check URLs to be added to targetPool.+tpahcrHealthChecks :: Lens' TargetPoolsAddHealthCheckRequest [HealthCheckReference]+tpahcrHealthChecks+  = lens _tpahcrHealthChecks+      (\ s a -> s{_tpahcrHealthChecks = a})+      . _Default+      . _Coerce++instance FromJSON TargetPoolsAddHealthCheckRequest+         where+        parseJSON+          = withObject "TargetPoolsAddHealthCheckRequest"+              (\ o ->+                 TargetPoolsAddHealthCheckRequest <$>+                   (o .:? "healthChecks" .!= mempty))++instance ToJSON TargetPoolsAddHealthCheckRequest+         where+        toJSON TargetPoolsAddHealthCheckRequest{..}+          = object+              (catMaybes+                 [("healthChecks" .=) <$> _tpahcrHealthChecks])++-- | [Output Only] A map of scoped disk lists.+--+-- /See:/ 'diskAggregatedListItems' smart constructor.+newtype DiskAggregatedListItems = DiskAggregatedListItems+    { _daliAddtional :: HashMap Text DisksScopedList+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DiskAggregatedListItems' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'daliAddtional'+diskAggregatedListItems+    :: HashMap Text DisksScopedList -- ^ 'daliAddtional'+    -> DiskAggregatedListItems+diskAggregatedListItems pDaliAddtional_ =+    DiskAggregatedListItems+    { _daliAddtional = _Coerce # pDaliAddtional_+    }++-- | [Output Only] Name of the scope containing this set of disks.+daliAddtional :: Lens' DiskAggregatedListItems (HashMap Text DisksScopedList)+daliAddtional+  = lens _daliAddtional+      (\ s a -> s{_daliAddtional = a})+      . _Coerce++instance FromJSON DiskAggregatedListItems where+        parseJSON+          = withObject "DiskAggregatedListItems"+              (\ o ->+                 DiskAggregatedListItems <$> (parseJSONObject o))++instance ToJSON DiskAggregatedListItems where+        toJSON = toJSON . _daliAddtional++-- | The location in Cloud Storage and naming method of the daily usage+-- report. Contains bucket_name and report_name prefix.+--+-- /See:/ 'usageExportLocation' smart constructor.+data UsageExportLocation = UsageExportLocation+    { _uelReportNamePrefix :: !(Maybe Text)+    , _uelBucketName       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'UsageExportLocation' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'uelReportNamePrefix'+--+-- * 'uelBucketName'+usageExportLocation+    :: UsageExportLocation+usageExportLocation =+    UsageExportLocation+    { _uelReportNamePrefix = Nothing+    , _uelBucketName = Nothing+    }++-- | An optional prefix for the name of the usage report object stored in+-- bucketName. If not supplied, defaults to usage. The report is stored as+-- a CSV file named report_name_prefix_gce_YYYYMMDD.csv where YYYYMMDD is+-- the day of the usage according to Pacific Time. If you supply a prefix,+-- it should conform to Cloud Storage object naming conventions.+uelReportNamePrefix :: Lens' UsageExportLocation (Maybe Text)+uelReportNamePrefix+  = lens _uelReportNamePrefix+      (\ s a -> s{_uelReportNamePrefix = a})++-- | The name of an existing bucket in Cloud Storage where the usage report+-- object is stored. The Google Service Account is granted write access to+-- this bucket. This is just the bucket name, with no gs:\/\/ or+-- https:\/\/storage.googleapis.com\/ in front of it.+uelBucketName :: Lens' UsageExportLocation (Maybe Text)+uelBucketName+  = lens _uelBucketName+      (\ s a -> s{_uelBucketName = a})++instance FromJSON UsageExportLocation where+        parseJSON+          = withObject "UsageExportLocation"+              (\ o ->+                 UsageExportLocation <$>+                   (o .:? "reportNamePrefix") <*> (o .:? "bucketName"))++instance ToJSON UsageExportLocation where+        toJSON UsageExportLocation{..}+          = object+              (catMaybes+                 [("reportNamePrefix" .=) <$> _uelReportNamePrefix,+                  ("bucketName" .=) <$> _uelBucketName])++-- | Contains a list of zone resources.+--+-- /See:/ 'zoneList' smart constructor.+data ZoneList = ZoneList+    { _zlNextPageToken :: !(Maybe Text)+    , _zlKind          :: !Text+    , _zlItems         :: !(Maybe [Zone])+    , _zlSelfLink      :: !(Maybe Text)+    , _zlId            :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ZoneList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'zlNextPageToken'+--+-- * 'zlKind'+--+-- * 'zlItems'+--+-- * 'zlSelfLink'+--+-- * 'zlId'+zoneList+    :: ZoneList+zoneList =+    ZoneList+    { _zlNextPageToken = Nothing+    , _zlKind = "compute#zoneList"+    , _zlItems = Nothing+    , _zlSelfLink = Nothing+    , _zlId = Nothing+    }++-- | [Output Only] A token used to continue a truncated list request.+zlNextPageToken :: Lens' ZoneList (Maybe Text)+zlNextPageToken+  = lens _zlNextPageToken+      (\ s a -> s{_zlNextPageToken = a})++-- | Type of resource.+zlKind :: Lens' ZoneList Text+zlKind = lens _zlKind (\ s a -> s{_zlKind = a})++-- | [Output Only] A list of Zone resources.+zlItems :: Lens' ZoneList [Zone]+zlItems+  = lens _zlItems (\ s a -> s{_zlItems = a}) . _Default+      . _Coerce++-- | [Output Only] Server-defined URL for this resource.+zlSelfLink :: Lens' ZoneList (Maybe Text)+zlSelfLink+  = lens _zlSelfLink (\ s a -> s{_zlSelfLink = a})++-- | [Output Only] Unique identifier for the resource; defined by the server.+zlId :: Lens' ZoneList (Maybe Text)+zlId = lens _zlId (\ s a -> s{_zlId = a})++instance FromJSON ZoneList where+        parseJSON+          = withObject "ZoneList"+              (\ o ->+                 ZoneList <$>+                   (o .:? "nextPageToken") <*>+                     (o .:? "kind" .!= "compute#zoneList")+                     <*> (o .:? "items" .!= mempty)+                     <*> (o .:? "selfLink")+                     <*> (o .:? "id"))++instance ToJSON ZoneList where+        toJSON ZoneList{..}+          = object+              (catMaybes+                 [("nextPageToken" .=) <$> _zlNextPageToken,+                  Just ("kind" .= _zlKind), ("items" .=) <$> _zlItems,+                  ("selfLink" .=) <$> _zlSelfLink,+                  ("id" .=) <$> _zlId])++--+-- /See:/ 'managedInstance' smart constructor.+data ManagedInstance = ManagedInstance+    { _miLastAttempt    :: !(Maybe ManagedInstanceLastAttempt)+    , _miCurrentAction  :: !(Maybe ManagedInstanceCurrentAction)+    , _miId             :: !(Maybe (Textual Word64))+    , _miInstanceStatus :: !(Maybe ManagedInstanceInstanceStatus)+    , _miInstance       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ManagedInstance' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'miLastAttempt'+--+-- * 'miCurrentAction'+--+-- * 'miId'+--+-- * 'miInstanceStatus'+--+-- * 'miInstance'+managedInstance+    :: ManagedInstance+managedInstance =+    ManagedInstance+    { _miLastAttempt = Nothing+    , _miCurrentAction = Nothing+    , _miId = Nothing+    , _miInstanceStatus = Nothing+    , _miInstance = Nothing+    }++-- | [Output Only] Information about the last attempt to create or delete the+-- instance.+miLastAttempt :: Lens' ManagedInstance (Maybe ManagedInstanceLastAttempt)+miLastAttempt+  = lens _miLastAttempt+      (\ s a -> s{_miLastAttempt = a})++-- | [Output Only] The current action that the managed instance group has+-- scheduled for the instance. Possible values: - NONE The instance is+-- running, and the managed instance group does not have any scheduled+-- actions for this instance. - CREATING The managed instance group is+-- creating this instance. - RECREATING The managed instance group is+-- recreating this instance. - DELETING The managed instance group is+-- permanently deleting this instance. - ABANDONING The managed instance+-- group is abandoning this instance. The instance will be removed from the+-- instance group and from any target pools that are associated with this+-- group. - RESTARTING The managed instance group is restarting the+-- instance. - REFRESHING The managed instance group is applying+-- configuration changes to the instance without stopping it. For example,+-- the group can update the target pool list for an instance without+-- stopping that instance.+miCurrentAction :: Lens' ManagedInstance (Maybe ManagedInstanceCurrentAction)+miCurrentAction+  = lens _miCurrentAction+      (\ s a -> s{_miCurrentAction = a})++-- | [Output only] The unique identifier for this resource. This field is+-- empty when instance does not exist.+miId :: Lens' ManagedInstance (Maybe Word64)+miId+  = lens _miId (\ s a -> s{_miId = a}) .+      mapping _Coerce++-- | [Output Only] The status of the instance. This field is empty when the+-- instance does not exist.+miInstanceStatus :: Lens' ManagedInstance (Maybe ManagedInstanceInstanceStatus)+miInstanceStatus+  = lens _miInstanceStatus+      (\ s a -> s{_miInstanceStatus = a})++-- | [Output Only] The URL of the instance. The URL can exist even if the+-- instance has not yet been created.+miInstance :: Lens' ManagedInstance (Maybe Text)+miInstance+  = lens _miInstance (\ s a -> s{_miInstance = a})++instance FromJSON ManagedInstance where+        parseJSON+          = withObject "ManagedInstance"+              (\ o ->+                 ManagedInstance <$>+                   (o .:? "lastAttempt") <*> (o .:? "currentAction") <*>+                     (o .:? "id")+                     <*> (o .:? "instanceStatus")+                     <*> (o .:? "instance"))++instance ToJSON ManagedInstance where+        toJSON ManagedInstance{..}+          = object+              (catMaybes+                 [("lastAttempt" .=) <$> _miLastAttempt,+                  ("currentAction" .=) <$> _miCurrentAction,+                  ("id" .=) <$> _miId,+                  ("instanceStatus" .=) <$> _miInstanceStatus,+                  ("instance" .=) <$> _miInstance])++-- | [Output Only] A map of filtered managed instance group lists.+--+-- /See:/ 'instanceGroupManagerAggregatedListItems' smart constructor.+newtype InstanceGroupManagerAggregatedListItems = InstanceGroupManagerAggregatedListItems+    { _igmaliAddtional :: HashMap Text InstanceGroupManagersScopedList+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstanceGroupManagerAggregatedListItems' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'igmaliAddtional'+instanceGroupManagerAggregatedListItems+    :: HashMap Text InstanceGroupManagersScopedList -- ^ 'igmaliAddtional'+    -> InstanceGroupManagerAggregatedListItems+instanceGroupManagerAggregatedListItems pIgmaliAddtional_ =+    InstanceGroupManagerAggregatedListItems+    { _igmaliAddtional = _Coerce # pIgmaliAddtional_+    }++-- | [Output Only] The name of the scope that contains this set of managed+-- instance groups.+igmaliAddtional :: Lens' InstanceGroupManagerAggregatedListItems (HashMap Text InstanceGroupManagersScopedList)+igmaliAddtional+  = lens _igmaliAddtional+      (\ s a -> s{_igmaliAddtional = a})+      . _Coerce++instance FromJSON+         InstanceGroupManagerAggregatedListItems where+        parseJSON+          = withObject+              "InstanceGroupManagerAggregatedListItems"+              (\ o ->+                 InstanceGroupManagerAggregatedListItems <$>+                   (parseJSONObject o))++instance ToJSON+         InstanceGroupManagerAggregatedListItems where+        toJSON = toJSON . _igmaliAddtional++--+-- /See:/ 'instanceGroupManagersDeleteInstancesRequest' smart constructor.+newtype InstanceGroupManagersDeleteInstancesRequest = InstanceGroupManagersDeleteInstancesRequest+    { _igmdirInstances :: Maybe [Text]+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstanceGroupManagersDeleteInstancesRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'igmdirInstances'+instanceGroupManagersDeleteInstancesRequest+    :: InstanceGroupManagersDeleteInstancesRequest+instanceGroupManagersDeleteInstancesRequest =+    InstanceGroupManagersDeleteInstancesRequest+    { _igmdirInstances = Nothing+    }++-- | The list of instances to delete from this managed instance group.+-- Specify one or more instance URLs.+igmdirInstances :: Lens' InstanceGroupManagersDeleteInstancesRequest [Text]+igmdirInstances+  = lens _igmdirInstances+      (\ s a -> s{_igmdirInstances = a})+      . _Default+      . _Coerce++instance FromJSON+         InstanceGroupManagersDeleteInstancesRequest where+        parseJSON+          = withObject+              "InstanceGroupManagersDeleteInstancesRequest"+              (\ o ->+                 InstanceGroupManagersDeleteInstancesRequest <$>+                   (o .:? "instances" .!= mempty))++instance ToJSON+         InstanceGroupManagersDeleteInstancesRequest where+        toJSON+          InstanceGroupManagersDeleteInstancesRequest{..}+          = object+              (catMaybes [("instances" .=) <$> _igmdirInstances])++-- | Message containing information of one individual backend.+--+-- /See:/ 'backend' smart constructor.+data Backend = Backend+    { _bGroup              :: !(Maybe Text)+    , _bBalancingMode      :: !(Maybe BackendBalancingMode)+    , _bMaxUtilization     :: !(Maybe (Textual Double))+    , _bMaxRate            :: !(Maybe (Textual Int32))+    , _bMaxRatePerInstance :: !(Maybe (Textual Double))+    , _bDescription        :: !(Maybe Text)+    , _bCapacityScaler     :: !(Maybe (Textual Double))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Backend' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'bGroup'+--+-- * 'bBalancingMode'+--+-- * 'bMaxUtilization'+--+-- * 'bMaxRate'+--+-- * 'bMaxRatePerInstance'+--+-- * 'bDescription'+--+-- * 'bCapacityScaler'+backend+    :: Backend+backend =+    Backend+    { _bGroup = Nothing+    , _bBalancingMode = Nothing+    , _bMaxUtilization = Nothing+    , _bMaxRate = Nothing+    , _bMaxRatePerInstance = Nothing+    , _bDescription = Nothing+    , _bCapacityScaler = Nothing+    }++-- | The fully-qualified URL of a zonal Instance Group resource. This+-- instance group defines the list of instances that serve traffic. Member+-- virtual machine instances from each instance group must live in the same+-- zone as the instance group itself. No two backends in a backend service+-- are allowed to use same Instance Group resource. Note that you must+-- specify an Instance Group resource using the fully-qualified URL, rather+-- than a partial URL.+bGroup :: Lens' Backend (Maybe Text)+bGroup = lens _bGroup (\ s a -> s{_bGroup = a})++-- | Specifies the balancing mode for this backend. The default is+-- UTILIZATION but available values are UTILIZATION and RATE.+bBalancingMode :: Lens' Backend (Maybe BackendBalancingMode)+bBalancingMode+  = lens _bBalancingMode+      (\ s a -> s{_bBalancingMode = a})++-- | Used when balancingMode is UTILIZATION. This ratio defines the CPU+-- utilization target for the group. The default is 0.8. Valid range is+-- [0.0, 1.0].+bMaxUtilization :: Lens' Backend (Maybe Double)+bMaxUtilization+  = lens _bMaxUtilization+      (\ s a -> s{_bMaxUtilization = a})+      . mapping _Coerce++-- | The max RPS of the group. Can be used with either balancing mode, but+-- required if RATE mode. For RATE mode, either maxRate or+-- maxRatePerInstance must be set.+bMaxRate :: Lens' Backend (Maybe Int32)+bMaxRate+  = lens _bMaxRate (\ s a -> s{_bMaxRate = a}) .+      mapping _Coerce++-- | The max RPS that a single backed instance can handle. This is used to+-- calculate the capacity of the group. Can be used in either balancing+-- mode. For RATE mode, either maxRate or maxRatePerInstance must be set.+bMaxRatePerInstance :: Lens' Backend (Maybe Double)+bMaxRatePerInstance+  = lens _bMaxRatePerInstance+      (\ s a -> s{_bMaxRatePerInstance = a})+      . mapping _Coerce++-- | An optional textual description of the resource. Provided by the client+-- when the resource is created.+bDescription :: Lens' Backend (Maybe Text)+bDescription+  = lens _bDescription (\ s a -> s{_bDescription = a})++-- | A multiplier applied to the group\'s maximum servicing capacity (either+-- UTILIZATION or RATE). Default value is 1, which means the group will+-- serve up to 100% of its configured CPU or RPS (depending on+-- balancingMode). A setting of 0 means the group is completely drained,+-- offering 0% of its available CPU or RPS. Valid range is [0.0,1.0].+bCapacityScaler :: Lens' Backend (Maybe Double)+bCapacityScaler+  = lens _bCapacityScaler+      (\ s a -> s{_bCapacityScaler = a})+      . mapping _Coerce++instance FromJSON Backend where+        parseJSON+          = withObject "Backend"+              (\ o ->+                 Backend <$>+                   (o .:? "group") <*> (o .:? "balancingMode") <*>+                     (o .:? "maxUtilization")+                     <*> (o .:? "maxRate")+                     <*> (o .:? "maxRatePerInstance")+                     <*> (o .:? "description")+                     <*> (o .:? "capacityScaler"))++instance ToJSON Backend where+        toJSON Backend{..}+          = object+              (catMaybes+                 [("group" .=) <$> _bGroup,+                  ("balancingMode" .=) <$> _bBalancingMode,+                  ("maxUtilization" .=) <$> _bMaxUtilization,+                  ("maxRate" .=) <$> _bMaxRate,+                  ("maxRatePerInstance" .=) <$> _bMaxRatePerInstance,+                  ("description" .=) <$> _bDescription,+                  ("capacityScaler" .=) <$> _bCapacityScaler])++-- | [Output Only] Informational warning which replaces the list of addresses+-- when the list is empty.+--+-- /See:/ 'targetVPNGatewaysScopedListWarning' smart constructor.+data TargetVPNGatewaysScopedListWarning = TargetVPNGatewaysScopedListWarning+    { _tvgslwData    :: !(Maybe [TargetVPNGatewaysScopedListWarningDataItem])+    , _tvgslwCode    :: !(Maybe TargetVPNGatewaysScopedListWarningCode)+    , _tvgslwMessage :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TargetVPNGatewaysScopedListWarning' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tvgslwData'+--+-- * 'tvgslwCode'+--+-- * 'tvgslwMessage'+targetVPNGatewaysScopedListWarning+    :: TargetVPNGatewaysScopedListWarning+targetVPNGatewaysScopedListWarning =+    TargetVPNGatewaysScopedListWarning+    { _tvgslwData = Nothing+    , _tvgslwCode = Nothing+    , _tvgslwMessage = Nothing+    }++-- | [Output Only] Metadata for this warning in key: value format.+tvgslwData :: Lens' TargetVPNGatewaysScopedListWarning [TargetVPNGatewaysScopedListWarningDataItem]+tvgslwData+  = lens _tvgslwData (\ s a -> s{_tvgslwData = a}) .+      _Default+      . _Coerce++-- | [Output Only] The warning type identifier for this warning.+tvgslwCode :: Lens' TargetVPNGatewaysScopedListWarning (Maybe TargetVPNGatewaysScopedListWarningCode)+tvgslwCode+  = lens _tvgslwCode (\ s a -> s{_tvgslwCode = a})++-- | [Output Only] Optional human-readable details for this warning.+tvgslwMessage :: Lens' TargetVPNGatewaysScopedListWarning (Maybe Text)+tvgslwMessage+  = lens _tvgslwMessage+      (\ s a -> s{_tvgslwMessage = a})++instance FromJSON TargetVPNGatewaysScopedListWarning+         where+        parseJSON+          = withObject "TargetVPNGatewaysScopedListWarning"+              (\ o ->+                 TargetVPNGatewaysScopedListWarning <$>+                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>+                     (o .:? "message"))++instance ToJSON TargetVPNGatewaysScopedListWarning+         where+        toJSON TargetVPNGatewaysScopedListWarning{..}+          = object+              (catMaybes+                 [("data" .=) <$> _tvgslwData,+                  ("code" .=) <$> _tvgslwCode,+                  ("message" .=) <$> _tvgslwMessage])++-- | Contains a list of address resources.+--+-- /See:/ 'addressList' smart constructor.+data AddressList = AddressList+    { _alNextPageToken :: !(Maybe Text)+    , _alKind          :: !Text+    , _alItems         :: !(Maybe [Address])+    , _alSelfLink      :: !(Maybe Text)+    , _alId            :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'AddressList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'alNextPageToken'+--+-- * 'alKind'+--+-- * 'alItems'+--+-- * 'alSelfLink'+--+-- * 'alId'+addressList+    :: AddressList+addressList =+    AddressList+    { _alNextPageToken = Nothing+    , _alKind = "compute#addressList"+    , _alItems = Nothing+    , _alSelfLink = Nothing+    , _alId = Nothing+    }++-- | [Output Only] A token used to continue a truncated list request.+alNextPageToken :: Lens' AddressList (Maybe Text)+alNextPageToken+  = lens _alNextPageToken+      (\ s a -> s{_alNextPageToken = a})++-- | [Output Only] Type of resource. Always compute#addressList for lists of+-- addresses.+alKind :: Lens' AddressList Text+alKind = lens _alKind (\ s a -> s{_alKind = a})++-- | [Output Only] A list of Address resources.+alItems :: Lens' AddressList [Address]+alItems+  = lens _alItems (\ s a -> s{_alItems = a}) . _Default+      . _Coerce++-- | [Output Only] Server-defined URL for the resource.+alSelfLink :: Lens' AddressList (Maybe Text)+alSelfLink+  = lens _alSelfLink (\ s a -> s{_alSelfLink = a})++-- | [Output Only] Unique identifier for the resource; defined by the server.+alId :: Lens' AddressList (Maybe Text)+alId = lens _alId (\ s a -> s{_alId = a})++instance FromJSON AddressList where+        parseJSON+          = withObject "AddressList"+              (\ o ->+                 AddressList <$>+                   (o .:? "nextPageToken") <*>+                     (o .:? "kind" .!= "compute#addressList")+                     <*> (o .:? "items" .!= mempty)+                     <*> (o .:? "selfLink")+                     <*> (o .:? "id"))++instance ToJSON AddressList where+        toJSON AddressList{..}+          = object+              (catMaybes+                 [("nextPageToken" .=) <$> _alNextPageToken,+                  Just ("kind" .= _alKind), ("items" .=) <$> _alItems,+                  ("selfLink" .=) <$> _alSelfLink,+                  ("id" .=) <$> _alId])++-- | A map of scoped forwarding rule lists.+--+-- /See:/ 'forwardingRuleAggregatedListItems' smart constructor.+newtype ForwardingRuleAggregatedListItems = ForwardingRuleAggregatedListItems+    { _fraliAddtional :: HashMap Text ForwardingRulesScopedList+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ForwardingRuleAggregatedListItems' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'fraliAddtional'+forwardingRuleAggregatedListItems+    :: HashMap Text ForwardingRulesScopedList -- ^ 'fraliAddtional'+    -> ForwardingRuleAggregatedListItems+forwardingRuleAggregatedListItems pFraliAddtional_ =+    ForwardingRuleAggregatedListItems+    { _fraliAddtional = _Coerce # pFraliAddtional_+    }++-- | Name of the scope containing this set of addresses.+fraliAddtional :: Lens' ForwardingRuleAggregatedListItems (HashMap Text ForwardingRulesScopedList)+fraliAddtional+  = lens _fraliAddtional+      (\ s a -> s{_fraliAddtional = a})+      . _Coerce++instance FromJSON ForwardingRuleAggregatedListItems+         where+        parseJSON+          = withObject "ForwardingRuleAggregatedListItems"+              (\ o ->+                 ForwardingRuleAggregatedListItems <$>+                   (parseJSONObject o))++instance ToJSON ForwardingRuleAggregatedListItems+         where+        toJSON = toJSON . _fraliAddtional++-- | [Output Only] A map of scoped operation lists.+--+-- /See:/ 'operationAggregatedListItems' smart constructor.+newtype OperationAggregatedListItems = OperationAggregatedListItems+    { _oaliAddtional :: HashMap Text OperationsScopedList+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'OperationAggregatedListItems' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'oaliAddtional'+operationAggregatedListItems+    :: HashMap Text OperationsScopedList -- ^ 'oaliAddtional'+    -> OperationAggregatedListItems+operationAggregatedListItems pOaliAddtional_ =+    OperationAggregatedListItems+    { _oaliAddtional = _Coerce # pOaliAddtional_+    }++-- | [Output Only] Name of the scope containing this set of operations.+oaliAddtional :: Lens' OperationAggregatedListItems (HashMap Text OperationsScopedList)+oaliAddtional+  = lens _oaliAddtional+      (\ s a -> s{_oaliAddtional = a})+      . _Coerce++instance FromJSON OperationAggregatedListItems where+        parseJSON+          = withObject "OperationAggregatedListItems"+              (\ o ->+                 OperationAggregatedListItems <$> (parseJSONObject o))++instance ToJSON OperationAggregatedListItems where+        toJSON = toJSON . _oaliAddtional++--+-- /See:/ 'instanceGroupManagerActionsSummary' smart constructor.+data InstanceGroupManagerActionsSummary = InstanceGroupManagerActionsSummary+    { _igmasDeleting   :: !(Maybe (Textual Int32))+    , _igmasRestarting :: !(Maybe (Textual Int32))+    , _igmasNone       :: !(Maybe (Textual Int32))+    , _igmasCreating   :: !(Maybe (Textual Int32))+    , _igmasRefreshing :: !(Maybe (Textual Int32))+    , _igmasRecreating :: !(Maybe (Textual Int32))+    , _igmasAbandoning :: !(Maybe (Textual Int32))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstanceGroupManagerActionsSummary' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'igmasDeleting'+--+-- * 'igmasRestarting'+--+-- * 'igmasNone'+--+-- * 'igmasCreating'+--+-- * 'igmasRefreshing'+--+-- * 'igmasRecreating'+--+-- * 'igmasAbandoning'+instanceGroupManagerActionsSummary+    :: InstanceGroupManagerActionsSummary+instanceGroupManagerActionsSummary =+    InstanceGroupManagerActionsSummary+    { _igmasDeleting = Nothing+    , _igmasRestarting = Nothing+    , _igmasNone = Nothing+    , _igmasCreating = Nothing+    , _igmasRefreshing = Nothing+    , _igmasRecreating = Nothing+    , _igmasAbandoning = Nothing+    }++-- | [Output Only] The number of instances in the managed instance group that+-- are scheduled to be deleted or are currently being deleted.+igmasDeleting :: Lens' InstanceGroupManagerActionsSummary (Maybe Int32)+igmasDeleting+  = lens _igmasDeleting+      (\ s a -> s{_igmasDeleting = a})+      . mapping _Coerce++-- | [Output Only] The number of instances in the managed instance group that+-- are scheduled to be restarted or are currently being restarted.+igmasRestarting :: Lens' InstanceGroupManagerActionsSummary (Maybe Int32)+igmasRestarting+  = lens _igmasRestarting+      (\ s a -> s{_igmasRestarting = a})+      . mapping _Coerce++-- | [Output Only] The number of instances in the managed instance group that+-- are running and have no scheduled actions.+igmasNone :: Lens' InstanceGroupManagerActionsSummary (Maybe Int32)+igmasNone+  = lens _igmasNone (\ s a -> s{_igmasNone = a}) .+      mapping _Coerce++-- | [Output Only] The number of instances in the managed instance group that+-- are scheduled to be created or are currently being created.+igmasCreating :: Lens' InstanceGroupManagerActionsSummary (Maybe Int32)+igmasCreating+  = lens _igmasCreating+      (\ s a -> s{_igmasCreating = a})+      . mapping _Coerce++-- | [Output Only] The number of instances in the managed instance group that+-- are being reconfigured with properties that do not require a restart or+-- a recreate action. For example, setting or removing target pools for the+-- instance.+igmasRefreshing :: Lens' InstanceGroupManagerActionsSummary (Maybe Int32)+igmasRefreshing+  = lens _igmasRefreshing+      (\ s a -> s{_igmasRefreshing = a})+      . mapping _Coerce++-- | [Output Only] The number of instances in the managed instance group that+-- are scheduled to be recreated or are currently being being recreated.+-- Recreating an instance deletes the existing root persistent disk and+-- creates a new disk from the image that is defined in the instance+-- template.+igmasRecreating :: Lens' InstanceGroupManagerActionsSummary (Maybe Int32)+igmasRecreating+  = lens _igmasRecreating+      (\ s a -> s{_igmasRecreating = a})+      . mapping _Coerce++-- | [Output Only] The total number of instances in the managed instance+-- group that are scheduled to be abandoned. Abandoning an instance removes+-- it from the managed instance group without deleting it.+igmasAbandoning :: Lens' InstanceGroupManagerActionsSummary (Maybe Int32)+igmasAbandoning+  = lens _igmasAbandoning+      (\ s a -> s{_igmasAbandoning = a})+      . mapping _Coerce++instance FromJSON InstanceGroupManagerActionsSummary+         where+        parseJSON+          = withObject "InstanceGroupManagerActionsSummary"+              (\ o ->+                 InstanceGroupManagerActionsSummary <$>+                   (o .:? "deleting") <*> (o .:? "restarting") <*>+                     (o .:? "none")+                     <*> (o .:? "creating")+                     <*> (o .:? "refreshing")+                     <*> (o .:? "recreating")+                     <*> (o .:? "abandoning"))++instance ToJSON InstanceGroupManagerActionsSummary+         where+        toJSON InstanceGroupManagerActionsSummary{..}+          = object+              (catMaybes+                 [("deleting" .=) <$> _igmasDeleting,+                  ("restarting" .=) <$> _igmasRestarting,+                  ("none" .=) <$> _igmasNone,+                  ("creating" .=) <$> _igmasCreating,+                  ("refreshing" .=) <$> _igmasRefreshing,+                  ("recreating" .=) <$> _igmasRecreating,+                  ("abandoning" .=) <$> _igmasAbandoning])++-- | A service account.+--+-- /See:/ 'serviceAccount' smart constructor.+data ServiceAccount = ServiceAccount+    { _saEmail  :: !(Maybe Text)+    , _saScopes :: !(Maybe [Text])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ServiceAccount' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'saEmail'+--+-- * 'saScopes'+serviceAccount+    :: ServiceAccount+serviceAccount =+    ServiceAccount+    { _saEmail = Nothing+    , _saScopes = Nothing+    }++-- | Email address of the service account.+saEmail :: Lens' ServiceAccount (Maybe Text)+saEmail = lens _saEmail (\ s a -> s{_saEmail = a})++-- | The list of scopes to be made available for this service account.+saScopes :: Lens' ServiceAccount [Text]+saScopes+  = lens _saScopes (\ s a -> s{_saScopes = a}) .+      _Default+      . _Coerce++instance FromJSON ServiceAccount where+        parseJSON+          = withObject "ServiceAccount"+              (\ o ->+                 ServiceAccount <$>+                   (o .:? "email") <*> (o .:? "scopes" .!= mempty))++instance ToJSON ServiceAccount where+        toJSON ServiceAccount{..}+          = object+              (catMaybes+                 [("email" .=) <$> _saEmail,+                  ("scopes" .=) <$> _saScopes])++-- | Contains a list of Network resources.+--+-- /See:/ 'networkList' smart constructor.+data NetworkList = NetworkList+    { _nlNextPageToken :: !(Maybe Text)+    , _nlKind          :: !Text+    , _nlItems         :: !(Maybe [Network])+    , _nlSelfLink      :: !(Maybe Text)+    , _nlId            :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'NetworkList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'nlNextPageToken'+--+-- * 'nlKind'+--+-- * 'nlItems'+--+-- * 'nlSelfLink'+--+-- * 'nlId'+networkList+    :: NetworkList+networkList =+    NetworkList+    { _nlNextPageToken = Nothing+    , _nlKind = "compute#networkList"+    , _nlItems = Nothing+    , _nlSelfLink = Nothing+    , _nlId = Nothing+    }++-- | [Output Only] A token used to continue a truncated list request.+nlNextPageToken :: Lens' NetworkList (Maybe Text)+nlNextPageToken+  = lens _nlNextPageToken+      (\ s a -> s{_nlNextPageToken = a})++-- | [Output Only] Type of resource. Always compute#networkList for lists of+-- networks.+nlKind :: Lens' NetworkList Text+nlKind = lens _nlKind (\ s a -> s{_nlKind = a})++-- | [Output Only] A list of Network resources.+nlItems :: Lens' NetworkList [Network]+nlItems+  = lens _nlItems (\ s a -> s{_nlItems = a}) . _Default+      . _Coerce++-- | [Output Only] Server-defined URL for this resource .+nlSelfLink :: Lens' NetworkList (Maybe Text)+nlSelfLink+  = lens _nlSelfLink (\ s a -> s{_nlSelfLink = a})++-- | [Output Only] Unique identifier for the resource. Defined by the server.+nlId :: Lens' NetworkList (Maybe Text)+nlId = lens _nlId (\ s a -> s{_nlId = a})++instance FromJSON NetworkList where+        parseJSON+          = withObject "NetworkList"+              (\ o ->+                 NetworkList <$>+                   (o .:? "nextPageToken") <*>+                     (o .:? "kind" .!= "compute#networkList")+                     <*> (o .:? "items" .!= mempty)+                     <*> (o .:? "selfLink")+                     <*> (o .:? "id"))++instance ToJSON NetworkList where+        toJSON NetworkList{..}+          = object+              (catMaybes+                 [("nextPageToken" .=) <$> _nlNextPageToken,+                  Just ("kind" .= _nlKind), ("items" .=) <$> _nlItems,+                  ("selfLink" .=) <$> _nlSelfLink,+                  ("id" .=) <$> _nlId])++--+-- /See:/ 'instanceGroupsListInstancesRequest' smart constructor.+newtype InstanceGroupsListInstancesRequest = InstanceGroupsListInstancesRequest+    { _iglirInstanceState :: Maybe InstanceGroupsListInstancesRequestInstanceState+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstanceGroupsListInstancesRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'iglirInstanceState'+instanceGroupsListInstancesRequest+    :: InstanceGroupsListInstancesRequest+instanceGroupsListInstancesRequest =+    InstanceGroupsListInstancesRequest+    { _iglirInstanceState = Nothing+    }++-- | A filter for the state of the instances in the instance group. Valid+-- options are ALL or RUNNING. If you do not specify this parameter the+-- list includes all instances regardless of their state.+iglirInstanceState :: Lens' InstanceGroupsListInstancesRequest (Maybe InstanceGroupsListInstancesRequestInstanceState)+iglirInstanceState+  = lens _iglirInstanceState+      (\ s a -> s{_iglirInstanceState = a})++instance FromJSON InstanceGroupsListInstancesRequest+         where+        parseJSON+          = withObject "InstanceGroupsListInstancesRequest"+              (\ o ->+                 InstanceGroupsListInstancesRequest <$>+                   (o .:? "instanceState"))++instance ToJSON InstanceGroupsListInstancesRequest+         where+        toJSON InstanceGroupsListInstancesRequest{..}+          = object+              (catMaybes+                 [("instanceState" .=) <$> _iglirInstanceState])++-- | A map of scoped target pool lists.+--+-- /See:/ 'targetPoolAggregatedListItems' smart constructor.+newtype TargetPoolAggregatedListItems = TargetPoolAggregatedListItems+    { _tpaliAddtional :: HashMap Text TargetPoolsScopedList+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TargetPoolAggregatedListItems' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tpaliAddtional'+targetPoolAggregatedListItems+    :: HashMap Text TargetPoolsScopedList -- ^ 'tpaliAddtional'+    -> TargetPoolAggregatedListItems+targetPoolAggregatedListItems pTpaliAddtional_ =+    TargetPoolAggregatedListItems+    { _tpaliAddtional = _Coerce # pTpaliAddtional_+    }++-- | Name of the scope containing this set of target pools.+tpaliAddtional :: Lens' TargetPoolAggregatedListItems (HashMap Text TargetPoolsScopedList)+tpaliAddtional+  = lens _tpaliAddtional+      (\ s a -> s{_tpaliAddtional = a})+      . _Coerce++instance FromJSON TargetPoolAggregatedListItems where+        parseJSON+          = withObject "TargetPoolAggregatedListItems"+              (\ o ->+                 TargetPoolAggregatedListItems <$>+                   (parseJSONObject o))++instance ToJSON TargetPoolAggregatedListItems where+        toJSON = toJSON . _tpaliAddtional++--+-- /See:/ 'targetInstancesScopedList' smart constructor.+data TargetInstancesScopedList = TargetInstancesScopedList+    { _tislWarning         :: !(Maybe TargetInstancesScopedListWarning)+    , _tislTargetInstances :: !(Maybe [TargetInstance])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TargetInstancesScopedList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tislWarning'+--+-- * 'tislTargetInstances'+targetInstancesScopedList+    :: TargetInstancesScopedList+targetInstancesScopedList =+    TargetInstancesScopedList+    { _tislWarning = Nothing+    , _tislTargetInstances = Nothing+    }++-- | Informational warning which replaces the list of addresses when the list+-- is empty.+tislWarning :: Lens' TargetInstancesScopedList (Maybe TargetInstancesScopedListWarning)+tislWarning+  = lens _tislWarning (\ s a -> s{_tislWarning = a})++-- | List of target instances contained in this scope.+tislTargetInstances :: Lens' TargetInstancesScopedList [TargetInstance]+tislTargetInstances+  = lens _tislTargetInstances+      (\ s a -> s{_tislTargetInstances = a})+      . _Default+      . _Coerce++instance FromJSON TargetInstancesScopedList where+        parseJSON+          = withObject "TargetInstancesScopedList"+              (\ o ->+                 TargetInstancesScopedList <$>+                   (o .:? "warning") <*>+                     (o .:? "targetInstances" .!= mempty))++instance ToJSON TargetInstancesScopedList where+        toJSON TargetInstancesScopedList{..}+          = object+              (catMaybes+                 [("warning" .=) <$> _tislWarning,+                  ("targetInstances" .=) <$> _tislTargetInstances])++-- | [Output Only] A map of scoped address lists.+--+-- /See:/ 'addressAggregatedListItems' smart constructor.+newtype AddressAggregatedListItems = AddressAggregatedListItems+    { _aAddtional :: HashMap Text AddressesScopedList+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'AddressAggregatedListItems' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aAddtional'+addressAggregatedListItems+    :: HashMap Text AddressesScopedList -- ^ 'aAddtional'+    -> AddressAggregatedListItems+addressAggregatedListItems pAAddtional_ =+    AddressAggregatedListItems+    { _aAddtional = _Coerce # pAAddtional_+    }++-- | [Output Only] Name of the scope containing this set of addresses.+aAddtional :: Lens' AddressAggregatedListItems (HashMap Text AddressesScopedList)+aAddtional+  = lens _aAddtional (\ s a -> s{_aAddtional = a}) .+      _Coerce++instance FromJSON AddressAggregatedListItems where+        parseJSON+          = withObject "AddressAggregatedListItems"+              (\ o ->+                 AddressAggregatedListItems <$> (parseJSONObject o))++instance ToJSON AddressAggregatedListItems where+        toJSON = toJSON . _aAddtional++-- | Contains a list of persistent autoscaler resources.+--+-- /See:/ 'autoscalerList' smart constructor.+data AutoscalerList = AutoscalerList+    { _autNextPageToken :: !(Maybe Text)+    , _autKind          :: !Text+    , _autItems         :: !(Maybe [Autoscaler])+    , _autSelfLink      :: !(Maybe Text)+    , _autId            :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'AutoscalerList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'autNextPageToken'+--+-- * 'autKind'+--+-- * 'autItems'+--+-- * 'autSelfLink'+--+-- * 'autId'+autoscalerList+    :: AutoscalerList+autoscalerList =+    AutoscalerList+    { _autNextPageToken = Nothing+    , _autKind = "compute#autoscalerList"+    , _autItems = Nothing+    , _autSelfLink = Nothing+    , _autId = Nothing+    }++-- | [Output Only] A token used to continue a truncated list request.+autNextPageToken :: Lens' AutoscalerList (Maybe Text)+autNextPageToken+  = lens _autNextPageToken+      (\ s a -> s{_autNextPageToken = a})++-- | Type of resource.+autKind :: Lens' AutoscalerList Text+autKind = lens _autKind (\ s a -> s{_autKind = a})++-- | A list of Autoscaler resources.+autItems :: Lens' AutoscalerList [Autoscaler]+autItems+  = lens _autItems (\ s a -> s{_autItems = a}) .+      _Default+      . _Coerce++-- | [Output Only] Server-defined URL for this resource.+autSelfLink :: Lens' AutoscalerList (Maybe Text)+autSelfLink+  = lens _autSelfLink (\ s a -> s{_autSelfLink = a})++-- | [Output Only] Unique identifier for the resource; defined by the server.+autId :: Lens' AutoscalerList (Maybe Text)+autId = lens _autId (\ s a -> s{_autId = a})++instance FromJSON AutoscalerList where+        parseJSON+          = withObject "AutoscalerList"+              (\ o ->+                 AutoscalerList <$>+                   (o .:? "nextPageToken") <*>+                     (o .:? "kind" .!= "compute#autoscalerList")+                     <*> (o .:? "items" .!= mempty)+                     <*> (o .:? "selfLink")+                     <*> (o .:? "id"))++instance ToJSON AutoscalerList where+        toJSON AutoscalerList{..}+          = object+              (catMaybes+                 [("nextPageToken" .=) <$> _autNextPageToken,+                  Just ("kind" .= _autKind),+                  ("items" .=) <$> _autItems,+                  ("selfLink" .=) <$> _autSelfLink,+                  ("id" .=) <$> _autId])++--+-- /See:/ 'vpnTunnelAggregatedList' smart constructor.+data VPNTunnelAggregatedList = VPNTunnelAggregatedList+    { _vtalNextPageToken :: !(Maybe Text)+    , _vtalKind          :: !Text+    , _vtalItems         :: !(Maybe VPNTunnelAggregatedListItems)+    , _vtalSelfLink      :: !(Maybe Text)+    , _vtalId            :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'VPNTunnelAggregatedList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vtalNextPageToken'+--+-- * 'vtalKind'+--+-- * 'vtalItems'+--+-- * 'vtalSelfLink'+--+-- * 'vtalId'+vpnTunnelAggregatedList+    :: VPNTunnelAggregatedList+vpnTunnelAggregatedList =+    VPNTunnelAggregatedList+    { _vtalNextPageToken = Nothing+    , _vtalKind = "compute#vpnTunnelAggregatedList"+    , _vtalItems = Nothing+    , _vtalSelfLink = Nothing+    , _vtalId = Nothing+    }++-- | [Output Only] A token used to continue a truncated list request.+vtalNextPageToken :: Lens' VPNTunnelAggregatedList (Maybe Text)+vtalNextPageToken+  = lens _vtalNextPageToken+      (\ s a -> s{_vtalNextPageToken = a})++-- | [Output Only] Type of resource. Always compute#vpnTunnel for VPN+-- tunnels.+vtalKind :: Lens' VPNTunnelAggregatedList Text+vtalKind = lens _vtalKind (\ s a -> s{_vtalKind = a})++-- | [Output Only] A map of scoped vpn tunnel lists.+vtalItems :: Lens' VPNTunnelAggregatedList (Maybe VPNTunnelAggregatedListItems)+vtalItems+  = lens _vtalItems (\ s a -> s{_vtalItems = a})++-- | [Output Only] Server-defined URL for this resource.+vtalSelfLink :: Lens' VPNTunnelAggregatedList (Maybe Text)+vtalSelfLink+  = lens _vtalSelfLink (\ s a -> s{_vtalSelfLink = a})++-- | [Output Only] Unique identifier for the resource; defined by the server.+vtalId :: Lens' VPNTunnelAggregatedList (Maybe Text)+vtalId = lens _vtalId (\ s a -> s{_vtalId = a})++instance FromJSON VPNTunnelAggregatedList where+        parseJSON+          = withObject "VPNTunnelAggregatedList"+              (\ o ->+                 VPNTunnelAggregatedList <$>+                   (o .:? "nextPageToken") <*>+                     (o .:? "kind" .!= "compute#vpnTunnelAggregatedList")+                     <*> (o .:? "items")+                     <*> (o .:? "selfLink")+                     <*> (o .:? "id"))++instance ToJSON VPNTunnelAggregatedList where+        toJSON VPNTunnelAggregatedList{..}+          = object+              (catMaybes+                 [("nextPageToken" .=) <$> _vtalNextPageToken,+                  Just ("kind" .= _vtalKind),+                  ("items" .=) <$> _vtalItems,+                  ("selfLink" .=) <$> _vtalSelfLink,+                  ("id" .=) <$> _vtalId])++-- | An instance-attached disk resource.+--+-- /See:/ 'attachedDisk' smart constructor.+data AttachedDisk = AttachedDisk+    { _adKind             :: !Text+    , _adMode             :: !(Maybe AttachedDiskMode)+    , _adBoot             :: !(Maybe Bool)+    , _adAutoDelete       :: !(Maybe Bool)+    , _adInitializeParams :: !(Maybe AttachedDiskInitializeParams)+    , _adDeviceName       :: !(Maybe Text)+    , _adInterface        :: !(Maybe AttachedDiskInterface)+    , _adSource           :: !(Maybe Text)+    , _adLicenses         :: !(Maybe [Text])+    , _adType             :: !(Maybe AttachedDiskType)+    , _adIndex            :: !(Maybe (Textual Int32))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'AttachedDisk' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'adKind'+--+-- * 'adMode'+--+-- * 'adBoot'+--+-- * 'adAutoDelete'+--+-- * 'adInitializeParams'+--+-- * 'adDeviceName'+--+-- * 'adInterface'+--+-- * 'adSource'+--+-- * 'adLicenses'+--+-- * 'adType'+--+-- * 'adIndex'+attachedDisk+    :: AttachedDisk+attachedDisk =+    AttachedDisk+    { _adKind = "compute#attachedDisk"+    , _adMode = Nothing+    , _adBoot = Nothing+    , _adAutoDelete = Nothing+    , _adInitializeParams = Nothing+    , _adDeviceName = Nothing+    , _adInterface = Nothing+    , _adSource = Nothing+    , _adLicenses = Nothing+    , _adType = Nothing+    , _adIndex = Nothing+    }++-- | [Output Only] Type of the resource. Always compute#attachedDisk for+-- attached disks.+adKind :: Lens' AttachedDisk Text+adKind = lens _adKind (\ s a -> s{_adKind = a})++-- | The mode in which to attach this disk, either READ_WRITE or READ_ONLY.+-- If not specified, the default is to attach the disk in READ_WRITE mode.+adMode :: Lens' AttachedDisk (Maybe AttachedDiskMode)+adMode = lens _adMode (\ s a -> s{_adMode = a})++-- | Indicates that this is a boot disk. The virtual machine will use the+-- first partition of the disk for its root filesystem.+adBoot :: Lens' AttachedDisk (Maybe Bool)+adBoot = lens _adBoot (\ s a -> s{_adBoot = a})++-- | Specifies whether the disk will be auto-deleted when the instance is+-- deleted (but not when the disk is detached from the instance).+adAutoDelete :: Lens' AttachedDisk (Maybe Bool)+adAutoDelete+  = lens _adAutoDelete (\ s a -> s{_adAutoDelete = a})++-- | [Input Only] Specifies the parameters for a new disk that will be+-- created alongside the new instance. Use initialization parameters to+-- create boot disks or local SSDs attached to the new instance. This+-- property is mutually exclusive with the source property; you can only+-- define one or the other, but not both.+adInitializeParams :: Lens' AttachedDisk (Maybe AttachedDiskInitializeParams)+adInitializeParams+  = lens _adInitializeParams+      (\ s a -> s{_adInitializeParams = a})++-- | Specifies a unique device name of your choice that is reflected into the+-- \/dev\/disk\/by-id\/google-* tree of a Linux operating system running+-- within the instance. This name can be used to reference the device for+-- mounting, resizing, and so on, from within the instance. If not+-- specified, the server chooses a default device name to apply to this+-- disk, in the form persistent-disks-x, where x is a number assigned by+-- Google Compute Engine. This field is only applicable for persistent+-- disks.+adDeviceName :: Lens' AttachedDisk (Maybe Text)+adDeviceName+  = lens _adDeviceName (\ s a -> s{_adDeviceName = a})++-- | Specifies the disk interface to use for attaching this disk, either SCSI+-- or NVME. The default is SCSI. For performance characteristics of SCSI+-- over NVMe, see Local SSD performance.+adInterface :: Lens' AttachedDisk (Maybe AttachedDiskInterface)+adInterface+  = lens _adInterface (\ s a -> s{_adInterface = a})++-- | Specifies a valid partial or full URL to an existing Persistent Disk+-- resource. This field is only applicable for persistent disks.+adSource :: Lens' AttachedDisk (Maybe Text)+adSource = lens _adSource (\ s a -> s{_adSource = a})++-- | [Output Only] Any valid publicly visible licenses.+adLicenses :: Lens' AttachedDisk [Text]+adLicenses+  = lens _adLicenses (\ s a -> s{_adLicenses = a}) .+      _Default+      . _Coerce++-- | Specifies the type of the disk, either SCRATCH or PERSISTENT. If not+-- specified, the default is PERSISTENT.+adType :: Lens' AttachedDisk (Maybe AttachedDiskType)+adType = lens _adType (\ s a -> s{_adType = a})++-- | Assigns a zero-based index to this disk, where 0 is reserved for the+-- boot disk. For example, if you have many disks attached to an instance,+-- each disk would have a unique index number. If not specified, the server+-- will choose an appropriate value.+adIndex :: Lens' AttachedDisk (Maybe Int32)+adIndex+  = lens _adIndex (\ s a -> s{_adIndex = a}) .+      mapping _Coerce++instance FromJSON AttachedDisk where+        parseJSON+          = withObject "AttachedDisk"+              (\ o ->+                 AttachedDisk <$>+                   (o .:? "kind" .!= "compute#attachedDisk") <*>+                     (o .:? "mode")+                     <*> (o .:? "boot")+                     <*> (o .:? "autoDelete")+                     <*> (o .:? "initializeParams")+                     <*> (o .:? "deviceName")+                     <*> (o .:? "interface")+                     <*> (o .:? "source")+                     <*> (o .:? "licenses" .!= mempty)+                     <*> (o .:? "type")+                     <*> (o .:? "index"))++instance ToJSON AttachedDisk where+        toJSON AttachedDisk{..}+          = object+              (catMaybes+                 [Just ("kind" .= _adKind), ("mode" .=) <$> _adMode,+                  ("boot" .=) <$> _adBoot,+                  ("autoDelete" .=) <$> _adAutoDelete,+                  ("initializeParams" .=) <$> _adInitializeParams,+                  ("deviceName" .=) <$> _adDeviceName,+                  ("interface" .=) <$> _adInterface,+                  ("source" .=) <$> _adSource,+                  ("licenses" .=) <$> _adLicenses,+                  ("type" .=) <$> _adType, ("index" .=) <$> _adIndex])++-- | Contains a list of disk type resources.+--+-- /See:/ 'diskTypeList' smart constructor.+data DiskTypeList = DiskTypeList+    { _dtlNextPageToken :: !(Maybe Text)+    , _dtlKind          :: !Text+    , _dtlItems         :: !(Maybe [DiskType])+    , _dtlSelfLink      :: !(Maybe Text)+    , _dtlId            :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DiskTypeList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dtlNextPageToken'+--+-- * 'dtlKind'+--+-- * 'dtlItems'+--+-- * 'dtlSelfLink'+--+-- * 'dtlId'+diskTypeList+    :: DiskTypeList+diskTypeList =+    DiskTypeList+    { _dtlNextPageToken = Nothing+    , _dtlKind = "compute#diskTypeList"+    , _dtlItems = Nothing+    , _dtlSelfLink = Nothing+    , _dtlId = Nothing+    }++-- | [Output Only] A token used to continue a truncated list request.+dtlNextPageToken :: Lens' DiskTypeList (Maybe Text)+dtlNextPageToken+  = lens _dtlNextPageToken+      (\ s a -> s{_dtlNextPageToken = a})++-- | [Output Only] Type of resource. Always compute#diskTypeList for disk+-- types.+dtlKind :: Lens' DiskTypeList Text+dtlKind = lens _dtlKind (\ s a -> s{_dtlKind = a})++-- | [Output Only] A list of Disk Type resources.+dtlItems :: Lens' DiskTypeList [DiskType]+dtlItems+  = lens _dtlItems (\ s a -> s{_dtlItems = a}) .+      _Default+      . _Coerce++-- | [Output Only] Server-defined URL for this resource.+dtlSelfLink :: Lens' DiskTypeList (Maybe Text)+dtlSelfLink+  = lens _dtlSelfLink (\ s a -> s{_dtlSelfLink = a})++-- | [Output Only] Unique identifier for the resource; defined by the server.+dtlId :: Lens' DiskTypeList (Maybe Text)+dtlId = lens _dtlId (\ s a -> s{_dtlId = a})++instance FromJSON DiskTypeList where+        parseJSON+          = withObject "DiskTypeList"+              (\ o ->+                 DiskTypeList <$>+                   (o .:? "nextPageToken") <*>+                     (o .:? "kind" .!= "compute#diskTypeList")+                     <*> (o .:? "items" .!= mempty)+                     <*> (o .:? "selfLink")+                     <*> (o .:? "id"))++instance ToJSON DiskTypeList where+        toJSON DiskTypeList{..}+          = object+              (catMaybes+                 [("nextPageToken" .=) <$> _dtlNextPageToken,+                  Just ("kind" .= _dtlKind),+                  ("items" .=) <$> _dtlItems,+                  ("selfLink" .=) <$> _dtlSelfLink,+                  ("id" .=) <$> _dtlId])++-- | Contains a list of Machine Type resources.+--+-- /See:/ 'machineTypeList' smart constructor.+data MachineTypeList = MachineTypeList+    { _mtlNextPageToken :: !(Maybe Text)+    , _mtlKind          :: !Text+    , _mtlItems         :: !(Maybe [MachineType])+    , _mtlSelfLink      :: !(Maybe Text)+    , _mtlId            :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'MachineTypeList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mtlNextPageToken'+--+-- * 'mtlKind'+--+-- * 'mtlItems'+--+-- * 'mtlSelfLink'+--+-- * 'mtlId'+machineTypeList+    :: MachineTypeList+machineTypeList =+    MachineTypeList+    { _mtlNextPageToken = Nothing+    , _mtlKind = "compute#machineTypeList"+    , _mtlItems = Nothing+    , _mtlSelfLink = Nothing+    , _mtlId = Nothing+    }++-- | [Output Only] A token used to continue a truncated list request.+mtlNextPageToken :: Lens' MachineTypeList (Maybe Text)+mtlNextPageToken+  = lens _mtlNextPageToken+      (\ s a -> s{_mtlNextPageToken = a})++-- | [Output Only] Type of resource. Always compute#machineTypeList for lists+-- of machine types.+mtlKind :: Lens' MachineTypeList Text+mtlKind = lens _mtlKind (\ s a -> s{_mtlKind = a})++-- | [Output Only] A list of Machine Type resources.+mtlItems :: Lens' MachineTypeList [MachineType]+mtlItems+  = lens _mtlItems (\ s a -> s{_mtlItems = a}) .+      _Default+      . _Coerce++-- | [Output Only] Server-defined URL for this resource.+mtlSelfLink :: Lens' MachineTypeList (Maybe Text)+mtlSelfLink+  = lens _mtlSelfLink (\ s a -> s{_mtlSelfLink = a})++-- | [Output Only] Unique identifier for the resource; defined by the server.+mtlId :: Lens' MachineTypeList (Maybe Text)+mtlId = lens _mtlId (\ s a -> s{_mtlId = a})++instance FromJSON MachineTypeList where+        parseJSON+          = withObject "MachineTypeList"+              (\ o ->+                 MachineTypeList <$>+                   (o .:? "nextPageToken") <*>+                     (o .:? "kind" .!= "compute#machineTypeList")+                     <*> (o .:? "items" .!= mempty)+                     <*> (o .:? "selfLink")+                     <*> (o .:? "id"))++instance ToJSON MachineTypeList where+        toJSON MachineTypeList{..}+          = object+              (catMaybes+                 [("nextPageToken" .=) <$> _mtlNextPageToken,+                  Just ("kind" .= _mtlKind),+                  ("items" .=) <$> _mtlItems,+                  ("selfLink" .=) <$> _mtlSelfLink,+                  ("id" .=) <$> _mtlId])++-- | A list of TargetHttpProxy resources.+--+-- /See:/ 'targetHTTPProxyList' smart constructor.+data TargetHTTPProxyList = TargetHTTPProxyList+    { _thttpplNextPageToken :: !(Maybe Text)+    , _thttpplKind          :: !Text+    , _thttpplItems         :: !(Maybe [TargetHTTPProxy])+    , _thttpplSelfLink      :: !(Maybe Text)+    , _thttpplId            :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TargetHTTPProxyList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'thttpplNextPageToken'+--+-- * 'thttpplKind'+--+-- * 'thttpplItems'+--+-- * 'thttpplSelfLink'+--+-- * 'thttpplId'+targetHTTPProxyList+    :: TargetHTTPProxyList+targetHTTPProxyList =+    TargetHTTPProxyList+    { _thttpplNextPageToken = Nothing+    , _thttpplKind = "compute#targetHttpProxyList"+    , _thttpplItems = Nothing+    , _thttpplSelfLink = Nothing+    , _thttpplId = Nothing+    }++-- | [Output Only] A token used to continue a truncated list request.+thttpplNextPageToken :: Lens' TargetHTTPProxyList (Maybe Text)+thttpplNextPageToken+  = lens _thttpplNextPageToken+      (\ s a -> s{_thttpplNextPageToken = a})++-- | Type of resource. Always compute#targetHttpProxyList for lists of Target+-- HTTP proxies.+thttpplKind :: Lens' TargetHTTPProxyList Text+thttpplKind+  = lens _thttpplKind (\ s a -> s{_thttpplKind = a})++-- | A list of TargetHttpProxy resources.+thttpplItems :: Lens' TargetHTTPProxyList [TargetHTTPProxy]+thttpplItems+  = lens _thttpplItems (\ s a -> s{_thttpplItems = a})+      . _Default+      . _Coerce++-- | [Output Only] Server-defined URL for this resource.+thttpplSelfLink :: Lens' TargetHTTPProxyList (Maybe Text)+thttpplSelfLink+  = lens _thttpplSelfLink+      (\ s a -> s{_thttpplSelfLink = a})++-- | [Output Only] Unique identifier for the resource; defined by the server.+thttpplId :: Lens' TargetHTTPProxyList (Maybe Text)+thttpplId+  = lens _thttpplId (\ s a -> s{_thttpplId = a})++instance FromJSON TargetHTTPProxyList where+        parseJSON+          = withObject "TargetHTTPProxyList"+              (\ o ->+                 TargetHTTPProxyList <$>+                   (o .:? "nextPageToken") <*>+                     (o .:? "kind" .!= "compute#targetHttpProxyList")+                     <*> (o .:? "items" .!= mempty)+                     <*> (o .:? "selfLink")+                     <*> (o .:? "id"))++instance ToJSON TargetHTTPProxyList where+        toJSON TargetHTTPProxyList{..}+          = object+              (catMaybes+                 [("nextPageToken" .=) <$> _thttpplNextPageToken,+                  Just ("kind" .= _thttpplKind),+                  ("items" .=) <$> _thttpplItems,+                  ("selfLink" .=) <$> _thttpplSelfLink,+                  ("id" .=) <$> _thttpplId])++--+-- /See:/ 'diskTypesScopedList' smart constructor.+data DiskTypesScopedList = DiskTypesScopedList+    { _dtslDiskTypes :: !(Maybe [DiskType])+    , _dtslWarning   :: !(Maybe DiskTypesScopedListWarning)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DiskTypesScopedList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dtslDiskTypes'+--+-- * 'dtslWarning'+diskTypesScopedList+    :: DiskTypesScopedList+diskTypesScopedList =+    DiskTypesScopedList+    { _dtslDiskTypes = Nothing+    , _dtslWarning = Nothing+    }++-- | [Output Only] List of disk types contained in this scope.+dtslDiskTypes :: Lens' DiskTypesScopedList [DiskType]+dtslDiskTypes+  = lens _dtslDiskTypes+      (\ s a -> s{_dtslDiskTypes = a})+      . _Default+      . _Coerce++-- | [Output Only] Informational warning which replaces the list of disk+-- types when the list is empty.+dtslWarning :: Lens' DiskTypesScopedList (Maybe DiskTypesScopedListWarning)+dtslWarning+  = lens _dtslWarning (\ s a -> s{_dtslWarning = a})++instance FromJSON DiskTypesScopedList where+        parseJSON+          = withObject "DiskTypesScopedList"+              (\ o ->+                 DiskTypesScopedList <$>+                   (o .:? "diskTypes" .!= mempty) <*> (o .:? "warning"))++instance ToJSON DiskTypesScopedList where+        toJSON DiskTypesScopedList{..}+          = object+              (catMaybes+                 [("diskTypes" .=) <$> _dtslDiskTypes,+                  ("warning" .=) <$> _dtslWarning])++--+-- /See:/ 'diskTypeAggregatedList' smart constructor.+data DiskTypeAggregatedList = DiskTypeAggregatedList+    { _dtalNextPageToken :: !(Maybe Text)+    , _dtalKind          :: !Text+    , _dtalItems         :: !(Maybe DiskTypeAggregatedListItems)+    , _dtalSelfLink      :: !(Maybe Text)+    , _dtalId            :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DiskTypeAggregatedList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dtalNextPageToken'+--+-- * 'dtalKind'+--+-- * 'dtalItems'+--+-- * 'dtalSelfLink'+--+-- * 'dtalId'+diskTypeAggregatedList+    :: DiskTypeAggregatedList+diskTypeAggregatedList =+    DiskTypeAggregatedList+    { _dtalNextPageToken = Nothing+    , _dtalKind = "compute#diskTypeAggregatedList"+    , _dtalItems = Nothing+    , _dtalSelfLink = Nothing+    , _dtalId = Nothing+    }++-- | [Output Only] A token used to continue a truncated list request.+dtalNextPageToken :: Lens' DiskTypeAggregatedList (Maybe Text)+dtalNextPageToken+  = lens _dtalNextPageToken+      (\ s a -> s{_dtalNextPageToken = a})++-- | [Output Only] Type of resource. Always compute#diskTypeAggregatedList.+dtalKind :: Lens' DiskTypeAggregatedList Text+dtalKind = lens _dtalKind (\ s a -> s{_dtalKind = a})++-- | [Output Only] A map of scoped disk type lists.+dtalItems :: Lens' DiskTypeAggregatedList (Maybe DiskTypeAggregatedListItems)+dtalItems+  = lens _dtalItems (\ s a -> s{_dtalItems = a})++-- | [Output Only] Server-defined URL for this resource.+dtalSelfLink :: Lens' DiskTypeAggregatedList (Maybe Text)+dtalSelfLink+  = lens _dtalSelfLink (\ s a -> s{_dtalSelfLink = a})++-- | [Output Only] Unique identifier for the resource; defined by the server.+dtalId :: Lens' DiskTypeAggregatedList (Maybe Text)+dtalId = lens _dtalId (\ s a -> s{_dtalId = a})++instance FromJSON DiskTypeAggregatedList where+        parseJSON+          = withObject "DiskTypeAggregatedList"+              (\ o ->+                 DiskTypeAggregatedList <$>+                   (o .:? "nextPageToken") <*>+                     (o .:? "kind" .!= "compute#diskTypeAggregatedList")+                     <*> (o .:? "items")+                     <*> (o .:? "selfLink")+                     <*> (o .:? "id"))++instance ToJSON DiskTypeAggregatedList where+        toJSON DiskTypeAggregatedList{..}+          = object+              (catMaybes+                 [("nextPageToken" .=) <$> _dtalNextPageToken,+                  Just ("kind" .= _dtalKind),+                  ("items" .=) <$> _dtalItems,+                  ("selfLink" .=) <$> _dtalSelfLink,+                  ("id" .=) <$> _dtalId])++-- | An HttpHealthCheck resource. This resource defines a template for how+-- individual instances should be checked for health, via HTTP.+--+-- /See:/ 'hTTPHealthCheck' smart constructor.+data HTTPHealthCheck = HTTPHealthCheck+    { _httphcHealthyThreshold   :: !(Maybe (Textual Int32))+    , _httphcKind               :: !Text+    , _httphcRequestPath        :: !(Maybe Text)+    , _httphcSelfLink           :: !(Maybe Text)+    , _httphcCheckIntervalSec   :: !(Maybe (Textual Int32))+    , _httphcName               :: !(Maybe Text)+    , _httphcCreationTimestamp  :: !(Maybe Text)+    , _httphcId                 :: !(Maybe (Textual Word64))+    , _httphcHost               :: !(Maybe Text)+    , _httphcTimeoutSec         :: !(Maybe (Textual Int32))+    , _httphcDescription        :: !(Maybe Text)+    , _httphcUnhealthyThreshold :: !(Maybe (Textual Int32))+    , _httphcPort               :: !(Maybe (Textual Int32))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'HTTPHealthCheck' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'httphcHealthyThreshold'+--+-- * 'httphcKind'+--+-- * 'httphcRequestPath'+--+-- * 'httphcSelfLink'+--+-- * 'httphcCheckIntervalSec'+--+-- * 'httphcName'+--+-- * 'httphcCreationTimestamp'+--+-- * 'httphcId'+--+-- * 'httphcHost'+--+-- * 'httphcTimeoutSec'+--+-- * 'httphcDescription'+--+-- * 'httphcUnhealthyThreshold'+--+-- * 'httphcPort'+hTTPHealthCheck+    :: HTTPHealthCheck+hTTPHealthCheck =+    HTTPHealthCheck+    { _httphcHealthyThreshold = Nothing+    , _httphcKind = "compute#httpHealthCheck"+    , _httphcRequestPath = Nothing+    , _httphcSelfLink = Nothing+    , _httphcCheckIntervalSec = Nothing+    , _httphcName = Nothing+    , _httphcCreationTimestamp = Nothing+    , _httphcId = Nothing+    , _httphcHost = Nothing+    , _httphcTimeoutSec = Nothing+    , _httphcDescription = Nothing+    , _httphcUnhealthyThreshold = Nothing+    , _httphcPort = Nothing+    }++-- | A so-far unhealthy instance will be marked healthy after this many+-- consecutive successes. The default value is 2.+httphcHealthyThreshold :: Lens' HTTPHealthCheck (Maybe Int32)+httphcHealthyThreshold+  = lens _httphcHealthyThreshold+      (\ s a -> s{_httphcHealthyThreshold = a})+      . mapping _Coerce++-- | Type of the resource.+httphcKind :: Lens' HTTPHealthCheck Text+httphcKind+  = lens _httphcKind (\ s a -> s{_httphcKind = a})++-- | The request path of the HTTP health check request. The default value is+-- \"\/\".+httphcRequestPath :: Lens' HTTPHealthCheck (Maybe Text)+httphcRequestPath+  = lens _httphcRequestPath+      (\ s a -> s{_httphcRequestPath = a})++-- | [Output Only] Server-defined URL for the resource.+httphcSelfLink :: Lens' HTTPHealthCheck (Maybe Text)+httphcSelfLink+  = lens _httphcSelfLink+      (\ s a -> s{_httphcSelfLink = a})++-- | How often (in seconds) to send a health check. The default value is 5+-- seconds.+httphcCheckIntervalSec :: Lens' HTTPHealthCheck (Maybe Int32)+httphcCheckIntervalSec+  = lens _httphcCheckIntervalSec+      (\ s a -> s{_httphcCheckIntervalSec = a})+      . mapping _Coerce++-- | Name of the resource. Provided by the client when the resource is+-- created. The name must be 1-63 characters long, and comply with RFC1035.+-- Specifically, the name must be 1-63 characters long and match the+-- regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first+-- character must be a lowercase letter, and all following characters must+-- be a dash, lowercase letter, or digit, except the last character, which+-- cannot be a dash.+httphcName :: Lens' HTTPHealthCheck (Maybe Text)+httphcName+  = lens _httphcName (\ s a -> s{_httphcName = a})++-- | [Output Only] Creation timestamp in RFC3339 text format.+httphcCreationTimestamp :: Lens' HTTPHealthCheck (Maybe Text)+httphcCreationTimestamp+  = lens _httphcCreationTimestamp+      (\ s a -> s{_httphcCreationTimestamp = a})++-- | [Output Only] Unique identifier for the resource. Defined by the server.+httphcId :: Lens' HTTPHealthCheck (Maybe Word64)+httphcId+  = lens _httphcId (\ s a -> s{_httphcId = a}) .+      mapping _Coerce++-- | The value of the host header in the HTTP health check request. If left+-- empty (default value), the public IP on behalf of which this health+-- check is performed will be used.+httphcHost :: Lens' HTTPHealthCheck (Maybe Text)+httphcHost+  = lens _httphcHost (\ s a -> s{_httphcHost = a})++-- | How long (in seconds) to wait before claiming failure. The default value+-- is 5 seconds. It is invalid for timeoutSec to have greater value than+-- checkIntervalSec.+httphcTimeoutSec :: Lens' HTTPHealthCheck (Maybe Int32)+httphcTimeoutSec+  = lens _httphcTimeoutSec+      (\ s a -> s{_httphcTimeoutSec = a})+      . mapping _Coerce++-- | An optional textual description of the resource; provided by the client+-- when the resource is created.+httphcDescription :: Lens' HTTPHealthCheck (Maybe Text)+httphcDescription+  = lens _httphcDescription+      (\ s a -> s{_httphcDescription = a})++-- | A so-far healthy instance will be marked unhealthy after this many+-- consecutive failures. The default value is 2.+httphcUnhealthyThreshold :: Lens' HTTPHealthCheck (Maybe Int32)+httphcUnhealthyThreshold+  = lens _httphcUnhealthyThreshold+      (\ s a -> s{_httphcUnhealthyThreshold = a})+      . mapping _Coerce++-- | The TCP port number for the HTTP health check request. The default value+-- is 80.+httphcPort :: Lens' HTTPHealthCheck (Maybe Int32)+httphcPort+  = lens _httphcPort (\ s a -> s{_httphcPort = a}) .+      mapping _Coerce++instance FromJSON HTTPHealthCheck where+        parseJSON+          = withObject "HTTPHealthCheck"+              (\ o ->+                 HTTPHealthCheck <$>+                   (o .:? "healthyThreshold") <*>+                     (o .:? "kind" .!= "compute#httpHealthCheck")+                     <*> (o .:? "requestPath")+                     <*> (o .:? "selfLink")+                     <*> (o .:? "checkIntervalSec")+                     <*> (o .:? "name")+                     <*> (o .:? "creationTimestamp")+                     <*> (o .:? "id")+                     <*> (o .:? "host")+                     <*> (o .:? "timeoutSec")+                     <*> (o .:? "description")+                     <*> (o .:? "unhealthyThreshold")+                     <*> (o .:? "port"))++instance ToJSON HTTPHealthCheck where+        toJSON HTTPHealthCheck{..}+          = object+              (catMaybes+                 [("healthyThreshold" .=) <$> _httphcHealthyThreshold,+                  Just ("kind" .= _httphcKind),+                  ("requestPath" .=) <$> _httphcRequestPath,+                  ("selfLink" .=) <$> _httphcSelfLink,+                  ("checkIntervalSec" .=) <$> _httphcCheckIntervalSec,+                  ("name" .=) <$> _httphcName,+                  ("creationTimestamp" .=) <$>+                    _httphcCreationTimestamp,+                  ("id" .=) <$> _httphcId, ("host" .=) <$> _httphcHost,+                  ("timeoutSec" .=) <$> _httphcTimeoutSec,+                  ("description" .=) <$> _httphcDescription,+                  ("unhealthyThreshold" .=) <$>+                    _httphcUnhealthyThreshold,+                  ("port" .=) <$> _httphcPort])++--+-- /See:/ 'backendServiceGroupHealth' smart constructor.+data BackendServiceGroupHealth = BackendServiceGroupHealth+    { _bsghKind         :: !Text+    , _bsghHealthStatus :: !(Maybe [HealthStatus])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'BackendServiceGroupHealth' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'bsghKind'+--+-- * 'bsghHealthStatus'+backendServiceGroupHealth+    :: BackendServiceGroupHealth+backendServiceGroupHealth =+    BackendServiceGroupHealth+    { _bsghKind = "compute#backendServiceGroupHealth"+    , _bsghHealthStatus = Nothing+    }++-- | [Output Only] Type of resource. Always compute#backendServiceGroupHealth+-- for the health of backend services.+bsghKind :: Lens' BackendServiceGroupHealth Text+bsghKind = lens _bsghKind (\ s a -> s{_bsghKind = a})++bsghHealthStatus :: Lens' BackendServiceGroupHealth [HealthStatus]+bsghHealthStatus+  = lens _bsghHealthStatus+      (\ s a -> s{_bsghHealthStatus = a})+      . _Default+      . _Coerce++instance FromJSON BackendServiceGroupHealth where+        parseJSON+          = withObject "BackendServiceGroupHealth"+              (\ o ->+                 BackendServiceGroupHealth <$>+                   (o .:? "kind" .!=+                      "compute#backendServiceGroupHealth")+                     <*> (o .:? "healthStatus" .!= mempty))++instance ToJSON BackendServiceGroupHealth where+        toJSON BackendServiceGroupHealth{..}+          = object+              (catMaybes+                 [Just ("kind" .= _bsghKind),+                  ("healthStatus" .=) <$> _bsghHealthStatus])++--+-- /See:/ 'autoscalersScopedList' smart constructor.+data AutoscalersScopedList = AutoscalersScopedList+    { _aAutoscalers :: !(Maybe [Autoscaler])+    , _aWarning     :: !(Maybe AutoscalersScopedListWarning)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'AutoscalersScopedList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aAutoscalers'+--+-- * 'aWarning'+autoscalersScopedList+    :: AutoscalersScopedList+autoscalersScopedList =+    AutoscalersScopedList+    { _aAutoscalers = Nothing+    , _aWarning = Nothing+    }++-- | List of autoscalers contained in this scope.+aAutoscalers :: Lens' AutoscalersScopedList [Autoscaler]+aAutoscalers+  = lens _aAutoscalers (\ s a -> s{_aAutoscalers = a})+      . _Default+      . _Coerce++-- | Informational warning which replaces the list of autoscalers when the+-- list is empty.+aWarning :: Lens' AutoscalersScopedList (Maybe AutoscalersScopedListWarning)+aWarning = lens _aWarning (\ s a -> s{_aWarning = a})++instance FromJSON AutoscalersScopedList where+        parseJSON+          = withObject "AutoscalersScopedList"+              (\ o ->+                 AutoscalersScopedList <$>+                   (o .:? "autoscalers" .!= mempty) <*>+                     (o .:? "warning"))++instance ToJSON AutoscalersScopedList where+        toJSON AutoscalersScopedList{..}+          = object+              (catMaybes+                 [("autoscalers" .=) <$> _aAutoscalers,+                  ("warning" .=) <$> _aWarning])++--+-- /See:/ 'autoscalerAggregatedList' smart constructor.+data AutoscalerAggregatedList = AutoscalerAggregatedList+    { _aalNextPageToken :: !(Maybe Text)+    , _aalKind          :: !Text+    , _aalItems         :: !(Maybe AutoscalerAggregatedListItems)+    , _aalSelfLink      :: !(Maybe Text)+    , _aalId            :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'AutoscalerAggregatedList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aalNextPageToken'+--+-- * 'aalKind'+--+-- * 'aalItems'+--+-- * 'aalSelfLink'+--+-- * 'aalId'+autoscalerAggregatedList+    :: AutoscalerAggregatedList+autoscalerAggregatedList =+    AutoscalerAggregatedList+    { _aalNextPageToken = Nothing+    , _aalKind = "compute#autoscalerAggregatedList"+    , _aalItems = Nothing+    , _aalSelfLink = Nothing+    , _aalId = Nothing+    }++-- | [Output Only] A token used to continue a truncated list request.+aalNextPageToken :: Lens' AutoscalerAggregatedList (Maybe Text)+aalNextPageToken+  = lens _aalNextPageToken+      (\ s a -> s{_aalNextPageToken = a})++-- | Type of resource.+aalKind :: Lens' AutoscalerAggregatedList Text+aalKind = lens _aalKind (\ s a -> s{_aalKind = a})++-- | A map of scoped autoscaler lists.+aalItems :: Lens' AutoscalerAggregatedList (Maybe AutoscalerAggregatedListItems)+aalItems = lens _aalItems (\ s a -> s{_aalItems = a})++-- | [Output Only] Server-defined URL for this resource.+aalSelfLink :: Lens' AutoscalerAggregatedList (Maybe Text)+aalSelfLink+  = lens _aalSelfLink (\ s a -> s{_aalSelfLink = a})++-- | [Output Only] Unique identifier for the resource; defined by the server.+aalId :: Lens' AutoscalerAggregatedList (Maybe Text)+aalId = lens _aalId (\ s a -> s{_aalId = a})++instance FromJSON AutoscalerAggregatedList where+        parseJSON+          = withObject "AutoscalerAggregatedList"+              (\ o ->+                 AutoscalerAggregatedList <$>+                   (o .:? "nextPageToken") <*>+                     (o .:? "kind" .!= "compute#autoscalerAggregatedList")+                     <*> (o .:? "items")+                     <*> (o .:? "selfLink")+                     <*> (o .:? "id"))++instance ToJSON AutoscalerAggregatedList where+        toJSON AutoscalerAggregatedList{..}+          = object+              (catMaybes+                 [("nextPageToken" .=) <$> _aalNextPageToken,+                  Just ("kind" .= _aalKind),+                  ("items" .=) <$> _aalItems,+                  ("selfLink" .=) <$> _aalSelfLink,+                  ("id" .=) <$> _aalId])++-- | Cloud Autoscaler policy.+--+-- /See:/ 'autoscalingPolicy' smart constructor.+data AutoscalingPolicy = AutoscalingPolicy+    { _apCustomMetricUtilizations :: !(Maybe [AutoscalingPolicyCustomMetricUtilization])+    , _apMaxNumReplicas           :: !(Maybe (Textual Int32))+    , _apCPUUtilization           :: !(Maybe AutoscalingPolicyCPUUtilization)+    , _apLoadBalancingUtilization :: !(Maybe AutoscalingPolicyLoadBalancingUtilization)+    , _apMinNumReplicas           :: !(Maybe (Textual Int32))+    , _apCoolDownPeriodSec        :: !(Maybe (Textual Int32))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'AutoscalingPolicy' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'apCustomMetricUtilizations'+--+-- * 'apMaxNumReplicas'+--+-- * 'apCPUUtilization'+--+-- * 'apLoadBalancingUtilization'+--+-- * 'apMinNumReplicas'+--+-- * 'apCoolDownPeriodSec'+autoscalingPolicy+    :: AutoscalingPolicy+autoscalingPolicy =+    AutoscalingPolicy+    { _apCustomMetricUtilizations = Nothing+    , _apMaxNumReplicas = Nothing+    , _apCPUUtilization = Nothing+    , _apLoadBalancingUtilization = Nothing+    , _apMinNumReplicas = Nothing+    , _apCoolDownPeriodSec = Nothing+    }++-- | Configuration parameters of autoscaling based on custom metric.+apCustomMetricUtilizations :: Lens' AutoscalingPolicy [AutoscalingPolicyCustomMetricUtilization]+apCustomMetricUtilizations+  = lens _apCustomMetricUtilizations+      (\ s a -> s{_apCustomMetricUtilizations = a})+      . _Default+      . _Coerce++-- | The maximum number of replicas that the Autoscaler can scale up to. This+-- field is required for config to be effective. Maximum number of replicas+-- should be not lower than minimal number of replicas. Absolute limit for+-- this value is defined in Autoscaler backend.+apMaxNumReplicas :: Lens' AutoscalingPolicy (Maybe Int32)+apMaxNumReplicas+  = lens _apMaxNumReplicas+      (\ s a -> s{_apMaxNumReplicas = a})+      . mapping _Coerce++-- | TODO(jbartosik): Add support for scaling based on muliple utilization+-- metrics (take max recommendation). Exactly one utilization policy should+-- be provided. Configuration parameters of CPU based autoscaling policy.+apCPUUtilization :: Lens' AutoscalingPolicy (Maybe AutoscalingPolicyCPUUtilization)+apCPUUtilization+  = lens _apCPUUtilization+      (\ s a -> s{_apCPUUtilization = a})++-- | Configuration parameters of autoscaling based on load balancer.+apLoadBalancingUtilization :: Lens' AutoscalingPolicy (Maybe AutoscalingPolicyLoadBalancingUtilization)+apLoadBalancingUtilization+  = lens _apLoadBalancingUtilization+      (\ s a -> s{_apLoadBalancingUtilization = a})++-- | The minimum number of replicas that the Autoscaler can scale down to.+-- Can\'t be less than 0. If not provided Autoscaler will choose default+-- value depending on maximal number of replicas.+apMinNumReplicas :: Lens' AutoscalingPolicy (Maybe Int32)+apMinNumReplicas+  = lens _apMinNumReplicas+      (\ s a -> s{_apMinNumReplicas = a})+      . mapping _Coerce++-- | The number of seconds that the Autoscaler should wait between two+-- succeeding changes to the number of virtual machines. You should define+-- an interval that is at least as long as the initialization time of a+-- virtual machine and the time it may take for replica pool to create the+-- virtual machine. The default is 60 seconds.+apCoolDownPeriodSec :: Lens' AutoscalingPolicy (Maybe Int32)+apCoolDownPeriodSec+  = lens _apCoolDownPeriodSec+      (\ s a -> s{_apCoolDownPeriodSec = a})+      . mapping _Coerce++instance FromJSON AutoscalingPolicy where+        parseJSON+          = withObject "AutoscalingPolicy"+              (\ o ->+                 AutoscalingPolicy <$>+                   (o .:? "customMetricUtilizations" .!= mempty) <*>+                     (o .:? "maxNumReplicas")+                     <*> (o .:? "cpuUtilization")+                     <*> (o .:? "loadBalancingUtilization")+                     <*> (o .:? "minNumReplicas")+                     <*> (o .:? "coolDownPeriodSec"))++instance ToJSON AutoscalingPolicy where+        toJSON AutoscalingPolicy{..}+          = object+              (catMaybes+                 [("customMetricUtilizations" .=) <$>+                    _apCustomMetricUtilizations,+                  ("maxNumReplicas" .=) <$> _apMaxNumReplicas,+                  ("cpuUtilization" .=) <$> _apCPUUtilization,+                  ("loadBalancingUtilization" .=) <$>+                    _apLoadBalancingUtilization,+                  ("minNumReplicas" .=) <$> _apMinNumReplicas,+                  ("coolDownPeriodSec" .=) <$> _apCoolDownPeriodSec])++-- | Contains a list of region resources.+--+-- /See:/ 'regionList' smart constructor.+data RegionList = RegionList+    { _regNextPageToken :: !(Maybe Text)+    , _regKind          :: !Text+    , _regItems         :: !(Maybe [Region])+    , _regSelfLink      :: !(Maybe Text)+    , _regId            :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'RegionList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'regNextPageToken'+--+-- * 'regKind'+--+-- * 'regItems'+--+-- * 'regSelfLink'+--+-- * 'regId'+regionList+    :: RegionList+regionList =+    RegionList+    { _regNextPageToken = Nothing+    , _regKind = "compute#regionList"+    , _regItems = Nothing+    , _regSelfLink = Nothing+    , _regId = Nothing+    }++-- | [Output Only] A token used to continue a truncated list request.+regNextPageToken :: Lens' RegionList (Maybe Text)+regNextPageToken+  = lens _regNextPageToken+      (\ s a -> s{_regNextPageToken = a})++-- | [Output Only] Type of resource. Always compute#regionList for lists of+-- regions.+regKind :: Lens' RegionList Text+regKind = lens _regKind (\ s a -> s{_regKind = a})++-- | [Output Only] A list of Region resources.+regItems :: Lens' RegionList [Region]+regItems+  = lens _regItems (\ s a -> s{_regItems = a}) .+      _Default+      . _Coerce++-- | [Output Only] Server-defined URL for this resource.+regSelfLink :: Lens' RegionList (Maybe Text)+regSelfLink+  = lens _regSelfLink (\ s a -> s{_regSelfLink = a})++-- | [Output Only] Unique identifier for the resource; defined by the server.+regId :: Lens' RegionList (Maybe Text)+regId = lens _regId (\ s a -> s{_regId = a})++instance FromJSON RegionList where+        parseJSON+          = withObject "RegionList"+              (\ o ->+                 RegionList <$>+                   (o .:? "nextPageToken") <*>+                     (o .:? "kind" .!= "compute#regionList")+                     <*> (o .:? "items" .!= mempty)+                     <*> (o .:? "selfLink")+                     <*> (o .:? "id"))++instance ToJSON RegionList where+        toJSON RegionList{..}+          = object+              (catMaybes+                 [("nextPageToken" .=) <$> _regNextPageToken,+                  Just ("kind" .= _regKind),+                  ("items" .=) <$> _regItems,+                  ("selfLink" .=) <$> _regSelfLink,+                  ("id" .=) <$> _regId])++-- | Contains a list of VpnTunnel resources.+--+-- /See:/ 'vpnTunnelList' smart constructor.+data VPNTunnelList = VPNTunnelList+    { _vtlNextPageToken :: !(Maybe Text)+    , _vtlKind          :: !Text+    , _vtlItems         :: !(Maybe [VPNTunnel])+    , _vtlSelfLink      :: !(Maybe Text)+    , _vtlId            :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'VPNTunnelList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vtlNextPageToken'+--+-- * 'vtlKind'+--+-- * 'vtlItems'+--+-- * 'vtlSelfLink'+--+-- * 'vtlId'+vpnTunnelList+    :: VPNTunnelList+vpnTunnelList =+    VPNTunnelList+    { _vtlNextPageToken = Nothing+    , _vtlKind = "compute#vpnTunnelList"+    , _vtlItems = Nothing+    , _vtlSelfLink = Nothing+    , _vtlId = Nothing+    }++-- | [Output Only] A token used to continue a truncated list request.+vtlNextPageToken :: Lens' VPNTunnelList (Maybe Text)+vtlNextPageToken+  = lens _vtlNextPageToken+      (\ s a -> s{_vtlNextPageToken = a})++-- | [Output Only] Type of resource. Always compute#vpnTunnel for VPN+-- tunnels.+vtlKind :: Lens' VPNTunnelList Text+vtlKind = lens _vtlKind (\ s a -> s{_vtlKind = a})++-- | [Output Only] A list of VpnTunnel resources.+vtlItems :: Lens' VPNTunnelList [VPNTunnel]+vtlItems+  = lens _vtlItems (\ s a -> s{_vtlItems = a}) .+      _Default+      . _Coerce++-- | [Output Only] Server-defined URL for the resource.+vtlSelfLink :: Lens' VPNTunnelList (Maybe Text)+vtlSelfLink+  = lens _vtlSelfLink (\ s a -> s{_vtlSelfLink = a})++-- | [Output Only] Unique identifier for the resource; defined by the server.+vtlId :: Lens' VPNTunnelList (Maybe Text)+vtlId = lens _vtlId (\ s a -> s{_vtlId = a})++instance FromJSON VPNTunnelList where+        parseJSON+          = withObject "VPNTunnelList"+              (\ o ->+                 VPNTunnelList <$>+                   (o .:? "nextPageToken") <*>+                     (o .:? "kind" .!= "compute#vpnTunnelList")+                     <*> (o .:? "items" .!= mempty)+                     <*> (o .:? "selfLink")+                     <*> (o .:? "id"))++instance ToJSON VPNTunnelList where+        toJSON VPNTunnelList{..}+          = object+              (catMaybes+                 [("nextPageToken" .=) <$> _vtlNextPageToken,+                  Just ("kind" .= _vtlKind),+                  ("items" .=) <$> _vtlItems,+                  ("selfLink" .=) <$> _vtlSelfLink,+                  ("id" .=) <$> _vtlId])++--+-- /See:/ 'machineTypeScratchDisksItem' smart constructor.+newtype MachineTypeScratchDisksItem = MachineTypeScratchDisksItem+    { _mtsdiDiskGb :: Maybe (Textual Int32)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'MachineTypeScratchDisksItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mtsdiDiskGb'+machineTypeScratchDisksItem+    :: MachineTypeScratchDisksItem+machineTypeScratchDisksItem =+    MachineTypeScratchDisksItem+    { _mtsdiDiskGb = Nothing+    }++-- | Size of the scratch disk, defined in GB.+mtsdiDiskGb :: Lens' MachineTypeScratchDisksItem (Maybe Int32)+mtsdiDiskGb+  = lens _mtsdiDiskGb (\ s a -> s{_mtsdiDiskGb = a}) .+      mapping _Coerce++instance FromJSON MachineTypeScratchDisksItem where+        parseJSON+          = withObject "MachineTypeScratchDisksItem"+              (\ o ->+                 MachineTypeScratchDisksItem <$> (o .:? "diskGb"))++instance ToJSON MachineTypeScratchDisksItem where+        toJSON MachineTypeScratchDisksItem{..}+          = object (catMaybes [("diskGb" .=) <$> _mtsdiDiskGb])++--+-- /See:/ 'machineTypesScopedList' smart constructor.+data MachineTypesScopedList = MachineTypesScopedList+    { _mtslMachineTypes :: !(Maybe [MachineType])+    , _mtslWarning      :: !(Maybe MachineTypesScopedListWarning)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'MachineTypesScopedList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mtslMachineTypes'+--+-- * 'mtslWarning'+machineTypesScopedList+    :: MachineTypesScopedList+machineTypesScopedList =+    MachineTypesScopedList+    { _mtslMachineTypes = Nothing+    , _mtslWarning = Nothing+    }++-- | [Output Only] List of machine types contained in this scope.+mtslMachineTypes :: Lens' MachineTypesScopedList [MachineType]+mtslMachineTypes+  = lens _mtslMachineTypes+      (\ s a -> s{_mtslMachineTypes = a})+      . _Default+      . _Coerce++-- | [Output Only] An informational warning that appears when the machine+-- types list is empty.+mtslWarning :: Lens' MachineTypesScopedList (Maybe MachineTypesScopedListWarning)+mtslWarning+  = lens _mtslWarning (\ s a -> s{_mtslWarning = a})++instance FromJSON MachineTypesScopedList where+        parseJSON+          = withObject "MachineTypesScopedList"+              (\ o ->+                 MachineTypesScopedList <$>+                   (o .:? "machineTypes" .!= mempty) <*>+                     (o .:? "warning"))++instance ToJSON MachineTypesScopedList where+        toJSON MachineTypesScopedList{..}+          = object+              (catMaybes+                 [("machineTypes" .=) <$> _mtslMachineTypes,+                  ("warning" .=) <$> _mtslWarning])++--+-- /See:/ 'machineTypeAggregatedList' smart constructor.+data MachineTypeAggregatedList = MachineTypeAggregatedList+    { _mtalNextPageToken :: !(Maybe Text)+    , _mtalKind          :: !Text+    , _mtalItems         :: !(Maybe MachineTypeAggregatedListItems)+    , _mtalSelfLink      :: !(Maybe Text)+    , _mtalId            :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'MachineTypeAggregatedList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mtalNextPageToken'+--+-- * 'mtalKind'+--+-- * 'mtalItems'+--+-- * 'mtalSelfLink'+--+-- * 'mtalId'+machineTypeAggregatedList+    :: MachineTypeAggregatedList+machineTypeAggregatedList =+    MachineTypeAggregatedList+    { _mtalNextPageToken = Nothing+    , _mtalKind = "compute#machineTypeAggregatedList"+    , _mtalItems = Nothing+    , _mtalSelfLink = Nothing+    , _mtalId = Nothing+    }++-- | [Output Only] A token used to continue a truncated list request.+mtalNextPageToken :: Lens' MachineTypeAggregatedList (Maybe Text)+mtalNextPageToken+  = lens _mtalNextPageToken+      (\ s a -> s{_mtalNextPageToken = a})++-- | [Output Only] Type of resource. Always compute#machineTypeAggregatedList+-- for aggregated lists of machine types.+mtalKind :: Lens' MachineTypeAggregatedList Text+mtalKind = lens _mtalKind (\ s a -> s{_mtalKind = a})++-- | [Output Only] A map of scoped machine type lists.+mtalItems :: Lens' MachineTypeAggregatedList (Maybe MachineTypeAggregatedListItems)+mtalItems+  = lens _mtalItems (\ s a -> s{_mtalItems = a})++-- | [Output Only] Server-defined URL for this resource.+mtalSelfLink :: Lens' MachineTypeAggregatedList (Maybe Text)+mtalSelfLink+  = lens _mtalSelfLink (\ s a -> s{_mtalSelfLink = a})++-- | [Output Only] Unique identifier for the resource; defined by the server.+mtalId :: Lens' MachineTypeAggregatedList (Maybe Text)+mtalId = lens _mtalId (\ s a -> s{_mtalId = a})++instance FromJSON MachineTypeAggregatedList where+        parseJSON+          = withObject "MachineTypeAggregatedList"+              (\ o ->+                 MachineTypeAggregatedList <$>+                   (o .:? "nextPageToken") <*>+                     (o .:? "kind" .!=+                        "compute#machineTypeAggregatedList")+                     <*> (o .:? "items")+                     <*> (o .:? "selfLink")+                     <*> (o .:? "id"))++instance ToJSON MachineTypeAggregatedList where+        toJSON MachineTypeAggregatedList{..}+          = object+              (catMaybes+                 [("nextPageToken" .=) <$> _mtalNextPageToken,+                  Just ("kind" .= _mtalKind),+                  ("items" .=) <$> _mtalItems,+                  ("selfLink" .=) <$> _mtalSelfLink,+                  ("id" .=) <$> _mtalId])++-- | A disk type resource.+--+-- /See:/ 'diskType' smart constructor.+data DiskType = DiskType+    { _dtKind              :: !Text+    , _dtZone              :: !(Maybe Text)+    , _dtSelfLink          :: !(Maybe Text)+    , _dtName              :: !(Maybe Text)+    , _dtCreationTimestamp :: !(Maybe Text)+    , _dtId                :: !(Maybe (Textual Word64))+    , _dtValidDiskSize     :: !(Maybe Text)+    , _dtDescription       :: !(Maybe Text)+    , _dtDefaultDiskSizeGb :: !(Maybe (Textual Int64))+    , _dtDeprecated        :: !(Maybe DeprecationStatus)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DiskType' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dtKind'+--+-- * 'dtZone'+--+-- * 'dtSelfLink'+--+-- * 'dtName'+--+-- * 'dtCreationTimestamp'+--+-- * 'dtId'+--+-- * 'dtValidDiskSize'+--+-- * 'dtDescription'+--+-- * 'dtDefaultDiskSizeGb'+--+-- * 'dtDeprecated'+diskType+    :: DiskType+diskType =+    DiskType+    { _dtKind = "compute#diskType"+    , _dtZone = Nothing+    , _dtSelfLink = Nothing+    , _dtName = Nothing+    , _dtCreationTimestamp = Nothing+    , _dtId = Nothing+    , _dtValidDiskSize = Nothing+    , _dtDescription = Nothing+    , _dtDefaultDiskSizeGb = Nothing+    , _dtDeprecated = Nothing+    }++-- | [Output Only] Type of the resource. Always compute#diskType for disk+-- types.+dtKind :: Lens' DiskType Text+dtKind = lens _dtKind (\ s a -> s{_dtKind = a})++-- | [Output Only] URL of the zone where the disk type resides.+dtZone :: Lens' DiskType (Maybe Text)+dtZone = lens _dtZone (\ s a -> s{_dtZone = a})++-- | [Output Only] Server-defined URL for the resource.+dtSelfLink :: Lens' DiskType (Maybe Text)+dtSelfLink+  = lens _dtSelfLink (\ s a -> s{_dtSelfLink = a})++-- | [Output Only] Name of the resource.+dtName :: Lens' DiskType (Maybe Text)+dtName = lens _dtName (\ s a -> s{_dtName = a})++-- | [Output Only] Creation timestamp in RFC3339 text format.+dtCreationTimestamp :: Lens' DiskType (Maybe Text)+dtCreationTimestamp+  = lens _dtCreationTimestamp+      (\ s a -> s{_dtCreationTimestamp = a})++-- | [Output Only] Unique identifier for the resource; defined by the server.+dtId :: Lens' DiskType (Maybe Word64)+dtId+  = lens _dtId (\ s a -> s{_dtId = a}) .+      mapping _Coerce++-- | [Output Only] An optional textual description of the valid disk size,+-- such as \"10GB-10TB\".+dtValidDiskSize :: Lens' DiskType (Maybe Text)+dtValidDiskSize+  = lens _dtValidDiskSize+      (\ s a -> s{_dtValidDiskSize = a})++-- | [Output Only] An optional textual description of the resource.+dtDescription :: Lens' DiskType (Maybe Text)+dtDescription+  = lens _dtDescription+      (\ s a -> s{_dtDescription = a})++-- | [Output Only] Server-defined default disk size in GB.+dtDefaultDiskSizeGb :: Lens' DiskType (Maybe Int64)+dtDefaultDiskSizeGb+  = lens _dtDefaultDiskSizeGb+      (\ s a -> s{_dtDefaultDiskSizeGb = a})+      . mapping _Coerce++-- | [Output Only] The deprecation status associated with this disk type.+dtDeprecated :: Lens' DiskType (Maybe DeprecationStatus)+dtDeprecated+  = lens _dtDeprecated (\ s a -> s{_dtDeprecated = a})++instance FromJSON DiskType where+        parseJSON+          = withObject "DiskType"+              (\ o ->+                 DiskType <$>+                   (o .:? "kind" .!= "compute#diskType") <*>+                     (o .:? "zone")+                     <*> (o .:? "selfLink")+                     <*> (o .:? "name")+                     <*> (o .:? "creationTimestamp")+                     <*> (o .:? "id")+                     <*> (o .:? "validDiskSize")+                     <*> (o .:? "description")+                     <*> (o .:? "defaultDiskSizeGb")+                     <*> (o .:? "deprecated"))++instance ToJSON DiskType where+        toJSON DiskType{..}+          = object+              (catMaybes+                 [Just ("kind" .= _dtKind), ("zone" .=) <$> _dtZone,+                  ("selfLink" .=) <$> _dtSelfLink,+                  ("name" .=) <$> _dtName,+                  ("creationTimestamp" .=) <$> _dtCreationTimestamp,+                  ("id" .=) <$> _dtId,+                  ("validDiskSize" .=) <$> _dtValidDiskSize,+                  ("description" .=) <$> _dtDescription,+                  ("defaultDiskSizeGb" .=) <$> _dtDefaultDiskSizeGb,+                  ("deprecated" .=) <$> _dtDeprecated])++-- | Message representing the validation result for a UrlMap.+--+-- /See:/ 'urlMapValidationResult' smart constructor.+data URLMapValidationResult = URLMapValidationResult+    { _umvrLoadErrors    :: !(Maybe [Text])+    , _umvrLoadSucceeded :: !(Maybe Bool)+    , _umvrTestPassed    :: !(Maybe Bool)+    , _umvrTestFailures  :: !(Maybe [TestFailure])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'URLMapValidationResult' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'umvrLoadErrors'+--+-- * 'umvrLoadSucceeded'+--+-- * 'umvrTestPassed'+--+-- * 'umvrTestFailures'+urlMapValidationResult+    :: URLMapValidationResult+urlMapValidationResult =+    URLMapValidationResult+    { _umvrLoadErrors = Nothing+    , _umvrLoadSucceeded = Nothing+    , _umvrTestPassed = Nothing+    , _umvrTestFailures = Nothing+    }++umvrLoadErrors :: Lens' URLMapValidationResult [Text]+umvrLoadErrors+  = lens _umvrLoadErrors+      (\ s a -> s{_umvrLoadErrors = a})+      . _Default+      . _Coerce++-- | Whether the given UrlMap can be successfully loaded. If false,+-- \'loadErrors\' indicates the reasons.+umvrLoadSucceeded :: Lens' URLMapValidationResult (Maybe Bool)+umvrLoadSucceeded+  = lens _umvrLoadSucceeded+      (\ s a -> s{_umvrLoadSucceeded = a})++-- | If successfully loaded, this field indicates whether the test passed. If+-- false, \'testFailures\'s indicate the reason of failure.+umvrTestPassed :: Lens' URLMapValidationResult (Maybe Bool)+umvrTestPassed+  = lens _umvrTestPassed+      (\ s a -> s{_umvrTestPassed = a})++umvrTestFailures :: Lens' URLMapValidationResult [TestFailure]+umvrTestFailures+  = lens _umvrTestFailures+      (\ s a -> s{_umvrTestFailures = a})+      . _Default+      . _Coerce++instance FromJSON URLMapValidationResult where+        parseJSON+          = withObject "URLMapValidationResult"+              (\ o ->+                 URLMapValidationResult <$>+                   (o .:? "loadErrors" .!= mempty) <*>+                     (o .:? "loadSucceeded")+                     <*> (o .:? "testPassed")+                     <*> (o .:? "testFailures" .!= mempty))++instance ToJSON URLMapValidationResult where+        toJSON URLMapValidationResult{..}+          = object+              (catMaybes+                 [("loadErrors" .=) <$> _umvrLoadErrors,+                  ("loadSucceeded" .=) <$> _umvrLoadSucceeded,+                  ("testPassed" .=) <$> _umvrTestPassed,+                  ("testFailures" .=) <$> _umvrTestFailures])++-- | A metadata key\/value entry.+--+-- /See:/ 'metadata' smart constructor.+data Metadata = Metadata+    { _mKind        :: !Text+    , _mFingerprint :: !(Maybe (Textual Word8))+    , _mItems       :: !(Maybe [MetadataItemsItem])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Metadata' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mKind'+--+-- * 'mFingerprint'+--+-- * 'mItems'+metadata+    :: Metadata+metadata =+    Metadata+    { _mKind = "compute#metadata"+    , _mFingerprint = Nothing+    , _mItems = Nothing+    }++-- | [Output Only] Type of the resource. Always compute#metadata for+-- metadata.+mKind :: Lens' Metadata Text+mKind = lens _mKind (\ s a -> s{_mKind = a})++-- | Specifies a fingerprint for this request, which is essentially a hash of+-- the metadata\'s contents and used for optimistic locking. The+-- fingerprint is initially generated by Compute Engine and changes after+-- every request to modify or update metadata. You must always provide an+-- up-to-date fingerprint hash in order to update or change metadata.+mFingerprint :: Lens' Metadata (Maybe Word8)+mFingerprint+  = lens _mFingerprint (\ s a -> s{_mFingerprint = a})+      . mapping _Coerce++-- | Array of key\/value pairs. The total size of all keys and values must be+-- less than 512 KB.+mItems :: Lens' Metadata [MetadataItemsItem]+mItems+  = lens _mItems (\ s a -> s{_mItems = a}) . _Default .+      _Coerce++instance FromJSON Metadata where+        parseJSON+          = withObject "Metadata"+              (\ o ->+                 Metadata <$>+                   (o .:? "kind" .!= "compute#metadata") <*>+                     (o .:? "fingerprint")+                     <*> (o .:? "items" .!= mempty))++instance ToJSON Metadata where+        toJSON Metadata{..}+          = object+              (catMaybes+                 [Just ("kind" .= _mKind),+                  ("fingerprint" .=) <$> _mFingerprint,+                  ("items" .=) <$> _mItems])++--+-- /See:/ 'routeWarningsItem' smart constructor.+data RouteWarningsItem = RouteWarningsItem+    { _rwiData    :: !(Maybe [RouteWarningsItemDataItem])+    , _rwiCode    :: !(Maybe RouteWarningsItemCode)+    , _rwiMessage :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'RouteWarningsItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rwiData'+--+-- * 'rwiCode'+--+-- * 'rwiMessage'+routeWarningsItem+    :: RouteWarningsItem+routeWarningsItem =+    RouteWarningsItem+    { _rwiData = Nothing+    , _rwiCode = Nothing+    , _rwiMessage = Nothing+    }++-- | [Output Only] Metadata for this warning in key: value format.+rwiData :: Lens' RouteWarningsItem [RouteWarningsItemDataItem]+rwiData+  = lens _rwiData (\ s a -> s{_rwiData = a}) . _Default+      . _Coerce++-- | [Output Only] The warning type identifier for this warning.+rwiCode :: Lens' RouteWarningsItem (Maybe RouteWarningsItemCode)+rwiCode = lens _rwiCode (\ s a -> s{_rwiCode = a})++-- | [Output Only] Optional human-readable details for this warning.+rwiMessage :: Lens' RouteWarningsItem (Maybe Text)+rwiMessage+  = lens _rwiMessage (\ s a -> s{_rwiMessage = a})++instance FromJSON RouteWarningsItem where+        parseJSON+          = withObject "RouteWarningsItem"+              (\ o ->+                 RouteWarningsItem <$>+                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>+                     (o .:? "message"))++instance ToJSON RouteWarningsItem where+        toJSON RouteWarningsItem{..}+          = object+              (catMaybes+                 [("data" .=) <$> _rwiData, ("code" .=) <$> _rwiCode,+                  ("message" .=) <$> _rwiMessage])++--+-- /See:/ 'machineTypesScopedListWarningDataItem' smart constructor.+data MachineTypesScopedListWarningDataItem = MachineTypesScopedListWarningDataItem+    { _mtslwdiValue :: !(Maybe Text)+    , _mtslwdiKey   :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'MachineTypesScopedListWarningDataItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mtslwdiValue'+--+-- * 'mtslwdiKey'+machineTypesScopedListWarningDataItem+    :: MachineTypesScopedListWarningDataItem+machineTypesScopedListWarningDataItem =+    MachineTypesScopedListWarningDataItem+    { _mtslwdiValue = Nothing+    , _mtslwdiKey = Nothing+    }++-- | [Output Only] A warning data value corresponding to the key.+mtslwdiValue :: Lens' MachineTypesScopedListWarningDataItem (Maybe Text)+mtslwdiValue+  = lens _mtslwdiValue (\ s a -> s{_mtslwdiValue = a})++-- | [Output Only] A key for the warning data.+mtslwdiKey :: Lens' MachineTypesScopedListWarningDataItem (Maybe Text)+mtslwdiKey+  = lens _mtslwdiKey (\ s a -> s{_mtslwdiKey = a})++instance FromJSON+         MachineTypesScopedListWarningDataItem where+        parseJSON+          = withObject "MachineTypesScopedListWarningDataItem"+              (\ o ->+                 MachineTypesScopedListWarningDataItem <$>+                   (o .:? "value") <*> (o .:? "key"))++instance ToJSON MachineTypesScopedListWarningDataItem+         where+        toJSON MachineTypesScopedListWarningDataItem{..}+          = object+              (catMaybes+                 [("value" .=) <$> _mtslwdiValue,+                  ("key" .=) <$> _mtslwdiKey])++--+-- /See:/ 'diskTypesScopedListWarningDataItem' smart constructor.+data DiskTypesScopedListWarningDataItem = DiskTypesScopedListWarningDataItem+    { _dtslwdiValue :: !(Maybe Text)+    , _dtslwdiKey   :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DiskTypesScopedListWarningDataItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dtslwdiValue'+--+-- * 'dtslwdiKey'+diskTypesScopedListWarningDataItem+    :: DiskTypesScopedListWarningDataItem+diskTypesScopedListWarningDataItem =+    DiskTypesScopedListWarningDataItem+    { _dtslwdiValue = Nothing+    , _dtslwdiKey = Nothing+    }++-- | [Output Only] A warning data value corresponding to the key.+dtslwdiValue :: Lens' DiskTypesScopedListWarningDataItem (Maybe Text)+dtslwdiValue+  = lens _dtslwdiValue (\ s a -> s{_dtslwdiValue = a})++-- | [Output Only] A key for the warning data.+dtslwdiKey :: Lens' DiskTypesScopedListWarningDataItem (Maybe Text)+dtslwdiKey+  = lens _dtslwdiKey (\ s a -> s{_dtslwdiKey = a})++instance FromJSON DiskTypesScopedListWarningDataItem+         where+        parseJSON+          = withObject "DiskTypesScopedListWarningDataItem"+              (\ o ->+                 DiskTypesScopedListWarningDataItem <$>+                   (o .:? "value") <*> (o .:? "key"))++instance ToJSON DiskTypesScopedListWarningDataItem+         where+        toJSON DiskTypesScopedListWarningDataItem{..}+          = object+              (catMaybes+                 [("value" .=) <$> _dtslwdiValue,+                  ("key" .=) <$> _dtslwdiKey])++-- | A TargetHttpProxy resource. This resource defines an HTTP proxy.+--+-- /See:/ 'targetHTTPProxy' smart constructor.+data TargetHTTPProxy = TargetHTTPProxy+    { _thttppURLMap            :: !(Maybe Text)+    , _thttppKind              :: !Text+    , _thttppSelfLink          :: !(Maybe Text)+    , _thttppName              :: !(Maybe Text)+    , _thttppCreationTimestamp :: !(Maybe Text)+    , _thttppId                :: !(Maybe (Textual Word64))+    , _thttppDescription       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TargetHTTPProxy' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'thttppURLMap'+--+-- * 'thttppKind'+--+-- * 'thttppSelfLink'+--+-- * 'thttppName'+--+-- * 'thttppCreationTimestamp'+--+-- * 'thttppId'+--+-- * 'thttppDescription'+targetHTTPProxy+    :: TargetHTTPProxy+targetHTTPProxy =+    TargetHTTPProxy+    { _thttppURLMap = Nothing+    , _thttppKind = "compute#targetHttpProxy"+    , _thttppSelfLink = Nothing+    , _thttppName = Nothing+    , _thttppCreationTimestamp = Nothing+    , _thttppId = Nothing+    , _thttppDescription = Nothing+    }++-- | URL to the UrlMap resource that defines the mapping from URL to the+-- BackendService.+thttppURLMap :: Lens' TargetHTTPProxy (Maybe Text)+thttppURLMap+  = lens _thttppURLMap (\ s a -> s{_thttppURLMap = a})++-- | [Output Only] Type of resource. Always compute#operation for Operation+-- resources.+thttppKind :: Lens' TargetHTTPProxy Text+thttppKind+  = lens _thttppKind (\ s a -> s{_thttppKind = a})++-- | [Output Only] Server-defined URL for the resource.+thttppSelfLink :: Lens' TargetHTTPProxy (Maybe Text)+thttppSelfLink+  = lens _thttppSelfLink+      (\ s a -> s{_thttppSelfLink = a})++-- | Name of the resource; provided by the client when the resource is+-- created. The name must be 1-63 characters long, and comply with RFC1035.+-- Specifically, the name must be 1-63 characters long and match the+-- regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first+-- character must be a lowercase letter, and all following characters must+-- be a dash, lowercase letter, or digit, except the last character, which+-- cannot be a dash.+thttppName :: Lens' TargetHTTPProxy (Maybe Text)+thttppName+  = lens _thttppName (\ s a -> s{_thttppName = a})++-- | [Output Only] Creation timestamp in RFC3339 text format.+thttppCreationTimestamp :: Lens' TargetHTTPProxy (Maybe Text)+thttppCreationTimestamp+  = lens _thttppCreationTimestamp+      (\ s a -> s{_thttppCreationTimestamp = a})++-- | [Output Only] Unique identifier for the resource. Defined by the server.+thttppId :: Lens' TargetHTTPProxy (Maybe Word64)+thttppId+  = lens _thttppId (\ s a -> s{_thttppId = a}) .+      mapping _Coerce++-- | An optional textual description of the resource; provided by the client+-- when the resource is created.+thttppDescription :: Lens' TargetHTTPProxy (Maybe Text)+thttppDescription+  = lens _thttppDescription+      (\ s a -> s{_thttppDescription = a})++instance FromJSON TargetHTTPProxy where+        parseJSON+          = withObject "TargetHTTPProxy"+              (\ o ->+                 TargetHTTPProxy <$>+                   (o .:? "urlMap") <*>+                     (o .:? "kind" .!= "compute#targetHttpProxy")+                     <*> (o .:? "selfLink")+                     <*> (o .:? "name")+                     <*> (o .:? "creationTimestamp")+                     <*> (o .:? "id")+                     <*> (o .:? "description"))++instance ToJSON TargetHTTPProxy where+        toJSON TargetHTTPProxy{..}+          = object+              (catMaybes+                 [("urlMap" .=) <$> _thttppURLMap,+                  Just ("kind" .= _thttppKind),+                  ("selfLink" .=) <$> _thttppSelfLink,+                  ("name" .=) <$> _thttppName,+                  ("creationTimestamp" .=) <$>+                    _thttppCreationTimestamp,+                  ("id" .=) <$> _thttppId,+                  ("description" .=) <$> _thttppDescription])++-- | A Machine Type resource.+--+-- /See:/ 'machineType' smart constructor.+data MachineType = MachineType+    { _mtKind                         :: !Text+    , _mtImageSpaceGb                 :: !(Maybe (Textual Int32))+    , _mtZone                         :: !(Maybe Text)+    , _mtSelfLink                     :: !(Maybe Text)+    , _mtName                         :: !(Maybe Text)+    , _mtCreationTimestamp            :: !(Maybe Text)+    , _mtScratchDisks                 :: !(Maybe [MachineTypeScratchDisksItem])+    , _mtId                           :: !(Maybe (Textual Word64))+    , _mtGuestCPUs                    :: !(Maybe (Textual Int32))+    , _mtMaximumPersistentDisksSizeGb :: !(Maybe (Textual Int64))+    , _mtMaximumPersistentDisks       :: !(Maybe (Textual Int32))+    , _mtMemoryMb                     :: !(Maybe (Textual Int32))+    , _mtDescription                  :: !(Maybe Text)+    , _mtDeprecated                   :: !(Maybe DeprecationStatus)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'MachineType' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mtKind'+--+-- * 'mtImageSpaceGb'+--+-- * 'mtZone'+--+-- * 'mtSelfLink'+--+-- * 'mtName'+--+-- * 'mtCreationTimestamp'+--+-- * 'mtScratchDisks'+--+-- * 'mtId'+--+-- * 'mtGuestCPUs'+--+-- * 'mtMaximumPersistentDisksSizeGb'+--+-- * 'mtMaximumPersistentDisks'+--+-- * 'mtMemoryMb'+--+-- * 'mtDescription'+--+-- * 'mtDeprecated'+machineType+    :: MachineType+machineType =+    MachineType+    { _mtKind = "compute#machineType"+    , _mtImageSpaceGb = Nothing+    , _mtZone = Nothing+    , _mtSelfLink = Nothing+    , _mtName = Nothing+    , _mtCreationTimestamp = Nothing+    , _mtScratchDisks = Nothing+    , _mtId = Nothing+    , _mtGuestCPUs = Nothing+    , _mtMaximumPersistentDisksSizeGb = Nothing+    , _mtMaximumPersistentDisks = Nothing+    , _mtMemoryMb = Nothing+    , _mtDescription = Nothing+    , _mtDeprecated = Nothing+    }++-- | Type of the resource.+mtKind :: Lens' MachineType Text+mtKind = lens _mtKind (\ s a -> s{_mtKind = a})++-- | [Deprecated] This property is deprecated and will never be populated+-- with any relevant values.+mtImageSpaceGb :: Lens' MachineType (Maybe Int32)+mtImageSpaceGb+  = lens _mtImageSpaceGb+      (\ s a -> s{_mtImageSpaceGb = a})+      . mapping _Coerce++-- | [Output Only] The name of the zone where the machine type resides, such+-- as us-central1-a.+mtZone :: Lens' MachineType (Maybe Text)+mtZone = lens _mtZone (\ s a -> s{_mtZone = a})++-- | [Output Only] Server-defined URL for the resource.+mtSelfLink :: Lens' MachineType (Maybe Text)+mtSelfLink+  = lens _mtSelfLink (\ s a -> s{_mtSelfLink = a})++-- | [Output Only] Name of the resource.+mtName :: Lens' MachineType (Maybe Text)+mtName = lens _mtName (\ s a -> s{_mtName = a})++-- | [Output Only] Creation timestamp in RFC3339 text format.+mtCreationTimestamp :: Lens' MachineType (Maybe Text)+mtCreationTimestamp+  = lens _mtCreationTimestamp+      (\ s a -> s{_mtCreationTimestamp = a})++-- | [Output Only] List of extended scratch disks assigned to the instance.+mtScratchDisks :: Lens' MachineType [MachineTypeScratchDisksItem]+mtScratchDisks+  = lens _mtScratchDisks+      (\ s a -> s{_mtScratchDisks = a})+      . _Default+      . _Coerce++-- | [Output Only] Unique identifier for the resource; defined by the server.+mtId :: Lens' MachineType (Maybe Word64)+mtId+  = lens _mtId (\ s a -> s{_mtId = a}) .+      mapping _Coerce++-- | [Output Only] The tumber of CPUs exposed to the instance.+mtGuestCPUs :: Lens' MachineType (Maybe Int32)+mtGuestCPUs+  = lens _mtGuestCPUs (\ s a -> s{_mtGuestCPUs = a}) .+      mapping _Coerce++-- | [Output Only] Maximum total persistent disks size (GB) allowed.+mtMaximumPersistentDisksSizeGb :: Lens' MachineType (Maybe Int64)+mtMaximumPersistentDisksSizeGb+  = lens _mtMaximumPersistentDisksSizeGb+      (\ s a -> s{_mtMaximumPersistentDisksSizeGb = a})+      . mapping _Coerce++-- | [Output Only] Maximum persistent disks allowed.+mtMaximumPersistentDisks :: Lens' MachineType (Maybe Int32)+mtMaximumPersistentDisks+  = lens _mtMaximumPersistentDisks+      (\ s a -> s{_mtMaximumPersistentDisks = a})+      . mapping _Coerce++-- | [Output Only] The amount of physical memory available to the instance,+-- defined in MB.+mtMemoryMb :: Lens' MachineType (Maybe Int32)+mtMemoryMb+  = lens _mtMemoryMb (\ s a -> s{_mtMemoryMb = a}) .+      mapping _Coerce++-- | [Output Only] An optional textual description of the resource.+mtDescription :: Lens' MachineType (Maybe Text)+mtDescription+  = lens _mtDescription+      (\ s a -> s{_mtDescription = a})++-- | [Output Only] The deprecation status associated with this machine type.+mtDeprecated :: Lens' MachineType (Maybe DeprecationStatus)+mtDeprecated+  = lens _mtDeprecated (\ s a -> s{_mtDeprecated = a})++instance FromJSON MachineType where+        parseJSON+          = withObject "MachineType"+              (\ o ->+                 MachineType <$>+                   (o .:? "kind" .!= "compute#machineType") <*>+                     (o .:? "imageSpaceGb")+                     <*> (o .:? "zone")+                     <*> (o .:? "selfLink")+                     <*> (o .:? "name")+                     <*> (o .:? "creationTimestamp")+                     <*> (o .:? "scratchDisks" .!= mempty)+                     <*> (o .:? "id")+                     <*> (o .:? "guestCpus")+                     <*> (o .:? "maximumPersistentDisksSizeGb")+                     <*> (o .:? "maximumPersistentDisks")+                     <*> (o .:? "memoryMb")+                     <*> (o .:? "description")+                     <*> (o .:? "deprecated"))++instance ToJSON MachineType where+        toJSON MachineType{..}+          = object+              (catMaybes+                 [Just ("kind" .= _mtKind),+                  ("imageSpaceGb" .=) <$> _mtImageSpaceGb,+                  ("zone" .=) <$> _mtZone,+                  ("selfLink" .=) <$> _mtSelfLink,+                  ("name" .=) <$> _mtName,+                  ("creationTimestamp" .=) <$> _mtCreationTimestamp,+                  ("scratchDisks" .=) <$> _mtScratchDisks,+                  ("id" .=) <$> _mtId,+                  ("guestCpus" .=) <$> _mtGuestCPUs,+                  ("maximumPersistentDisksSizeGb" .=) <$>+                    _mtMaximumPersistentDisksSizeGb,+                  ("maximumPersistentDisks" .=) <$>+                    _mtMaximumPersistentDisks,+                  ("memoryMb" .=) <$> _mtMemoryMb,+                  ("description" .=) <$> _mtDescription,+                  ("deprecated" .=) <$> _mtDeprecated])++-- | [Output Only] If errors are generated during processing of the+-- operation, this field will be populated.+--+-- /See:/ 'operationError' smart constructor.+newtype OperationError = OperationError+    { _oeErrors :: Maybe [OperationErrorErrorsItem]+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'OperationError' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'oeErrors'+operationError+    :: OperationError+operationError =+    OperationError+    { _oeErrors = Nothing+    }++-- | [Output Only] The array of errors encountered while processing this+-- operation.+oeErrors :: Lens' OperationError [OperationErrorErrorsItem]+oeErrors+  = lens _oeErrors (\ s a -> s{_oeErrors = a}) .+      _Default+      . _Coerce++instance FromJSON OperationError where+        parseJSON+          = withObject "OperationError"+              (\ o ->+                 OperationError <$> (o .:? "errors" .!= mempty))++instance ToJSON OperationError where+        toJSON OperationError{..}+          = object (catMaybes [("errors" .=) <$> _oeErrors])++-- | Informational warning which replaces the list of addresses when the list+-- is empty.+--+-- /See:/ 'targetInstancesScopedListWarning' smart constructor.+data TargetInstancesScopedListWarning = TargetInstancesScopedListWarning+    { _tislwData    :: !(Maybe [TargetInstancesScopedListWarningDataItem])+    , _tislwCode    :: !(Maybe TargetInstancesScopedListWarningCode)+    , _tislwMessage :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TargetInstancesScopedListWarning' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tislwData'+--+-- * 'tislwCode'+--+-- * 'tislwMessage'+targetInstancesScopedListWarning+    :: TargetInstancesScopedListWarning+targetInstancesScopedListWarning =+    TargetInstancesScopedListWarning+    { _tislwData = Nothing+    , _tislwCode = Nothing+    , _tislwMessage = Nothing+    }++-- | [Output Only] Metadata for this warning in key: value format.+tislwData :: Lens' TargetInstancesScopedListWarning [TargetInstancesScopedListWarningDataItem]+tislwData+  = lens _tislwData (\ s a -> s{_tislwData = a}) .+      _Default+      . _Coerce++-- | [Output Only] The warning type identifier for this warning.+tislwCode :: Lens' TargetInstancesScopedListWarning (Maybe TargetInstancesScopedListWarningCode)+tislwCode+  = lens _tislwCode (\ s a -> s{_tislwCode = a})++-- | [Output Only] Optional human-readable details for this warning.+tislwMessage :: Lens' TargetInstancesScopedListWarning (Maybe Text)+tislwMessage+  = lens _tislwMessage (\ s a -> s{_tislwMessage = a})++instance FromJSON TargetInstancesScopedListWarning+         where+        parseJSON+          = withObject "TargetInstancesScopedListWarning"+              (\ o ->+                 TargetInstancesScopedListWarning <$>+                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>+                     (o .:? "message"))++instance ToJSON TargetInstancesScopedListWarning+         where+        toJSON TargetInstancesScopedListWarning{..}+          = object+              (catMaybes+                 [("data" .=) <$> _tislwData,+                  ("code" .=) <$> _tislwCode,+                  ("message" .=) <$> _tislwMessage])++--+-- /See:/ 'autoscalersScopedListWarningDataItem' smart constructor.+data AutoscalersScopedListWarningDataItem = AutoscalersScopedListWarningDataItem+    { _aValue :: !(Maybe Text)+    , _aKey   :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'AutoscalersScopedListWarningDataItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aValue'+--+-- * 'aKey'+autoscalersScopedListWarningDataItem+    :: AutoscalersScopedListWarningDataItem+autoscalersScopedListWarningDataItem =+    AutoscalersScopedListWarningDataItem+    { _aValue = Nothing+    , _aKey = Nothing+    }++-- | [Output Only] A warning data value corresponding to the key.+aValue :: Lens' AutoscalersScopedListWarningDataItem (Maybe Text)+aValue = lens _aValue (\ s a -> s{_aValue = a})++-- | [Output Only] A key for the warning data.+aKey :: Lens' AutoscalersScopedListWarningDataItem (Maybe Text)+aKey = lens _aKey (\ s a -> s{_aKey = a})++instance FromJSON+         AutoscalersScopedListWarningDataItem where+        parseJSON+          = withObject "AutoscalersScopedListWarningDataItem"+              (\ o ->+                 AutoscalersScopedListWarningDataItem <$>+                   (o .:? "value") <*> (o .:? "key"))++instance ToJSON AutoscalersScopedListWarningDataItem+         where+        toJSON AutoscalersScopedListWarningDataItem{..}+          = object+              (catMaybes+                 [("value" .=) <$> _aValue, ("key" .=) <$> _aKey])++--+-- /See:/ 'instanceGroupsListInstances' smart constructor.+data InstanceGroupsListInstances = InstanceGroupsListInstances+    { _igliNextPageToken :: !(Maybe Text)+    , _igliKind          :: !Text+    , _igliItems         :: !(Maybe [InstanceWithNamedPorts])+    , _igliSelfLink      :: !(Maybe Text)+    , _igliId            :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstanceGroupsListInstances' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'igliNextPageToken'+--+-- * 'igliKind'+--+-- * 'igliItems'+--+-- * 'igliSelfLink'+--+-- * 'igliId'+instanceGroupsListInstances+    :: InstanceGroupsListInstances+instanceGroupsListInstances =+    InstanceGroupsListInstances+    { _igliNextPageToken = Nothing+    , _igliKind = "compute#instanceGroupsListInstances"+    , _igliItems = Nothing+    , _igliSelfLink = Nothing+    , _igliId = Nothing+    }++-- | [Output Only] A token that is used to continue a truncated list request.+igliNextPageToken :: Lens' InstanceGroupsListInstances (Maybe Text)+igliNextPageToken+  = lens _igliNextPageToken+      (\ s a -> s{_igliNextPageToken = a})++-- | [Output Only] The resource type, which is always+-- compute#instanceGroupsListInstances for lists of instance groups.+igliKind :: Lens' InstanceGroupsListInstances Text+igliKind = lens _igliKind (\ s a -> s{_igliKind = a})++-- | [Output Only] A list of instances and any named ports that are assigned+-- to those instances.+igliItems :: Lens' InstanceGroupsListInstances [InstanceWithNamedPorts]+igliItems+  = lens _igliItems (\ s a -> s{_igliItems = a}) .+      _Default+      . _Coerce++-- | [Output Only] The URL for this list of instance groups. The server+-- generates this URL.+igliSelfLink :: Lens' InstanceGroupsListInstances (Maybe Text)+igliSelfLink+  = lens _igliSelfLink (\ s a -> s{_igliSelfLink = a})++-- | [Output Only] A unique identifier for this list of instance groups. The+-- server generates this identifier.+igliId :: Lens' InstanceGroupsListInstances (Maybe Text)+igliId = lens _igliId (\ s a -> s{_igliId = a})++instance FromJSON InstanceGroupsListInstances where+        parseJSON+          = withObject "InstanceGroupsListInstances"+              (\ o ->+                 InstanceGroupsListInstances <$>+                   (o .:? "nextPageToken") <*>+                     (o .:? "kind" .!=+                        "compute#instanceGroupsListInstances")+                     <*> (o .:? "items" .!= mempty)+                     <*> (o .:? "selfLink")+                     <*> (o .:? "id"))++instance ToJSON InstanceGroupsListInstances where+        toJSON InstanceGroupsListInstances{..}+          = object+              (catMaybes+                 [("nextPageToken" .=) <$> _igliNextPageToken,+                  Just ("kind" .= _igliKind),+                  ("items" .=) <$> _igliItems,+                  ("selfLink" .=) <$> _igliSelfLink,+                  ("id" .=) <$> _igliId])++--+-- /See:/ 'autoscaler' smart constructor.+data Autoscaler = Autoscaler+    { _aaKind              :: !Text+    , _aaZone              :: !(Maybe Text)+    , _aaSelfLink          :: !(Maybe Text)+    , _aaName              :: !(Maybe Text)+    , _aaCreationTimestamp :: !(Maybe Text)+    , _aaAutoscalingPolicy :: !(Maybe AutoscalingPolicy)+    , _aaId                :: !(Maybe (Textual Word64))+    , _aaDescription       :: !(Maybe Text)+    , _aaTarget            :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Autoscaler' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aaKind'+--+-- * 'aaZone'+--+-- * 'aaSelfLink'+--+-- * 'aaName'+--+-- * 'aaCreationTimestamp'+--+-- * 'aaAutoscalingPolicy'+--+-- * 'aaId'+--+-- * 'aaDescription'+--+-- * 'aaTarget'+autoscaler+    :: Autoscaler+autoscaler =+    Autoscaler+    { _aaKind = "compute#autoscaler"+    , _aaZone = Nothing+    , _aaSelfLink = Nothing+    , _aaName = Nothing+    , _aaCreationTimestamp = Nothing+    , _aaAutoscalingPolicy = Nothing+    , _aaId = Nothing+    , _aaDescription = Nothing+    , _aaTarget = Nothing+    }++-- | Type of the resource.+aaKind :: Lens' Autoscaler Text+aaKind = lens _aaKind (\ s a -> s{_aaKind = a})++-- | [Output Only] URL of the zone where the instance group resides.+aaZone :: Lens' Autoscaler (Maybe Text)+aaZone = lens _aaZone (\ s a -> s{_aaZone = a})++-- | [Output Only] Server-defined URL for the resource.+aaSelfLink :: Lens' Autoscaler (Maybe Text)+aaSelfLink+  = lens _aaSelfLink (\ s a -> s{_aaSelfLink = a})++-- | Name of the resource. Provided by the client when the resource is+-- created. The name must be 1-63 characters long, and comply with RFC1035.+-- Specifically, the name must be 1-63 characters long and match the+-- regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first+-- character must be a lowercase letter, and all following characters must+-- be a dash, lowercase letter, or digit, except the last character, which+-- cannot be a dash.+aaName :: Lens' Autoscaler (Maybe Text)+aaName = lens _aaName (\ s a -> s{_aaName = a})++-- | [Output Only] Creation timestamp in RFC3339 text format.+aaCreationTimestamp :: Lens' Autoscaler (Maybe Text)+aaCreationTimestamp+  = lens _aaCreationTimestamp+      (\ s a -> s{_aaCreationTimestamp = a})++-- | Autoscaling configuration.+aaAutoscalingPolicy :: Lens' Autoscaler (Maybe AutoscalingPolicy)+aaAutoscalingPolicy+  = lens _aaAutoscalingPolicy+      (\ s a -> s{_aaAutoscalingPolicy = a})++-- | [Output Only] Unique identifier for the resource; defined by the server.+aaId :: Lens' Autoscaler (Maybe Word64)+aaId+  = lens _aaId (\ s a -> s{_aaId = a}) .+      mapping _Coerce++-- | An optional textual description of the resource; provided by the client+-- when the resource is created.+aaDescription :: Lens' Autoscaler (Maybe Text)+aaDescription+  = lens _aaDescription+      (\ s a -> s{_aaDescription = a})++-- | URL of Instance Group Manager or Replica Pool which will be controlled+-- by Autoscaler.+aaTarget :: Lens' Autoscaler (Maybe Text)+aaTarget = lens _aaTarget (\ s a -> s{_aaTarget = a})++instance FromJSON Autoscaler where+        parseJSON+          = withObject "Autoscaler"+              (\ o ->+                 Autoscaler <$>+                   (o .:? "kind" .!= "compute#autoscaler") <*>+                     (o .:? "zone")+                     <*> (o .:? "selfLink")+                     <*> (o .:? "name")+                     <*> (o .:? "creationTimestamp")+                     <*> (o .:? "autoscalingPolicy")+                     <*> (o .:? "id")+                     <*> (o .:? "description")+                     <*> (o .:? "target"))++instance ToJSON Autoscaler where+        toJSON Autoscaler{..}+          = object+              (catMaybes+                 [Just ("kind" .= _aaKind), ("zone" .=) <$> _aaZone,+                  ("selfLink" .=) <$> _aaSelfLink,+                  ("name" .=) <$> _aaName,+                  ("creationTimestamp" .=) <$> _aaCreationTimestamp,+                  ("autoscalingPolicy" .=) <$> _aaAutoscalingPolicy,+                  ("id" .=) <$> _aaId,+                  ("description" .=) <$> _aaDescription,+                  ("target" .=) <$> _aaTarget])++-- | [Output Only] Informational warning which replaces the list of disks+-- when the list is empty.+--+-- /See:/ 'disksScopedListWarning' smart constructor.+data DisksScopedListWarning = DisksScopedListWarning+    { _dslwData    :: !(Maybe [DisksScopedListWarningDataItem])+    , _dslwCode    :: !(Maybe DisksScopedListWarningCode)+    , _dslwMessage :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DisksScopedListWarning' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dslwData'+--+-- * 'dslwCode'+--+-- * 'dslwMessage'+disksScopedListWarning+    :: DisksScopedListWarning+disksScopedListWarning =+    DisksScopedListWarning+    { _dslwData = Nothing+    , _dslwCode = Nothing+    , _dslwMessage = Nothing+    }++-- | [Output Only] Metadata for this warning in key: value format.+dslwData :: Lens' DisksScopedListWarning [DisksScopedListWarningDataItem]+dslwData+  = lens _dslwData (\ s a -> s{_dslwData = a}) .+      _Default+      . _Coerce++-- | [Output Only] The warning type identifier for this warning.+dslwCode :: Lens' DisksScopedListWarning (Maybe DisksScopedListWarningCode)+dslwCode = lens _dslwCode (\ s a -> s{_dslwCode = a})++-- | [Output Only] Optional human-readable details for this warning.+dslwMessage :: Lens' DisksScopedListWarning (Maybe Text)+dslwMessage+  = lens _dslwMessage (\ s a -> s{_dslwMessage = a})++instance FromJSON DisksScopedListWarning where+        parseJSON+          = withObject "DisksScopedListWarning"+              (\ o ->+                 DisksScopedListWarning <$>+                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>+                     (o .:? "message"))++instance ToJSON DisksScopedListWarning where+        toJSON DisksScopedListWarning{..}+          = object+              (catMaybes+                 [("data" .=) <$> _dslwData,+                  ("code" .=) <$> _dslwCode,+                  ("message" .=) <$> _dslwMessage])++-- | A map of scoped target vpn gateway lists.+--+-- /See:/ 'targetVPNGatewayAggregatedListItems' smart constructor.+newtype TargetVPNGatewayAggregatedListItems = TargetVPNGatewayAggregatedListItems+    { _tvgaliAddtional :: HashMap Text TargetVPNGatewaysScopedList+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TargetVPNGatewayAggregatedListItems' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tvgaliAddtional'+targetVPNGatewayAggregatedListItems+    :: HashMap Text TargetVPNGatewaysScopedList -- ^ 'tvgaliAddtional'+    -> TargetVPNGatewayAggregatedListItems+targetVPNGatewayAggregatedListItems pTvgaliAddtional_ =+    TargetVPNGatewayAggregatedListItems+    { _tvgaliAddtional = _Coerce # pTvgaliAddtional_+    }++-- | [Output Only] Name of the scope containing this set of target vpn+-- gateways.+tvgaliAddtional :: Lens' TargetVPNGatewayAggregatedListItems (HashMap Text TargetVPNGatewaysScopedList)+tvgaliAddtional+  = lens _tvgaliAddtional+      (\ s a -> s{_tvgaliAddtional = a})+      . _Coerce++instance FromJSON TargetVPNGatewayAggregatedListItems+         where+        parseJSON+          = withObject "TargetVPNGatewayAggregatedListItems"+              (\ o ->+                 TargetVPNGatewayAggregatedListItems <$>+                   (parseJSONObject o))++instance ToJSON TargetVPNGatewayAggregatedListItems+         where+        toJSON = toJSON . _tvgaliAddtional++-- | Informational warning which replaces the list of addresses when the list+-- is empty.+--+-- /See:/ 'targetPoolsScopedListWarning' smart constructor.+data TargetPoolsScopedListWarning = TargetPoolsScopedListWarning+    { _tpslwData    :: !(Maybe [TargetPoolsScopedListWarningDataItem])+    , _tpslwCode    :: !(Maybe TargetPoolsScopedListWarningCode)+    , _tpslwMessage :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TargetPoolsScopedListWarning' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tpslwData'+--+-- * 'tpslwCode'+--+-- * 'tpslwMessage'+targetPoolsScopedListWarning+    :: TargetPoolsScopedListWarning+targetPoolsScopedListWarning =+    TargetPoolsScopedListWarning+    { _tpslwData = Nothing+    , _tpslwCode = Nothing+    , _tpslwMessage = Nothing+    }++-- | [Output Only] Metadata for this warning in key: value format.+tpslwData :: Lens' TargetPoolsScopedListWarning [TargetPoolsScopedListWarningDataItem]+tpslwData+  = lens _tpslwData (\ s a -> s{_tpslwData = a}) .+      _Default+      . _Coerce++-- | [Output Only] The warning type identifier for this warning.+tpslwCode :: Lens' TargetPoolsScopedListWarning (Maybe TargetPoolsScopedListWarningCode)+tpslwCode+  = lens _tpslwCode (\ s a -> s{_tpslwCode = a})++-- | [Output Only] Optional human-readable details for this warning.+tpslwMessage :: Lens' TargetPoolsScopedListWarning (Maybe Text)+tpslwMessage+  = lens _tpslwMessage (\ s a -> s{_tpslwMessage = a})++instance FromJSON TargetPoolsScopedListWarning where+        parseJSON+          = withObject "TargetPoolsScopedListWarning"+              (\ o ->+                 TargetPoolsScopedListWarning <$>+                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>+                     (o .:? "message"))++instance ToJSON TargetPoolsScopedListWarning where+        toJSON TargetPoolsScopedListWarning{..}+          = object+              (catMaybes+                 [("data" .=) <$> _tpslwData,+                  ("code" .=) <$> _tpslwCode,+                  ("message" .=) <$> _tpslwMessage])++--+-- /See:/ 'healthStatus' smart constructor.+data HealthStatus = HealthStatus+    { _hsIPAddress   :: !(Maybe Text)+    , _hsHealthState :: !(Maybe HealthStatusHealthState)+    , _hsPort        :: !(Maybe (Textual Int32))+    , _hsInstance    :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'HealthStatus' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'hsIPAddress'+--+-- * 'hsHealthState'+--+-- * 'hsPort'+--+-- * 'hsInstance'+healthStatus+    :: HealthStatus+healthStatus =+    HealthStatus+    { _hsIPAddress = Nothing+    , _hsHealthState = Nothing+    , _hsPort = Nothing+    , _hsInstance = Nothing+    }++-- | The IP address represented by this resource.+hsIPAddress :: Lens' HealthStatus (Maybe Text)+hsIPAddress+  = lens _hsIPAddress (\ s a -> s{_hsIPAddress = a})++-- | Health state of the instance.+hsHealthState :: Lens' HealthStatus (Maybe HealthStatusHealthState)+hsHealthState+  = lens _hsHealthState+      (\ s a -> s{_hsHealthState = a})++-- | The port on the instance.+hsPort :: Lens' HealthStatus (Maybe Int32)+hsPort+  = lens _hsPort (\ s a -> s{_hsPort = a}) .+      mapping _Coerce++-- | URL of the instance resource.+hsInstance :: Lens' HealthStatus (Maybe Text)+hsInstance+  = lens _hsInstance (\ s a -> s{_hsInstance = a})++instance FromJSON HealthStatus where+        parseJSON+          = withObject "HealthStatus"+              (\ o ->+                 HealthStatus <$>+                   (o .:? "ipAddress") <*> (o .:? "healthState") <*>+                     (o .:? "port")+                     <*> (o .:? "instance"))++instance ToJSON HealthStatus where+        toJSON HealthStatus{..}+          = object+              (catMaybes+                 [("ipAddress" .=) <$> _hsIPAddress,+                  ("healthState" .=) <$> _hsHealthState,+                  ("port" .=) <$> _hsPort,+                  ("instance" .=) <$> _hsInstance])++-- | Region resource.+--+-- /See:/ 'region' smart constructor.+data Region = Region+    { _rrStatus            :: !(Maybe RegionStatus)+    , _rrZones             :: !(Maybe [Text])+    , _rrKind              :: !Text+    , _rrSelfLink          :: !(Maybe Text)+    , _rrName              :: !(Maybe Text)+    , _rrCreationTimestamp :: !(Maybe Text)+    , _rrQuotas            :: !(Maybe [Quota])+    , _rrId                :: !(Maybe (Textual Word64))+    , _rrDescription       :: !(Maybe Text)+    , _rrDeprecated        :: !(Maybe DeprecationStatus)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Region' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rrStatus'+--+-- * 'rrZones'+--+-- * 'rrKind'+--+-- * 'rrSelfLink'+--+-- * 'rrName'+--+-- * 'rrCreationTimestamp'+--+-- * 'rrQuotas'+--+-- * 'rrId'+--+-- * 'rrDescription'+--+-- * 'rrDeprecated'+region+    :: Region+region =+    Region+    { _rrStatus = Nothing+    , _rrZones = Nothing+    , _rrKind = "compute#region"+    , _rrSelfLink = Nothing+    , _rrName = Nothing+    , _rrCreationTimestamp = Nothing+    , _rrQuotas = Nothing+    , _rrId = Nothing+    , _rrDescription = Nothing+    , _rrDeprecated = Nothing+    }++-- | [Output Only] Status of the region, either UP or DOWN.+rrStatus :: Lens' Region (Maybe RegionStatus)+rrStatus = lens _rrStatus (\ s a -> s{_rrStatus = a})++-- | [Output Only] A list of zones available in this region, in the form of+-- resource URLs.+rrZones :: Lens' Region [Text]+rrZones+  = lens _rrZones (\ s a -> s{_rrZones = a}) . _Default+      . _Coerce++-- | [Output Only] Type of the resource. Always compute#region for regions.+rrKind :: Lens' Region Text+rrKind = lens _rrKind (\ s a -> s{_rrKind = a})++-- | [Output Only] Server-defined URL for the resource.+rrSelfLink :: Lens' Region (Maybe Text)+rrSelfLink+  = lens _rrSelfLink (\ s a -> s{_rrSelfLink = a})++-- | [Output Only] Name of the resource.+rrName :: Lens' Region (Maybe Text)+rrName = lens _rrName (\ s a -> s{_rrName = a})++-- | [Output Only] Creation timestamp in RFC3339 text format.+rrCreationTimestamp :: Lens' Region (Maybe Text)+rrCreationTimestamp+  = lens _rrCreationTimestamp+      (\ s a -> s{_rrCreationTimestamp = a})++-- | [Output Only] Quotas assigned to this region.+rrQuotas :: Lens' Region [Quota]+rrQuotas+  = lens _rrQuotas (\ s a -> s{_rrQuotas = a}) .+      _Default+      . _Coerce++-- | [Output Only] Unique identifier for the resource; defined by the server+-- .+rrId :: Lens' Region (Maybe Word64)+rrId+  = lens _rrId (\ s a -> s{_rrId = a}) .+      mapping _Coerce++-- | [Output Only] Textual description of the resource.+rrDescription :: Lens' Region (Maybe Text)+rrDescription+  = lens _rrDescription+      (\ s a -> s{_rrDescription = a})++-- | [Output Only] The deprecation status associated with this region.+rrDeprecated :: Lens' Region (Maybe DeprecationStatus)+rrDeprecated+  = lens _rrDeprecated (\ s a -> s{_rrDeprecated = a})++instance FromJSON Region where+        parseJSON+          = withObject "Region"+              (\ o ->+                 Region <$>+                   (o .:? "status") <*> (o .:? "zones" .!= mempty) <*>+                     (o .:? "kind" .!= "compute#region")+                     <*> (o .:? "selfLink")+                     <*> (o .:? "name")+                     <*> (o .:? "creationTimestamp")+                     <*> (o .:? "quotas" .!= mempty)+                     <*> (o .:? "id")+                     <*> (o .:? "description")+                     <*> (o .:? "deprecated"))++instance ToJSON Region where+        toJSON Region{..}+          = object+              (catMaybes+                 [("status" .=) <$> _rrStatus,+                  ("zones" .=) <$> _rrZones, Just ("kind" .= _rrKind),+                  ("selfLink" .=) <$> _rrSelfLink,+                  ("name" .=) <$> _rrName,+                  ("creationTimestamp" .=) <$> _rrCreationTimestamp,+                  ("quotas" .=) <$> _rrQuotas, ("id" .=) <$> _rrId,+                  ("description" .=) <$> _rrDescription,+                  ("deprecated" .=) <$> _rrDeprecated])++--+-- /See:/ 'vpnTunnel' smart constructor.+data VPNTunnel = VPNTunnel+    { _vtDetailedStatus    :: !(Maybe Text)+    , _vtStatus            :: !(Maybe VPNTunnelStatus)+    , _vtKind              :: !Text+    , _vtPeerIP            :: !(Maybe Text)+    , _vtTargetVPNGateway  :: !(Maybe Text)+    , _vtSelfLink          :: !(Maybe Text)+    , _vtSharedSecret      :: !(Maybe Text)+    , _vtName              :: !(Maybe Text)+    , _vtCreationTimestamp :: !(Maybe Text)+    , _vtSharedSecretHash  :: !(Maybe Text)+    , _vtId                :: !(Maybe (Textual Word64))+    , _vtIkeVersion        :: !(Maybe (Textual Int32))+    , _vtRegion            :: !(Maybe Text)+    , _vtDescription       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'VPNTunnel' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vtDetailedStatus'+--+-- * 'vtStatus'+--+-- * 'vtKind'+--+-- * 'vtPeerIP'+--+-- * 'vtTargetVPNGateway'+--+-- * 'vtSelfLink'+--+-- * 'vtSharedSecret'+--+-- * 'vtName'+--+-- * 'vtCreationTimestamp'+--+-- * 'vtSharedSecretHash'+--+-- * 'vtId'+--+-- * 'vtIkeVersion'+--+-- * 'vtRegion'+--+-- * 'vtDescription'+vpnTunnel+    :: VPNTunnel+vpnTunnel =+    VPNTunnel+    { _vtDetailedStatus = Nothing+    , _vtStatus = Nothing+    , _vtKind = "compute#vpnTunnel"+    , _vtPeerIP = Nothing+    , _vtTargetVPNGateway = Nothing+    , _vtSelfLink = Nothing+    , _vtSharedSecret = Nothing+    , _vtName = Nothing+    , _vtCreationTimestamp = Nothing+    , _vtSharedSecretHash = Nothing+    , _vtId = Nothing+    , _vtIkeVersion = Nothing+    , _vtRegion = Nothing+    , _vtDescription = Nothing+    }++-- | [Output Only] Detailed status message for the VPN tunnel.+vtDetailedStatus :: Lens' VPNTunnel (Maybe Text)+vtDetailedStatus+  = lens _vtDetailedStatus+      (\ s a -> s{_vtDetailedStatus = a})++-- | [Output Only] The status of the VPN tunnel.+vtStatus :: Lens' VPNTunnel (Maybe VPNTunnelStatus)+vtStatus = lens _vtStatus (\ s a -> s{_vtStatus = a})++-- | [Output Only] Type of resource. Always compute#vpnTunnel for VPN+-- tunnels.+vtKind :: Lens' VPNTunnel Text+vtKind = lens _vtKind (\ s a -> s{_vtKind = a})++-- | IP address of the peer VPN gateway.+vtPeerIP :: Lens' VPNTunnel (Maybe Text)+vtPeerIP = lens _vtPeerIP (\ s a -> s{_vtPeerIP = a})++-- | URL of the VPN gateway to which this VPN tunnel is associated. Provided+-- by the client when the VPN tunnel is created.+vtTargetVPNGateway :: Lens' VPNTunnel (Maybe Text)+vtTargetVPNGateway+  = lens _vtTargetVPNGateway+      (\ s a -> s{_vtTargetVPNGateway = a})++-- | [Output Only] Server-defined URL for the resource.+vtSelfLink :: Lens' VPNTunnel (Maybe Text)+vtSelfLink+  = lens _vtSelfLink (\ s a -> s{_vtSelfLink = a})++-- | Shared secret used to set the secure session between the GCE VPN gateway+-- and the peer VPN gateway.+vtSharedSecret :: Lens' VPNTunnel (Maybe Text)+vtSharedSecret+  = lens _vtSharedSecret+      (\ s a -> s{_vtSharedSecret = a})++-- | Name of the resource; provided by the client when the resource is+-- created. The name must be 1-63 characters long, and comply with RFC1035.+-- Specifically, the name must be 1-63 characters long and match the+-- regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first+-- character must be a lowercase letter, and all following characters must+-- be a dash, lowercase letter, or digit, except the last character, which+-- cannot be a dash.+vtName :: Lens' VPNTunnel (Maybe Text)+vtName = lens _vtName (\ s a -> s{_vtName = a})++-- | [Output Only] Creation timestamp in RFC3339 text format.+vtCreationTimestamp :: Lens' VPNTunnel (Maybe Text)+vtCreationTimestamp+  = lens _vtCreationTimestamp+      (\ s a -> s{_vtCreationTimestamp = a})++-- | Hash of the shared secret.+vtSharedSecretHash :: Lens' VPNTunnel (Maybe Text)+vtSharedSecretHash+  = lens _vtSharedSecretHash+      (\ s a -> s{_vtSharedSecretHash = a})++-- | [Output Only] Unique identifier for the resource. Defined by the server.+vtId :: Lens' VPNTunnel (Maybe Word64)+vtId+  = lens _vtId (\ s a -> s{_vtId = a}) .+      mapping _Coerce++-- | IKE protocol version to use when establishing the VPN tunnel with peer+-- VPN gateway. Acceptable IKE versions are 1 or 2. Default version is 2.+vtIkeVersion :: Lens' VPNTunnel (Maybe Int32)+vtIkeVersion+  = lens _vtIkeVersion (\ s a -> s{_vtIkeVersion = a})+      . mapping _Coerce++-- | [Output Only] URL of the region where the VPN tunnel resides.+vtRegion :: Lens' VPNTunnel (Maybe Text)+vtRegion = lens _vtRegion (\ s a -> s{_vtRegion = a})++-- | An optional textual description of the resource. Provided by the client+-- when the resource is created.+vtDescription :: Lens' VPNTunnel (Maybe Text)+vtDescription+  = lens _vtDescription+      (\ s a -> s{_vtDescription = a})++instance FromJSON VPNTunnel where+        parseJSON+          = withObject "VPNTunnel"+              (\ o ->+                 VPNTunnel <$>+                   (o .:? "detailedStatus") <*> (o .:? "status") <*>+                     (o .:? "kind" .!= "compute#vpnTunnel")+                     <*> (o .:? "peerIp")+                     <*> (o .:? "targetVpnGateway")+                     <*> (o .:? "selfLink")+                     <*> (o .:? "sharedSecret")+                     <*> (o .:? "name")+                     <*> (o .:? "creationTimestamp")+                     <*> (o .:? "sharedSecretHash")+                     <*> (o .:? "id")+                     <*> (o .:? "ikeVersion")+                     <*> (o .:? "region")+                     <*> (o .:? "description"))++instance ToJSON VPNTunnel where+        toJSON VPNTunnel{..}+          = object+              (catMaybes+                 [("detailedStatus" .=) <$> _vtDetailedStatus,+                  ("status" .=) <$> _vtStatus,+                  Just ("kind" .= _vtKind),+                  ("peerIp" .=) <$> _vtPeerIP,+                  ("targetVpnGateway" .=) <$> _vtTargetVPNGateway,+                  ("selfLink" .=) <$> _vtSelfLink,+                  ("sharedSecret" .=) <$> _vtSharedSecret,+                  ("name" .=) <$> _vtName,+                  ("creationTimestamp" .=) <$> _vtCreationTimestamp,+                  ("sharedSecretHash" .=) <$> _vtSharedSecretHash,+                  ("id" .=) <$> _vtId,+                  ("ikeVersion" .=) <$> _vtIkeVersion,+                  ("region" .=) <$> _vtRegion,+                  ("description" .=) <$> _vtDescription])++-- | [Output Only] Informational warning which replaces the list of+-- operations when the list is empty.+--+-- /See:/ 'operationsScopedListWarning' smart constructor.+data OperationsScopedListWarning = OperationsScopedListWarning+    { _oslwData    :: !(Maybe [OperationsScopedListWarningDataItem])+    , _oslwCode    :: !(Maybe OperationsScopedListWarningCode)+    , _oslwMessage :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'OperationsScopedListWarning' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'oslwData'+--+-- * 'oslwCode'+--+-- * 'oslwMessage'+operationsScopedListWarning+    :: OperationsScopedListWarning+operationsScopedListWarning =+    OperationsScopedListWarning+    { _oslwData = Nothing+    , _oslwCode = Nothing+    , _oslwMessage = Nothing+    }++-- | [Output Only] Metadata for this warning in key: value format.+oslwData :: Lens' OperationsScopedListWarning [OperationsScopedListWarningDataItem]+oslwData+  = lens _oslwData (\ s a -> s{_oslwData = a}) .+      _Default+      . _Coerce++-- | [Output Only] The warning type identifier for this warning.+oslwCode :: Lens' OperationsScopedListWarning (Maybe OperationsScopedListWarningCode)+oslwCode = lens _oslwCode (\ s a -> s{_oslwCode = a})++-- | [Output Only] Optional human-readable details for this warning.+oslwMessage :: Lens' OperationsScopedListWarning (Maybe Text)+oslwMessage+  = lens _oslwMessage (\ s a -> s{_oslwMessage = a})++instance FromJSON OperationsScopedListWarning where+        parseJSON+          = withObject "OperationsScopedListWarning"+              (\ o ->+                 OperationsScopedListWarning <$>+                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>+                     (o .:? "message"))++instance ToJSON OperationsScopedListWarning where+        toJSON OperationsScopedListWarning{..}+          = object+              (catMaybes+                 [("data" .=) <$> _oslwData,+                  ("code" .=) <$> _oslwCode,+                  ("message" .=) <$> _oslwMessage])++-- | Sets the scheduling options for an Instance.+--+-- /See:/ 'scheduling' smart constructor.+data Scheduling = Scheduling+    { _sAutomaticRestart  :: !(Maybe Bool)+    , _sOnHostMaintenance :: !(Maybe SchedulingOnHostMaintenance)+    , _sPreemptible       :: !(Maybe Bool)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Scheduling' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sAutomaticRestart'+--+-- * 'sOnHostMaintenance'+--+-- * 'sPreemptible'+scheduling+    :: Scheduling+scheduling =+    Scheduling+    { _sAutomaticRestart = Nothing+    , _sOnHostMaintenance = Nothing+    , _sPreemptible = Nothing+    }++-- | Specifies whether the instance should be automatically restarted if it+-- is terminated by Compute Engine (not terminated by a user). You can only+-- set the automatic restart option for standard instances. Preemptible+-- instances cannot be automatically restarted.+sAutomaticRestart :: Lens' Scheduling (Maybe Bool)+sAutomaticRestart+  = lens _sAutomaticRestart+      (\ s a -> s{_sAutomaticRestart = a})++-- | Defines the maintenance behavior for this instance. For standard+-- instances, the default behavior is MIGRATE. For preemptible instances,+-- the default and only possible behavior is TERMINATE. For more+-- information, see Setting maintenance behavior.+sOnHostMaintenance :: Lens' Scheduling (Maybe SchedulingOnHostMaintenance)+sOnHostMaintenance+  = lens _sOnHostMaintenance+      (\ s a -> s{_sOnHostMaintenance = a})++-- | Whether the instance is preemptible.+sPreemptible :: Lens' Scheduling (Maybe Bool)+sPreemptible+  = lens _sPreemptible (\ s a -> s{_sPreemptible = a})++instance FromJSON Scheduling where+        parseJSON+          = withObject "Scheduling"+              (\ o ->+                 Scheduling <$>+                   (o .:? "automaticRestart") <*>+                     (o .:? "onHostMaintenance")+                     <*> (o .:? "preemptible"))++instance ToJSON Scheduling where+        toJSON Scheduling{..}+          = object+              (catMaybes+                 [("automaticRestart" .=) <$> _sAutomaticRestart,+                  ("onHostMaintenance" .=) <$> _sOnHostMaintenance,+                  ("preemptible" .=) <$> _sPreemptible])++--+-- /See:/ 'vpnTunnelsScopedListWarningDataItem' smart constructor.+data VPNTunnelsScopedListWarningDataItem = VPNTunnelsScopedListWarningDataItem+    { _vtslwdiValue :: !(Maybe Text)+    , _vtslwdiKey   :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'VPNTunnelsScopedListWarningDataItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vtslwdiValue'+--+-- * 'vtslwdiKey'+vpnTunnelsScopedListWarningDataItem+    :: VPNTunnelsScopedListWarningDataItem+vpnTunnelsScopedListWarningDataItem =+    VPNTunnelsScopedListWarningDataItem+    { _vtslwdiValue = Nothing+    , _vtslwdiKey = Nothing+    }++-- | [Output Only] A warning data value corresponding to the key.+vtslwdiValue :: Lens' VPNTunnelsScopedListWarningDataItem (Maybe Text)+vtslwdiValue+  = lens _vtslwdiValue (\ s a -> s{_vtslwdiValue = a})++-- | [Output Only] A key for the warning data.+vtslwdiKey :: Lens' VPNTunnelsScopedListWarningDataItem (Maybe Text)+vtslwdiKey+  = lens _vtslwdiKey (\ s a -> s{_vtslwdiKey = a})++instance FromJSON VPNTunnelsScopedListWarningDataItem+         where+        parseJSON+          = withObject "VPNTunnelsScopedListWarningDataItem"+              (\ o ->+                 VPNTunnelsScopedListWarningDataItem <$>+                   (o .:? "value") <*> (o .:? "key"))++instance ToJSON VPNTunnelsScopedListWarningDataItem+         where+        toJSON VPNTunnelsScopedListWarningDataItem{..}+          = object+              (catMaybes+                 [("value" .=) <$> _vtslwdiValue,+                  ("key" .=) <$> _vtslwdiKey])++-- | Informational warning which replaces the list of forwarding rules when+-- the list is empty.+--+-- /See:/ 'forwardingRulesScopedListWarning' smart constructor.+data ForwardingRulesScopedListWarning = ForwardingRulesScopedListWarning+    { _frslwData    :: !(Maybe [ForwardingRulesScopedListWarningDataItem])+    , _frslwCode    :: !(Maybe ForwardingRulesScopedListWarningCode)+    , _frslwMessage :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ForwardingRulesScopedListWarning' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'frslwData'+--+-- * 'frslwCode'+--+-- * 'frslwMessage'+forwardingRulesScopedListWarning+    :: ForwardingRulesScopedListWarning+forwardingRulesScopedListWarning =+    ForwardingRulesScopedListWarning+    { _frslwData = Nothing+    , _frslwCode = Nothing+    , _frslwMessage = Nothing+    }++-- | [Output Only] Metadata for this warning in key: value format.+frslwData :: Lens' ForwardingRulesScopedListWarning [ForwardingRulesScopedListWarningDataItem]+frslwData+  = lens _frslwData (\ s a -> s{_frslwData = a}) .+      _Default+      . _Coerce++-- | [Output Only] The warning type identifier for this warning.+frslwCode :: Lens' ForwardingRulesScopedListWarning (Maybe ForwardingRulesScopedListWarningCode)+frslwCode+  = lens _frslwCode (\ s a -> s{_frslwCode = a})++-- | [Output Only] Optional human-readable details for this warning.+frslwMessage :: Lens' ForwardingRulesScopedListWarning (Maybe Text)+frslwMessage+  = lens _frslwMessage (\ s a -> s{_frslwMessage = a})++instance FromJSON ForwardingRulesScopedListWarning+         where+        parseJSON+          = withObject "ForwardingRulesScopedListWarning"+              (\ o ->+                 ForwardingRulesScopedListWarning <$>+                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>+                     (o .:? "message"))++instance ToJSON ForwardingRulesScopedListWarning+         where+        toJSON ForwardingRulesScopedListWarning{..}+          = object+              (catMaybes+                 [("data" .=) <$> _frslwData,+                  ("code" .=) <$> _frslwCode,+                  ("message" .=) <$> _frslwMessage])++-- | Contains a list of HttpHealthCheck resources.+--+-- /See:/ 'hTTPHealthCheckList' smart constructor.+data HTTPHealthCheckList = HTTPHealthCheckList+    { _httphclNextPageToken :: !(Maybe Text)+    , _httphclKind          :: !Text+    , _httphclItems         :: !(Maybe [HTTPHealthCheck])+    , _httphclSelfLink      :: !(Maybe Text)+    , _httphclId            :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'HTTPHealthCheckList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'httphclNextPageToken'+--+-- * 'httphclKind'+--+-- * 'httphclItems'+--+-- * 'httphclSelfLink'+--+-- * 'httphclId'+hTTPHealthCheckList+    :: HTTPHealthCheckList+hTTPHealthCheckList =+    HTTPHealthCheckList+    { _httphclNextPageToken = Nothing+    , _httphclKind = "compute#httpHealthCheckList"+    , _httphclItems = Nothing+    , _httphclSelfLink = Nothing+    , _httphclId = Nothing+    }++-- | [Output Only] A token used to continue a truncated list request.+httphclNextPageToken :: Lens' HTTPHealthCheckList (Maybe Text)+httphclNextPageToken+  = lens _httphclNextPageToken+      (\ s a -> s{_httphclNextPageToken = a})++-- | Type of resource.+httphclKind :: Lens' HTTPHealthCheckList Text+httphclKind+  = lens _httphclKind (\ s a -> s{_httphclKind = a})++-- | A list of HttpHealthCheck resources.+httphclItems :: Lens' HTTPHealthCheckList [HTTPHealthCheck]+httphclItems+  = lens _httphclItems (\ s a -> s{_httphclItems = a})+      . _Default+      . _Coerce++-- | [Output Only] Server-defined URL for this resource.+httphclSelfLink :: Lens' HTTPHealthCheckList (Maybe Text)+httphclSelfLink+  = lens _httphclSelfLink+      (\ s a -> s{_httphclSelfLink = a})++-- | [Output Only] Unique identifier for the resource. Defined by the server.+httphclId :: Lens' HTTPHealthCheckList (Maybe Text)+httphclId+  = lens _httphclId (\ s a -> s{_httphclId = a})++instance FromJSON HTTPHealthCheckList where+        parseJSON+          = withObject "HTTPHealthCheckList"+              (\ o ->+                 HTTPHealthCheckList <$>+                   (o .:? "nextPageToken") <*>+                     (o .:? "kind" .!= "compute#httpHealthCheckList")+                     <*> (o .:? "items" .!= mempty)+                     <*> (o .:? "selfLink")+                     <*> (o .:? "id"))++instance ToJSON HTTPHealthCheckList where+        toJSON HTTPHealthCheckList{..}+          = object+              (catMaybes+                 [("nextPageToken" .=) <$> _httphclNextPageToken,+                  Just ("kind" .= _httphclKind),+                  ("items" .=) <$> _httphclItems,+                  ("selfLink" .=) <$> _httphclSelfLink,+                  ("id" .=) <$> _httphclId])++-- | [Output Only] The warning that replaces the list of managed instance+-- groups when the list is empty.+--+-- /See:/ 'instanceGroupManagersScopedListWarning' smart constructor.+data InstanceGroupManagersScopedListWarning = InstanceGroupManagersScopedListWarning+    { _igmslwData    :: !(Maybe [InstanceGroupManagersScopedListWarningDataItem])+    , _igmslwCode    :: !(Maybe InstanceGroupManagersScopedListWarningCode)+    , _igmslwMessage :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstanceGroupManagersScopedListWarning' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'igmslwData'+--+-- * 'igmslwCode'+--+-- * 'igmslwMessage'+instanceGroupManagersScopedListWarning+    :: InstanceGroupManagersScopedListWarning+instanceGroupManagersScopedListWarning =+    InstanceGroupManagersScopedListWarning+    { _igmslwData = Nothing+    , _igmslwCode = Nothing+    , _igmslwMessage = Nothing+    }++-- | [Output Only] Metadata for this warning in key: value format.+igmslwData :: Lens' InstanceGroupManagersScopedListWarning [InstanceGroupManagersScopedListWarningDataItem]+igmslwData+  = lens _igmslwData (\ s a -> s{_igmslwData = a}) .+      _Default+      . _Coerce++-- | [Output Only] The warning type identifier for this warning.+igmslwCode :: Lens' InstanceGroupManagersScopedListWarning (Maybe InstanceGroupManagersScopedListWarningCode)+igmslwCode+  = lens _igmslwCode (\ s a -> s{_igmslwCode = a})++-- | [Output Only] Optional human-readable details for this warning.+igmslwMessage :: Lens' InstanceGroupManagersScopedListWarning (Maybe Text)+igmslwMessage+  = lens _igmslwMessage+      (\ s a -> s{_igmslwMessage = a})++instance FromJSON+         InstanceGroupManagersScopedListWarning where+        parseJSON+          = withObject "InstanceGroupManagersScopedListWarning"+              (\ o ->+                 InstanceGroupManagersScopedListWarning <$>+                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>+                     (o .:? "message"))++instance ToJSON+         InstanceGroupManagersScopedListWarning where+        toJSON InstanceGroupManagersScopedListWarning{..}+          = object+              (catMaybes+                 [("data" .=) <$> _igmslwData,+                  ("code" .=) <$> _igmslwCode,+                  ("message" .=) <$> _igmslwMessage])++--+-- /See:/ 'urlMapsValidateRequest' smart constructor.+newtype URLMapsValidateRequest = URLMapsValidateRequest+    { _umvrResource :: Maybe URLMap+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'URLMapsValidateRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'umvrResource'+urlMapsValidateRequest+    :: URLMapsValidateRequest+urlMapsValidateRequest =+    URLMapsValidateRequest+    { _umvrResource = Nothing+    }++-- | Content of the UrlMap to be validated.+umvrResource :: Lens' URLMapsValidateRequest (Maybe URLMap)+umvrResource+  = lens _umvrResource (\ s a -> s{_umvrResource = a})++instance FromJSON URLMapsValidateRequest where+        parseJSON+          = withObject "URLMapsValidateRequest"+              (\ o ->+                 URLMapsValidateRequest <$> (o .:? "resource"))++instance ToJSON URLMapsValidateRequest where+        toJSON URLMapsValidateRequest{..}+          = object+              (catMaybes [("resource" .=) <$> _umvrResource])++--+-- /See:/ 'instanceGroupManagersSetTargetPoolsRequest' smart constructor.+data InstanceGroupManagersSetTargetPoolsRequest = InstanceGroupManagersSetTargetPoolsRequest+    { _igmstprFingerprint :: !(Maybe (Textual Word8))+    , _igmstprTargetPools :: !(Maybe [Text])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstanceGroupManagersSetTargetPoolsRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'igmstprFingerprint'+--+-- * 'igmstprTargetPools'+instanceGroupManagersSetTargetPoolsRequest+    :: InstanceGroupManagersSetTargetPoolsRequest+instanceGroupManagersSetTargetPoolsRequest =+    InstanceGroupManagersSetTargetPoolsRequest+    { _igmstprFingerprint = Nothing+    , _igmstprTargetPools = Nothing+    }++-- | The fingerprint of the target pools information. Use this optional+-- property to prevent conflicts when multiple users change the target+-- pools settings concurrently. Obtain the fingerprint with the+-- instanceGroupManagers.get method. Then, include the fingerprint in your+-- request to ensure that you do not overwrite changes that were applied+-- from another concurrent request.+igmstprFingerprint :: Lens' InstanceGroupManagersSetTargetPoolsRequest (Maybe Word8)+igmstprFingerprint+  = lens _igmstprFingerprint+      (\ s a -> s{_igmstprFingerprint = a})+      . mapping _Coerce++-- | The list of target pool URLs that instances in this managed instance+-- group belong to. The managed instance group applies these target pools+-- to all of the instances in the group. Existing instances and new+-- instances in the group all receive these target pool settings.+igmstprTargetPools :: Lens' InstanceGroupManagersSetTargetPoolsRequest [Text]+igmstprTargetPools+  = lens _igmstprTargetPools+      (\ s a -> s{_igmstprTargetPools = a})+      . _Default+      . _Coerce++instance FromJSON+         InstanceGroupManagersSetTargetPoolsRequest where+        parseJSON+          = withObject+              "InstanceGroupManagersSetTargetPoolsRequest"+              (\ o ->+                 InstanceGroupManagersSetTargetPoolsRequest <$>+                   (o .:? "fingerprint") <*>+                     (o .:? "targetPools" .!= mempty))++instance ToJSON+         InstanceGroupManagersSetTargetPoolsRequest where+        toJSON InstanceGroupManagersSetTargetPoolsRequest{..}+          = object+              (catMaybes+                 [("fingerprint" .=) <$> _igmstprFingerprint,+                  ("targetPools" .=) <$> _igmstprTargetPools])++-- | Contains a list of HttpsHealthCheck resources.+--+-- /See:/ 'httpsHealthCheckList' smart constructor.+data HTTPSHealthCheckList = HTTPSHealthCheckList+    { _hhclNextPageToken :: !(Maybe Text)+    , _hhclKind          :: !Text+    , _hhclItems         :: !(Maybe [HTTPSHealthCheck])+    , _hhclSelfLink      :: !(Maybe Text)+    , _hhclId            :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'HTTPSHealthCheckList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'hhclNextPageToken'+--+-- * 'hhclKind'+--+-- * 'hhclItems'+--+-- * 'hhclSelfLink'+--+-- * 'hhclId'+httpsHealthCheckList+    :: HTTPSHealthCheckList+httpsHealthCheckList =+    HTTPSHealthCheckList+    { _hhclNextPageToken = Nothing+    , _hhclKind = "compute#httpsHealthCheckList"+    , _hhclItems = Nothing+    , _hhclSelfLink = Nothing+    , _hhclId = Nothing+    }++-- | [Output Only] A token used to continue a truncated list request.+hhclNextPageToken :: Lens' HTTPSHealthCheckList (Maybe Text)+hhclNextPageToken+  = lens _hhclNextPageToken+      (\ s a -> s{_hhclNextPageToken = a})++-- | Type of resource.+hhclKind :: Lens' HTTPSHealthCheckList Text+hhclKind = lens _hhclKind (\ s a -> s{_hhclKind = a})++-- | A list of HttpsHealthCheck resources.+hhclItems :: Lens' HTTPSHealthCheckList [HTTPSHealthCheck]+hhclItems+  = lens _hhclItems (\ s a -> s{_hhclItems = a}) .+      _Default+      . _Coerce++-- | [Output Only] Server-defined URL for this resource.+hhclSelfLink :: Lens' HTTPSHealthCheckList (Maybe Text)+hhclSelfLink+  = lens _hhclSelfLink (\ s a -> s{_hhclSelfLink = a})++-- | [Output Only] Unique identifier for the resource; defined by the server.+hhclId :: Lens' HTTPSHealthCheckList (Maybe Text)+hhclId = lens _hhclId (\ s a -> s{_hhclId = a})++instance FromJSON HTTPSHealthCheckList where+        parseJSON+          = withObject "HTTPSHealthCheckList"+              (\ o ->+                 HTTPSHealthCheckList <$>+                   (o .:? "nextPageToken") <*>+                     (o .:? "kind" .!= "compute#httpsHealthCheckList")+                     <*> (o .:? "items" .!= mempty)+                     <*> (o .:? "selfLink")+                     <*> (o .:? "id"))++instance ToJSON HTTPSHealthCheckList where+        toJSON HTTPSHealthCheckList{..}+          = object+              (catMaybes+                 [("nextPageToken" .=) <$> _hhclNextPageToken,+                  Just ("kind" .= _hhclKind),+                  ("items" .=) <$> _hhclItems,+                  ("selfLink" .=) <$> _hhclSelfLink,+                  ("id" .=) <$> _hhclId])++--+-- /See:/ 'operationErrorErrorsItem' smart constructor.+data OperationErrorErrorsItem = OperationErrorErrorsItem+    { _oeeiLocation :: !(Maybe Text)+    , _oeeiCode     :: !(Maybe Text)+    , _oeeiMessage  :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'OperationErrorErrorsItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'oeeiLocation'+--+-- * 'oeeiCode'+--+-- * 'oeeiMessage'+operationErrorErrorsItem+    :: OperationErrorErrorsItem+operationErrorErrorsItem =+    OperationErrorErrorsItem+    { _oeeiLocation = Nothing+    , _oeeiCode = Nothing+    , _oeeiMessage = Nothing+    }++-- | [Output Only] Indicates the field in the request which caused the error.+-- This property is optional.+oeeiLocation :: Lens' OperationErrorErrorsItem (Maybe Text)+oeeiLocation+  = lens _oeeiLocation (\ s a -> s{_oeeiLocation = a})++-- | [Output Only] The error type identifier for this error.+oeeiCode :: Lens' OperationErrorErrorsItem (Maybe Text)+oeeiCode = lens _oeeiCode (\ s a -> s{_oeeiCode = a})++-- | [Output Only] An optional, human-readable error message.+oeeiMessage :: Lens' OperationErrorErrorsItem (Maybe Text)+oeeiMessage+  = lens _oeeiMessage (\ s a -> s{_oeeiMessage = a})++instance FromJSON OperationErrorErrorsItem where+        parseJSON+          = withObject "OperationErrorErrorsItem"+              (\ o ->+                 OperationErrorErrorsItem <$>+                   (o .:? "location") <*> (o .:? "code") <*>+                     (o .:? "message"))++instance ToJSON OperationErrorErrorsItem where+        toJSON OperationErrorErrorsItem{..}+          = object+              (catMaybes+                 [("location" .=) <$> _oeeiLocation,+                  ("code" .=) <$> _oeeiCode,+                  ("message" .=) <$> _oeeiMessage])++-- | A license resource.+--+-- /See:/ 'license' smart constructor.+data License = License+    { _lChargesUseFee :: !(Maybe Bool)+    , _lKind          :: !Text+    , _lSelfLink      :: !(Maybe Text)+    , _lName          :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'License' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lChargesUseFee'+--+-- * 'lKind'+--+-- * 'lSelfLink'+--+-- * 'lName'+license+    :: License+license =+    License+    { _lChargesUseFee = Nothing+    , _lKind = "compute#license"+    , _lSelfLink = Nothing+    , _lName = Nothing+    }++-- | If true, the customer will be charged license fee for running software+-- that contains this license on an instance.+lChargesUseFee :: Lens' License (Maybe Bool)+lChargesUseFee+  = lens _lChargesUseFee+      (\ s a -> s{_lChargesUseFee = a})++-- | [Output Only] Type of resource. Always compute#license for licenses.+lKind :: Lens' License Text+lKind = lens _lKind (\ s a -> s{_lKind = a})++-- | [Output Only] Server-defined URL for the resource.+lSelfLink :: Lens' License (Maybe Text)+lSelfLink+  = lens _lSelfLink (\ s a -> s{_lSelfLink = a})++-- | [Output Only] Name of the resource. The name is 1-63 characters long and+-- complies with RFC1035.+lName :: Lens' License (Maybe Text)+lName = lens _lName (\ s a -> s{_lName = a})++instance FromJSON License where+        parseJSON+          = withObject "License"+              (\ o ->+                 License <$>+                   (o .:? "chargesUseFee") <*>+                     (o .:? "kind" .!= "compute#license")+                     <*> (o .:? "selfLink")+                     <*> (o .:? "name"))++instance ToJSON License where+        toJSON License{..}+          = object+              (catMaybes+                 [("chargesUseFee" .=) <$> _lChargesUseFee,+                  Just ("kind" .= _lKind),+                  ("selfLink" .=) <$> _lSelfLink,+                  ("name" .=) <$> _lName])++-- | A path-matching rule for a URL. If matched, will use the specified+-- BackendService to handle the traffic arriving at this URL.+--+-- /See:/ 'pathRule' smart constructor.+data PathRule = PathRule+    { _prService :: !(Maybe Text)+    , _prPaths   :: !(Maybe [Text])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'PathRule' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'prService'+--+-- * 'prPaths'+pathRule+    :: PathRule+pathRule =+    PathRule+    { _prService = Nothing+    , _prPaths = Nothing+    }++-- | The URL of the BackendService resource if this rule is matched.+prService :: Lens' PathRule (Maybe Text)+prService+  = lens _prService (\ s a -> s{_prService = a})++-- | The list of path patterns to match. Each must start with \/ and the only+-- place a * is allowed is at the end following a \/. The string fed to the+-- path matcher does not include any text after the first ? or #, and those+-- chars are not allowed here.+prPaths :: Lens' PathRule [Text]+prPaths+  = lens _prPaths (\ s a -> s{_prPaths = a}) . _Default+      . _Coerce++instance FromJSON PathRule where+        parseJSON+          = withObject "PathRule"+              (\ o ->+                 PathRule <$>+                   (o .:? "service") <*> (o .:? "paths" .!= mempty))++instance ToJSON PathRule where+        toJSON PathRule{..}+          = object+              (catMaybes+                 [("service" .=) <$> _prService,+                  ("paths" .=) <$> _prPaths])++-- | Contains a list of instance resources.+--+-- /See:/ 'instanceList' smart constructor.+data InstanceList = InstanceList+    { _insNextPageToken :: !(Maybe Text)+    , _insKind          :: !Text+    , _insItems         :: !(Maybe [Instance])+    , _insSelfLink      :: !(Maybe Text)+    , _insId            :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstanceList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'insNextPageToken'+--+-- * 'insKind'+--+-- * 'insItems'+--+-- * 'insSelfLink'+--+-- * 'insId'+instanceList+    :: InstanceList+instanceList =+    InstanceList+    { _insNextPageToken = Nothing+    , _insKind = "compute#instanceList"+    , _insItems = Nothing+    , _insSelfLink = Nothing+    , _insId = Nothing+    }++-- | [Output Only] A token used to continue a truncated list request.+insNextPageToken :: Lens' InstanceList (Maybe Text)+insNextPageToken+  = lens _insNextPageToken+      (\ s a -> s{_insNextPageToken = a})++-- | [Output Only] Type of resource. Always compute#instanceList for lists of+-- Instance resources.+insKind :: Lens' InstanceList Text+insKind = lens _insKind (\ s a -> s{_insKind = a})++-- | [Output Only] A list of Instance resources.+insItems :: Lens' InstanceList [Instance]+insItems+  = lens _insItems (\ s a -> s{_insItems = a}) .+      _Default+      . _Coerce++-- | [Output Only] Server defined URL for this resource.+insSelfLink :: Lens' InstanceList (Maybe Text)+insSelfLink+  = lens _insSelfLink (\ s a -> s{_insSelfLink = a})++-- | [Output Only] Unique identifier for the resource; defined by the server.+insId :: Lens' InstanceList (Maybe Text)+insId = lens _insId (\ s a -> s{_insId = a})++instance FromJSON InstanceList where+        parseJSON+          = withObject "InstanceList"+              (\ o ->+                 InstanceList <$>+                   (o .:? "nextPageToken") <*>+                     (o .:? "kind" .!= "compute#instanceList")+                     <*> (o .:? "items" .!= mempty)+                     <*> (o .:? "selfLink")+                     <*> (o .:? "id"))++instance ToJSON InstanceList where+        toJSON InstanceList{..}+          = object+              (catMaybes+                 [("nextPageToken" .=) <$> _insNextPageToken,+                  Just ("kind" .= _insKind),+                  ("items" .=) <$> _insItems,+                  ("selfLink" .=) <$> _insSelfLink,+                  ("id" .=) <$> _insId])++--+-- /See:/ 'managedInstanceLastAttempt' smart constructor.+newtype ManagedInstanceLastAttempt = ManagedInstanceLastAttempt+    { _milaErrors :: Maybe ManagedInstanceLastAttemptErrors+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ManagedInstanceLastAttempt' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'milaErrors'+managedInstanceLastAttempt+    :: ManagedInstanceLastAttempt+managedInstanceLastAttempt =+    ManagedInstanceLastAttempt+    { _milaErrors = Nothing+    }++-- | [Output Only] Encountered errors during the last attempt to create or+-- delete the instance.+milaErrors :: Lens' ManagedInstanceLastAttempt (Maybe ManagedInstanceLastAttemptErrors)+milaErrors+  = lens _milaErrors (\ s a -> s{_milaErrors = a})++instance FromJSON ManagedInstanceLastAttempt where+        parseJSON+          = withObject "ManagedInstanceLastAttempt"+              (\ o ->+                 ManagedInstanceLastAttempt <$> (o .:? "errors"))++instance ToJSON ManagedInstanceLastAttempt where+        toJSON ManagedInstanceLastAttempt{..}+          = object (catMaybes [("errors" .=) <$> _milaErrors])++-- | Contains a list of BackendService resources.+--+-- /See:/ 'backendServiceList' smart constructor.+data BackendServiceList = BackendServiceList+    { _bslNextPageToken :: !(Maybe Text)+    , _bslKind          :: !Text+    , _bslItems         :: !(Maybe [BackendService])+    , _bslSelfLink      :: !(Maybe Text)+    , _bslId            :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'BackendServiceList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'bslNextPageToken'+--+-- * 'bslKind'+--+-- * 'bslItems'+--+-- * 'bslSelfLink'+--+-- * 'bslId'+backendServiceList+    :: BackendServiceList+backendServiceList =+    BackendServiceList+    { _bslNextPageToken = Nothing+    , _bslKind = "compute#backendServiceList"+    , _bslItems = Nothing+    , _bslSelfLink = Nothing+    , _bslId = Nothing+    }++-- | [Output Only] A token used to continue a truncated list request.+bslNextPageToken :: Lens' BackendServiceList (Maybe Text)+bslNextPageToken+  = lens _bslNextPageToken+      (\ s a -> s{_bslNextPageToken = a})++-- | [Output Only] Type of resource. Always compute#backendServiceList for+-- lists of backend services.+bslKind :: Lens' BackendServiceList Text+bslKind = lens _bslKind (\ s a -> s{_bslKind = a})++-- | A list of BackendService resources.+bslItems :: Lens' BackendServiceList [BackendService]+bslItems+  = lens _bslItems (\ s a -> s{_bslItems = a}) .+      _Default+      . _Coerce++-- | [Output Only] Server-defined URL for this resource.+bslSelfLink :: Lens' BackendServiceList (Maybe Text)+bslSelfLink+  = lens _bslSelfLink (\ s a -> s{_bslSelfLink = a})++-- | [Output Only] Unique identifier for the resource; defined by the server.+bslId :: Lens' BackendServiceList (Maybe Text)+bslId = lens _bslId (\ s a -> s{_bslId = a})++instance FromJSON BackendServiceList where+        parseJSON+          = withObject "BackendServiceList"+              (\ o ->+                 BackendServiceList <$>+                   (o .:? "nextPageToken") <*>+                     (o .:? "kind" .!= "compute#backendServiceList")+                     <*> (o .:? "items" .!= mempty)+                     <*> (o .:? "selfLink")+                     <*> (o .:? "id"))++instance ToJSON BackendServiceList where+        toJSON BackendServiceList{..}+          = object+              (catMaybes+                 [("nextPageToken" .=) <$> _bslNextPageToken,+                  Just ("kind" .= _bslKind),+                  ("items" .=) <$> _bslItems,+                  ("selfLink" .=) <$> _bslSelfLink,+                  ("id" .=) <$> _bslId])++-- | [Output Only] An informational warning that replaces the list of+-- instance groups when the list is empty.+--+-- /See:/ 'instanceGroupsScopedListWarning' smart constructor.+data InstanceGroupsScopedListWarning = InstanceGroupsScopedListWarning+    { _igslwData    :: !(Maybe [InstanceGroupsScopedListWarningDataItem])+    , _igslwCode    :: !(Maybe InstanceGroupsScopedListWarningCode)+    , _igslwMessage :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstanceGroupsScopedListWarning' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'igslwData'+--+-- * 'igslwCode'+--+-- * 'igslwMessage'+instanceGroupsScopedListWarning+    :: InstanceGroupsScopedListWarning+instanceGroupsScopedListWarning =+    InstanceGroupsScopedListWarning+    { _igslwData = Nothing+    , _igslwCode = Nothing+    , _igslwMessage = Nothing+    }++-- | [Output Only] Metadata for this warning in key: value format.+igslwData :: Lens' InstanceGroupsScopedListWarning [InstanceGroupsScopedListWarningDataItem]+igslwData+  = lens _igslwData (\ s a -> s{_igslwData = a}) .+      _Default+      . _Coerce++-- | [Output Only] The warning type identifier for this warning.+igslwCode :: Lens' InstanceGroupsScopedListWarning (Maybe InstanceGroupsScopedListWarningCode)+igslwCode+  = lens _igslwCode (\ s a -> s{_igslwCode = a})++-- | [Output Only] Optional human-readable details for this warning.+igslwMessage :: Lens' InstanceGroupsScopedListWarning (Maybe Text)+igslwMessage+  = lens _igslwMessage (\ s a -> s{_igslwMessage = a})++instance FromJSON InstanceGroupsScopedListWarning+         where+        parseJSON+          = withObject "InstanceGroupsScopedListWarning"+              (\ o ->+                 InstanceGroupsScopedListWarning <$>+                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>+                     (o .:? "message"))++instance ToJSON InstanceGroupsScopedListWarning where+        toJSON InstanceGroupsScopedListWarning{..}+          = object+              (catMaybes+                 [("data" .=) <$> _igslwData,+                  ("code" .=) <$> _igslwCode,+                  ("message" .=) <$> _igslwMessage])++-- | CPU utilization policy.+--+-- /See:/ 'autoscalingPolicyCPUUtilization' smart constructor.+newtype AutoscalingPolicyCPUUtilization = AutoscalingPolicyCPUUtilization+    { _apcuUtilizationTarget :: Maybe (Textual Double)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'AutoscalingPolicyCPUUtilization' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'apcuUtilizationTarget'+autoscalingPolicyCPUUtilization+    :: AutoscalingPolicyCPUUtilization+autoscalingPolicyCPUUtilization =+    AutoscalingPolicyCPUUtilization+    { _apcuUtilizationTarget = Nothing+    }++-- | The target utilization that the Autoscaler should maintain. It is+-- represented as a fraction of used cores. For example: 6 cores used in+-- 8-core VM are represented here as 0.75. Must be a float value between+-- (0, 1]. If not defined, the default is 0.8.+apcuUtilizationTarget :: Lens' AutoscalingPolicyCPUUtilization (Maybe Double)+apcuUtilizationTarget+  = lens _apcuUtilizationTarget+      (\ s a -> s{_apcuUtilizationTarget = a})+      . mapping _Coerce++instance FromJSON AutoscalingPolicyCPUUtilization+         where+        parseJSON+          = withObject "AutoscalingPolicyCPUUtilization"+              (\ o ->+                 AutoscalingPolicyCPUUtilization <$>+                   (o .:? "utilizationTarget"))++instance ToJSON AutoscalingPolicyCPUUtilization where+        toJSON AutoscalingPolicyCPUUtilization{..}+          = object+              (catMaybes+                 [("utilizationTarget" .=) <$>+                    _apcuUtilizationTarget])++--+-- /See:/ 'instanceGroupsScopedListWarningDataItem' smart constructor.+data InstanceGroupsScopedListWarningDataItem = InstanceGroupsScopedListWarningDataItem+    { _igslwdiValue :: !(Maybe Text)+    , _igslwdiKey   :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstanceGroupsScopedListWarningDataItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'igslwdiValue'+--+-- * 'igslwdiKey'+instanceGroupsScopedListWarningDataItem+    :: InstanceGroupsScopedListWarningDataItem+instanceGroupsScopedListWarningDataItem =+    InstanceGroupsScopedListWarningDataItem+    { _igslwdiValue = Nothing+    , _igslwdiKey = Nothing+    }++-- | [Output Only] A warning data value corresponding to the key.+igslwdiValue :: Lens' InstanceGroupsScopedListWarningDataItem (Maybe Text)+igslwdiValue+  = lens _igslwdiValue (\ s a -> s{_igslwdiValue = a})++-- | [Output Only] A key for the warning data.+igslwdiKey :: Lens' InstanceGroupsScopedListWarningDataItem (Maybe Text)+igslwdiKey+  = lens _igslwdiKey (\ s a -> s{_igslwdiKey = a})++instance FromJSON+         InstanceGroupsScopedListWarningDataItem where+        parseJSON+          = withObject+              "InstanceGroupsScopedListWarningDataItem"+              (\ o ->+                 InstanceGroupsScopedListWarningDataItem <$>+                   (o .:? "value") <*> (o .:? "key"))++instance ToJSON+         InstanceGroupsScopedListWarningDataItem where+        toJSON InstanceGroupsScopedListWarningDataItem{..}+          = object+              (catMaybes+                 [("value" .=) <$> _igslwdiValue,+                  ("key" .=) <$> _igslwdiKey])++--+-- /See:/ 'resourceGroupReference' smart constructor.+newtype ResourceGroupReference = ResourceGroupReference+    { _rgrGroup :: Maybe Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ResourceGroupReference' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rgrGroup'+resourceGroupReference+    :: ResourceGroupReference+resourceGroupReference =+    ResourceGroupReference+    { _rgrGroup = Nothing+    }++-- | A URI referencing one of the resource views listed in the backend+-- service.+rgrGroup :: Lens' ResourceGroupReference (Maybe Text)+rgrGroup = lens _rgrGroup (\ s a -> s{_rgrGroup = a})++instance FromJSON ResourceGroupReference where+        parseJSON+          = withObject "ResourceGroupReference"+              (\ o -> ResourceGroupReference <$> (o .:? "group"))++instance ToJSON ResourceGroupReference where+        toJSON ResourceGroupReference{..}+          = object (catMaybes [("group" .=) <$> _rgrGroup])++-- | A Firewall resource.+--+-- /See:/ 'firewall' smart constructor.+data Firewall = Firewall+    { _fSourceTags        :: !(Maybe [Text])+    , _fKind              :: !Text+    , _fTargetTags        :: !(Maybe [Text])+    , _fNetwork           :: !(Maybe Text)+    , _fSourceRanges      :: !(Maybe [Text])+    , _fSelfLink          :: !(Maybe Text)+    , _fName              :: !(Maybe Text)+    , _fCreationTimestamp :: !(Maybe Text)+    , _fId                :: !(Maybe (Textual Word64))+    , _fAllowed           :: !(Maybe [FirewallAllowedItem])+    , _fDescription       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Firewall' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'fSourceTags'+--+-- * 'fKind'+--+-- * 'fTargetTags'+--+-- * 'fNetwork'+--+-- * 'fSourceRanges'+--+-- * 'fSelfLink'+--+-- * 'fName'+--+-- * 'fCreationTimestamp'+--+-- * 'fId'+--+-- * 'fAllowed'+--+-- * 'fDescription'+firewall+    :: Firewall+firewall =+    Firewall+    { _fSourceTags = Nothing+    , _fKind = "compute#firewall"+    , _fTargetTags = Nothing+    , _fNetwork = Nothing+    , _fSourceRanges = Nothing+    , _fSelfLink = Nothing+    , _fName = Nothing+    , _fCreationTimestamp = Nothing+    , _fId = Nothing+    , _fAllowed = Nothing+    , _fDescription = Nothing+    }++-- | A list of instance tags which this rule applies to. One or both of+-- sourceRanges and sourceTags may be set. If both properties are set, an+-- inbound connection is allowed if the range matches the sourceRanges OR+-- the tag of the source matches the sourceTags property. The connection+-- does not need to match both properties.+fSourceTags :: Lens' Firewall [Text]+fSourceTags+  = lens _fSourceTags (\ s a -> s{_fSourceTags = a}) .+      _Default+      . _Coerce++-- | [Output Ony] Type of the resource. Always compute#firewall for firewall+-- rules.+fKind :: Lens' Firewall Text+fKind = lens _fKind (\ s a -> s{_fKind = a})++-- | A list of instance tags indicating sets of instances located in the+-- network that may make network connections as specified in allowed[]. If+-- no targetTags are specified, the firewall rule applies to all instances+-- on the specified network.+fTargetTags :: Lens' Firewall [Text]+fTargetTags+  = lens _fTargetTags (\ s a -> s{_fTargetTags = a}) .+      _Default+      . _Coerce++-- | URL of the network resource for this firewall rule. This field is+-- required for creating an instance but optional when creating a firewall+-- rule. If not specified when creating a firewall rule, the default+-- network is used: global\/networks\/default If you choose to specify this+-- property, you can specify the network as a full or partial URL. For+-- example, the following are all valid URLs: -+-- https:\/\/www.googleapis.com\/compute\/v1\/projects\/myproject\/global\/networks\/my-network+-- - projects\/myproject\/global\/networks\/my-network -+-- global\/networks\/default+fNetwork :: Lens' Firewall (Maybe Text)+fNetwork = lens _fNetwork (\ s a -> s{_fNetwork = a})++-- | The IP address blocks that this rule applies to, expressed in CIDR+-- format. One or both of sourceRanges and sourceTags may be set. If both+-- properties are set, an inbound connection is allowed if the range+-- matches the sourceRanges OR the tag of the source matches the sourceTags+-- property. The connection does not need to match both properties.+fSourceRanges :: Lens' Firewall [Text]+fSourceRanges+  = lens _fSourceRanges+      (\ s a -> s{_fSourceRanges = a})+      . _Default+      . _Coerce++-- | [Output Only] Server-defined URL for the resource.+fSelfLink :: Lens' Firewall (Maybe Text)+fSelfLink+  = lens _fSelfLink (\ s a -> s{_fSelfLink = a})++-- | Name of the resource; provided by the client when the resource is+-- created. The name must be 1-63 characters long, and comply with RFC1035.+-- Specifically, the name must be 1-63 characters long and match the+-- regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first+-- character must be a lowercase letter, and all following characters must+-- be a dash, lowercase letter, or digit, except the last character, which+-- cannot be a dash.+fName :: Lens' Firewall (Maybe Text)+fName = lens _fName (\ s a -> s{_fName = a})++-- | [Output Only] Creation timestamp in RFC3339 text format.+fCreationTimestamp :: Lens' Firewall (Maybe Text)+fCreationTimestamp+  = lens _fCreationTimestamp+      (\ s a -> s{_fCreationTimestamp = a})++-- | [Output Only] Unique identifier for the resource; defined by the server.+fId :: Lens' Firewall (Maybe Word64)+fId+  = lens _fId (\ s a -> s{_fId = a}) . mapping _Coerce++-- | The list of rules specified by this firewall. Each rule specifies a+-- protocol and port-range tuple that describes a permitted connection.+fAllowed :: Lens' Firewall [FirewallAllowedItem]+fAllowed+  = lens _fAllowed (\ s a -> s{_fAllowed = a}) .+      _Default+      . _Coerce++-- | An optional textual description of the resource; provided by the client+-- when the resource is created.+fDescription :: Lens' Firewall (Maybe Text)+fDescription+  = lens _fDescription (\ s a -> s{_fDescription = a})++instance FromJSON Firewall where+        parseJSON+          = withObject "Firewall"+              (\ o ->+                 Firewall <$>+                   (o .:? "sourceTags" .!= mempty) <*>+                     (o .:? "kind" .!= "compute#firewall")+                     <*> (o .:? "targetTags" .!= mempty)+                     <*> (o .:? "network")+                     <*> (o .:? "sourceRanges" .!= mempty)+                     <*> (o .:? "selfLink")+                     <*> (o .:? "name")+                     <*> (o .:? "creationTimestamp")+                     <*> (o .:? "id")+                     <*> (o .:? "allowed" .!= mempty)+                     <*> (o .:? "description"))++instance ToJSON Firewall where+        toJSON Firewall{..}+          = object+              (catMaybes+                 [("sourceTags" .=) <$> _fSourceTags,+                  Just ("kind" .= _fKind),+                  ("targetTags" .=) <$> _fTargetTags,+                  ("network" .=) <$> _fNetwork,+                  ("sourceRanges" .=) <$> _fSourceRanges,+                  ("selfLink" .=) <$> _fSelfLink,+                  ("name" .=) <$> _fName,+                  ("creationTimestamp" .=) <$> _fCreationTimestamp,+                  ("id" .=) <$> _fId, ("allowed" .=) <$> _fAllowed,+                  ("description" .=) <$> _fDescription])++-- | UrlMaps A host-matching rule for a URL. If matched, will use the named+-- PathMatcher to select the BackendService.+--+-- /See:/ 'hostRule' smart constructor.+data HostRule = HostRule+    { _hrHosts       :: !(Maybe [Text])+    , _hrDescription :: !(Maybe Text)+    , _hrPathMatcher :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'HostRule' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'hrHosts'+--+-- * 'hrDescription'+--+-- * 'hrPathMatcher'+hostRule+    :: HostRule+hostRule =+    HostRule+    { _hrHosts = Nothing+    , _hrDescription = Nothing+    , _hrPathMatcher = Nothing+    }++-- | The list of host patterns to match. They must be valid hostnames, except+-- * will match any string of ([a-z0-9-.]*). In that case, * must be the+-- first character and must be followed in the pattern by either - or ..+hrHosts :: Lens' HostRule [Text]+hrHosts+  = lens _hrHosts (\ s a -> s{_hrHosts = a}) . _Default+      . _Coerce++-- | An optional textual description.+hrDescription :: Lens' HostRule (Maybe Text)+hrDescription+  = lens _hrDescription+      (\ s a -> s{_hrDescription = a})++-- | The name of the PathMatcher to use to match the path portion of the URL+-- if the hostRule matches the URL\'s host portion.+hrPathMatcher :: Lens' HostRule (Maybe Text)+hrPathMatcher+  = lens _hrPathMatcher+      (\ s a -> s{_hrPathMatcher = a})++instance FromJSON HostRule where+        parseJSON+          = withObject "HostRule"+              (\ o ->+                 HostRule <$>+                   (o .:? "hosts" .!= mempty) <*> (o .:? "description")+                     <*> (o .:? "pathMatcher"))++instance ToJSON HostRule where+        toJSON HostRule{..}+          = object+              (catMaybes+                 [("hosts" .=) <$> _hrHosts,+                  ("description" .=) <$> _hrDescription,+                  ("pathMatcher" .=) <$> _hrPathMatcher])++-- | A quotas entry.+--+-- /See:/ 'quota' smart constructor.+data Quota = Quota+    { _qMetric :: !(Maybe QuotaMetric)+    , _qLimit  :: !(Maybe (Textual Double))+    , _qUsage  :: !(Maybe (Textual Double))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Quota' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'qMetric'+--+-- * 'qLimit'+--+-- * 'qUsage'+quota+    :: Quota+quota =+    Quota+    { _qMetric = Nothing+    , _qLimit = Nothing+    , _qUsage = Nothing+    }++-- | [Output Only] Name of the quota metric.+qMetric :: Lens' Quota (Maybe QuotaMetric)+qMetric = lens _qMetric (\ s a -> s{_qMetric = a})++-- | [Output Only] Quota limit for this metric.+qLimit :: Lens' Quota (Maybe Double)+qLimit+  = lens _qLimit (\ s a -> s{_qLimit = a}) .+      mapping _Coerce++-- | [Output Only] Current usage of this metric.+qUsage :: Lens' Quota (Maybe Double)+qUsage+  = lens _qUsage (\ s a -> s{_qUsage = a}) .+      mapping _Coerce++instance FromJSON Quota where+        parseJSON+          = withObject "Quota"+              (\ o ->+                 Quota <$>+                   (o .:? "metric") <*> (o .:? "limit") <*>+                     (o .:? "usage"))++instance ToJSON Quota where+        toJSON Quota{..}+          = object+              (catMaybes+                 [("metric" .=) <$> _qMetric,+                  ("limit" .=) <$> _qLimit, ("usage" .=) <$> _qUsage])++--+-- /See:/ 'instanceGroup' smart constructor.+data InstanceGroup = InstanceGroup+    { _iiSize              :: !(Maybe (Textual Int32))+    , _iiKind              :: !Text+    , _iiFingerprint       :: !(Maybe (Textual Word8))+    , _iiNetwork           :: !(Maybe Text)+    , _iiZone              :: !(Maybe Text)+    , _iiSelfLink          :: !(Maybe Text)+    , _iiName              :: !(Maybe Text)+    , _iiCreationTimestamp :: !(Maybe Text)+    , _iiId                :: !(Maybe (Textual Word64))+    , _iiDescription       :: !(Maybe Text)+    , _iiNamedPorts        :: !(Maybe [NamedPort])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstanceGroup' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'iiSize'+--+-- * 'iiKind'+--+-- * 'iiFingerprint'+--+-- * 'iiNetwork'+--+-- * 'iiZone'+--+-- * 'iiSelfLink'+--+-- * 'iiName'+--+-- * 'iiCreationTimestamp'+--+-- * 'iiId'+--+-- * 'iiDescription'+--+-- * 'iiNamedPorts'+instanceGroup+    :: InstanceGroup+instanceGroup =+    InstanceGroup+    { _iiSize = Nothing+    , _iiKind = "compute#instanceGroup"+    , _iiFingerprint = Nothing+    , _iiNetwork = Nothing+    , _iiZone = Nothing+    , _iiSelfLink = Nothing+    , _iiName = Nothing+    , _iiCreationTimestamp = Nothing+    , _iiId = Nothing+    , _iiDescription = Nothing+    , _iiNamedPorts = Nothing+    }++-- | [Output Only] The total number of instances in the instance group.+iiSize :: Lens' InstanceGroup (Maybe Int32)+iiSize+  = lens _iiSize (\ s a -> s{_iiSize = a}) .+      mapping _Coerce++-- | [Output Only] The resource type, which is always compute#instanceGroup+-- for instance groups.+iiKind :: Lens' InstanceGroup Text+iiKind = lens _iiKind (\ s a -> s{_iiKind = a})++-- | [Output Only] The fingerprint of the named ports. The system uses this+-- fingerprint to detect conflicts when multiple users change the named+-- ports concurrently.+iiFingerprint :: Lens' InstanceGroup (Maybe Word8)+iiFingerprint+  = lens _iiFingerprint+      (\ s a -> s{_iiFingerprint = a})+      . mapping _Coerce++-- | [Output Only] The URL of the network to which all instances in the+-- instance group belong.+iiNetwork :: Lens' InstanceGroup (Maybe Text)+iiNetwork+  = lens _iiNetwork (\ s a -> s{_iiNetwork = a})++-- | [Output Only] The URL of the zone where the instance group is located.+iiZone :: Lens' InstanceGroup (Maybe Text)+iiZone = lens _iiZone (\ s a -> s{_iiZone = a})++-- | [Output Only] The URL for this instance group. The server generates this+-- URL.+iiSelfLink :: Lens' InstanceGroup (Maybe Text)+iiSelfLink+  = lens _iiSelfLink (\ s a -> s{_iiSelfLink = a})++-- | The name of the instance group. The name must be 1-63 characters long,+-- and comply with RFC1035.+iiName :: Lens' InstanceGroup (Maybe Text)+iiName = lens _iiName (\ s a -> s{_iiName = a})++-- | [Output Only] The creation timestamp for this instance group in RFC3339+-- text format.+iiCreationTimestamp :: Lens' InstanceGroup (Maybe Text)+iiCreationTimestamp+  = lens _iiCreationTimestamp+      (\ s a -> s{_iiCreationTimestamp = a})++-- | [Output Only] A unique identifier for this resource type. The server+-- generates this identifier.+iiId :: Lens' InstanceGroup (Maybe Word64)+iiId+  = lens _iiId (\ s a -> s{_iiId = a}) .+      mapping _Coerce++-- | An optional text description for the instance group.+iiDescription :: Lens' InstanceGroup (Maybe Text)+iiDescription+  = lens _iiDescription+      (\ s a -> s{_iiDescription = a})++-- | Assigns a name to a port number. For example: {name: \"http\", port: 80}+-- This allows the system to reference ports by the assigned name instead+-- of a port number. Named ports can also contain multiple ports. For+-- example: [{name: \"http\", port: 80},{name: \"http\", port: 8080}] Named+-- ports apply to all instances in this instance group.+iiNamedPorts :: Lens' InstanceGroup [NamedPort]+iiNamedPorts+  = lens _iiNamedPorts (\ s a -> s{_iiNamedPorts = a})+      . _Default+      . _Coerce++instance FromJSON InstanceGroup where+        parseJSON+          = withObject "InstanceGroup"+              (\ o ->+                 InstanceGroup <$>+                   (o .:? "size") <*>+                     (o .:? "kind" .!= "compute#instanceGroup")+                     <*> (o .:? "fingerprint")+                     <*> (o .:? "network")+                     <*> (o .:? "zone")+                     <*> (o .:? "selfLink")+                     <*> (o .:? "name")+                     <*> (o .:? "creationTimestamp")+                     <*> (o .:? "id")+                     <*> (o .:? "description")+                     <*> (o .:? "namedPorts" .!= mempty))++instance ToJSON InstanceGroup where+        toJSON InstanceGroup{..}+          = object+              (catMaybes+                 [("size" .=) <$> _iiSize, Just ("kind" .= _iiKind),+                  ("fingerprint" .=) <$> _iiFingerprint,+                  ("network" .=) <$> _iiNetwork,+                  ("zone" .=) <$> _iiZone,+                  ("selfLink" .=) <$> _iiSelfLink,+                  ("name" .=) <$> _iiName,+                  ("creationTimestamp" .=) <$> _iiCreationTimestamp,+                  ("id" .=) <$> _iiId,+                  ("description" .=) <$> _iiDescription,+                  ("namedPorts" .=) <$> _iiNamedPorts])++-- | Contains a list of Snapshot resources.+--+-- /See:/ 'snapshotList' smart constructor.+data SnapshotList = SnapshotList+    { _slNextPageToken :: !(Maybe Text)+    , _slKind          :: !Text+    , _slItems         :: !(Maybe [Snapshot])+    , _slSelfLink      :: !(Maybe Text)+    , _slId            :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'SnapshotList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'slNextPageToken'+--+-- * 'slKind'+--+-- * 'slItems'+--+-- * 'slSelfLink'+--+-- * 'slId'+snapshotList+    :: SnapshotList+snapshotList =+    SnapshotList+    { _slNextPageToken = Nothing+    , _slKind = "compute#snapshotList"+    , _slItems = Nothing+    , _slSelfLink = Nothing+    , _slId = Nothing+    }++-- | [Output Only] A token used to continue a truncated list request.+slNextPageToken :: Lens' SnapshotList (Maybe Text)+slNextPageToken+  = lens _slNextPageToken+      (\ s a -> s{_slNextPageToken = a})++-- | Type of resource.+slKind :: Lens' SnapshotList Text+slKind = lens _slKind (\ s a -> s{_slKind = a})++-- | A list of Snapshot resources.+slItems :: Lens' SnapshotList [Snapshot]+slItems+  = lens _slItems (\ s a -> s{_slItems = a}) . _Default+      . _Coerce++-- | [Output Only] Server-defined URL for this resource.+slSelfLink :: Lens' SnapshotList (Maybe Text)+slSelfLink+  = lens _slSelfLink (\ s a -> s{_slSelfLink = a})++-- | [Output Only] Unique identifier for the resource. Defined by the server.+slId :: Lens' SnapshotList (Maybe Text)+slId = lens _slId (\ s a -> s{_slId = a})++instance FromJSON SnapshotList where+        parseJSON+          = withObject "SnapshotList"+              (\ o ->+                 SnapshotList <$>+                   (o .:? "nextPageToken") <*>+                     (o .:? "kind" .!= "compute#snapshotList")+                     <*> (o .:? "items" .!= mempty)+                     <*> (o .:? "selfLink")+                     <*> (o .:? "id"))++instance ToJSON SnapshotList where+        toJSON SnapshotList{..}+          = object+              (catMaybes+                 [("nextPageToken" .=) <$> _slNextPageToken,+                  Just ("kind" .= _slKind), ("items" .=) <$> _slItems,+                  ("selfLink" .=) <$> _slSelfLink,+                  ("id" .=) <$> _slId])++--+-- /See:/ 'testFailure' smart constructor.+data TestFailure = TestFailure+    { _tfPath            :: !(Maybe Text)+    , _tfExpectedService :: !(Maybe Text)+    , _tfHost            :: !(Maybe Text)+    , _tfActualService   :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TestFailure' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tfPath'+--+-- * 'tfExpectedService'+--+-- * 'tfHost'+--+-- * 'tfActualService'+testFailure+    :: TestFailure+testFailure =+    TestFailure+    { _tfPath = Nothing+    , _tfExpectedService = Nothing+    , _tfHost = Nothing+    , _tfActualService = Nothing+    }++tfPath :: Lens' TestFailure (Maybe Text)+tfPath = lens _tfPath (\ s a -> s{_tfPath = a})++tfExpectedService :: Lens' TestFailure (Maybe Text)+tfExpectedService+  = lens _tfExpectedService+      (\ s a -> s{_tfExpectedService = a})++tfHost :: Lens' TestFailure (Maybe Text)+tfHost = lens _tfHost (\ s a -> s{_tfHost = a})++tfActualService :: Lens' TestFailure (Maybe Text)+tfActualService+  = lens _tfActualService+      (\ s a -> s{_tfActualService = a})++instance FromJSON TestFailure where+        parseJSON+          = withObject "TestFailure"+              (\ o ->+                 TestFailure <$>+                   (o .:? "path") <*> (o .:? "expectedService") <*>+                     (o .:? "host")+                     <*> (o .:? "actualService"))++instance ToJSON TestFailure where+        toJSON TestFailure{..}+          = object+              (catMaybes+                 [("path" .=) <$> _tfPath,+                  ("expectedService" .=) <$> _tfExpectedService,+                  ("host" .=) <$> _tfHost,+                  ("actualService" .=) <$> _tfActualService])++-- | An instance\'s serial console output.+--+-- /See:/ 'serialPortOutput' smart constructor.+data SerialPortOutput = SerialPortOutput+    { _spoContents :: !(Maybe Text)+    , _spoKind     :: !Text+    , _spoSelfLink :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'SerialPortOutput' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'spoContents'+--+-- * 'spoKind'+--+-- * 'spoSelfLink'+serialPortOutput+    :: SerialPortOutput+serialPortOutput =+    SerialPortOutput+    { _spoContents = Nothing+    , _spoKind = "compute#serialPortOutput"+    , _spoSelfLink = Nothing+    }++-- | [Output Only] The contents of the console output.+spoContents :: Lens' SerialPortOutput (Maybe Text)+spoContents+  = lens _spoContents (\ s a -> s{_spoContents = a})++-- | [Output Only] Type of the resource. Always compute#serialPortOutput for+-- serial port output.+spoKind :: Lens' SerialPortOutput Text+spoKind = lens _spoKind (\ s a -> s{_spoKind = a})++-- | [Output Only] Server defined URL for the resource.+spoSelfLink :: Lens' SerialPortOutput (Maybe Text)+spoSelfLink+  = lens _spoSelfLink (\ s a -> s{_spoSelfLink = a})++instance FromJSON SerialPortOutput where+        parseJSON+          = withObject "SerialPortOutput"+              (\ o ->+                 SerialPortOutput <$>+                   (o .:? "contents") <*>+                     (o .:? "kind" .!= "compute#serialPortOutput")+                     <*> (o .:? "selfLink"))++instance ToJSON SerialPortOutput where+        toJSON SerialPortOutput{..}+          = object+              (catMaybes+                 [("contents" .=) <$> _spoContents,+                  Just ("kind" .= _spoKind),+                  ("selfLink" .=) <$> _spoSelfLink])++--+-- /See:/ 'targetVPNGatewayAggregatedList' smart constructor.+data TargetVPNGatewayAggregatedList = TargetVPNGatewayAggregatedList+    { _tvgalNextPageToken :: !(Maybe Text)+    , _tvgalKind          :: !Text+    , _tvgalItems         :: !(Maybe TargetVPNGatewayAggregatedListItems)+    , _tvgalSelfLink      :: !(Maybe Text)+    , _tvgalId            :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TargetVPNGatewayAggregatedList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tvgalNextPageToken'+--+-- * 'tvgalKind'+--+-- * 'tvgalItems'+--+-- * 'tvgalSelfLink'+--+-- * 'tvgalId'+targetVPNGatewayAggregatedList+    :: TargetVPNGatewayAggregatedList+targetVPNGatewayAggregatedList =+    TargetVPNGatewayAggregatedList+    { _tvgalNextPageToken = Nothing+    , _tvgalKind = "compute#targetVpnGatewayAggregatedList"+    , _tvgalItems = Nothing+    , _tvgalSelfLink = Nothing+    , _tvgalId = Nothing+    }++-- | [Output Only] A token used to continue a truncated list request.+tvgalNextPageToken :: Lens' TargetVPNGatewayAggregatedList (Maybe Text)+tvgalNextPageToken+  = lens _tvgalNextPageToken+      (\ s a -> s{_tvgalNextPageToken = a})++-- | [Output Only] Type of resource. Always compute#targetVpnGateway for+-- target VPN gateways.+tvgalKind :: Lens' TargetVPNGatewayAggregatedList Text+tvgalKind+  = lens _tvgalKind (\ s a -> s{_tvgalKind = a})++-- | A map of scoped target vpn gateway lists.+tvgalItems :: Lens' TargetVPNGatewayAggregatedList (Maybe TargetVPNGatewayAggregatedListItems)+tvgalItems+  = lens _tvgalItems (\ s a -> s{_tvgalItems = a})++-- | [Output Only] Server-defined URL for the resource.+tvgalSelfLink :: Lens' TargetVPNGatewayAggregatedList (Maybe Text)+tvgalSelfLink+  = lens _tvgalSelfLink+      (\ s a -> s{_tvgalSelfLink = a})++-- | [Output Only] Unique identifier for the resource. Defined by the server.+tvgalId :: Lens' TargetVPNGatewayAggregatedList (Maybe Text)+tvgalId = lens _tvgalId (\ s a -> s{_tvgalId = a})++instance FromJSON TargetVPNGatewayAggregatedList+         where+        parseJSON+          = withObject "TargetVPNGatewayAggregatedList"+              (\ o ->+                 TargetVPNGatewayAggregatedList <$>+                   (o .:? "nextPageToken") <*>+                     (o .:? "kind" .!=+                        "compute#targetVpnGatewayAggregatedList")+                     <*> (o .:? "items")+                     <*> (o .:? "selfLink")+                     <*> (o .:? "id"))++instance ToJSON TargetVPNGatewayAggregatedList where+        toJSON TargetVPNGatewayAggregatedList{..}+          = object+              (catMaybes+                 [("nextPageToken" .=) <$> _tvgalNextPageToken,+                  Just ("kind" .= _tvgalKind),+                  ("items" .=) <$> _tvgalItems,+                  ("selfLink" .=) <$> _tvgalSelfLink,+                  ("id" .=) <$> _tvgalId])++--+-- /See:/ 'metadataItemsItem' smart constructor.+data MetadataItemsItem = MetadataItemsItem+    { _miiValue :: !(Maybe Text)+    , _miiKey   :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'MetadataItemsItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'miiValue'+--+-- * 'miiKey'+metadataItemsItem+    :: MetadataItemsItem+metadataItemsItem =+    MetadataItemsItem+    { _miiValue = Nothing+    , _miiKey = Nothing+    }++-- | Value for the metadata entry. These are free-form strings, and only have+-- meaning as interpreted by the image running in the instance. The only+-- restriction placed on values is that their size must be less than or+-- equal to 32768 bytes.+miiValue :: Lens' MetadataItemsItem (Maybe Text)+miiValue = lens _miiValue (\ s a -> s{_miiValue = a})++-- | Key for the metadata entry. Keys must conform to the following regexp:+-- [a-zA-Z0-9-_]+, and be less than 128 bytes in length. This is reflected+-- as part of a URL in the metadata server. Additionally, to avoid+-- ambiguity, keys must not conflict with any other metadata keys for the+-- project.+miiKey :: Lens' MetadataItemsItem (Maybe Text)+miiKey = lens _miiKey (\ s a -> s{_miiKey = a})++instance FromJSON MetadataItemsItem where+        parseJSON+          = withObject "MetadataItemsItem"+              (\ o ->+                 MetadataItemsItem <$>+                   (o .:? "value") <*> (o .:? "key"))++instance ToJSON MetadataItemsItem where+        toJSON MetadataItemsItem{..}+          = object+              (catMaybes+                 [("value" .=) <$> _miiValue, ("key" .=) <$> _miiKey])++-- | A TargetHttpsProxy resource. This resource defines an HTTPS proxy.+--+-- /See:/ 'targetHTTPSProxy' smart constructor.+data TargetHTTPSProxy = TargetHTTPSProxy+    { _thpURLMap            :: !(Maybe Text)+    , _thpSSLCertificates   :: !(Maybe [Text])+    , _thpKind              :: !Text+    , _thpSelfLink          :: !(Maybe Text)+    , _thpName              :: !(Maybe Text)+    , _thpCreationTimestamp :: !(Maybe Text)+    , _thpId                :: !(Maybe (Textual Word64))+    , _thpDescription       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TargetHTTPSProxy' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'thpURLMap'+--+-- * 'thpSSLCertificates'+--+-- * 'thpKind'+--+-- * 'thpSelfLink'+--+-- * 'thpName'+--+-- * 'thpCreationTimestamp'+--+-- * 'thpId'+--+-- * 'thpDescription'+targetHTTPSProxy+    :: TargetHTTPSProxy+targetHTTPSProxy =+    TargetHTTPSProxy+    { _thpURLMap = Nothing+    , _thpSSLCertificates = Nothing+    , _thpKind = "compute#targetHttpsProxy"+    , _thpSelfLink = Nothing+    , _thpName = Nothing+    , _thpCreationTimestamp = Nothing+    , _thpId = Nothing+    , _thpDescription = Nothing+    }++-- | URL to the UrlMap resource that defines the mapping from URL to the+-- BackendService.+thpURLMap :: Lens' TargetHTTPSProxy (Maybe Text)+thpURLMap+  = lens _thpURLMap (\ s a -> s{_thpURLMap = a})++-- | URLs to SslCertificate resources that are used to authenticate+-- connections to Backends. Currently exactly one SSL certificate must be+-- specified.+thpSSLCertificates :: Lens' TargetHTTPSProxy [Text]+thpSSLCertificates+  = lens _thpSSLCertificates+      (\ s a -> s{_thpSSLCertificates = a})+      . _Default+      . _Coerce++-- | Type of the resource.+thpKind :: Lens' TargetHTTPSProxy Text+thpKind = lens _thpKind (\ s a -> s{_thpKind = a})++-- | [Output Only] Server-defined URL for the resource.+thpSelfLink :: Lens' TargetHTTPSProxy (Maybe Text)+thpSelfLink+  = lens _thpSelfLink (\ s a -> s{_thpSelfLink = a})++-- | Name of the resource. Provided by the client when the resource is+-- created. The name must be 1-63 characters long, and comply with RFC1035.+-- Specifically, the name must be 1-63 characters long and match the+-- regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first+-- character must be a lowercase letter, and all following characters must+-- be a dash, lowercase letter, or digit, except the last character, which+-- cannot be a dash.+thpName :: Lens' TargetHTTPSProxy (Maybe Text)+thpName = lens _thpName (\ s a -> s{_thpName = a})++-- | [Output Only] Creation timestamp in RFC3339 text format.+thpCreationTimestamp :: Lens' TargetHTTPSProxy (Maybe Text)+thpCreationTimestamp+  = lens _thpCreationTimestamp+      (\ s a -> s{_thpCreationTimestamp = a})++-- | [Output Only] Unique identifier for the resource; defined by the server.+thpId :: Lens' TargetHTTPSProxy (Maybe Word64)+thpId+  = lens _thpId (\ s a -> s{_thpId = a}) .+      mapping _Coerce++-- | An optional textual description of the resource. Provided by the client+-- when the resource is created.+thpDescription :: Lens' TargetHTTPSProxy (Maybe Text)+thpDescription+  = lens _thpDescription+      (\ s a -> s{_thpDescription = a})++instance FromJSON TargetHTTPSProxy where+        parseJSON+          = withObject "TargetHTTPSProxy"+              (\ o ->+                 TargetHTTPSProxy <$>+                   (o .:? "urlMap") <*>+                     (o .:? "sslCertificates" .!= mempty)+                     <*> (o .:? "kind" .!= "compute#targetHttpsProxy")+                     <*> (o .:? "selfLink")+                     <*> (o .:? "name")+                     <*> (o .:? "creationTimestamp")+                     <*> (o .:? "id")+                     <*> (o .:? "description"))++instance ToJSON TargetHTTPSProxy where+        toJSON TargetHTTPSProxy{..}+          = object+              (catMaybes+                 [("urlMap" .=) <$> _thpURLMap,+                  ("sslCertificates" .=) <$> _thpSSLCertificates,+                  Just ("kind" .= _thpKind),+                  ("selfLink" .=) <$> _thpSelfLink,+                  ("name" .=) <$> _thpName,+                  ("creationTimestamp" .=) <$> _thpCreationTimestamp,+                  ("id" .=) <$> _thpId,+                  ("description" .=) <$> _thpDescription])++--+-- /See:/ 'targetVPNGatewaysScopedList' smart constructor.+data TargetVPNGatewaysScopedList = TargetVPNGatewaysScopedList+    { _tvgslTargetVPNGateways :: !(Maybe [TargetVPNGateway])+    , _tvgslWarning           :: !(Maybe TargetVPNGatewaysScopedListWarning)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TargetVPNGatewaysScopedList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tvgslTargetVPNGateways'+--+-- * 'tvgslWarning'+targetVPNGatewaysScopedList+    :: TargetVPNGatewaysScopedList+targetVPNGatewaysScopedList =+    TargetVPNGatewaysScopedList+    { _tvgslTargetVPNGateways = Nothing+    , _tvgslWarning = Nothing+    }++-- | [Output Only] List of target vpn gateways contained in this scope.+tvgslTargetVPNGateways :: Lens' TargetVPNGatewaysScopedList [TargetVPNGateway]+tvgslTargetVPNGateways+  = lens _tvgslTargetVPNGateways+      (\ s a -> s{_tvgslTargetVPNGateways = a})+      . _Default+      . _Coerce++-- | [Output Only] Informational warning which replaces the list of addresses+-- when the list is empty.+tvgslWarning :: Lens' TargetVPNGatewaysScopedList (Maybe TargetVPNGatewaysScopedListWarning)+tvgslWarning+  = lens _tvgslWarning (\ s a -> s{_tvgslWarning = a})++instance FromJSON TargetVPNGatewaysScopedList where+        parseJSON+          = withObject "TargetVPNGatewaysScopedList"+              (\ o ->+                 TargetVPNGatewaysScopedList <$>+                   (o .:? "targetVpnGateways" .!= mempty) <*>+                     (o .:? "warning"))++instance ToJSON TargetVPNGatewaysScopedList where+        toJSON TargetVPNGatewaysScopedList{..}+          = object+              (catMaybes+                 [("targetVpnGateways" .=) <$>+                    _tvgslTargetVPNGateways,+                  ("warning" .=) <$> _tvgslWarning])++-- | An access configuration attached to an instance\'s network interface.+--+-- /See:/ 'accessConfig' smart constructor.+data AccessConfig = AccessConfig+    { _acKind  :: !Text+    , _acName  :: !(Maybe Text)+    , _acNATIP :: !(Maybe Text)+    , _acType  :: !AccessConfigType+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'AccessConfig' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'acKind'+--+-- * 'acName'+--+-- * 'acNATIP'+--+-- * 'acType'+accessConfig+    :: AccessConfig+accessConfig =+    AccessConfig+    { _acKind = "compute#accessConfig"+    , _acName = Nothing+    , _acNATIP = Nothing+    , _acType = OneToOneNAT+    }++-- | [Output Only] Type of the resource. Always compute#accessConfig for+-- access configs.+acKind :: Lens' AccessConfig Text+acKind = lens _acKind (\ s a -> s{_acKind = a})++-- | Name of this access configuration.+acName :: Lens' AccessConfig (Maybe Text)+acName = lens _acName (\ s a -> s{_acName = a})++-- | An external IP address associated with this instance. Specify an unused+-- static external IP address available to the project or leave this field+-- undefined to use an IP from a shared ephemeral IP address pool. If you+-- specify a static external IP address, it must live in the same region as+-- the zone of the instance.+acNATIP :: Lens' AccessConfig (Maybe Text)+acNATIP = lens _acNATIP (\ s a -> s{_acNATIP = a})++-- | The type of configuration. The default and only option is+-- ONE_TO_ONE_NAT.+acType :: Lens' AccessConfig AccessConfigType+acType = lens _acType (\ s a -> s{_acType = a})++instance FromJSON AccessConfig where+        parseJSON+          = withObject "AccessConfig"+              (\ o ->+                 AccessConfig <$>+                   (o .:? "kind" .!= "compute#accessConfig") <*>+                     (o .:? "name")+                     <*> (o .:? "natIP")+                     <*> (o .:? "type" .!= OneToOneNAT))++instance ToJSON AccessConfig where+        toJSON AccessConfig{..}+          = object+              (catMaybes+                 [Just ("kind" .= _acKind), ("name" .=) <$> _acName,+                  ("natIP" .=) <$> _acNATIP, Just ("type" .= _acType)])++--+-- /See:/ 'managedInstanceLastAttemptErrorsErrorsItem' smart constructor.+data ManagedInstanceLastAttemptErrorsErrorsItem = ManagedInstanceLastAttemptErrorsErrorsItem+    { _milaeeiLocation :: !(Maybe Text)+    , _milaeeiCode     :: !(Maybe Text)+    , _milaeeiMessage  :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ManagedInstanceLastAttemptErrorsErrorsItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'milaeeiLocation'+--+-- * 'milaeeiCode'+--+-- * 'milaeeiMessage'+managedInstanceLastAttemptErrorsErrorsItem+    :: ManagedInstanceLastAttemptErrorsErrorsItem+managedInstanceLastAttemptErrorsErrorsItem =+    ManagedInstanceLastAttemptErrorsErrorsItem+    { _milaeeiLocation = Nothing+    , _milaeeiCode = Nothing+    , _milaeeiMessage = Nothing+    }++-- | [Output Only] Indicates the field in the request which caused the error.+-- This property is optional.+milaeeiLocation :: Lens' ManagedInstanceLastAttemptErrorsErrorsItem (Maybe Text)+milaeeiLocation+  = lens _milaeeiLocation+      (\ s a -> s{_milaeeiLocation = a})++-- | [Output Only] The error type identifier for this error.+milaeeiCode :: Lens' ManagedInstanceLastAttemptErrorsErrorsItem (Maybe Text)+milaeeiCode+  = lens _milaeeiCode (\ s a -> s{_milaeeiCode = a})++-- | [Output Only] An optional, human-readable error message.+milaeeiMessage :: Lens' ManagedInstanceLastAttemptErrorsErrorsItem (Maybe Text)+milaeeiMessage+  = lens _milaeeiMessage+      (\ s a -> s{_milaeeiMessage = a})++instance FromJSON+         ManagedInstanceLastAttemptErrorsErrorsItem where+        parseJSON+          = withObject+              "ManagedInstanceLastAttemptErrorsErrorsItem"+              (\ o ->+                 ManagedInstanceLastAttemptErrorsErrorsItem <$>+                   (o .:? "location") <*> (o .:? "code") <*>+                     (o .:? "message"))++instance ToJSON+         ManagedInstanceLastAttemptErrorsErrorsItem where+        toJSON ManagedInstanceLastAttemptErrorsErrorsItem{..}+          = object+              (catMaybes+                 [("location" .=) <$> _milaeeiLocation,+                  ("code" .=) <$> _milaeeiCode,+                  ("message" .=) <$> _milaeeiMessage])++--+-- /See:/ 'instancesScopedListWarningDataItem' smart constructor.+data InstancesScopedListWarningDataItem = InstancesScopedListWarningDataItem+    { _islwdiValue :: !(Maybe Text)+    , _islwdiKey   :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstancesScopedListWarningDataItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'islwdiValue'+--+-- * 'islwdiKey'+instancesScopedListWarningDataItem+    :: InstancesScopedListWarningDataItem+instancesScopedListWarningDataItem =+    InstancesScopedListWarningDataItem+    { _islwdiValue = Nothing+    , _islwdiKey = Nothing+    }++-- | [Output Only] A warning data value corresponding to the key.+islwdiValue :: Lens' InstancesScopedListWarningDataItem (Maybe Text)+islwdiValue+  = lens _islwdiValue (\ s a -> s{_islwdiValue = a})++-- | [Output Only] A key for the warning data.+islwdiKey :: Lens' InstancesScopedListWarningDataItem (Maybe Text)+islwdiKey+  = lens _islwdiKey (\ s a -> s{_islwdiKey = a})++instance FromJSON InstancesScopedListWarningDataItem+         where+        parseJSON+          = withObject "InstancesScopedListWarningDataItem"+              (\ o ->+                 InstancesScopedListWarningDataItem <$>+                   (o .:? "value") <*> (o .:? "key"))++instance ToJSON InstancesScopedListWarningDataItem+         where+        toJSON InstancesScopedListWarningDataItem{..}+          = object+              (catMaybes+                 [("value" .=) <$> _islwdiValue,+                  ("key" .=) <$> _islwdiKey])++-- | A BackendService resource. This resource defines a group of backend+-- virtual machines together with their serving capacity.+--+-- /See:/ 'backendService' smart constructor.+data BackendService = BackendService+    { _bsBackends          :: !(Maybe [Backend])+    , _bsKind              :: !Text+    , _bsFingerprint       :: !(Maybe (Textual Word8))+    , _bsProtocol          :: !(Maybe BackendServiceProtocol)+    , _bsSelfLink          :: !(Maybe Text)+    , _bsName              :: !(Maybe Text)+    , _bsCreationTimestamp :: !(Maybe Text)+    , _bsId                :: !(Maybe (Textual Word64))+    , _bsTimeoutSec        :: !(Maybe (Textual Int32))+    , _bsDescription       :: !(Maybe Text)+    , _bsPortName          :: !(Maybe Text)+    , _bsHealthChecks      :: !(Maybe [Text])+    , _bsPort              :: !(Maybe (Textual Int32))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'BackendService' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'bsBackends'+--+-- * 'bsKind'+--+-- * 'bsFingerprint'+--+-- * 'bsProtocol'+--+-- * 'bsSelfLink'+--+-- * 'bsName'+--+-- * 'bsCreationTimestamp'+--+-- * 'bsId'+--+-- * 'bsTimeoutSec'+--+-- * 'bsDescription'+--+-- * 'bsPortName'+--+-- * 'bsHealthChecks'+--+-- * 'bsPort'+backendService+    :: BackendService+backendService =+    BackendService+    { _bsBackends = Nothing+    , _bsKind = "compute#backendService"+    , _bsFingerprint = Nothing+    , _bsProtocol = Nothing+    , _bsSelfLink = Nothing+    , _bsName = Nothing+    , _bsCreationTimestamp = Nothing+    , _bsId = Nothing+    , _bsTimeoutSec = Nothing+    , _bsDescription = Nothing+    , _bsPortName = Nothing+    , _bsHealthChecks = Nothing+    , _bsPort = Nothing+    }++-- | The list of backends that serve this BackendService.+bsBackends :: Lens' BackendService [Backend]+bsBackends+  = lens _bsBackends (\ s a -> s{_bsBackends = a}) .+      _Default+      . _Coerce++-- | [Output Only] Type of resource. Always compute#backendService for+-- backend services.+bsKind :: Lens' BackendService Text+bsKind = lens _bsKind (\ s a -> s{_bsKind = a})++-- | Fingerprint of this resource. A hash of the contents stored in this+-- object. This field is used in optimistic locking. This field will be+-- ignored when inserting a BackendService. An up-to-date fingerprint must+-- be provided in order to update the BackendService.+bsFingerprint :: Lens' BackendService (Maybe Word8)+bsFingerprint+  = lens _bsFingerprint+      (\ s a -> s{_bsFingerprint = a})+      . mapping _Coerce++bsProtocol :: Lens' BackendService (Maybe BackendServiceProtocol)+bsProtocol+  = lens _bsProtocol (\ s a -> s{_bsProtocol = a})++-- | [Output Only] Server-defined URL for the resource.+bsSelfLink :: Lens' BackendService (Maybe Text)+bsSelfLink+  = lens _bsSelfLink (\ s a -> s{_bsSelfLink = a})++-- | Name of the resource. Provided by the client when the resource is+-- created. The name must be 1-63 characters long, and comply with RFC1035.+-- Specifically, the name must be 1-63 characters long and match the+-- regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first+-- character must be a lowercase letter, and all following characters must+-- be a dash, lowercase letter, or digit, except the last character, which+-- cannot be a dash.+bsName :: Lens' BackendService (Maybe Text)+bsName = lens _bsName (\ s a -> s{_bsName = a})++-- | [Output Only] Creation timestamp in RFC3339 text format.+bsCreationTimestamp :: Lens' BackendService (Maybe Text)+bsCreationTimestamp+  = lens _bsCreationTimestamp+      (\ s a -> s{_bsCreationTimestamp = a})++-- | [Output Only] Unique identifier for the resource; defined by the server.+bsId :: Lens' BackendService (Maybe Word64)+bsId+  = lens _bsId (\ s a -> s{_bsId = a}) .+      mapping _Coerce++-- | How many seconds to wait for the backend before considering it a failed+-- request. Default is 30 seconds.+bsTimeoutSec :: Lens' BackendService (Maybe Int32)+bsTimeoutSec+  = lens _bsTimeoutSec (\ s a -> s{_bsTimeoutSec = a})+      . mapping _Coerce++-- | An optional textual description of the resource. Provided by the client+-- when the resource is created.+bsDescription :: Lens' BackendService (Maybe Text)+bsDescription+  = lens _bsDescription+      (\ s a -> s{_bsDescription = a})++-- | Name of backend port. The same name should appear in the resource views+-- referenced by this service. Required.+bsPortName :: Lens' BackendService (Maybe Text)+bsPortName+  = lens _bsPortName (\ s a -> s{_bsPortName = a})++-- | The list of URLs to the HttpHealthCheck resource for health checking+-- this BackendService. Currently at most one health check can be+-- specified, and a health check is required.+bsHealthChecks :: Lens' BackendService [Text]+bsHealthChecks+  = lens _bsHealthChecks+      (\ s a -> s{_bsHealthChecks = a})+      . _Default+      . _Coerce++-- | Deprecated in favor of port name. The TCP port to connect on the+-- backend. The default value is 80.+bsPort :: Lens' BackendService (Maybe Int32)+bsPort+  = lens _bsPort (\ s a -> s{_bsPort = a}) .+      mapping _Coerce++instance FromJSON BackendService where+        parseJSON+          = withObject "BackendService"+              (\ o ->+                 BackendService <$>+                   (o .:? "backends" .!= mempty) <*>+                     (o .:? "kind" .!= "compute#backendService")+                     <*> (o .:? "fingerprint")+                     <*> (o .:? "protocol")+                     <*> (o .:? "selfLink")+                     <*> (o .:? "name")+                     <*> (o .:? "creationTimestamp")+                     <*> (o .:? "id")+                     <*> (o .:? "timeoutSec")+                     <*> (o .:? "description")+                     <*> (o .:? "portName")+                     <*> (o .:? "healthChecks" .!= mempty)+                     <*> (o .:? "port"))++instance ToJSON BackendService where+        toJSON BackendService{..}+          = object+              (catMaybes+                 [("backends" .=) <$> _bsBackends,+                  Just ("kind" .= _bsKind),+                  ("fingerprint" .=) <$> _bsFingerprint,+                  ("protocol" .=) <$> _bsProtocol,+                  ("selfLink" .=) <$> _bsSelfLink,+                  ("name" .=) <$> _bsName,+                  ("creationTimestamp" .=) <$> _bsCreationTimestamp,+                  ("id" .=) <$> _bsId,+                  ("timeoutSec" .=) <$> _bsTimeoutSec,+                  ("description" .=) <$> _bsDescription,+                  ("portName" .=) <$> _bsPortName,+                  ("healthChecks" .=) <$> _bsHealthChecks,+                  ("port" .=) <$> _bsPort])++--+-- /See:/ 'instanceMoveRequest' smart constructor.+data InstanceMoveRequest = InstanceMoveRequest+    { _imrTargetInstance  :: !(Maybe Text)+    , _imrDestinationZone :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstanceMoveRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'imrTargetInstance'+--+-- * 'imrDestinationZone'+instanceMoveRequest+    :: InstanceMoveRequest+instanceMoveRequest =+    InstanceMoveRequest+    { _imrTargetInstance = Nothing+    , _imrDestinationZone = Nothing+    }++-- | The URL of the target instance to move. This can be a full or partial+-- URL. For example, the following are all valid URLs to an instance: -+-- https:\/\/www.googleapis.com\/compute\/v1\/projects\/project\/zones\/zone\/instances\/instance+-- - projects\/project\/zones\/zone\/instances\/instance -+-- zones\/zone\/instances\/instance+imrTargetInstance :: Lens' InstanceMoveRequest (Maybe Text)+imrTargetInstance+  = lens _imrTargetInstance+      (\ s a -> s{_imrTargetInstance = a})++-- | The URL of the destination zone to move the instance to. This can be a+-- full or partial URL. For example, the following are all valid URLs to a+-- zone: -+-- https:\/\/www.googleapis.com\/compute\/v1\/projects\/project\/zones\/zone+-- - projects\/project\/zones\/zone - zones\/zone+imrDestinationZone :: Lens' InstanceMoveRequest (Maybe Text)+imrDestinationZone+  = lens _imrDestinationZone+      (\ s a -> s{_imrDestinationZone = a})++instance FromJSON InstanceMoveRequest where+        parseJSON+          = withObject "InstanceMoveRequest"+              (\ o ->+                 InstanceMoveRequest <$>+                   (o .:? "targetInstance") <*>+                     (o .:? "destinationZone"))++instance ToJSON InstanceMoveRequest where+        toJSON InstanceMoveRequest{..}+          = object+              (catMaybes+                 [("targetInstance" .=) <$> _imrTargetInstance,+                  ("destinationZone" .=) <$> _imrDestinationZone])++--+-- /See:/ 'instanceGroupsScopedList' smart constructor.+data InstanceGroupsScopedList = InstanceGroupsScopedList+    { _igslWarning        :: !(Maybe InstanceGroupsScopedListWarning)+    , _igslInstanceGroups :: !(Maybe [InstanceGroup])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstanceGroupsScopedList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'igslWarning'+--+-- * 'igslInstanceGroups'+instanceGroupsScopedList+    :: InstanceGroupsScopedList+instanceGroupsScopedList =+    InstanceGroupsScopedList+    { _igslWarning = Nothing+    , _igslInstanceGroups = Nothing+    }++-- | [Output Only] An informational warning that replaces the list of+-- instance groups when the list is empty.+igslWarning :: Lens' InstanceGroupsScopedList (Maybe InstanceGroupsScopedListWarning)+igslWarning+  = lens _igslWarning (\ s a -> s{_igslWarning = a})++-- | [Output Only] The list of instance groups that are contained in this+-- scope.+igslInstanceGroups :: Lens' InstanceGroupsScopedList [InstanceGroup]+igslInstanceGroups+  = lens _igslInstanceGroups+      (\ s a -> s{_igslInstanceGroups = a})+      . _Default+      . _Coerce++instance FromJSON InstanceGroupsScopedList where+        parseJSON+          = withObject "InstanceGroupsScopedList"+              (\ o ->+                 InstanceGroupsScopedList <$>+                   (o .:? "warning") <*>+                     (o .:? "instanceGroups" .!= mempty))++instance ToJSON InstanceGroupsScopedList where+        toJSON InstanceGroupsScopedList{..}+          = object+              (catMaybes+                 [("warning" .=) <$> _igslWarning,+                  ("instanceGroups" .=) <$> _igslInstanceGroups])++-- | An HttpsHealthCheck resource. This resource defines a template for how+-- individual instances should be checked for health, via HTTPS.+--+-- /See:/ 'httpsHealthCheck' smart constructor.+data HTTPSHealthCheck = HTTPSHealthCheck+    { _hhcHealthyThreshold   :: !(Maybe (Textual Int32))+    , _hhcKind               :: !Text+    , _hhcRequestPath        :: !(Maybe Text)+    , _hhcSelfLink           :: !(Maybe Text)+    , _hhcCheckIntervalSec   :: !(Maybe (Textual Int32))+    , _hhcName               :: !(Maybe Text)+    , _hhcCreationTimestamp  :: !(Maybe Text)+    , _hhcId                 :: !(Maybe (Textual Word64))+    , _hhcHost               :: !(Maybe Text)+    , _hhcTimeoutSec         :: !(Maybe (Textual Int32))+    , _hhcDescription        :: !(Maybe Text)+    , _hhcUnhealthyThreshold :: !(Maybe (Textual Int32))+    , _hhcPort               :: !(Maybe (Textual Int32))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'HTTPSHealthCheck' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'hhcHealthyThreshold'+--+-- * 'hhcKind'+--+-- * 'hhcRequestPath'+--+-- * 'hhcSelfLink'+--+-- * 'hhcCheckIntervalSec'+--+-- * 'hhcName'+--+-- * 'hhcCreationTimestamp'+--+-- * 'hhcId'+--+-- * 'hhcHost'+--+-- * 'hhcTimeoutSec'+--+-- * 'hhcDescription'+--+-- * 'hhcUnhealthyThreshold'+--+-- * 'hhcPort'+httpsHealthCheck+    :: HTTPSHealthCheck+httpsHealthCheck =+    HTTPSHealthCheck+    { _hhcHealthyThreshold = Nothing+    , _hhcKind = "compute#httpsHealthCheck"+    , _hhcRequestPath = Nothing+    , _hhcSelfLink = Nothing+    , _hhcCheckIntervalSec = Nothing+    , _hhcName = Nothing+    , _hhcCreationTimestamp = Nothing+    , _hhcId = Nothing+    , _hhcHost = Nothing+    , _hhcTimeoutSec = Nothing+    , _hhcDescription = Nothing+    , _hhcUnhealthyThreshold = Nothing+    , _hhcPort = Nothing+    }++-- | A so-far unhealthy instance will be marked healthy after this many+-- consecutive successes. The default value is 2.+hhcHealthyThreshold :: Lens' HTTPSHealthCheck (Maybe Int32)+hhcHealthyThreshold+  = lens _hhcHealthyThreshold+      (\ s a -> s{_hhcHealthyThreshold = a})+      . mapping _Coerce++-- | Type of the resource.+hhcKind :: Lens' HTTPSHealthCheck Text+hhcKind = lens _hhcKind (\ s a -> s{_hhcKind = a})++-- | The request path of the HTTPS health check request. The default value is+-- \"\/\".+hhcRequestPath :: Lens' HTTPSHealthCheck (Maybe Text)+hhcRequestPath+  = lens _hhcRequestPath+      (\ s a -> s{_hhcRequestPath = a})++-- | [Output Only] Server-defined URL for the resource.+hhcSelfLink :: Lens' HTTPSHealthCheck (Maybe Text)+hhcSelfLink+  = lens _hhcSelfLink (\ s a -> s{_hhcSelfLink = a})++-- | How often (in seconds) to send a health check. The default value is 5+-- seconds.+hhcCheckIntervalSec :: Lens' HTTPSHealthCheck (Maybe Int32)+hhcCheckIntervalSec+  = lens _hhcCheckIntervalSec+      (\ s a -> s{_hhcCheckIntervalSec = a})+      . mapping _Coerce++-- | Name of the resource. Provided by the client when the resource is+-- created. The name must be 1-63 characters long, and comply with RFC1035.+-- Specifically, the name must be 1-63 characters long and match the+-- regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first+-- character must be a lowercase letter, and all following characters must+-- be a dash, lowercase letter, or digit, except the last character, which+-- cannot be a dash.+hhcName :: Lens' HTTPSHealthCheck (Maybe Text)+hhcName = lens _hhcName (\ s a -> s{_hhcName = a})++-- | [Output Only] Creation timestamp in RFC3339 text format.+hhcCreationTimestamp :: Lens' HTTPSHealthCheck (Maybe Text)+hhcCreationTimestamp+  = lens _hhcCreationTimestamp+      (\ s a -> s{_hhcCreationTimestamp = a})++-- | [Output Only] Unique identifier for the resource; defined by the server.+hhcId :: Lens' HTTPSHealthCheck (Maybe Word64)+hhcId+  = lens _hhcId (\ s a -> s{_hhcId = a}) .+      mapping _Coerce++-- | The value of the host header in the HTTPS health check request. If left+-- empty (default value), the public IP on behalf of which this health+-- check is performed will be used.+hhcHost :: Lens' HTTPSHealthCheck (Maybe Text)+hhcHost = lens _hhcHost (\ s a -> s{_hhcHost = a})++-- | How long (in seconds) to wait before claiming failure. The default value+-- is 5 seconds. It is invalid for timeoutSec to have a greater value than+-- checkIntervalSec.+hhcTimeoutSec :: Lens' HTTPSHealthCheck (Maybe Int32)+hhcTimeoutSec+  = lens _hhcTimeoutSec+      (\ s a -> s{_hhcTimeoutSec = a})+      . mapping _Coerce++-- | An optional textual description of the resource; provided by the client+-- when the resource is created.+hhcDescription :: Lens' HTTPSHealthCheck (Maybe Text)+hhcDescription+  = lens _hhcDescription+      (\ s a -> s{_hhcDescription = a})++-- | A so-far healthy instance will be marked unhealthy after this many+-- consecutive failures. The default value is 2.+hhcUnhealthyThreshold :: Lens' HTTPSHealthCheck (Maybe Int32)+hhcUnhealthyThreshold+  = lens _hhcUnhealthyThreshold+      (\ s a -> s{_hhcUnhealthyThreshold = a})+      . mapping _Coerce++-- | The TCP port number for the HTTPS health check request. The default+-- value is 443.+hhcPort :: Lens' HTTPSHealthCheck (Maybe Int32)+hhcPort+  = lens _hhcPort (\ s a -> s{_hhcPort = a}) .+      mapping _Coerce++instance FromJSON HTTPSHealthCheck where+        parseJSON+          = withObject "HTTPSHealthCheck"+              (\ o ->+                 HTTPSHealthCheck <$>+                   (o .:? "healthyThreshold") <*>+                     (o .:? "kind" .!= "compute#httpsHealthCheck")+                     <*> (o .:? "requestPath")+                     <*> (o .:? "selfLink")+                     <*> (o .:? "checkIntervalSec")+                     <*> (o .:? "name")+                     <*> (o .:? "creationTimestamp")+                     <*> (o .:? "id")+                     <*> (o .:? "host")+                     <*> (o .:? "timeoutSec")+                     <*> (o .:? "description")+                     <*> (o .:? "unhealthyThreshold")+                     <*> (o .:? "port"))++instance ToJSON HTTPSHealthCheck where+        toJSON HTTPSHealthCheck{..}+          = object+              (catMaybes+                 [("healthyThreshold" .=) <$> _hhcHealthyThreshold,+                  Just ("kind" .= _hhcKind),+                  ("requestPath" .=) <$> _hhcRequestPath,+                  ("selfLink" .=) <$> _hhcSelfLink,+                  ("checkIntervalSec" .=) <$> _hhcCheckIntervalSec,+                  ("name" .=) <$> _hhcName,+                  ("creationTimestamp" .=) <$> _hhcCreationTimestamp,+                  ("id" .=) <$> _hhcId, ("host" .=) <$> _hhcHost,+                  ("timeoutSec" .=) <$> _hhcTimeoutSec,+                  ("description" .=) <$> _hhcDescription,+                  ("unhealthyThreshold" .=) <$> _hhcUnhealthyThreshold,+                  ("port" .=) <$> _hhcPort])++-- | [Output Only] A map of scoped vpn tunnel lists.+--+-- /See:/ 'vpnTunnelAggregatedListItems' smart constructor.+newtype VPNTunnelAggregatedListItems = VPNTunnelAggregatedListItems+    { _vtaliAddtional :: HashMap Text VPNTunnelsScopedList+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'VPNTunnelAggregatedListItems' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vtaliAddtional'+vpnTunnelAggregatedListItems+    :: HashMap Text VPNTunnelsScopedList -- ^ 'vtaliAddtional'+    -> VPNTunnelAggregatedListItems+vpnTunnelAggregatedListItems pVtaliAddtional_ =+    VPNTunnelAggregatedListItems+    { _vtaliAddtional = _Coerce # pVtaliAddtional_+    }++-- | Name of the scope containing this set of vpn tunnels.+vtaliAddtional :: Lens' VPNTunnelAggregatedListItems (HashMap Text VPNTunnelsScopedList)+vtaliAddtional+  = lens _vtaliAddtional+      (\ s a -> s{_vtaliAddtional = a})+      . _Coerce++instance FromJSON VPNTunnelAggregatedListItems where+        parseJSON+          = withObject "VPNTunnelAggregatedListItems"+              (\ o ->+                 VPNTunnelAggregatedListItems <$> (parseJSONObject o))++instance ToJSON VPNTunnelAggregatedListItems where+        toJSON = toJSON . _vtaliAddtional++-- | A set of instance tags.+--+-- /See:/ 'tags' smart constructor.+data Tags = Tags+    { _tFingerprint :: !(Maybe (Textual Word8))+    , _tItems       :: !(Maybe [Text])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Tags' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tFingerprint'+--+-- * 'tItems'+tags+    :: Tags+tags =+    Tags+    { _tFingerprint = Nothing+    , _tItems = Nothing+    }++-- | Specifies a fingerprint for this request, which is essentially a hash of+-- the metadata\'s contents and used for optimistic locking. The+-- fingerprint is initially generated by Compute Engine and changes after+-- every request to modify or update metadata. You must always provide an+-- up-to-date fingerprint hash in order to update or change metadata. To+-- see the latest fingerprint, make get() request to the instance.+tFingerprint :: Lens' Tags (Maybe Word8)+tFingerprint+  = lens _tFingerprint (\ s a -> s{_tFingerprint = a})+      . mapping _Coerce++-- | An array of tags. Each tag must be 1-63 characters long, and comply with+-- RFC1035.+tItems :: Lens' Tags [Text]+tItems+  = lens _tItems (\ s a -> s{_tItems = a}) . _Default .+      _Coerce++instance FromJSON Tags where+        parseJSON+          = withObject "Tags"+              (\ o ->+                 Tags <$>+                   (o .:? "fingerprint") <*> (o .:? "items" .!= mempty))++instance ToJSON Tags where+        toJSON Tags{..}+          = object+              (catMaybes+                 [("fingerprint" .=) <$> _tFingerprint,+                  ("items" .=) <$> _tItems])++--+-- /See:/ 'addressAggregatedList' smart constructor.+data AddressAggregatedList = AddressAggregatedList+    { _addNextPageToken :: !(Maybe Text)+    , _addKind          :: !Text+    , _addItems         :: !(Maybe AddressAggregatedListItems)+    , _addSelfLink      :: !(Maybe Text)+    , _addId            :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'AddressAggregatedList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'addNextPageToken'+--+-- * 'addKind'+--+-- * 'addItems'+--+-- * 'addSelfLink'+--+-- * 'addId'+addressAggregatedList+    :: AddressAggregatedList+addressAggregatedList =+    AddressAggregatedList+    { _addNextPageToken = Nothing+    , _addKind = "compute#addressAggregatedList"+    , _addItems = Nothing+    , _addSelfLink = Nothing+    , _addId = Nothing+    }++-- | [Output Only] A token used to continue a truncated list request.+addNextPageToken :: Lens' AddressAggregatedList (Maybe Text)+addNextPageToken+  = lens _addNextPageToken+      (\ s a -> s{_addNextPageToken = a})++-- | [Output Only] Type of resource. Always compute#addressAggregatedList for+-- aggregated lists of addresses.+addKind :: Lens' AddressAggregatedList Text+addKind = lens _addKind (\ s a -> s{_addKind = a})++-- | [Output Only] A map of scoped address lists.+addItems :: Lens' AddressAggregatedList (Maybe AddressAggregatedListItems)+addItems = lens _addItems (\ s a -> s{_addItems = a})++-- | [Output Only] Server-defined URL for this resource.+addSelfLink :: Lens' AddressAggregatedList (Maybe Text)+addSelfLink+  = lens _addSelfLink (\ s a -> s{_addSelfLink = a})++-- | [Output Only] Unique identifier for the resource; defined by the server.+addId :: Lens' AddressAggregatedList (Maybe Text)+addId = lens _addId (\ s a -> s{_addId = a})++instance FromJSON AddressAggregatedList where+        parseJSON+          = withObject "AddressAggregatedList"+              (\ o ->+                 AddressAggregatedList <$>+                   (o .:? "nextPageToken") <*>+                     (o .:? "kind" .!= "compute#addressAggregatedList")+                     <*> (o .:? "items")+                     <*> (o .:? "selfLink")+                     <*> (o .:? "id"))++instance ToJSON AddressAggregatedList where+        toJSON AddressAggregatedList{..}+          = object+              (catMaybes+                 [("nextPageToken" .=) <$> _addNextPageToken,+                  Just ("kind" .= _addKind),+                  ("items" .=) <$> _addItems,+                  ("selfLink" .=) <$> _addSelfLink,+                  ("id" .=) <$> _addId])++--+-- /See:/ 'operationWarningsItem' smart constructor.+data OperationWarningsItem = OperationWarningsItem+    { _owiData    :: !(Maybe [OperationWarningsItemDataItem])+    , _owiCode    :: !(Maybe OperationWarningsItemCode)+    , _owiMessage :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'OperationWarningsItem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'owiData'+--+-- * 'owiCode'+--+-- * 'owiMessage'+operationWarningsItem+    :: OperationWarningsItem+operationWarningsItem =+    OperationWarningsItem+    { _owiData = Nothing+    , _owiCode = Nothing+    , _owiMessage = Nothing+    }++-- | [Output Only] Metadata for this warning in key: value format.+owiData :: Lens' OperationWarningsItem [OperationWarningsItemDataItem]+owiData+  = lens _owiData (\ s a -> s{_owiData = a}) . _Default+      . _Coerce++-- | [Output Only] The warning type identifier for this warning.+owiCode :: Lens' OperationWarningsItem (Maybe OperationWarningsItemCode)+owiCode = lens _owiCode (\ s a -> s{_owiCode = a})++-- | [Output Only] Optional human-readable details for this warning.+owiMessage :: Lens' OperationWarningsItem (Maybe Text)+owiMessage+  = lens _owiMessage (\ s a -> s{_owiMessage = a})++instance FromJSON OperationWarningsItem where+        parseJSON+          = withObject "OperationWarningsItem"+              (\ o ->+                 OperationWarningsItem <$>+                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>+                     (o .:? "message"))++instance ToJSON OperationWarningsItem where+        toJSON OperationWarningsItem{..}+          = object+              (catMaybes+                 [("data" .=) <$> _owiData, ("code" .=) <$> _owiCode,+                  ("message" .=) <$> _owiMessage])++-- | Message for the expected URL mappings.+--+-- /See:/ 'urlMapTest' smart constructor.+data URLMapTest = URLMapTest+    { _umtPath        :: !(Maybe Text)+    , _umtService     :: !(Maybe Text)+    , _umtHost        :: !(Maybe Text)+    , _umtDescription :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'URLMapTest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'umtPath'+--+-- * 'umtService'+--+-- * 'umtHost'+--+-- * 'umtDescription'+urlMapTest+    :: URLMapTest+urlMapTest =+    URLMapTest+    { _umtPath = Nothing+    , _umtService = Nothing+    , _umtHost = Nothing+    , _umtDescription = Nothing+    }++-- | Path portion of the URL.+umtPath :: Lens' URLMapTest (Maybe Text)+umtPath = lens _umtPath (\ s a -> s{_umtPath = a})++-- | Expected BackendService resource the given URL should be mapped to.+umtService :: Lens' URLMapTest (Maybe Text)+umtService+  = lens _umtService (\ s a -> s{_umtService = a})++-- | Host portion of the URL.+umtHost :: Lens' URLMapTest (Maybe Text)+umtHost = lens _umtHost (\ s a -> s{_umtHost = a})++-- | Description of this test case.+umtDescription :: Lens' URLMapTest (Maybe Text)+umtDescription+  = lens _umtDescription+      (\ s a -> s{_umtDescription = a})++instance FromJSON URLMapTest where+        parseJSON+          = withObject "URLMapTest"+              (\ o ->+                 URLMapTest <$>+                   (o .:? "path") <*> (o .:? "service") <*>+                     (o .:? "host")+                     <*> (o .:? "description"))++instance ToJSON URLMapTest where+        toJSON URLMapTest{..}+          = object+              (catMaybes+                 [("path" .=) <$> _umtPath,+                  ("service" .=) <$> _umtService,+                  ("host" .=) <$> _umtHost,+                  ("description" .=) <$> _umtDescription])++-- | An Instance resource.+--+-- /See:/ 'instance'' smart constructor.+data Instance = Instance+    { _insnStatus            :: !(Maybe InstanceStatus)+    , _insnServiceAccounts   :: !(Maybe [ServiceAccount])+    , _insnNetworkInterfaces :: !(Maybe [NetworkInterface])+    , _insnKind              :: !Text+    , _insnZone              :: !(Maybe Text)+    , _insnCPUPlatform       :: !(Maybe Text)+    , _insnSelfLink          :: !(Maybe Text)+    , _insnName              :: !(Maybe Text)+    , _insnStatusMessage     :: !(Maybe Text)+    , _insnCreationTimestamp :: !(Maybe Text)+    , _insnMachineType       :: !(Maybe Text)+    , _insnMetadata          :: !(Maybe Metadata)+    , _insnId                :: !(Maybe (Textual Word64))+    , _insnScheduling        :: !(Maybe Scheduling)+    , _insnDisks             :: !(Maybe [AttachedDisk])+    , _insnCanIPForward      :: !(Maybe Bool)+    , _insnDescription       :: !(Maybe Text)+    , _insnTags              :: !(Maybe Tags)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Instance' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'insnStatus'+--+-- * 'insnServiceAccounts'+--+-- * 'insnNetworkInterfaces'+--+-- * 'insnKind'+--+-- * 'insnZone'+--+-- * 'insnCPUPlatform'+--+-- * 'insnSelfLink'+--+-- * 'insnName'+--+-- * 'insnStatusMessage'+--+-- * 'insnCreationTimestamp'+--+-- * 'insnMachineType'+--+-- * 'insnMetadata'+--+-- * 'insnId'+--+-- * 'insnScheduling'+--+-- * 'insnDisks'+--+-- * 'insnCanIPForward'+--+-- * 'insnDescription'+--+-- * 'insnTags'+instance'+    :: Instance+instance' =+    Instance+    { _insnStatus = Nothing+    , _insnServiceAccounts = Nothing+    , _insnNetworkInterfaces = Nothing+    , _insnKind = "compute#instance"+    , _insnZone = Nothing+    , _insnCPUPlatform = Nothing+    , _insnSelfLink = Nothing+    , _insnName = Nothing+    , _insnStatusMessage = Nothing+    , _insnCreationTimestamp = Nothing+    , _insnMachineType = Nothing+    , _insnMetadata = Nothing+    , _insnId = Nothing+    , _insnScheduling = Nothing+    , _insnDisks = Nothing+    , _insnCanIPForward = Nothing+    , _insnDescription = Nothing+    , _insnTags = Nothing+    }++-- | [Output Only] The status of the instance. One of the following values:+-- PROVISIONING, STAGING, RUNNING, STOPPING, and TERMINATED.+insnStatus :: Lens' Instance (Maybe InstanceStatus)+insnStatus+  = lens _insnStatus (\ s a -> s{_insnStatus = a})++-- | A list of service accounts, with their specified scopes, authorized for+-- this instance. Service accounts generate access tokens that can be+-- accessed through the metadata server and used to authenticate+-- applications on the instance. See Authenticating from Google Compute+-- Engine for more information.+insnServiceAccounts :: Lens' Instance [ServiceAccount]+insnServiceAccounts+  = lens _insnServiceAccounts+      (\ s a -> s{_insnServiceAccounts = a})+      . _Default+      . _Coerce++-- | An array of configurations for this interface. This specifies how this+-- interface is configured to interact with other network services, such as+-- connecting to the internet.+insnNetworkInterfaces :: Lens' Instance [NetworkInterface]+insnNetworkInterfaces+  = lens _insnNetworkInterfaces+      (\ s a -> s{_insnNetworkInterfaces = a})+      . _Default+      . _Coerce++-- | [Output Only] Type of the resource. Always compute#instance for+-- instances.+insnKind :: Lens' Instance Text+insnKind = lens _insnKind (\ s a -> s{_insnKind = a})++-- | [Output Only] URL of the zone where the instance resides.+insnZone :: Lens' Instance (Maybe Text)+insnZone = lens _insnZone (\ s a -> s{_insnZone = a})++-- | [Output Only] The CPU platform used by this instance.+insnCPUPlatform :: Lens' Instance (Maybe Text)+insnCPUPlatform+  = lens _insnCPUPlatform+      (\ s a -> s{_insnCPUPlatform = a})++-- | [Output Only] Server defined URL for this resource.+insnSelfLink :: Lens' Instance (Maybe Text)+insnSelfLink+  = lens _insnSelfLink (\ s a -> s{_insnSelfLink = a})++-- | Name of the resource; provided by the client when the resource is+-- created. The name must be 1-63 characters long, and comply with RFC1035.+-- Specifically, the name must be 1-63 characters long and match the+-- regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first+-- character must be a lowercase letter, and all following characters must+-- be a dash, lowercase letter, or digit, except the last character, which+-- cannot be a dash.+insnName :: Lens' Instance (Maybe Text)+insnName = lens _insnName (\ s a -> s{_insnName = a})++-- | [Output Only] An optional, human-readable explanation of the status.+insnStatusMessage :: Lens' Instance (Maybe Text)+insnStatusMessage+  = lens _insnStatusMessage+      (\ s a -> s{_insnStatusMessage = a})++-- | [Output Only] Creation timestamp in RFC3339 text format.+insnCreationTimestamp :: Lens' Instance (Maybe Text)+insnCreationTimestamp+  = lens _insnCreationTimestamp+      (\ s a -> s{_insnCreationTimestamp = a})++-- | Full or partial URL of the machine type resource to use for this+-- instance. This is provided by the client when the instance is created.+-- For example, the following is a valid partial url:+-- zones\/zone\/machineTypes\/machine-type+insnMachineType :: Lens' Instance (Maybe Text)+insnMachineType+  = lens _insnMachineType+      (\ s a -> s{_insnMachineType = a})++-- | The metadata key\/value pairs assigned to this instance. This includes+-- custom metadata and predefined keys.+insnMetadata :: Lens' Instance (Maybe Metadata)+insnMetadata+  = lens _insnMetadata (\ s a -> s{_insnMetadata = a})++-- | [Output Only] Unique identifier for the resource; defined by the server.+insnId :: Lens' Instance (Maybe Word64)+insnId+  = lens _insnId (\ s a -> s{_insnId = a}) .+      mapping _Coerce++-- | Scheduling options for this instance.+insnScheduling :: Lens' Instance (Maybe Scheduling)+insnScheduling+  = lens _insnScheduling+      (\ s a -> s{_insnScheduling = a})++-- | Array of disks associated with this instance. Persistent disks must be+-- created before you can assign them.+insnDisks :: Lens' Instance [AttachedDisk]+insnDisks+  = lens _insnDisks (\ s a -> s{_insnDisks = a}) .+      _Default+      . _Coerce++-- | Allows this instance to send and receive packets with non-matching+-- destination or source IPs. This is required if you plan to use this+-- instance to forward routes. For more information, see Enabling IP+-- Forwarding.+insnCanIPForward :: Lens' Instance (Maybe Bool)+insnCanIPForward+  = lens _insnCanIPForward+      (\ s a -> s{_insnCanIPForward = a})++-- | An optional textual description of the resource; provided by the client+-- when the resource is created.+insnDescription :: Lens' Instance (Maybe Text)+insnDescription+  = lens _insnDescription+      (\ s a -> s{_insnDescription = a})++-- | A list of tags to appy to this instance. Tags are used to identify valid+-- sources or targets for network firewalls and are specified by the client+-- during instance creation. The tags can be later modified by the setTags+-- method. Each tag within the list must comply with RFC1035.+insnTags :: Lens' Instance (Maybe Tags)+insnTags = lens _insnTags (\ s a -> s{_insnTags = a})++instance FromJSON Instance where+        parseJSON+          = withObject "Instance"+              (\ o ->+                 Instance <$>+                   (o .:? "status") <*>+                     (o .:? "serviceAccounts" .!= mempty)+                     <*> (o .:? "networkInterfaces" .!= mempty)+                     <*> (o .:? "kind" .!= "compute#instance")+                     <*> (o .:? "zone")+                     <*> (o .:? "cpuPlatform")+                     <*> (o .:? "selfLink")+                     <*> (o .:? "name")+                     <*> (o .:? "statusMessage")+                     <*> (o .:? "creationTimestamp")+                     <*> (o .:? "machineType")+                     <*> (o .:? "metadata")+                     <*> (o .:? "id")+                     <*> (o .:? "scheduling")+                     <*> (o .:? "disks" .!= mempty)+                     <*> (o .:? "canIpForward")+                     <*> (o .:? "description")+                     <*> (o .:? "tags"))++instance ToJSON Instance where+        toJSON Instance{..}+          = object+              (catMaybes+                 [("status" .=) <$> _insnStatus,+                  ("serviceAccounts" .=) <$> _insnServiceAccounts,+                  ("networkInterfaces" .=) <$> _insnNetworkInterfaces,+                  Just ("kind" .= _insnKind),+                  ("zone" .=) <$> _insnZone,+                  ("cpuPlatform" .=) <$> _insnCPUPlatform,+                  ("selfLink" .=) <$> _insnSelfLink,+                  ("name" .=) <$> _insnName,+                  ("statusMessage" .=) <$> _insnStatusMessage,+                  ("creationTimestamp" .=) <$> _insnCreationTimestamp,+                  ("machineType" .=) <$> _insnMachineType,+                  ("metadata" .=) <$> _insnMetadata,+                  ("id" .=) <$> _insnId,+                  ("scheduling" .=) <$> _insnScheduling,+                  ("disks" .=) <$> _insnDisks,+                  ("canIpForward" .=) <$> _insnCanIPForward,+                  ("description" .=) <$> _insnDescription,+                  ("tags" .=) <$> _insnTags])++-- | A matcher for the path portion of the URL. The BackendService from the+-- longest-matched rule will serve the URL. If no rule was matched, the+-- default service will be used.+--+-- /See:/ 'pathMatcher' smart constructor.+data PathMatcher = PathMatcher+    { _pmDefaultService :: !(Maybe Text)+    , _pmName           :: !(Maybe Text)+    , _pmPathRules      :: !(Maybe [PathRule])+    , _pmDescription    :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'PathMatcher' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pmDefaultService'+--+-- * 'pmName'+--+-- * 'pmPathRules'+--+-- * 'pmDescription'+pathMatcher+    :: PathMatcher+pathMatcher =+    PathMatcher+    { _pmDefaultService = Nothing+    , _pmName = Nothing+    , _pmPathRules = Nothing+    , _pmDescription = Nothing+    }++-- | The URL to the BackendService resource. This will be used if none of the+-- \'pathRules\' defined by this PathMatcher is met by the URL\'s path+-- portion.+pmDefaultService :: Lens' PathMatcher (Maybe Text)+pmDefaultService+  = lens _pmDefaultService+      (\ s a -> s{_pmDefaultService = a})++-- | The name to which this PathMatcher is referred by the HostRule.+pmName :: Lens' PathMatcher (Maybe Text)+pmName = lens _pmName (\ s a -> s{_pmName = a})++-- | The list of path rules.+pmPathRules :: Lens' PathMatcher [PathRule]+pmPathRules+  = lens _pmPathRules (\ s a -> s{_pmPathRules = a}) .+      _Default+      . _Coerce++-- | An optional textual description of the resource.+pmDescription :: Lens' PathMatcher (Maybe Text)+pmDescription+  = lens _pmDescription+      (\ s a -> s{_pmDescription = a})++instance FromJSON PathMatcher where+        parseJSON+          = withObject "PathMatcher"+              (\ o ->+                 PathMatcher <$>+                   (o .:? "defaultService") <*> (o .:? "name") <*>+                     (o .:? "pathRules" .!= mempty)+                     <*> (o .:? "description"))++instance ToJSON PathMatcher where+        toJSON PathMatcher{..}+          = object+              (catMaybes+                 [("defaultService" .=) <$> _pmDefaultService,+                  ("name" .=) <$> _pmName,+                  ("pathRules" .=) <$> _pmPathRules,+                  ("description" .=) <$> _pmDescription])
+ gen/Network/Google/Compute/Types/Sum.hs view
@@ -0,0 +1,2366 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE LambdaCase         #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Network.Google.Compute.Types.Sum+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Network.Google.Compute.Types.Sum where++import           Network.Google.Prelude++-- | Defines the maintenance behavior for this instance. For standard+-- instances, the default behavior is MIGRATE. For preemptible instances,+-- the default and only possible behavior is TERMINATE. For more+-- information, see Setting maintenance behavior.+data SchedulingOnHostMaintenance+    = Migrate+      -- ^ @MIGRATE@+    | Terminate+      -- ^ @TERMINATE@+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable SchedulingOnHostMaintenance++instance FromText SchedulingOnHostMaintenance where+    fromText = \case+        "MIGRATE" -> Just Migrate+        "TERMINATE" -> Just Terminate+        _ -> Nothing++instance ToText SchedulingOnHostMaintenance where+    toText = \case+        Migrate -> "MIGRATE"+        Terminate -> "TERMINATE"++instance FromJSON SchedulingOnHostMaintenance where+    parseJSON = parseJSONText "SchedulingOnHostMaintenance"++instance ToJSON SchedulingOnHostMaintenance where+    toJSON = toJSONText++-- | Defines type in which utilization_target is expressed.+data AutoscalingPolicyCustomMetricUtilizationUtilizationTargetType+    = DeltaPerMinute+      -- ^ @DELTA_PER_MINUTE@+    | DeltaPerSecond+      -- ^ @DELTA_PER_SECOND@+    | Gauge+      -- ^ @GAUGE@+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable AutoscalingPolicyCustomMetricUtilizationUtilizationTargetType++instance FromText AutoscalingPolicyCustomMetricUtilizationUtilizationTargetType where+    fromText = \case+        "DELTA_PER_MINUTE" -> Just DeltaPerMinute+        "DELTA_PER_SECOND" -> Just DeltaPerSecond+        "GAUGE" -> Just Gauge+        _ -> Nothing++instance ToText AutoscalingPolicyCustomMetricUtilizationUtilizationTargetType where+    toText = \case+        DeltaPerMinute -> "DELTA_PER_MINUTE"+        DeltaPerSecond -> "DELTA_PER_SECOND"+        Gauge -> "GAUGE"++instance FromJSON AutoscalingPolicyCustomMetricUtilizationUtilizationTargetType where+    parseJSON = parseJSONText "AutoscalingPolicyCustomMetricUtilizationUtilizationTargetType"++instance ToJSON AutoscalingPolicyCustomMetricUtilizationUtilizationTargetType where+    toJSON = toJSONText++-- | [Output Only] The warning type identifier for this warning.+data OperationWarningsItemCode+    = DeprecatedResourceUsed+      -- ^ @DEPRECATED_RESOURCE_USED@+    | DiskSizeLargerThanImageSize+      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@+    | InjectedKernelsDeprecated+      -- ^ @INJECTED_KERNELS_DEPRECATED@+    | NextHopAddressNotAssigned+      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@+    | NextHopCannotIPForward+      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@+    | NextHopInstanceNotFound+      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@+    | NextHopInstanceNotOnNetwork+      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@+    | NextHopNotRunning+      -- ^ @NEXT_HOP_NOT_RUNNING@+    | NotCriticalError+      -- ^ @NOT_CRITICAL_ERROR@+    | NoResultsOnPage+      -- ^ @NO_RESULTS_ON_PAGE@+    | RequiredTosAgreement+      -- ^ @REQUIRED_TOS_AGREEMENT@+    | ResourceNotDeleted+      -- ^ @RESOURCE_NOT_DELETED@+    | SingleInstancePropertyTemplate+      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@+    | Unreachable+      -- ^ @UNREACHABLE@+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable OperationWarningsItemCode++instance FromText OperationWarningsItemCode where+    fromText = \case+        "DEPRECATED_RESOURCE_USED" -> Just DeprecatedResourceUsed+        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Just DiskSizeLargerThanImageSize+        "INJECTED_KERNELS_DEPRECATED" -> Just InjectedKernelsDeprecated+        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Just NextHopAddressNotAssigned+        "NEXT_HOP_CANNOT_IP_FORWARD" -> Just NextHopCannotIPForward+        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Just NextHopInstanceNotFound+        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Just NextHopInstanceNotOnNetwork+        "NEXT_HOP_NOT_RUNNING" -> Just NextHopNotRunning+        "NOT_CRITICAL_ERROR" -> Just NotCriticalError+        "NO_RESULTS_ON_PAGE" -> Just NoResultsOnPage+        "REQUIRED_TOS_AGREEMENT" -> Just RequiredTosAgreement+        "RESOURCE_NOT_DELETED" -> Just ResourceNotDeleted+        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Just SingleInstancePropertyTemplate+        "UNREACHABLE" -> Just Unreachable+        _ -> Nothing++instance ToText OperationWarningsItemCode where+    toText = \case+        DeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"+        DiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"+        InjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"+        NextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"+        NextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"+        NextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"+        NextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"+        NextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"+        NotCriticalError -> "NOT_CRITICAL_ERROR"+        NoResultsOnPage -> "NO_RESULTS_ON_PAGE"+        RequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"+        ResourceNotDeleted -> "RESOURCE_NOT_DELETED"+        SingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"+        Unreachable -> "UNREACHABLE"++instance FromJSON OperationWarningsItemCode where+    parseJSON = parseJSONText "OperationWarningsItemCode"++instance ToJSON OperationWarningsItemCode where+    toJSON = toJSONText++data BackendServiceProtocol+    = HTTP+      -- ^ @HTTP@+    | HTTPS+      -- ^ @HTTPS@+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable BackendServiceProtocol++instance FromText BackendServiceProtocol where+    fromText = \case+        "HTTP" -> Just HTTP+        "HTTPS" -> Just HTTPS+        _ -> Nothing++instance ToText BackendServiceProtocol where+    toText = \case+        HTTP -> "HTTP"+        HTTPS -> "HTTPS"++instance FromJSON BackendServiceProtocol where+    parseJSON = parseJSONText "BackendServiceProtocol"++instance ToJSON BackendServiceProtocol where+    toJSON = toJSONText++-- | Specifies the type of the disk, either SCRATCH or PERSISTENT. If not+-- specified, the default is PERSISTENT.+data AttachedDiskType+    = Persistent+      -- ^ @PERSISTENT@+    | Scratch+      -- ^ @SCRATCH@+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable AttachedDiskType++instance FromText AttachedDiskType where+    fromText = \case+        "PERSISTENT" -> Just Persistent+        "SCRATCH" -> Just Scratch+        _ -> Nothing++instance ToText AttachedDiskType where+    toText = \case+        Persistent -> "PERSISTENT"+        Scratch -> "SCRATCH"++instance FromJSON AttachedDiskType where+    parseJSON = parseJSONText "AttachedDiskType"++instance ToJSON AttachedDiskType where+    toJSON = toJSONText++-- | The type of the image used to create this disk. The default and only+-- value is RAW+data ImageSourceType+    = Raw+      -- ^ @RAW@+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable ImageSourceType++instance FromText ImageSourceType where+    fromText = \case+        "RAW" -> Just Raw+        _ -> Nothing++instance ToText ImageSourceType where+    toText = \case+        Raw -> "RAW"++instance FromJSON ImageSourceType where+    parseJSON = parseJSONText "ImageSourceType"++instance ToJSON ImageSourceType where+    toJSON = toJSONText++-- | [Output Only] The warning type identifier for this warning.+data ForwardingRulesScopedListWarningCode+    = FRSLWCDeprecatedResourceUsed+      -- ^ @DEPRECATED_RESOURCE_USED@+    | FRSLWCDiskSizeLargerThanImageSize+      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@+    | FRSLWCInjectedKernelsDeprecated+      -- ^ @INJECTED_KERNELS_DEPRECATED@+    | FRSLWCNextHopAddressNotAssigned+      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@+    | FRSLWCNextHopCannotIPForward+      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@+    | FRSLWCNextHopInstanceNotFound+      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@+    | FRSLWCNextHopInstanceNotOnNetwork+      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@+    | FRSLWCNextHopNotRunning+      -- ^ @NEXT_HOP_NOT_RUNNING@+    | FRSLWCNotCriticalError+      -- ^ @NOT_CRITICAL_ERROR@+    | FRSLWCNoResultsOnPage+      -- ^ @NO_RESULTS_ON_PAGE@+    | FRSLWCRequiredTosAgreement+      -- ^ @REQUIRED_TOS_AGREEMENT@+    | FRSLWCResourceNotDeleted+      -- ^ @RESOURCE_NOT_DELETED@+    | FRSLWCSingleInstancePropertyTemplate+      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@+    | FRSLWCUnreachable+      -- ^ @UNREACHABLE@+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable ForwardingRulesScopedListWarningCode++instance FromText ForwardingRulesScopedListWarningCode where+    fromText = \case+        "DEPRECATED_RESOURCE_USED" -> Just FRSLWCDeprecatedResourceUsed+        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Just FRSLWCDiskSizeLargerThanImageSize+        "INJECTED_KERNELS_DEPRECATED" -> Just FRSLWCInjectedKernelsDeprecated+        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Just FRSLWCNextHopAddressNotAssigned+        "NEXT_HOP_CANNOT_IP_FORWARD" -> Just FRSLWCNextHopCannotIPForward+        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Just FRSLWCNextHopInstanceNotFound+        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Just FRSLWCNextHopInstanceNotOnNetwork+        "NEXT_HOP_NOT_RUNNING" -> Just FRSLWCNextHopNotRunning+        "NOT_CRITICAL_ERROR" -> Just FRSLWCNotCriticalError+        "NO_RESULTS_ON_PAGE" -> Just FRSLWCNoResultsOnPage+        "REQUIRED_TOS_AGREEMENT" -> Just FRSLWCRequiredTosAgreement+        "RESOURCE_NOT_DELETED" -> Just FRSLWCResourceNotDeleted+        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Just FRSLWCSingleInstancePropertyTemplate+        "UNREACHABLE" -> Just FRSLWCUnreachable+        _ -> Nothing++instance ToText ForwardingRulesScopedListWarningCode where+    toText = \case+        FRSLWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"+        FRSLWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"+        FRSLWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"+        FRSLWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"+        FRSLWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"+        FRSLWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"+        FRSLWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"+        FRSLWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"+        FRSLWCNotCriticalError -> "NOT_CRITICAL_ERROR"+        FRSLWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"+        FRSLWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"+        FRSLWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"+        FRSLWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"+        FRSLWCUnreachable -> "UNREACHABLE"++instance FromJSON ForwardingRulesScopedListWarningCode where+    parseJSON = parseJSONText "ForwardingRulesScopedListWarningCode"++instance ToJSON ForwardingRulesScopedListWarningCode where+    toJSON = toJSONText++-- | [Output Only] The warning type identifier for this warning.+data OperationsScopedListWarningCode+    = OSLWCDeprecatedResourceUsed+      -- ^ @DEPRECATED_RESOURCE_USED@+    | OSLWCDiskSizeLargerThanImageSize+      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@+    | OSLWCInjectedKernelsDeprecated+      -- ^ @INJECTED_KERNELS_DEPRECATED@+    | OSLWCNextHopAddressNotAssigned+      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@+    | OSLWCNextHopCannotIPForward+      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@+    | OSLWCNextHopInstanceNotFound+      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@+    | OSLWCNextHopInstanceNotOnNetwork+      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@+    | OSLWCNextHopNotRunning+      -- ^ @NEXT_HOP_NOT_RUNNING@+    | OSLWCNotCriticalError+      -- ^ @NOT_CRITICAL_ERROR@+    | OSLWCNoResultsOnPage+      -- ^ @NO_RESULTS_ON_PAGE@+    | OSLWCRequiredTosAgreement+      -- ^ @REQUIRED_TOS_AGREEMENT@+    | OSLWCResourceNotDeleted+      -- ^ @RESOURCE_NOT_DELETED@+    | OSLWCSingleInstancePropertyTemplate+      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@+    | OSLWCUnreachable+      -- ^ @UNREACHABLE@+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable OperationsScopedListWarningCode++instance FromText OperationsScopedListWarningCode where+    fromText = \case+        "DEPRECATED_RESOURCE_USED" -> Just OSLWCDeprecatedResourceUsed+        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Just OSLWCDiskSizeLargerThanImageSize+        "INJECTED_KERNELS_DEPRECATED" -> Just OSLWCInjectedKernelsDeprecated+        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Just OSLWCNextHopAddressNotAssigned+        "NEXT_HOP_CANNOT_IP_FORWARD" -> Just OSLWCNextHopCannotIPForward+        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Just OSLWCNextHopInstanceNotFound+        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Just OSLWCNextHopInstanceNotOnNetwork+        "NEXT_HOP_NOT_RUNNING" -> Just OSLWCNextHopNotRunning+        "NOT_CRITICAL_ERROR" -> Just OSLWCNotCriticalError+        "NO_RESULTS_ON_PAGE" -> Just OSLWCNoResultsOnPage+        "REQUIRED_TOS_AGREEMENT" -> Just OSLWCRequiredTosAgreement+        "RESOURCE_NOT_DELETED" -> Just OSLWCResourceNotDeleted+        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Just OSLWCSingleInstancePropertyTemplate+        "UNREACHABLE" -> Just OSLWCUnreachable+        _ -> Nothing++instance ToText OperationsScopedListWarningCode where+    toText = \case+        OSLWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"+        OSLWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"+        OSLWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"+        OSLWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"+        OSLWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"+        OSLWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"+        OSLWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"+        OSLWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"+        OSLWCNotCriticalError -> "NOT_CRITICAL_ERROR"+        OSLWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"+        OSLWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"+        OSLWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"+        OSLWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"+        OSLWCUnreachable -> "UNREACHABLE"++instance FromJSON OperationsScopedListWarningCode where+    parseJSON = parseJSONText "OperationsScopedListWarningCode"++instance ToJSON OperationsScopedListWarningCode where+    toJSON = toJSONText++-- | [Output Only] The warning type identifier for this warning.+data DisksScopedListWarningCode+    = DSLWCDeprecatedResourceUsed+      -- ^ @DEPRECATED_RESOURCE_USED@+    | DSLWCDiskSizeLargerThanImageSize+      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@+    | DSLWCInjectedKernelsDeprecated+      -- ^ @INJECTED_KERNELS_DEPRECATED@+    | DSLWCNextHopAddressNotAssigned+      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@+    | DSLWCNextHopCannotIPForward+      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@+    | DSLWCNextHopInstanceNotFound+      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@+    | DSLWCNextHopInstanceNotOnNetwork+      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@+    | DSLWCNextHopNotRunning+      -- ^ @NEXT_HOP_NOT_RUNNING@+    | DSLWCNotCriticalError+      -- ^ @NOT_CRITICAL_ERROR@+    | DSLWCNoResultsOnPage+      -- ^ @NO_RESULTS_ON_PAGE@+    | DSLWCRequiredTosAgreement+      -- ^ @REQUIRED_TOS_AGREEMENT@+    | DSLWCResourceNotDeleted+      -- ^ @RESOURCE_NOT_DELETED@+    | DSLWCSingleInstancePropertyTemplate+      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@+    | DSLWCUnreachable+      -- ^ @UNREACHABLE@+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable DisksScopedListWarningCode++instance FromText DisksScopedListWarningCode where+    fromText = \case+        "DEPRECATED_RESOURCE_USED" -> Just DSLWCDeprecatedResourceUsed+        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Just DSLWCDiskSizeLargerThanImageSize+        "INJECTED_KERNELS_DEPRECATED" -> Just DSLWCInjectedKernelsDeprecated+        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Just DSLWCNextHopAddressNotAssigned+        "NEXT_HOP_CANNOT_IP_FORWARD" -> Just DSLWCNextHopCannotIPForward+        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Just DSLWCNextHopInstanceNotFound+        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Just DSLWCNextHopInstanceNotOnNetwork+        "NEXT_HOP_NOT_RUNNING" -> Just DSLWCNextHopNotRunning+        "NOT_CRITICAL_ERROR" -> Just DSLWCNotCriticalError+        "NO_RESULTS_ON_PAGE" -> Just DSLWCNoResultsOnPage+        "REQUIRED_TOS_AGREEMENT" -> Just DSLWCRequiredTosAgreement+        "RESOURCE_NOT_DELETED" -> Just DSLWCResourceNotDeleted+        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Just DSLWCSingleInstancePropertyTemplate+        "UNREACHABLE" -> Just DSLWCUnreachable+        _ -> Nothing++instance ToText DisksScopedListWarningCode where+    toText = \case+        DSLWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"+        DSLWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"+        DSLWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"+        DSLWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"+        DSLWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"+        DSLWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"+        DSLWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"+        DSLWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"+        DSLWCNotCriticalError -> "NOT_CRITICAL_ERROR"+        DSLWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"+        DSLWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"+        DSLWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"+        DSLWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"+        DSLWCUnreachable -> "UNREACHABLE"++instance FromJSON DisksScopedListWarningCode where+    parseJSON = parseJSONText "DisksScopedListWarningCode"++instance ToJSON DisksScopedListWarningCode where+    toJSON = toJSONText++-- | [Output Only] The warning type identifier for this warning.+data InstanceGroupManagersScopedListWarningCode+    = IGMSLWCDeprecatedResourceUsed+      -- ^ @DEPRECATED_RESOURCE_USED@+    | IGMSLWCDiskSizeLargerThanImageSize+      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@+    | IGMSLWCInjectedKernelsDeprecated+      -- ^ @INJECTED_KERNELS_DEPRECATED@+    | IGMSLWCNextHopAddressNotAssigned+      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@+    | IGMSLWCNextHopCannotIPForward+      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@+    | IGMSLWCNextHopInstanceNotFound+      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@+    | IGMSLWCNextHopInstanceNotOnNetwork+      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@+    | IGMSLWCNextHopNotRunning+      -- ^ @NEXT_HOP_NOT_RUNNING@+    | IGMSLWCNotCriticalError+      -- ^ @NOT_CRITICAL_ERROR@+    | IGMSLWCNoResultsOnPage+      -- ^ @NO_RESULTS_ON_PAGE@+    | IGMSLWCRequiredTosAgreement+      -- ^ @REQUIRED_TOS_AGREEMENT@+    | IGMSLWCResourceNotDeleted+      -- ^ @RESOURCE_NOT_DELETED@+    | IGMSLWCSingleInstancePropertyTemplate+      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@+    | IGMSLWCUnreachable+      -- ^ @UNREACHABLE@+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable InstanceGroupManagersScopedListWarningCode++instance FromText InstanceGroupManagersScopedListWarningCode where+    fromText = \case+        "DEPRECATED_RESOURCE_USED" -> Just IGMSLWCDeprecatedResourceUsed+        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Just IGMSLWCDiskSizeLargerThanImageSize+        "INJECTED_KERNELS_DEPRECATED" -> Just IGMSLWCInjectedKernelsDeprecated+        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Just IGMSLWCNextHopAddressNotAssigned+        "NEXT_HOP_CANNOT_IP_FORWARD" -> Just IGMSLWCNextHopCannotIPForward+        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Just IGMSLWCNextHopInstanceNotFound+        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Just IGMSLWCNextHopInstanceNotOnNetwork+        "NEXT_HOP_NOT_RUNNING" -> Just IGMSLWCNextHopNotRunning+        "NOT_CRITICAL_ERROR" -> Just IGMSLWCNotCriticalError+        "NO_RESULTS_ON_PAGE" -> Just IGMSLWCNoResultsOnPage+        "REQUIRED_TOS_AGREEMENT" -> Just IGMSLWCRequiredTosAgreement+        "RESOURCE_NOT_DELETED" -> Just IGMSLWCResourceNotDeleted+        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Just IGMSLWCSingleInstancePropertyTemplate+        "UNREACHABLE" -> Just IGMSLWCUnreachable+        _ -> Nothing++instance ToText InstanceGroupManagersScopedListWarningCode where+    toText = \case+        IGMSLWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"+        IGMSLWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"+        IGMSLWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"+        IGMSLWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"+        IGMSLWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"+        IGMSLWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"+        IGMSLWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"+        IGMSLWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"+        IGMSLWCNotCriticalError -> "NOT_CRITICAL_ERROR"+        IGMSLWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"+        IGMSLWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"+        IGMSLWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"+        IGMSLWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"+        IGMSLWCUnreachable -> "UNREACHABLE"++instance FromJSON InstanceGroupManagersScopedListWarningCode where+    parseJSON = parseJSONText "InstanceGroupManagersScopedListWarningCode"++instance ToJSON InstanceGroupManagersScopedListWarningCode where+    toJSON = toJSONText++-- | [Output Only] The warning type identifier for this warning.+data TargetPoolsScopedListWarningCode+    = TPSLWCDeprecatedResourceUsed+      -- ^ @DEPRECATED_RESOURCE_USED@+    | TPSLWCDiskSizeLargerThanImageSize+      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@+    | TPSLWCInjectedKernelsDeprecated+      -- ^ @INJECTED_KERNELS_DEPRECATED@+    | TPSLWCNextHopAddressNotAssigned+      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@+    | TPSLWCNextHopCannotIPForward+      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@+    | TPSLWCNextHopInstanceNotFound+      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@+    | TPSLWCNextHopInstanceNotOnNetwork+      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@+    | TPSLWCNextHopNotRunning+      -- ^ @NEXT_HOP_NOT_RUNNING@+    | TPSLWCNotCriticalError+      -- ^ @NOT_CRITICAL_ERROR@+    | TPSLWCNoResultsOnPage+      -- ^ @NO_RESULTS_ON_PAGE@+    | TPSLWCRequiredTosAgreement+      -- ^ @REQUIRED_TOS_AGREEMENT@+    | TPSLWCResourceNotDeleted+      -- ^ @RESOURCE_NOT_DELETED@+    | TPSLWCSingleInstancePropertyTemplate+      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@+    | TPSLWCUnreachable+      -- ^ @UNREACHABLE@+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable TargetPoolsScopedListWarningCode++instance FromText TargetPoolsScopedListWarningCode where+    fromText = \case+        "DEPRECATED_RESOURCE_USED" -> Just TPSLWCDeprecatedResourceUsed+        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Just TPSLWCDiskSizeLargerThanImageSize+        "INJECTED_KERNELS_DEPRECATED" -> Just TPSLWCInjectedKernelsDeprecated+        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Just TPSLWCNextHopAddressNotAssigned+        "NEXT_HOP_CANNOT_IP_FORWARD" -> Just TPSLWCNextHopCannotIPForward+        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Just TPSLWCNextHopInstanceNotFound+        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Just TPSLWCNextHopInstanceNotOnNetwork+        "NEXT_HOP_NOT_RUNNING" -> Just TPSLWCNextHopNotRunning+        "NOT_CRITICAL_ERROR" -> Just TPSLWCNotCriticalError+        "NO_RESULTS_ON_PAGE" -> Just TPSLWCNoResultsOnPage+        "REQUIRED_TOS_AGREEMENT" -> Just TPSLWCRequiredTosAgreement+        "RESOURCE_NOT_DELETED" -> Just TPSLWCResourceNotDeleted+        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Just TPSLWCSingleInstancePropertyTemplate+        "UNREACHABLE" -> Just TPSLWCUnreachable+        _ -> Nothing++instance ToText TargetPoolsScopedListWarningCode where+    toText = \case+        TPSLWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"+        TPSLWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"+        TPSLWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"+        TPSLWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"+        TPSLWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"+        TPSLWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"+        TPSLWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"+        TPSLWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"+        TPSLWCNotCriticalError -> "NOT_CRITICAL_ERROR"+        TPSLWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"+        TPSLWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"+        TPSLWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"+        TPSLWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"+        TPSLWCUnreachable -> "UNREACHABLE"++instance FromJSON TargetPoolsScopedListWarningCode where+    parseJSON = parseJSONText "TargetPoolsScopedListWarningCode"++instance ToJSON TargetPoolsScopedListWarningCode where+    toJSON = toJSONText++-- | [Output Only] The status of the VPN gateway.+data TargetVPNGatewayStatus+    = Creating+      -- ^ @CREATING@+    | Deleting+      -- ^ @DELETING@+    | Failed+      -- ^ @FAILED@+    | Ready+      -- ^ @READY@+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable TargetVPNGatewayStatus++instance FromText TargetVPNGatewayStatus where+    fromText = \case+        "CREATING" -> Just Creating+        "DELETING" -> Just Deleting+        "FAILED" -> Just Failed+        "READY" -> Just Ready+        _ -> Nothing++instance ToText TargetVPNGatewayStatus where+    toText = \case+        Creating -> "CREATING"+        Deleting -> "DELETING"+        Failed -> "FAILED"+        Ready -> "READY"++instance FromJSON TargetVPNGatewayStatus where+    parseJSON = parseJSONText "TargetVPNGatewayStatus"++instance ToJSON TargetVPNGatewayStatus where+    toJSON = toJSONText++-- | [Output Only] The status of the snapshot.+data SnapshotStatus+    = SSCreating+      -- ^ @CREATING@+    | SSDeleting+      -- ^ @DELETING@+    | SSFailed+      -- ^ @FAILED@+    | SSReady+      -- ^ @READY@+    | SSUploading+      -- ^ @UPLOADING@+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable SnapshotStatus++instance FromText SnapshotStatus where+    fromText = \case+        "CREATING" -> Just SSCreating+        "DELETING" -> Just SSDeleting+        "FAILED" -> Just SSFailed+        "READY" -> Just SSReady+        "UPLOADING" -> Just SSUploading+        _ -> Nothing++instance ToText SnapshotStatus where+    toText = \case+        SSCreating -> "CREATING"+        SSDeleting -> "DELETING"+        SSFailed -> "FAILED"+        SSReady -> "READY"+        SSUploading -> "UPLOADING"++instance FromJSON SnapshotStatus where+    parseJSON = parseJSONText "SnapshotStatus"++instance ToJSON SnapshotStatus where+    toJSON = toJSONText++-- | [Output Only] The warning type identifier for this warning.+data TargetInstancesScopedListWarningCode+    = TISLWCDeprecatedResourceUsed+      -- ^ @DEPRECATED_RESOURCE_USED@+    | TISLWCDiskSizeLargerThanImageSize+      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@+    | TISLWCInjectedKernelsDeprecated+      -- ^ @INJECTED_KERNELS_DEPRECATED@+    | TISLWCNextHopAddressNotAssigned+      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@+    | TISLWCNextHopCannotIPForward+      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@+    | TISLWCNextHopInstanceNotFound+      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@+    | TISLWCNextHopInstanceNotOnNetwork+      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@+    | TISLWCNextHopNotRunning+      -- ^ @NEXT_HOP_NOT_RUNNING@+    | TISLWCNotCriticalError+      -- ^ @NOT_CRITICAL_ERROR@+    | TISLWCNoResultsOnPage+      -- ^ @NO_RESULTS_ON_PAGE@+    | TISLWCRequiredTosAgreement+      -- ^ @REQUIRED_TOS_AGREEMENT@+    | TISLWCResourceNotDeleted+      -- ^ @RESOURCE_NOT_DELETED@+    | TISLWCSingleInstancePropertyTemplate+      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@+    | TISLWCUnreachable+      -- ^ @UNREACHABLE@+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable TargetInstancesScopedListWarningCode++instance FromText TargetInstancesScopedListWarningCode where+    fromText = \case+        "DEPRECATED_RESOURCE_USED" -> Just TISLWCDeprecatedResourceUsed+        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Just TISLWCDiskSizeLargerThanImageSize+        "INJECTED_KERNELS_DEPRECATED" -> Just TISLWCInjectedKernelsDeprecated+        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Just TISLWCNextHopAddressNotAssigned+        "NEXT_HOP_CANNOT_IP_FORWARD" -> Just TISLWCNextHopCannotIPForward+        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Just TISLWCNextHopInstanceNotFound+        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Just TISLWCNextHopInstanceNotOnNetwork+        "NEXT_HOP_NOT_RUNNING" -> Just TISLWCNextHopNotRunning+        "NOT_CRITICAL_ERROR" -> Just TISLWCNotCriticalError+        "NO_RESULTS_ON_PAGE" -> Just TISLWCNoResultsOnPage+        "REQUIRED_TOS_AGREEMENT" -> Just TISLWCRequiredTosAgreement+        "RESOURCE_NOT_DELETED" -> Just TISLWCResourceNotDeleted+        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Just TISLWCSingleInstancePropertyTemplate+        "UNREACHABLE" -> Just TISLWCUnreachable+        _ -> Nothing++instance ToText TargetInstancesScopedListWarningCode where+    toText = \case+        TISLWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"+        TISLWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"+        TISLWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"+        TISLWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"+        TISLWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"+        TISLWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"+        TISLWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"+        TISLWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"+        TISLWCNotCriticalError -> "NOT_CRITICAL_ERROR"+        TISLWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"+        TISLWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"+        TISLWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"+        TISLWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"+        TISLWCUnreachable -> "UNREACHABLE"++instance FromJSON TargetInstancesScopedListWarningCode where+    parseJSON = parseJSONText "TargetInstancesScopedListWarningCode"++instance ToJSON TargetInstancesScopedListWarningCode where+    toJSON = toJSONText++-- | [Output Only] The warning type identifier for this warning.+data RouteWarningsItemCode+    = RWICDeprecatedResourceUsed+      -- ^ @DEPRECATED_RESOURCE_USED@+    | RWICDiskSizeLargerThanImageSize+      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@+    | RWICInjectedKernelsDeprecated+      -- ^ @INJECTED_KERNELS_DEPRECATED@+    | RWICNextHopAddressNotAssigned+      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@+    | RWICNextHopCannotIPForward+      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@+    | RWICNextHopInstanceNotFound+      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@+    | RWICNextHopInstanceNotOnNetwork+      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@+    | RWICNextHopNotRunning+      -- ^ @NEXT_HOP_NOT_RUNNING@+    | RWICNotCriticalError+      -- ^ @NOT_CRITICAL_ERROR@+    | RWICNoResultsOnPage+      -- ^ @NO_RESULTS_ON_PAGE@+    | RWICRequiredTosAgreement+      -- ^ @REQUIRED_TOS_AGREEMENT@+    | RWICResourceNotDeleted+      -- ^ @RESOURCE_NOT_DELETED@+    | RWICSingleInstancePropertyTemplate+      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@+    | RWICUnreachable+      -- ^ @UNREACHABLE@+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable RouteWarningsItemCode++instance FromText RouteWarningsItemCode where+    fromText = \case+        "DEPRECATED_RESOURCE_USED" -> Just RWICDeprecatedResourceUsed+        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Just RWICDiskSizeLargerThanImageSize+        "INJECTED_KERNELS_DEPRECATED" -> Just RWICInjectedKernelsDeprecated+        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Just RWICNextHopAddressNotAssigned+        "NEXT_HOP_CANNOT_IP_FORWARD" -> Just RWICNextHopCannotIPForward+        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Just RWICNextHopInstanceNotFound+        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Just RWICNextHopInstanceNotOnNetwork+        "NEXT_HOP_NOT_RUNNING" -> Just RWICNextHopNotRunning+        "NOT_CRITICAL_ERROR" -> Just RWICNotCriticalError+        "NO_RESULTS_ON_PAGE" -> Just RWICNoResultsOnPage+        "REQUIRED_TOS_AGREEMENT" -> Just RWICRequiredTosAgreement+        "RESOURCE_NOT_DELETED" -> Just RWICResourceNotDeleted+        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Just RWICSingleInstancePropertyTemplate+        "UNREACHABLE" -> Just RWICUnreachable+        _ -> Nothing++instance ToText RouteWarningsItemCode where+    toText = \case+        RWICDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"+        RWICDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"+        RWICInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"+        RWICNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"+        RWICNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"+        RWICNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"+        RWICNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"+        RWICNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"+        RWICNotCriticalError -> "NOT_CRITICAL_ERROR"+        RWICNoResultsOnPage -> "NO_RESULTS_ON_PAGE"+        RWICRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"+        RWICResourceNotDeleted -> "RESOURCE_NOT_DELETED"+        RWICSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"+        RWICUnreachable -> "UNREACHABLE"++instance FromJSON RouteWarningsItemCode where+    parseJSON = parseJSONText "RouteWarningsItemCode"++instance ToJSON RouteWarningsItemCode where+    toJSON = toJSONText++-- | [Output Only] An indicator whether storageBytes is in a stable state or+-- it is being adjusted as a result of shared storage reallocation.+data SnapshotStorageBytesStatus+    = Updating+      -- ^ @UPDATING@+    | UpToDate+      -- ^ @UP_TO_DATE@+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable SnapshotStorageBytesStatus++instance FromText SnapshotStorageBytesStatus where+    fromText = \case+        "UPDATING" -> Just Updating+        "UP_TO_DATE" -> Just UpToDate+        _ -> Nothing++instance ToText SnapshotStorageBytesStatus where+    toText = \case+        Updating -> "UPDATING"+        UpToDate -> "UP_TO_DATE"++instance FromJSON SnapshotStorageBytesStatus where+    parseJSON = parseJSONText "SnapshotStorageBytesStatus"++instance ToJSON SnapshotStorageBytesStatus where+    toJSON = toJSONText++-- | [Output Only] The warning type identifier for this warning.+data AddressesScopedListWarningCode+    = ASLWCDeprecatedResourceUsed+      -- ^ @DEPRECATED_RESOURCE_USED@+    | ASLWCDiskSizeLargerThanImageSize+      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@+    | ASLWCInjectedKernelsDeprecated+      -- ^ @INJECTED_KERNELS_DEPRECATED@+    | ASLWCNextHopAddressNotAssigned+      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@+    | ASLWCNextHopCannotIPForward+      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@+    | ASLWCNextHopInstanceNotFound+      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@+    | ASLWCNextHopInstanceNotOnNetwork+      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@+    | ASLWCNextHopNotRunning+      -- ^ @NEXT_HOP_NOT_RUNNING@+    | ASLWCNotCriticalError+      -- ^ @NOT_CRITICAL_ERROR@+    | ASLWCNoResultsOnPage+      -- ^ @NO_RESULTS_ON_PAGE@+    | ASLWCRequiredTosAgreement+      -- ^ @REQUIRED_TOS_AGREEMENT@+    | ASLWCResourceNotDeleted+      -- ^ @RESOURCE_NOT_DELETED@+    | ASLWCSingleInstancePropertyTemplate+      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@+    | ASLWCUnreachable+      -- ^ @UNREACHABLE@+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable AddressesScopedListWarningCode++instance FromText AddressesScopedListWarningCode where+    fromText = \case+        "DEPRECATED_RESOURCE_USED" -> Just ASLWCDeprecatedResourceUsed+        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Just ASLWCDiskSizeLargerThanImageSize+        "INJECTED_KERNELS_DEPRECATED" -> Just ASLWCInjectedKernelsDeprecated+        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Just ASLWCNextHopAddressNotAssigned+        "NEXT_HOP_CANNOT_IP_FORWARD" -> Just ASLWCNextHopCannotIPForward+        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Just ASLWCNextHopInstanceNotFound+        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Just ASLWCNextHopInstanceNotOnNetwork+        "NEXT_HOP_NOT_RUNNING" -> Just ASLWCNextHopNotRunning+        "NOT_CRITICAL_ERROR" -> Just ASLWCNotCriticalError+        "NO_RESULTS_ON_PAGE" -> Just ASLWCNoResultsOnPage+        "REQUIRED_TOS_AGREEMENT" -> Just ASLWCRequiredTosAgreement+        "RESOURCE_NOT_DELETED" -> Just ASLWCResourceNotDeleted+        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Just ASLWCSingleInstancePropertyTemplate+        "UNREACHABLE" -> Just ASLWCUnreachable+        _ -> Nothing++instance ToText AddressesScopedListWarningCode where+    toText = \case+        ASLWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"+        ASLWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"+        ASLWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"+        ASLWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"+        ASLWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"+        ASLWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"+        ASLWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"+        ASLWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"+        ASLWCNotCriticalError -> "NOT_CRITICAL_ERROR"+        ASLWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"+        ASLWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"+        ASLWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"+        ASLWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"+        ASLWCUnreachable -> "UNREACHABLE"++instance FromJSON AddressesScopedListWarningCode where+    parseJSON = parseJSONText "AddressesScopedListWarningCode"++instance ToJSON AddressesScopedListWarningCode where+    toJSON = toJSONText++-- | [Output Only] The status of the image. An image can be used to create+-- other resources, such as instances, only after the image has been+-- successfully created and the status is set to READY. Possible values are+-- FAILED, PENDING, or READY.+data ImageStatus+    = ISFailed+      -- ^ @FAILED@+    | ISPending+      -- ^ @PENDING@+    | ISReady+      -- ^ @READY@+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable ImageStatus++instance FromText ImageStatus where+    fromText = \case+        "FAILED" -> Just ISFailed+        "PENDING" -> Just ISPending+        "READY" -> Just ISReady+        _ -> Nothing++instance ToText ImageStatus where+    toText = \case+        ISFailed -> "FAILED"+        ISPending -> "PENDING"+        ISReady -> "READY"++instance FromJSON ImageStatus where+    parseJSON = parseJSONText "ImageStatus"++instance ToJSON ImageStatus where+    toJSON = toJSONText++-- | Health state of the instance.+data HealthStatusHealthState+    = Healthy+      -- ^ @HEALTHY@+    | Unhealthy+      -- ^ @UNHEALTHY@+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable HealthStatusHealthState++instance FromText HealthStatusHealthState where+    fromText = \case+        "HEALTHY" -> Just Healthy+        "UNHEALTHY" -> Just Unhealthy+        _ -> Nothing++instance ToText HealthStatusHealthState where+    toText = \case+        Healthy -> "HEALTHY"+        Unhealthy -> "UNHEALTHY"++instance FromJSON HealthStatusHealthState where+    parseJSON = parseJSONText "HealthStatusHealthState"++instance ToJSON HealthStatusHealthState where+    toJSON = toJSONText++-- | The deprecation state of this resource. This can be DEPRECATED,+-- OBSOLETE, or DELETED. Operations which create a new resource using a+-- DEPRECATED resource will return successfully, but with a warning+-- indicating the deprecated resource and recommending its replacement.+-- Operations which use OBSOLETE or DELETED resources will be rejected and+-- result in an error.+data DeprecationStatusState+    = Deleted+      -- ^ @DELETED@+    | Deprecated+      -- ^ @DEPRECATED@+    | Obsolete+      -- ^ @OBSOLETE@+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable DeprecationStatusState++instance FromText DeprecationStatusState where+    fromText = \case+        "DELETED" -> Just Deleted+        "DEPRECATED" -> Just Deprecated+        "OBSOLETE" -> Just Obsolete+        _ -> Nothing++instance ToText DeprecationStatusState where+    toText = \case+        Deleted -> "DELETED"+        Deprecated -> "DEPRECATED"+        Obsolete -> "OBSOLETE"++instance FromJSON DeprecationStatusState where+    parseJSON = parseJSONText "DeprecationStatusState"++instance ToJSON DeprecationStatusState where+    toJSON = toJSONText++-- | [Output Only] The current action that the managed instance group has+-- scheduled for the instance. Possible values: - NONE The instance is+-- running, and the managed instance group does not have any scheduled+-- actions for this instance. - CREATING The managed instance group is+-- creating this instance. - RECREATING The managed instance group is+-- recreating this instance. - DELETING The managed instance group is+-- permanently deleting this instance. - ABANDONING The managed instance+-- group is abandoning this instance. The instance will be removed from the+-- instance group and from any target pools that are associated with this+-- group. - RESTARTING The managed instance group is restarting the+-- instance. - REFRESHING The managed instance group is applying+-- configuration changes to the instance without stopping it. For example,+-- the group can update the target pool list for an instance without+-- stopping that instance.+data ManagedInstanceCurrentAction+    = MICAAbandoning+      -- ^ @ABANDONING@+    | MICACreating+      -- ^ @CREATING@+    | MICADeleting+      -- ^ @DELETING@+    | MICANone+      -- ^ @NONE@+    | MICARecreating+      -- ^ @RECREATING@+    | MICARefreshing+      -- ^ @REFRESHING@+    | MICARestarting+      -- ^ @RESTARTING@+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable ManagedInstanceCurrentAction++instance FromText ManagedInstanceCurrentAction where+    fromText = \case+        "ABANDONING" -> Just MICAAbandoning+        "CREATING" -> Just MICACreating+        "DELETING" -> Just MICADeleting+        "NONE" -> Just MICANone+        "RECREATING" -> Just MICARecreating+        "REFRESHING" -> Just MICARefreshing+        "RESTARTING" -> Just MICARestarting+        _ -> Nothing++instance ToText ManagedInstanceCurrentAction where+    toText = \case+        MICAAbandoning -> "ABANDONING"+        MICACreating -> "CREATING"+        MICADeleting -> "DELETING"+        MICANone -> "NONE"+        MICARecreating -> "RECREATING"+        MICARefreshing -> "REFRESHING"+        MICARestarting -> "RESTARTING"++instance FromJSON ManagedInstanceCurrentAction where+    parseJSON = parseJSONText "ManagedInstanceCurrentAction"++instance ToJSON ManagedInstanceCurrentAction where+    toJSON = toJSONText++-- | NAT option controlling how IPs are NAT\'ed to the instance. Currently+-- only NO_NAT (default value) is supported.+data TargetInstanceNATPolicy+    = NoNAT+      -- ^ @NO_NAT@+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable TargetInstanceNATPolicy++instance FromText TargetInstanceNATPolicy where+    fromText = \case+        "NO_NAT" -> Just NoNAT+        _ -> Nothing++instance ToText TargetInstanceNATPolicy where+    toText = \case+        NoNAT -> "NO_NAT"++instance FromJSON TargetInstanceNATPolicy where+    parseJSON = parseJSONText "TargetInstanceNATPolicy"++instance ToJSON TargetInstanceNATPolicy where+    toJSON = toJSONText++-- | The type of configuration. The default and only option is+-- ONE_TO_ONE_NAT.+data AccessConfigType+    = OneToOneNAT+      -- ^ @ONE_TO_ONE_NAT@+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable AccessConfigType++instance FromText AccessConfigType where+    fromText = \case+        "ONE_TO_ONE_NAT" -> Just OneToOneNAT+        _ -> Nothing++instance ToText AccessConfigType where+    toText = \case+        OneToOneNAT -> "ONE_TO_ONE_NAT"++instance FromJSON AccessConfigType where+    parseJSON = parseJSONText "AccessConfigType"++instance ToJSON AccessConfigType where+    toJSON = toJSONText++-- | [Output Only] Status of the operation. Can be one of the following:+-- PENDING, RUNNING, or DONE.+data OperationStatus+    = Done+      -- ^ @DONE@+    | Pending+      -- ^ @PENDING@+    | Running+      -- ^ @RUNNING@+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable OperationStatus++instance FromText OperationStatus where+    fromText = \case+        "DONE" -> Just Done+        "PENDING" -> Just Pending+        "RUNNING" -> Just Running+        _ -> Nothing++instance ToText OperationStatus where+    toText = \case+        Done -> "DONE"+        Pending -> "PENDING"+        Running -> "RUNNING"++instance FromJSON OperationStatus where+    parseJSON = parseJSONText "OperationStatus"++instance ToJSON OperationStatus where+    toJSON = toJSONText++-- | [Output Only] The warning type identifier for this warning.+data TargetVPNGatewaysScopedListWarningCode+    = TVGSLWCDeprecatedResourceUsed+      -- ^ @DEPRECATED_RESOURCE_USED@+    | TVGSLWCDiskSizeLargerThanImageSize+      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@+    | TVGSLWCInjectedKernelsDeprecated+      -- ^ @INJECTED_KERNELS_DEPRECATED@+    | TVGSLWCNextHopAddressNotAssigned+      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@+    | TVGSLWCNextHopCannotIPForward+      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@+    | TVGSLWCNextHopInstanceNotFound+      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@+    | TVGSLWCNextHopInstanceNotOnNetwork+      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@+    | TVGSLWCNextHopNotRunning+      -- ^ @NEXT_HOP_NOT_RUNNING@+    | TVGSLWCNotCriticalError+      -- ^ @NOT_CRITICAL_ERROR@+    | TVGSLWCNoResultsOnPage+      -- ^ @NO_RESULTS_ON_PAGE@+    | TVGSLWCRequiredTosAgreement+      -- ^ @REQUIRED_TOS_AGREEMENT@+    | TVGSLWCResourceNotDeleted+      -- ^ @RESOURCE_NOT_DELETED@+    | TVGSLWCSingleInstancePropertyTemplate+      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@+    | TVGSLWCUnreachable+      -- ^ @UNREACHABLE@+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable TargetVPNGatewaysScopedListWarningCode++instance FromText TargetVPNGatewaysScopedListWarningCode where+    fromText = \case+        "DEPRECATED_RESOURCE_USED" -> Just TVGSLWCDeprecatedResourceUsed+        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Just TVGSLWCDiskSizeLargerThanImageSize+        "INJECTED_KERNELS_DEPRECATED" -> Just TVGSLWCInjectedKernelsDeprecated+        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Just TVGSLWCNextHopAddressNotAssigned+        "NEXT_HOP_CANNOT_IP_FORWARD" -> Just TVGSLWCNextHopCannotIPForward+        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Just TVGSLWCNextHopInstanceNotFound+        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Just TVGSLWCNextHopInstanceNotOnNetwork+        "NEXT_HOP_NOT_RUNNING" -> Just TVGSLWCNextHopNotRunning+        "NOT_CRITICAL_ERROR" -> Just TVGSLWCNotCriticalError+        "NO_RESULTS_ON_PAGE" -> Just TVGSLWCNoResultsOnPage+        "REQUIRED_TOS_AGREEMENT" -> Just TVGSLWCRequiredTosAgreement+        "RESOURCE_NOT_DELETED" -> Just TVGSLWCResourceNotDeleted+        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Just TVGSLWCSingleInstancePropertyTemplate+        "UNREACHABLE" -> Just TVGSLWCUnreachable+        _ -> Nothing++instance ToText TargetVPNGatewaysScopedListWarningCode where+    toText = \case+        TVGSLWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"+        TVGSLWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"+        TVGSLWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"+        TVGSLWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"+        TVGSLWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"+        TVGSLWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"+        TVGSLWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"+        TVGSLWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"+        TVGSLWCNotCriticalError -> "NOT_CRITICAL_ERROR"+        TVGSLWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"+        TVGSLWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"+        TVGSLWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"+        TVGSLWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"+        TVGSLWCUnreachable -> "UNREACHABLE"++instance FromJSON TargetVPNGatewaysScopedListWarningCode where+    parseJSON = parseJSONText "TargetVPNGatewaysScopedListWarningCode"++instance ToJSON TargetVPNGatewaysScopedListWarningCode where+    toJSON = toJSONText++-- | [Output Only] The status of disk creation. Applicable statuses includes:+-- CREATING, FAILED, READY, RESTORING.+data DiskStatus+    = DSCreating+      -- ^ @CREATING@+    | DSFailed+      -- ^ @FAILED@+    | DSReady+      -- ^ @READY@+    | DSRestoring+      -- ^ @RESTORING@+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable DiskStatus++instance FromText DiskStatus where+    fromText = \case+        "CREATING" -> Just DSCreating+        "FAILED" -> Just DSFailed+        "READY" -> Just DSReady+        "RESTORING" -> Just DSRestoring+        _ -> Nothing++instance ToText DiskStatus where+    toText = \case+        DSCreating -> "CREATING"+        DSFailed -> "FAILED"+        DSReady -> "READY"+        DSRestoring -> "RESTORING"++instance FromJSON DiskStatus where+    parseJSON = parseJSONText "DiskStatus"++instance ToJSON DiskStatus where+    toJSON = toJSONText++-- | [Output Only] The status of the instance. This field is empty when the+-- instance does not exist.+data ManagedInstanceInstanceStatus+    = MIISProvisioning+      -- ^ @PROVISIONING@+    | MIISRunning+      -- ^ @RUNNING@+    | MIISStaging+      -- ^ @STAGING@+    | MIISStopped+      -- ^ @STOPPED@+    | MIISStopping+      -- ^ @STOPPING@+    | MIISSuspended+      -- ^ @SUSPENDED@+    | MIISSuspending+      -- ^ @SUSPENDING@+    | MIISTerminated+      -- ^ @TERMINATED@+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable ManagedInstanceInstanceStatus++instance FromText ManagedInstanceInstanceStatus where+    fromText = \case+        "PROVISIONING" -> Just MIISProvisioning+        "RUNNING" -> Just MIISRunning+        "STAGING" -> Just MIISStaging+        "STOPPED" -> Just MIISStopped+        "STOPPING" -> Just MIISStopping+        "SUSPENDED" -> Just MIISSuspended+        "SUSPENDING" -> Just MIISSuspending+        "TERMINATED" -> Just MIISTerminated+        _ -> Nothing++instance ToText ManagedInstanceInstanceStatus where+    toText = \case+        MIISProvisioning -> "PROVISIONING"+        MIISRunning -> "RUNNING"+        MIISStaging -> "STAGING"+        MIISStopped -> "STOPPED"+        MIISStopping -> "STOPPING"+        MIISSuspended -> "SUSPENDED"+        MIISSuspending -> "SUSPENDING"+        MIISTerminated -> "TERMINATED"++instance FromJSON ManagedInstanceInstanceStatus where+    parseJSON = parseJSONText "ManagedInstanceInstanceStatus"++instance ToJSON ManagedInstanceInstanceStatus where+    toJSON = toJSONText++-- | The mode in which to attach this disk, either READ_WRITE or READ_ONLY.+-- If not specified, the default is to attach the disk in READ_WRITE mode.+data AttachedDiskMode+    = ReadOnly+      -- ^ @READ_ONLY@+    | ReadWrite+      -- ^ @READ_WRITE@+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable AttachedDiskMode++instance FromText AttachedDiskMode where+    fromText = \case+        "READ_ONLY" -> Just ReadOnly+        "READ_WRITE" -> Just ReadWrite+        _ -> Nothing++instance ToText AttachedDiskMode where+    toText = \case+        ReadOnly -> "READ_ONLY"+        ReadWrite -> "READ_WRITE"++instance FromJSON AttachedDiskMode where+    parseJSON = parseJSONText "AttachedDiskMode"++instance ToJSON AttachedDiskMode where+    toJSON = toJSONText++-- | [Output Only] Status of the region, either UP or DOWN.+data RegionStatus+    = Down+      -- ^ @DOWN@+    | UP+      -- ^ @UP@+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable RegionStatus++instance FromText RegionStatus where+    fromText = \case+        "DOWN" -> Just Down+        "UP" -> Just UP+        _ -> Nothing++instance ToText RegionStatus where+    toText = \case+        Down -> "DOWN"+        UP -> "UP"++instance FromJSON RegionStatus where+    parseJSON = parseJSONText "RegionStatus"++instance ToJSON RegionStatus where+    toJSON = toJSONText++-- | [Output Only] The status of the VPN tunnel.+data VPNTunnelStatus+    = VTSAuthorizationError+      -- ^ @AUTHORIZATION_ERROR@+    | VTSDeprovisioning+      -- ^ @DEPROVISIONING@+    | VTSEstablished+      -- ^ @ESTABLISHED@+    | VTSFailed+      -- ^ @FAILED@+    | VTSFirstHandshake+      -- ^ @FIRST_HANDSHAKE@+    | VTSNegotiationFailure+      -- ^ @NEGOTIATION_FAILURE@+    | VTSNetworkError+      -- ^ @NETWORK_ERROR@+    | VTSNoIncomingPackets+      -- ^ @NO_INCOMING_PACKETS@+    | VTSProvisioning+      -- ^ @PROVISIONING@+    | VTSRejected+      -- ^ @REJECTED@+    | VTSWaitingForFullConfig+      -- ^ @WAITING_FOR_FULL_CONFIG@+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable VPNTunnelStatus++instance FromText VPNTunnelStatus where+    fromText = \case+        "AUTHORIZATION_ERROR" -> Just VTSAuthorizationError+        "DEPROVISIONING" -> Just VTSDeprovisioning+        "ESTABLISHED" -> Just VTSEstablished+        "FAILED" -> Just VTSFailed+        "FIRST_HANDSHAKE" -> Just VTSFirstHandshake+        "NEGOTIATION_FAILURE" -> Just VTSNegotiationFailure+        "NETWORK_ERROR" -> Just VTSNetworkError+        "NO_INCOMING_PACKETS" -> Just VTSNoIncomingPackets+        "PROVISIONING" -> Just VTSProvisioning+        "REJECTED" -> Just VTSRejected+        "WAITING_FOR_FULL_CONFIG" -> Just VTSWaitingForFullConfig+        _ -> Nothing++instance ToText VPNTunnelStatus where+    toText = \case+        VTSAuthorizationError -> "AUTHORIZATION_ERROR"+        VTSDeprovisioning -> "DEPROVISIONING"+        VTSEstablished -> "ESTABLISHED"+        VTSFailed -> "FAILED"+        VTSFirstHandshake -> "FIRST_HANDSHAKE"+        VTSNegotiationFailure -> "NEGOTIATION_FAILURE"+        VTSNetworkError -> "NETWORK_ERROR"+        VTSNoIncomingPackets -> "NO_INCOMING_PACKETS"+        VTSProvisioning -> "PROVISIONING"+        VTSRejected -> "REJECTED"+        VTSWaitingForFullConfig -> "WAITING_FOR_FULL_CONFIG"++instance FromJSON VPNTunnelStatus where+    parseJSON = parseJSONText "VPNTunnelStatus"++instance ToJSON VPNTunnelStatus where+    toJSON = toJSONText++-- | Specifies the balancing mode for this backend. The default is+-- UTILIZATION but available values are UTILIZATION and RATE.+data BackendBalancingMode+    = Rate+      -- ^ @RATE@+    | Utilization+      -- ^ @UTILIZATION@+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable BackendBalancingMode++instance FromText BackendBalancingMode where+    fromText = \case+        "RATE" -> Just Rate+        "UTILIZATION" -> Just Utilization+        _ -> Nothing++instance ToText BackendBalancingMode where+    toText = \case+        Rate -> "RATE"+        Utilization -> "UTILIZATION"++instance FromJSON BackendBalancingMode where+    parseJSON = parseJSONText "BackendBalancingMode"++instance ToJSON BackendBalancingMode where+    toJSON = toJSONText++-- | The IP protocol to which this rule applies. Valid options are TCP, UDP,+-- ESP, AH or SCTP.+data ForwardingRuleIPProtocol+    = AH+      -- ^ @AH@+    | Esp+      -- ^ @ESP@+    | Sctp+      -- ^ @SCTP@+    | TCP+      -- ^ @TCP@+    | Udp+      -- ^ @UDP@+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable ForwardingRuleIPProtocol++instance FromText ForwardingRuleIPProtocol where+    fromText = \case+        "AH" -> Just AH+        "ESP" -> Just Esp+        "SCTP" -> Just Sctp+        "TCP" -> Just TCP+        "UDP" -> Just Udp+        _ -> Nothing++instance ToText ForwardingRuleIPProtocol where+    toText = \case+        AH -> "AH"+        Esp -> "ESP"+        Sctp -> "SCTP"+        TCP -> "TCP"+        Udp -> "UDP"++instance FromJSON ForwardingRuleIPProtocol where+    parseJSON = parseJSONText "ForwardingRuleIPProtocol"++instance ToJSON ForwardingRuleIPProtocol where+    toJSON = toJSONText++-- | [Output Only] The status of the address, which can be either IN_USE or+-- RESERVED. An address that is RESERVED is currently reserved and+-- available to use. An IN_USE address is currently being used by another+-- resource and is not available.+data AddressStatus+    = InUse+      -- ^ @IN_USE@+    | Reserved+      -- ^ @RESERVED@+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable AddressStatus++instance FromText AddressStatus where+    fromText = \case+        "IN_USE" -> Just InUse+        "RESERVED" -> Just Reserved+        _ -> Nothing++instance ToText AddressStatus where+    toText = \case+        InUse -> "IN_USE"+        Reserved -> "RESERVED"++instance FromJSON AddressStatus where+    parseJSON = parseJSONText "AddressStatus"++instance ToJSON AddressStatus where+    toJSON = toJSONText++-- | A filter for the state of the instances in the instance group. Valid+-- options are ALL or RUNNING. If you do not specify this parameter the+-- list includes all instances regardless of their state.+data InstanceGroupsListInstancesRequestInstanceState+    = IGLIRISAll+      -- ^ @ALL@+    | IGLIRISRunning+      -- ^ @RUNNING@+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable InstanceGroupsListInstancesRequestInstanceState++instance FromText InstanceGroupsListInstancesRequestInstanceState where+    fromText = \case+        "ALL" -> Just IGLIRISAll+        "RUNNING" -> Just IGLIRISRunning+        _ -> Nothing++instance ToText InstanceGroupsListInstancesRequestInstanceState where+    toText = \case+        IGLIRISAll -> "ALL"+        IGLIRISRunning -> "RUNNING"++instance FromJSON InstanceGroupsListInstancesRequestInstanceState where+    parseJSON = parseJSONText "InstanceGroupsListInstancesRequestInstanceState"++instance ToJSON InstanceGroupsListInstancesRequestInstanceState where+    toJSON = toJSONText++-- | Specifies the disk interface to use for attaching this disk, either SCSI+-- or NVME. The default is SCSI. For performance characteristics of SCSI+-- over NVMe, see Local SSD performance.+data AttachedDiskInterface+    = Nvme+      -- ^ @NVME@+    | Scsi+      -- ^ @SCSI@+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable AttachedDiskInterface++instance FromText AttachedDiskInterface where+    fromText = \case+        "NVME" -> Just Nvme+        "SCSI" -> Just Scsi+        _ -> Nothing++instance ToText AttachedDiskInterface where+    toText = \case+        Nvme -> "NVME"+        Scsi -> "SCSI"++instance FromJSON AttachedDiskInterface where+    parseJSON = parseJSONText "AttachedDiskInterface"++instance ToJSON AttachedDiskInterface where+    toJSON = toJSONText++-- | [Output Only] Status of the zone, either UP or DOWN.+data ZoneStatus+    = ZSDown+      -- ^ @DOWN@+    | ZSUP+      -- ^ @UP@+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable ZoneStatus++instance FromText ZoneStatus where+    fromText = \case+        "DOWN" -> Just ZSDown+        "UP" -> Just ZSUP+        _ -> Nothing++instance ToText ZoneStatus where+    toText = \case+        ZSDown -> "DOWN"+        ZSUP -> "UP"++instance FromJSON ZoneStatus where+    parseJSON = parseJSONText "ZoneStatus"++instance ToJSON ZoneStatus where+    toJSON = toJSONText++-- | [Output Only] Name of the quota metric.+data QuotaMetric+    = BackendServices+      -- ^ @BACKEND_SERVICES@+    | CPUs+      -- ^ @CPUS@+    | DisksTotalGb+      -- ^ @DISKS_TOTAL_GB@+    | Firewalls+      -- ^ @FIREWALLS@+    | ForwardingRules+      -- ^ @FORWARDING_RULES@+    | HealthChecks+      -- ^ @HEALTH_CHECKS@+    | Images+      -- ^ @IMAGES@+    | Instances+      -- ^ @INSTANCES@+    | InstanceGroups+      -- ^ @INSTANCE_GROUPS@+    | InstanceGroupManagers+      -- ^ @INSTANCE_GROUP_MANAGERS@+    | InstanceTemplates+      -- ^ @INSTANCE_TEMPLATES@+    | InUseAddresses+      -- ^ @IN_USE_ADDRESSES@+    | LocalSsdTotalGb+      -- ^ @LOCAL_SSD_TOTAL_GB@+    | Networks+      -- ^ @NETWORKS@+    | Routes+      -- ^ @ROUTES@+    | Snapshots+      -- ^ @SNAPSHOTS@+    | SsdTotalGb+      -- ^ @SSD_TOTAL_GB@+    | StaticAddresses+      -- ^ @STATIC_ADDRESSES@+    | TargetHTTPProxies+      -- ^ @TARGET_HTTP_PROXIES@+    | TargetInstances+      -- ^ @TARGET_INSTANCES@+    | TargetPools+      -- ^ @TARGET_POOLS@+    | TargetVPNGateways+      -- ^ @TARGET_VPN_GATEWAYS@+    | URLMaps+      -- ^ @URL_MAPS@+    | VPNTunnels+      -- ^ @VPN_TUNNELS@+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable QuotaMetric++instance FromText QuotaMetric where+    fromText = \case+        "BACKEND_SERVICES" -> Just BackendServices+        "CPUS" -> Just CPUs+        "DISKS_TOTAL_GB" -> Just DisksTotalGb+        "FIREWALLS" -> Just Firewalls+        "FORWARDING_RULES" -> Just ForwardingRules+        "HEALTH_CHECKS" -> Just HealthChecks+        "IMAGES" -> Just Images+        "INSTANCES" -> Just Instances+        "INSTANCE_GROUPS" -> Just InstanceGroups+        "INSTANCE_GROUP_MANAGERS" -> Just InstanceGroupManagers+        "INSTANCE_TEMPLATES" -> Just InstanceTemplates+        "IN_USE_ADDRESSES" -> Just InUseAddresses+        "LOCAL_SSD_TOTAL_GB" -> Just LocalSsdTotalGb+        "NETWORKS" -> Just Networks+        "ROUTES" -> Just Routes+        "SNAPSHOTS" -> Just Snapshots+        "SSD_TOTAL_GB" -> Just SsdTotalGb+        "STATIC_ADDRESSES" -> Just StaticAddresses+        "TARGET_HTTP_PROXIES" -> Just TargetHTTPProxies+        "TARGET_INSTANCES" -> Just TargetInstances+        "TARGET_POOLS" -> Just TargetPools+        "TARGET_VPN_GATEWAYS" -> Just TargetVPNGateways+        "URL_MAPS" -> Just URLMaps+        "VPN_TUNNELS" -> Just VPNTunnels+        _ -> Nothing++instance ToText QuotaMetric where+    toText = \case+        BackendServices -> "BACKEND_SERVICES"+        CPUs -> "CPUS"+        DisksTotalGb -> "DISKS_TOTAL_GB"+        Firewalls -> "FIREWALLS"+        ForwardingRules -> "FORWARDING_RULES"+        HealthChecks -> "HEALTH_CHECKS"+        Images -> "IMAGES"+        Instances -> "INSTANCES"+        InstanceGroups -> "INSTANCE_GROUPS"+        InstanceGroupManagers -> "INSTANCE_GROUP_MANAGERS"+        InstanceTemplates -> "INSTANCE_TEMPLATES"+        InUseAddresses -> "IN_USE_ADDRESSES"+        LocalSsdTotalGb -> "LOCAL_SSD_TOTAL_GB"+        Networks -> "NETWORKS"+        Routes -> "ROUTES"+        Snapshots -> "SNAPSHOTS"+        SsdTotalGb -> "SSD_TOTAL_GB"+        StaticAddresses -> "STATIC_ADDRESSES"+        TargetHTTPProxies -> "TARGET_HTTP_PROXIES"+        TargetInstances -> "TARGET_INSTANCES"+        TargetPools -> "TARGET_POOLS"+        TargetVPNGateways -> "TARGET_VPN_GATEWAYS"+        URLMaps -> "URL_MAPS"+        VPNTunnels -> "VPN_TUNNELS"++instance FromJSON QuotaMetric where+    parseJSON = parseJSONText "QuotaMetric"++instance ToJSON QuotaMetric where+    toJSON = toJSONText++-- | [Output Only] The status of the instance. One of the following values:+-- PROVISIONING, STAGING, RUNNING, STOPPING, and TERMINATED.+data InstanceStatus+    = ISProvisioning+      -- ^ @PROVISIONING@+    | ISRunning+      -- ^ @RUNNING@+    | ISStaging+      -- ^ @STAGING@+    | ISStopped+      -- ^ @STOPPED@+    | ISStopping+      -- ^ @STOPPING@+    | ISSuspended+      -- ^ @SUSPENDED@+    | ISSuspending+      -- ^ @SUSPENDING@+    | ISTerminated+      -- ^ @TERMINATED@+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable InstanceStatus++instance FromText InstanceStatus where+    fromText = \case+        "PROVISIONING" -> Just ISProvisioning+        "RUNNING" -> Just ISRunning+        "STAGING" -> Just ISStaging+        "STOPPED" -> Just ISStopped+        "STOPPING" -> Just ISStopping+        "SUSPENDED" -> Just ISSuspended+        "SUSPENDING" -> Just ISSuspending+        "TERMINATED" -> Just ISTerminated+        _ -> Nothing++instance ToText InstanceStatus where+    toText = \case+        ISProvisioning -> "PROVISIONING"+        ISRunning -> "RUNNING"+        ISStaging -> "STAGING"+        ISStopped -> "STOPPED"+        ISStopping -> "STOPPING"+        ISSuspended -> "SUSPENDED"+        ISSuspending -> "SUSPENDING"+        ISTerminated -> "TERMINATED"++instance FromJSON InstanceStatus where+    parseJSON = parseJSONText "InstanceStatus"++instance ToJSON InstanceStatus where+    toJSON = toJSONText++-- | [Output Only] The warning type identifier for this warning.+data MachineTypesScopedListWarningCode+    = MTSLWCDeprecatedResourceUsed+      -- ^ @DEPRECATED_RESOURCE_USED@+    | MTSLWCDiskSizeLargerThanImageSize+      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@+    | MTSLWCInjectedKernelsDeprecated+      -- ^ @INJECTED_KERNELS_DEPRECATED@+    | MTSLWCNextHopAddressNotAssigned+      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@+    | MTSLWCNextHopCannotIPForward+      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@+    | MTSLWCNextHopInstanceNotFound+      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@+    | MTSLWCNextHopInstanceNotOnNetwork+      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@+    | MTSLWCNextHopNotRunning+      -- ^ @NEXT_HOP_NOT_RUNNING@+    | MTSLWCNotCriticalError+      -- ^ @NOT_CRITICAL_ERROR@+    | MTSLWCNoResultsOnPage+      -- ^ @NO_RESULTS_ON_PAGE@+    | MTSLWCRequiredTosAgreement+      -- ^ @REQUIRED_TOS_AGREEMENT@+    | MTSLWCResourceNotDeleted+      -- ^ @RESOURCE_NOT_DELETED@+    | MTSLWCSingleInstancePropertyTemplate+      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@+    | MTSLWCUnreachable+      -- ^ @UNREACHABLE@+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable MachineTypesScopedListWarningCode++instance FromText MachineTypesScopedListWarningCode where+    fromText = \case+        "DEPRECATED_RESOURCE_USED" -> Just MTSLWCDeprecatedResourceUsed+        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Just MTSLWCDiskSizeLargerThanImageSize+        "INJECTED_KERNELS_DEPRECATED" -> Just MTSLWCInjectedKernelsDeprecated+        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Just MTSLWCNextHopAddressNotAssigned+        "NEXT_HOP_CANNOT_IP_FORWARD" -> Just MTSLWCNextHopCannotIPForward+        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Just MTSLWCNextHopInstanceNotFound+        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Just MTSLWCNextHopInstanceNotOnNetwork+        "NEXT_HOP_NOT_RUNNING" -> Just MTSLWCNextHopNotRunning+        "NOT_CRITICAL_ERROR" -> Just MTSLWCNotCriticalError+        "NO_RESULTS_ON_PAGE" -> Just MTSLWCNoResultsOnPage+        "REQUIRED_TOS_AGREEMENT" -> Just MTSLWCRequiredTosAgreement+        "RESOURCE_NOT_DELETED" -> Just MTSLWCResourceNotDeleted+        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Just MTSLWCSingleInstancePropertyTemplate+        "UNREACHABLE" -> Just MTSLWCUnreachable+        _ -> Nothing++instance ToText MachineTypesScopedListWarningCode where+    toText = \case+        MTSLWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"+        MTSLWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"+        MTSLWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"+        MTSLWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"+        MTSLWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"+        MTSLWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"+        MTSLWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"+        MTSLWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"+        MTSLWCNotCriticalError -> "NOT_CRITICAL_ERROR"+        MTSLWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"+        MTSLWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"+        MTSLWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"+        MTSLWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"+        MTSLWCUnreachable -> "UNREACHABLE"++instance FromJSON MachineTypesScopedListWarningCode where+    parseJSON = parseJSONText "MachineTypesScopedListWarningCode"++instance ToJSON MachineTypesScopedListWarningCode where+    toJSON = toJSONText++-- | [Output Only] The warning type identifier for this warning.+data DiskTypesScopedListWarningCode+    = DTSLWCDeprecatedResourceUsed+      -- ^ @DEPRECATED_RESOURCE_USED@+    | DTSLWCDiskSizeLargerThanImageSize+      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@+    | DTSLWCInjectedKernelsDeprecated+      -- ^ @INJECTED_KERNELS_DEPRECATED@+    | DTSLWCNextHopAddressNotAssigned+      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@+    | DTSLWCNextHopCannotIPForward+      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@+    | DTSLWCNextHopInstanceNotFound+      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@+    | DTSLWCNextHopInstanceNotOnNetwork+      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@+    | DTSLWCNextHopNotRunning+      -- ^ @NEXT_HOP_NOT_RUNNING@+    | DTSLWCNotCriticalError+      -- ^ @NOT_CRITICAL_ERROR@+    | DTSLWCNoResultsOnPage+      -- ^ @NO_RESULTS_ON_PAGE@+    | DTSLWCRequiredTosAgreement+      -- ^ @REQUIRED_TOS_AGREEMENT@+    | DTSLWCResourceNotDeleted+      -- ^ @RESOURCE_NOT_DELETED@+    | DTSLWCSingleInstancePropertyTemplate+      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@+    | DTSLWCUnreachable+      -- ^ @UNREACHABLE@+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable DiskTypesScopedListWarningCode++instance FromText DiskTypesScopedListWarningCode where+    fromText = \case+        "DEPRECATED_RESOURCE_USED" -> Just DTSLWCDeprecatedResourceUsed+        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Just DTSLWCDiskSizeLargerThanImageSize+        "INJECTED_KERNELS_DEPRECATED" -> Just DTSLWCInjectedKernelsDeprecated+        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Just DTSLWCNextHopAddressNotAssigned+        "NEXT_HOP_CANNOT_IP_FORWARD" -> Just DTSLWCNextHopCannotIPForward+        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Just DTSLWCNextHopInstanceNotFound+        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Just DTSLWCNextHopInstanceNotOnNetwork+        "NEXT_HOP_NOT_RUNNING" -> Just DTSLWCNextHopNotRunning+        "NOT_CRITICAL_ERROR" -> Just DTSLWCNotCriticalError+        "NO_RESULTS_ON_PAGE" -> Just DTSLWCNoResultsOnPage+        "REQUIRED_TOS_AGREEMENT" -> Just DTSLWCRequiredTosAgreement+        "RESOURCE_NOT_DELETED" -> Just DTSLWCResourceNotDeleted+        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Just DTSLWCSingleInstancePropertyTemplate+        "UNREACHABLE" -> Just DTSLWCUnreachable+        _ -> Nothing++instance ToText DiskTypesScopedListWarningCode where+    toText = \case+        DTSLWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"+        DTSLWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"+        DTSLWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"+        DTSLWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"+        DTSLWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"+        DTSLWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"+        DTSLWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"+        DTSLWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"+        DTSLWCNotCriticalError -> "NOT_CRITICAL_ERROR"+        DTSLWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"+        DTSLWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"+        DTSLWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"+        DTSLWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"+        DTSLWCUnreachable -> "UNREACHABLE"++instance FromJSON DiskTypesScopedListWarningCode where+    parseJSON = parseJSONText "DiskTypesScopedListWarningCode"++instance ToJSON DiskTypesScopedListWarningCode where+    toJSON = toJSONText++-- | [Output Only] The warning type identifier for this warning.+data AutoscalersScopedListWarningCode+    = ADeprecatedResourceUsed+      -- ^ @DEPRECATED_RESOURCE_USED@+    | ADiskSizeLargerThanImageSize+      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@+    | AInjectedKernelsDeprecated+      -- ^ @INJECTED_KERNELS_DEPRECATED@+    | ANextHopAddressNotAssigned+      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@+    | ANextHopCannotIPForward+      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@+    | ANextHopInstanceNotFound+      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@+    | ANextHopInstanceNotOnNetwork+      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@+    | ANextHopNotRunning+      -- ^ @NEXT_HOP_NOT_RUNNING@+    | ANotCriticalError+      -- ^ @NOT_CRITICAL_ERROR@+    | ANoResultsOnPage+      -- ^ @NO_RESULTS_ON_PAGE@+    | ARequiredTosAgreement+      -- ^ @REQUIRED_TOS_AGREEMENT@+    | AResourceNotDeleted+      -- ^ @RESOURCE_NOT_DELETED@+    | ASingleInstancePropertyTemplate+      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@+    | AUnreachable+      -- ^ @UNREACHABLE@+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable AutoscalersScopedListWarningCode++instance FromText AutoscalersScopedListWarningCode where+    fromText = \case+        "DEPRECATED_RESOURCE_USED" -> Just ADeprecatedResourceUsed+        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Just ADiskSizeLargerThanImageSize+        "INJECTED_KERNELS_DEPRECATED" -> Just AInjectedKernelsDeprecated+        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Just ANextHopAddressNotAssigned+        "NEXT_HOP_CANNOT_IP_FORWARD" -> Just ANextHopCannotIPForward+        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Just ANextHopInstanceNotFound+        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Just ANextHopInstanceNotOnNetwork+        "NEXT_HOP_NOT_RUNNING" -> Just ANextHopNotRunning+        "NOT_CRITICAL_ERROR" -> Just ANotCriticalError+        "NO_RESULTS_ON_PAGE" -> Just ANoResultsOnPage+        "REQUIRED_TOS_AGREEMENT" -> Just ARequiredTosAgreement+        "RESOURCE_NOT_DELETED" -> Just AResourceNotDeleted+        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Just ASingleInstancePropertyTemplate+        "UNREACHABLE" -> Just AUnreachable+        _ -> Nothing++instance ToText AutoscalersScopedListWarningCode where+    toText = \case+        ADeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"+        ADiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"+        AInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"+        ANextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"+        ANextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"+        ANextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"+        ANextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"+        ANextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"+        ANotCriticalError -> "NOT_CRITICAL_ERROR"+        ANoResultsOnPage -> "NO_RESULTS_ON_PAGE"+        ARequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"+        AResourceNotDeleted -> "RESOURCE_NOT_DELETED"+        ASingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"+        AUnreachable -> "UNREACHABLE"++instance FromJSON AutoscalersScopedListWarningCode where+    parseJSON = parseJSONText "AutoscalersScopedListWarningCode"++instance ToJSON AutoscalersScopedListWarningCode where+    toJSON = toJSONText++-- | [Output Only] The warning type identifier for this warning.+data VPNTunnelsScopedListWarningCode+    = VTSLWCDeprecatedResourceUsed+      -- ^ @DEPRECATED_RESOURCE_USED@+    | VTSLWCDiskSizeLargerThanImageSize+      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@+    | VTSLWCInjectedKernelsDeprecated+      -- ^ @INJECTED_KERNELS_DEPRECATED@+    | VTSLWCNextHopAddressNotAssigned+      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@+    | VTSLWCNextHopCannotIPForward+      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@+    | VTSLWCNextHopInstanceNotFound+      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@+    | VTSLWCNextHopInstanceNotOnNetwork+      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@+    | VTSLWCNextHopNotRunning+      -- ^ @NEXT_HOP_NOT_RUNNING@+    | VTSLWCNotCriticalError+      -- ^ @NOT_CRITICAL_ERROR@+    | VTSLWCNoResultsOnPage+      -- ^ @NO_RESULTS_ON_PAGE@+    | VTSLWCRequiredTosAgreement+      -- ^ @REQUIRED_TOS_AGREEMENT@+    | VTSLWCResourceNotDeleted+      -- ^ @RESOURCE_NOT_DELETED@+    | VTSLWCSingleInstancePropertyTemplate+      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@+    | VTSLWCUnreachable+      -- ^ @UNREACHABLE@+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable VPNTunnelsScopedListWarningCode++instance FromText VPNTunnelsScopedListWarningCode where+    fromText = \case+        "DEPRECATED_RESOURCE_USED" -> Just VTSLWCDeprecatedResourceUsed+        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Just VTSLWCDiskSizeLargerThanImageSize+        "INJECTED_KERNELS_DEPRECATED" -> Just VTSLWCInjectedKernelsDeprecated+        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Just VTSLWCNextHopAddressNotAssigned+        "NEXT_HOP_CANNOT_IP_FORWARD" -> Just VTSLWCNextHopCannotIPForward+        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Just VTSLWCNextHopInstanceNotFound+        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Just VTSLWCNextHopInstanceNotOnNetwork+        "NEXT_HOP_NOT_RUNNING" -> Just VTSLWCNextHopNotRunning+        "NOT_CRITICAL_ERROR" -> Just VTSLWCNotCriticalError+        "NO_RESULTS_ON_PAGE" -> Just VTSLWCNoResultsOnPage+        "REQUIRED_TOS_AGREEMENT" -> Just VTSLWCRequiredTosAgreement+        "RESOURCE_NOT_DELETED" -> Just VTSLWCResourceNotDeleted+        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Just VTSLWCSingleInstancePropertyTemplate+        "UNREACHABLE" -> Just VTSLWCUnreachable+        _ -> Nothing++instance ToText VPNTunnelsScopedListWarningCode where+    toText = \case+        VTSLWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"+        VTSLWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"+        VTSLWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"+        VTSLWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"+        VTSLWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"+        VTSLWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"+        VTSLWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"+        VTSLWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"+        VTSLWCNotCriticalError -> "NOT_CRITICAL_ERROR"+        VTSLWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"+        VTSLWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"+        VTSLWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"+        VTSLWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"+        VTSLWCUnreachable -> "UNREACHABLE"++instance FromJSON VPNTunnelsScopedListWarningCode where+    parseJSON = parseJSONText "VPNTunnelsScopedListWarningCode"++instance ToJSON VPNTunnelsScopedListWarningCode where+    toJSON = toJSONText++-- | [Output Only] The warning type identifier for this warning.+data InstanceGroupsScopedListWarningCode+    = IGSLWCDeprecatedResourceUsed+      -- ^ @DEPRECATED_RESOURCE_USED@+    | IGSLWCDiskSizeLargerThanImageSize+      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@+    | IGSLWCInjectedKernelsDeprecated+      -- ^ @INJECTED_KERNELS_DEPRECATED@+    | IGSLWCNextHopAddressNotAssigned+      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@+    | IGSLWCNextHopCannotIPForward+      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@+    | IGSLWCNextHopInstanceNotFound+      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@+    | IGSLWCNextHopInstanceNotOnNetwork+      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@+    | IGSLWCNextHopNotRunning+      -- ^ @NEXT_HOP_NOT_RUNNING@+    | IGSLWCNotCriticalError+      -- ^ @NOT_CRITICAL_ERROR@+    | IGSLWCNoResultsOnPage+      -- ^ @NO_RESULTS_ON_PAGE@+    | IGSLWCRequiredTosAgreement+      -- ^ @REQUIRED_TOS_AGREEMENT@+    | IGSLWCResourceNotDeleted+      -- ^ @RESOURCE_NOT_DELETED@+    | IGSLWCSingleInstancePropertyTemplate+      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@+    | IGSLWCUnreachable+      -- ^ @UNREACHABLE@+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable InstanceGroupsScopedListWarningCode++instance FromText InstanceGroupsScopedListWarningCode where+    fromText = \case+        "DEPRECATED_RESOURCE_USED" -> Just IGSLWCDeprecatedResourceUsed+        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Just IGSLWCDiskSizeLargerThanImageSize+        "INJECTED_KERNELS_DEPRECATED" -> Just IGSLWCInjectedKernelsDeprecated+        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Just IGSLWCNextHopAddressNotAssigned+        "NEXT_HOP_CANNOT_IP_FORWARD" -> Just IGSLWCNextHopCannotIPForward+        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Just IGSLWCNextHopInstanceNotFound+        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Just IGSLWCNextHopInstanceNotOnNetwork+        "NEXT_HOP_NOT_RUNNING" -> Just IGSLWCNextHopNotRunning+        "NOT_CRITICAL_ERROR" -> Just IGSLWCNotCriticalError+        "NO_RESULTS_ON_PAGE" -> Just IGSLWCNoResultsOnPage+        "REQUIRED_TOS_AGREEMENT" -> Just IGSLWCRequiredTosAgreement+        "RESOURCE_NOT_DELETED" -> Just IGSLWCResourceNotDeleted+        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Just IGSLWCSingleInstancePropertyTemplate+        "UNREACHABLE" -> Just IGSLWCUnreachable+        _ -> Nothing++instance ToText InstanceGroupsScopedListWarningCode where+    toText = \case+        IGSLWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"+        IGSLWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"+        IGSLWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"+        IGSLWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"+        IGSLWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"+        IGSLWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"+        IGSLWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"+        IGSLWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"+        IGSLWCNotCriticalError -> "NOT_CRITICAL_ERROR"+        IGSLWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"+        IGSLWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"+        IGSLWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"+        IGSLWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"+        IGSLWCUnreachable -> "UNREACHABLE"++instance FromJSON InstanceGroupsScopedListWarningCode where+    parseJSON = parseJSONText "InstanceGroupsScopedListWarningCode"++instance ToJSON InstanceGroupsScopedListWarningCode where+    toJSON = toJSONText++-- | [Output Only] The status of the instance.+data InstanceWithNamedPortsStatus+    = IWNPSProvisioning+      -- ^ @PROVISIONING@+    | IWNPSRunning+      -- ^ @RUNNING@+    | IWNPSStaging+      -- ^ @STAGING@+    | IWNPSStopped+      -- ^ @STOPPED@+    | IWNPSStopping+      -- ^ @STOPPING@+    | IWNPSSuspended+      -- ^ @SUSPENDED@+    | IWNPSSuspending+      -- ^ @SUSPENDING@+    | IWNPSTerminated+      -- ^ @TERMINATED@+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable InstanceWithNamedPortsStatus++instance FromText InstanceWithNamedPortsStatus where+    fromText = \case+        "PROVISIONING" -> Just IWNPSProvisioning+        "RUNNING" -> Just IWNPSRunning+        "STAGING" -> Just IWNPSStaging+        "STOPPED" -> Just IWNPSStopped+        "STOPPING" -> Just IWNPSStopping+        "SUSPENDED" -> Just IWNPSSuspended+        "SUSPENDING" -> Just IWNPSSuspending+        "TERMINATED" -> Just IWNPSTerminated+        _ -> Nothing++instance ToText InstanceWithNamedPortsStatus where+    toText = \case+        IWNPSProvisioning -> "PROVISIONING"+        IWNPSRunning -> "RUNNING"+        IWNPSStaging -> "STAGING"+        IWNPSStopped -> "STOPPED"+        IWNPSStopping -> "STOPPING"+        IWNPSSuspended -> "SUSPENDED"+        IWNPSSuspending -> "SUSPENDING"+        IWNPSTerminated -> "TERMINATED"++instance FromJSON InstanceWithNamedPortsStatus where+    parseJSON = parseJSONText "InstanceWithNamedPortsStatus"++instance ToJSON InstanceWithNamedPortsStatus where+    toJSON = toJSONText++-- | [Output Only] The warning type identifier for this warning.+data InstancesScopedListWarningCode+    = ISLWCDeprecatedResourceUsed+      -- ^ @DEPRECATED_RESOURCE_USED@+    | ISLWCDiskSizeLargerThanImageSize+      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@+    | ISLWCInjectedKernelsDeprecated+      -- ^ @INJECTED_KERNELS_DEPRECATED@+    | ISLWCNextHopAddressNotAssigned+      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@+    | ISLWCNextHopCannotIPForward+      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@+    | ISLWCNextHopInstanceNotFound+      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@+    | ISLWCNextHopInstanceNotOnNetwork+      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@+    | ISLWCNextHopNotRunning+      -- ^ @NEXT_HOP_NOT_RUNNING@+    | ISLWCNotCriticalError+      -- ^ @NOT_CRITICAL_ERROR@+    | ISLWCNoResultsOnPage+      -- ^ @NO_RESULTS_ON_PAGE@+    | ISLWCRequiredTosAgreement+      -- ^ @REQUIRED_TOS_AGREEMENT@+    | ISLWCResourceNotDeleted+      -- ^ @RESOURCE_NOT_DELETED@+    | ISLWCSingleInstancePropertyTemplate+      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@+    | ISLWCUnreachable+      -- ^ @UNREACHABLE@+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable InstancesScopedListWarningCode++instance FromText InstancesScopedListWarningCode where+    fromText = \case+        "DEPRECATED_RESOURCE_USED" -> Just ISLWCDeprecatedResourceUsed+        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Just ISLWCDiskSizeLargerThanImageSize+        "INJECTED_KERNELS_DEPRECATED" -> Just ISLWCInjectedKernelsDeprecated+        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Just ISLWCNextHopAddressNotAssigned+        "NEXT_HOP_CANNOT_IP_FORWARD" -> Just ISLWCNextHopCannotIPForward+        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Just ISLWCNextHopInstanceNotFound+        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Just ISLWCNextHopInstanceNotOnNetwork+        "NEXT_HOP_NOT_RUNNING" -> Just ISLWCNextHopNotRunning+        "NOT_CRITICAL_ERROR" -> Just ISLWCNotCriticalError+        "NO_RESULTS_ON_PAGE" -> Just ISLWCNoResultsOnPage+        "REQUIRED_TOS_AGREEMENT" -> Just ISLWCRequiredTosAgreement+        "RESOURCE_NOT_DELETED" -> Just ISLWCResourceNotDeleted+        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Just ISLWCSingleInstancePropertyTemplate+        "UNREACHABLE" -> Just ISLWCUnreachable+        _ -> Nothing++instance ToText InstancesScopedListWarningCode where+    toText = \case+        ISLWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"+        ISLWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"+        ISLWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"+        ISLWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"+        ISLWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"+        ISLWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"+        ISLWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"+        ISLWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"+        ISLWCNotCriticalError -> "NOT_CRITICAL_ERROR"+        ISLWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"+        ISLWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"+        ISLWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"+        ISLWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"+        ISLWCUnreachable -> "UNREACHABLE"++instance FromJSON InstancesScopedListWarningCode where+    parseJSON = parseJSONText "InstancesScopedListWarningCode"++instance ToJSON InstancesScopedListWarningCode where+    toJSON = toJSONText++-- | Sesssion affinity option, must be one of the following values: NONE:+-- Connections from the same client IP may go to any instance in the pool.+-- CLIENT_IP: Connections from the same client IP will go to the same+-- instance in the pool while that instance remains healthy.+-- CLIENT_IP_PROTO: Connections from the same client IP with the same IP+-- protocol will go to the same instance in the pool while that instance+-- remains healthy.+data TargetPoolSessionAffinity+    = ClientIP+      -- ^ @CLIENT_IP@+    | ClientIPProto+      -- ^ @CLIENT_IP_PROTO@+    | None+      -- ^ @NONE@+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable TargetPoolSessionAffinity++instance FromText TargetPoolSessionAffinity where+    fromText = \case+        "CLIENT_IP" -> Just ClientIP+        "CLIENT_IP_PROTO" -> Just ClientIPProto+        "NONE" -> Just None+        _ -> Nothing++instance ToText TargetPoolSessionAffinity where+    toText = \case+        ClientIP -> "CLIENT_IP"+        ClientIPProto -> "CLIENT_IP_PROTO"+        None -> "NONE"++instance FromJSON TargetPoolSessionAffinity where+    parseJSON = parseJSONText "TargetPoolSessionAffinity"++instance ToJSON TargetPoolSessionAffinity where+    toJSON = toJSONText++-- | The format used to encode and transmit the block device, which should be+-- TAR. This is just a container and transmission format and not a runtime+-- format. Provided by the client when the disk image is created.+data ImageRawDiskContainerType+    = TAR+      -- ^ @TAR@+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)++instance Hashable ImageRawDiskContainerType++instance FromText ImageRawDiskContainerType where+    fromText = \case+        "TAR" -> Just TAR+        _ -> Nothing++instance ToText ImageRawDiskContainerType where+    toText = \case+        TAR -> "TAR"++instance FromJSON ImageRawDiskContainerType where+    parseJSON = parseJSONText "ImageRawDiskContainerType"++instance ToJSON ImageRawDiskContainerType where+    toJSON = toJSONText
+ gen/Network/Google/Resource/Compute/Addresses/AggregatedList.hs view
@@ -0,0 +1,137 @@+{-# 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.Compute.Addresses.AggregatedList+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves the list of addresses grouped by scope.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.addresses.aggregatedList@.+module Network.Google.Resource.Compute.Addresses.AggregatedList+    (+    -- * REST Resource+      AddressesAggregatedListResource++    -- * Creating a Request+    , addressesAggregatedList+    , AddressesAggregatedList++    -- * Request Lenses+    , aalProject+    , aalFilter+    , aalPageToken+    , aalMaxResults+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.addresses.aggregatedList@ method which the+-- 'AddressesAggregatedList' request conforms to.+type AddressesAggregatedListResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "aggregated" :>+               "addresses" :>+                 QueryParam "filter" Text :>+                   QueryParam "pageToken" Text :>+                     QueryParam "maxResults" (Textual Word32) :>+                       QueryParam "alt" AltJSON :>+                         Get '[JSON] AddressAggregatedList++-- | Retrieves the list of addresses grouped by scope.+--+-- /See:/ 'addressesAggregatedList' smart constructor.+data AddressesAggregatedList = AddressesAggregatedList+    { _aalProject    :: !Text+    , _aalFilter     :: !(Maybe Text)+    , _aalPageToken  :: !(Maybe Text)+    , _aalMaxResults :: !(Textual Word32)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'AddressesAggregatedList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aalProject'+--+-- * 'aalFilter'+--+-- * 'aalPageToken'+--+-- * 'aalMaxResults'+addressesAggregatedList+    :: Text -- ^ 'aalProject'+    -> AddressesAggregatedList+addressesAggregatedList pAalProject_ =+    AddressesAggregatedList+    { _aalProject = pAalProject_+    , _aalFilter = Nothing+    , _aalPageToken = Nothing+    , _aalMaxResults = 500+    }++-- | Project ID for this request.+aalProject :: Lens' AddressesAggregatedList Text+aalProject+  = lens _aalProject (\ s a -> s{_aalProject = a})++-- | Sets a filter expression for filtering listed resources, in the form+-- filter={expression}. Your {expression} must be in the format: FIELD_NAME+-- COMPARISON_STRING LITERAL_STRING. The FIELD_NAME is the name of the+-- field you want to compare. Only atomic field types are supported+-- (string, number, boolean). The COMPARISON_STRING must be either eq+-- (equals) or ne (not equals). The LITERAL_STRING is the string value to+-- filter to. The literal value must be valid for the type of field+-- (string, number, boolean). For string fields, the literal value is+-- interpreted as a regular expression using RE2 syntax. The literal value+-- must match the entire field. For example, filter=name ne+-- example-instance.+aalFilter :: Lens' AddressesAggregatedList (Maybe Text)+aalFilter+  = lens _aalFilter (\ s a -> s{_aalFilter = a})++-- | Specifies a page token to use. Use this parameter if you want to list+-- the next page of results. Set pageToken to the nextPageToken returned by+-- a previous list request.+aalPageToken :: Lens' AddressesAggregatedList (Maybe Text)+aalPageToken+  = lens _aalPageToken (\ s a -> s{_aalPageToken = a})++-- | Maximum count of results to be returned.+aalMaxResults :: Lens' AddressesAggregatedList Word32+aalMaxResults+  = lens _aalMaxResults+      (\ s a -> s{_aalMaxResults = a})+      . _Coerce++instance GoogleRequest AddressesAggregatedList where+        type Rs AddressesAggregatedList =+             AddressAggregatedList+        requestClient AddressesAggregatedList{..}+          = go _aalProject _aalFilter _aalPageToken+              (Just _aalMaxResults)+              (Just AltJSON)+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy AddressesAggregatedListResource)+                      mempty
+ gen/Network/Google/Resource/Compute/Addresses/Delete.hs view
@@ -0,0 +1,109 @@+{-# 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.Compute.Addresses.Delete+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes the specified address resource.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.addresses.delete@.+module Network.Google.Resource.Compute.Addresses.Delete+    (+    -- * REST Resource+      AddressesDeleteResource++    -- * Creating a Request+    , addressesDelete+    , AddressesDelete++    -- * Request Lenses+    , aaProject+    , aaAddress+    , aaRegion+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.addresses.delete@ method which the+-- 'AddressesDelete' request conforms to.+type AddressesDeleteResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "regions" :>+               Capture "region" Text :>+                 "addresses" :>+                   Capture "address" Text :>+                     QueryParam "alt" AltJSON :> Delete '[JSON] Operation++-- | Deletes the specified address resource.+--+-- /See:/ 'addressesDelete' smart constructor.+data AddressesDelete = AddressesDelete+    { _aaProject :: !Text+    , _aaAddress :: !Text+    , _aaRegion  :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'AddressesDelete' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aaProject'+--+-- * 'aaAddress'+--+-- * 'aaRegion'+addressesDelete+    :: Text -- ^ 'aaProject'+    -> Text -- ^ 'aaAddress'+    -> Text -- ^ 'aaRegion'+    -> AddressesDelete+addressesDelete pAaProject_ pAaAddress_ pAaRegion_ =+    AddressesDelete+    { _aaProject = pAaProject_+    , _aaAddress = pAaAddress_+    , _aaRegion = pAaRegion_+    }++-- | Project ID for this request.+aaProject :: Lens' AddressesDelete Text+aaProject+  = lens _aaProject (\ s a -> s{_aaProject = a})++-- | Name of the address resource to delete.+aaAddress :: Lens' AddressesDelete Text+aaAddress+  = lens _aaAddress (\ s a -> s{_aaAddress = a})++-- | The name of the region for this request.+aaRegion :: Lens' AddressesDelete Text+aaRegion = lens _aaRegion (\ s a -> s{_aaRegion = a})++instance GoogleRequest AddressesDelete where+        type Rs AddressesDelete = Operation+        requestClient AddressesDelete{..}+          = go _aaProject _aaRegion _aaAddress (Just AltJSON)+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy AddressesDeleteResource)+                      mempty
+ gen/Network/Google/Resource/Compute/Addresses/Get.hs view
@@ -0,0 +1,110 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Compute.Addresses.Get+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns the specified address resource.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.addresses.get@.+module Network.Google.Resource.Compute.Addresses.Get+    (+    -- * REST Resource+      AddressesGetResource++    -- * Creating a Request+    , addressesGet+    , AddressesGet++    -- * Request Lenses+    , addProject+    , addAddress+    , addRegion+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.addresses.get@ method which the+-- 'AddressesGet' request conforms to.+type AddressesGetResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "regions" :>+               Capture "region" Text :>+                 "addresses" :>+                   Capture "address" Text :>+                     QueryParam "alt" AltJSON :> Get '[JSON] Address++-- | Returns the specified address resource.+--+-- /See:/ 'addressesGet' smart constructor.+data AddressesGet = AddressesGet+    { _addProject :: !Text+    , _addAddress :: !Text+    , _addRegion  :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'AddressesGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'addProject'+--+-- * 'addAddress'+--+-- * 'addRegion'+addressesGet+    :: Text -- ^ 'addProject'+    -> Text -- ^ 'addAddress'+    -> Text -- ^ 'addRegion'+    -> AddressesGet+addressesGet pAddProject_ pAddAddress_ pAddRegion_ =+    AddressesGet+    { _addProject = pAddProject_+    , _addAddress = pAddAddress_+    , _addRegion = pAddRegion_+    }++-- | Project ID for this request.+addProject :: Lens' AddressesGet Text+addProject+  = lens _addProject (\ s a -> s{_addProject = a})++-- | Name of the address resource to return.+addAddress :: Lens' AddressesGet Text+addAddress+  = lens _addAddress (\ s a -> s{_addAddress = a})++-- | The name of the region for this request.+addRegion :: Lens' AddressesGet Text+addRegion+  = lens _addRegion (\ s a -> s{_addRegion = a})++instance GoogleRequest AddressesGet where+        type Rs AddressesGet = Address+        requestClient AddressesGet{..}+          = go _addProject _addRegion _addAddress+              (Just AltJSON)+              computeService+          where go+                  = buildClient (Proxy :: Proxy AddressesGetResource)+                      mempty
+ gen/Network/Google/Resource/Compute/Addresses/Insert.hs view
@@ -0,0 +1,111 @@+{-# 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.Compute.Addresses.Insert+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates an address resource in the specified project using the data+-- included in the request.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.addresses.insert@.+module Network.Google.Resource.Compute.Addresses.Insert+    (+    -- * REST Resource+      AddressesInsertResource++    -- * Creating a Request+    , addressesInsert+    , AddressesInsert++    -- * Request Lenses+    , aiProject+    , aiPayload+    , aiRegion+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.addresses.insert@ method which the+-- 'AddressesInsert' request conforms to.+type AddressesInsertResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "regions" :>+               Capture "region" Text :>+                 "addresses" :>+                   QueryParam "alt" AltJSON :>+                     ReqBody '[JSON] Address :> Post '[JSON] Operation++-- | Creates an address resource in the specified project using the data+-- included in the request.+--+-- /See:/ 'addressesInsert' smart constructor.+data AddressesInsert = AddressesInsert+    { _aiProject :: !Text+    , _aiPayload :: !Address+    , _aiRegion  :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'AddressesInsert' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aiProject'+--+-- * 'aiPayload'+--+-- * 'aiRegion'+addressesInsert+    :: Text -- ^ 'aiProject'+    -> Address -- ^ 'aiPayload'+    -> Text -- ^ 'aiRegion'+    -> AddressesInsert+addressesInsert pAiProject_ pAiPayload_ pAiRegion_ =+    AddressesInsert+    { _aiProject = pAiProject_+    , _aiPayload = pAiPayload_+    , _aiRegion = pAiRegion_+    }++-- | Project ID for this request.+aiProject :: Lens' AddressesInsert Text+aiProject+  = lens _aiProject (\ s a -> s{_aiProject = a})++-- | Multipart request metadata.+aiPayload :: Lens' AddressesInsert Address+aiPayload+  = lens _aiPayload (\ s a -> s{_aiPayload = a})++-- | The name of the region for this request.+aiRegion :: Lens' AddressesInsert Text+aiRegion = lens _aiRegion (\ s a -> s{_aiRegion = a})++instance GoogleRequest AddressesInsert where+        type Rs AddressesInsert = Operation+        requestClient AddressesInsert{..}+          = go _aiProject _aiRegion (Just AltJSON) _aiPayload+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy AddressesInsertResource)+                      mempty
+ gen/Network/Google/Resource/Compute/Addresses/List.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.Compute.Addresses.List+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves the list of address resources contained within the specified+-- region.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.addresses.list@.+module Network.Google.Resource.Compute.Addresses.List+    (+    -- * REST Resource+      AddressesListResource++    -- * Creating a Request+    , addressesList+    , AddressesList++    -- * Request Lenses+    , alProject+    , alFilter+    , alRegion+    , alPageToken+    , alMaxResults+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.addresses.list@ method which the+-- 'AddressesList' request conforms to.+type AddressesListResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "regions" :>+               Capture "region" Text :>+                 "addresses" :>+                   QueryParam "filter" Text :>+                     QueryParam "pageToken" Text :>+                       QueryParam "maxResults" (Textual Word32) :>+                         QueryParam "alt" AltJSON :> Get '[JSON] AddressList++-- | Retrieves the list of address resources contained within the specified+-- region.+--+-- /See:/ 'addressesList' smart constructor.+data AddressesList = AddressesList+    { _alProject    :: !Text+    , _alFilter     :: !(Maybe Text)+    , _alRegion     :: !Text+    , _alPageToken  :: !(Maybe Text)+    , _alMaxResults :: !(Textual Word32)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'AddressesList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'alProject'+--+-- * 'alFilter'+--+-- * 'alRegion'+--+-- * 'alPageToken'+--+-- * 'alMaxResults'+addressesList+    :: Text -- ^ 'alProject'+    -> Text -- ^ 'alRegion'+    -> AddressesList+addressesList pAlProject_ pAlRegion_ =+    AddressesList+    { _alProject = pAlProject_+    , _alFilter = Nothing+    , _alRegion = pAlRegion_+    , _alPageToken = Nothing+    , _alMaxResults = 500+    }++-- | Project ID for this request.+alProject :: Lens' AddressesList Text+alProject+  = lens _alProject (\ s a -> s{_alProject = a})++-- | Sets a filter expression for filtering listed resources, in the form+-- filter={expression}. Your {expression} must be in the format: FIELD_NAME+-- COMPARISON_STRING LITERAL_STRING. The FIELD_NAME is the name of the+-- field you want to compare. Only atomic field types are supported+-- (string, number, boolean). The COMPARISON_STRING must be either eq+-- (equals) or ne (not equals). The LITERAL_STRING is the string value to+-- filter to. The literal value must be valid for the type of field+-- (string, number, boolean). For string fields, the literal value is+-- interpreted as a regular expression using RE2 syntax. The literal value+-- must match the entire field. For example, filter=name ne+-- example-instance.+alFilter :: Lens' AddressesList (Maybe Text)+alFilter = lens _alFilter (\ s a -> s{_alFilter = a})++-- | The name of the region for this request.+alRegion :: Lens' AddressesList Text+alRegion = lens _alRegion (\ s a -> s{_alRegion = a})++-- | Specifies a page token to use. Use this parameter if you want to list+-- the next page of results. Set pageToken to the nextPageToken returned by+-- a previous list request.+alPageToken :: Lens' AddressesList (Maybe Text)+alPageToken+  = lens _alPageToken (\ s a -> s{_alPageToken = a})++-- | Maximum count of results to be returned.+alMaxResults :: Lens' AddressesList Word32+alMaxResults+  = lens _alMaxResults (\ s a -> s{_alMaxResults = a})+      . _Coerce++instance GoogleRequest AddressesList where+        type Rs AddressesList = AddressList+        requestClient AddressesList{..}+          = go _alProject _alRegion _alFilter _alPageToken+              (Just _alMaxResults)+              (Just AltJSON)+              computeService+          where go+                  = buildClient (Proxy :: Proxy AddressesListResource)+                      mempty
+ gen/Network/Google/Resource/Compute/Autoscalers/AggregatedList.hs view
@@ -0,0 +1,138 @@+{-# 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.Compute.Autoscalers.AggregatedList+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves the list of autoscalers grouped by scope.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.autoscalers.aggregatedList@.+module Network.Google.Resource.Compute.Autoscalers.AggregatedList+    (+    -- * REST Resource+      AutoscalersAggregatedListResource++    -- * Creating a Request+    , autoscalersAggregatedList+    , AutoscalersAggregatedList++    -- * Request Lenses+    , autProject+    , autFilter+    , autPageToken+    , autMaxResults+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.autoscalers.aggregatedList@ method which the+-- 'AutoscalersAggregatedList' request conforms to.+type AutoscalersAggregatedListResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "aggregated" :>+               "autoscalers" :>+                 QueryParam "filter" Text :>+                   QueryParam "pageToken" Text :>+                     QueryParam "maxResults" (Textual Word32) :>+                       QueryParam "alt" AltJSON :>+                         Get '[JSON] AutoscalerAggregatedList++-- | Retrieves the list of autoscalers grouped by scope.+--+-- /See:/ 'autoscalersAggregatedList' smart constructor.+data AutoscalersAggregatedList = AutoscalersAggregatedList+    { _autProject    :: !Text+    , _autFilter     :: !(Maybe Text)+    , _autPageToken  :: !(Maybe Text)+    , _autMaxResults :: !(Textual Word32)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'AutoscalersAggregatedList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'autProject'+--+-- * 'autFilter'+--+-- * 'autPageToken'+--+-- * 'autMaxResults'+autoscalersAggregatedList+    :: Text -- ^ 'autProject'+    -> AutoscalersAggregatedList+autoscalersAggregatedList pAutProject_ =+    AutoscalersAggregatedList+    { _autProject = pAutProject_+    , _autFilter = Nothing+    , _autPageToken = Nothing+    , _autMaxResults = 500+    }++-- | Name of the project scoping this request.+autProject :: Lens' AutoscalersAggregatedList Text+autProject+  = lens _autProject (\ s a -> s{_autProject = a})++-- | Sets a filter expression for filtering listed resources, in the form+-- filter={expression}. Your {expression} must be in the format: FIELD_NAME+-- COMPARISON_STRING LITERAL_STRING. The FIELD_NAME is the name of the+-- field you want to compare. Only atomic field types are supported+-- (string, number, boolean). The COMPARISON_STRING must be either eq+-- (equals) or ne (not equals). The LITERAL_STRING is the string value to+-- filter to. The literal value must be valid for the type of field+-- (string, number, boolean). For string fields, the literal value is+-- interpreted as a regular expression using RE2 syntax. The literal value+-- must match the entire field. For example, filter=name ne+-- example-instance.+autFilter :: Lens' AutoscalersAggregatedList (Maybe Text)+autFilter+  = lens _autFilter (\ s a -> s{_autFilter = a})++-- | Specifies a page token to use. Use this parameter if you want to list+-- the next page of results. Set pageToken to the nextPageToken returned by+-- a previous list request.+autPageToken :: Lens' AutoscalersAggregatedList (Maybe Text)+autPageToken+  = lens _autPageToken (\ s a -> s{_autPageToken = a})++-- | Maximum count of results to be returned.+autMaxResults :: Lens' AutoscalersAggregatedList Word32+autMaxResults+  = lens _autMaxResults+      (\ s a -> s{_autMaxResults = a})+      . _Coerce++instance GoogleRequest AutoscalersAggregatedList+         where+        type Rs AutoscalersAggregatedList =+             AutoscalerAggregatedList+        requestClient AutoscalersAggregatedList{..}+          = go _autProject _autFilter _autPageToken+              (Just _autMaxResults)+              (Just AltJSON)+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy AutoscalersAggregatedListResource)+                      mempty
+ gen/Network/Google/Resource/Compute/Autoscalers/Delete.hs view
@@ -0,0 +1,109 @@+{-# 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.Compute.Autoscalers.Delete+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes the specified autoscaler resource.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.autoscalers.delete@.+module Network.Google.Resource.Compute.Autoscalers.Delete+    (+    -- * REST Resource+      AutoscalersDeleteResource++    -- * Creating a Request+    , autoscalersDelete+    , AutoscalersDelete++    -- * Request Lenses+    , adProject+    , adZone+    , adAutoscaler+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.autoscalers.delete@ method which the+-- 'AutoscalersDelete' request conforms to.+type AutoscalersDeleteResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "zones" :>+               Capture "zone" Text :>+                 "autoscalers" :>+                   Capture "autoscaler" Text :>+                     QueryParam "alt" AltJSON :> Delete '[JSON] Operation++-- | Deletes the specified autoscaler resource.+--+-- /See:/ 'autoscalersDelete' smart constructor.+data AutoscalersDelete = AutoscalersDelete+    { _adProject    :: !Text+    , _adZone       :: !Text+    , _adAutoscaler :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'AutoscalersDelete' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'adProject'+--+-- * 'adZone'+--+-- * 'adAutoscaler'+autoscalersDelete+    :: Text -- ^ 'adProject'+    -> Text -- ^ 'adZone'+    -> Text -- ^ 'adAutoscaler'+    -> AutoscalersDelete+autoscalersDelete pAdProject_ pAdZone_ pAdAutoscaler_ =+    AutoscalersDelete+    { _adProject = pAdProject_+    , _adZone = pAdZone_+    , _adAutoscaler = pAdAutoscaler_+    }++-- | Name of the project scoping this request.+adProject :: Lens' AutoscalersDelete Text+adProject+  = lens _adProject (\ s a -> s{_adProject = a})++-- | Name of the zone scoping this request.+adZone :: Lens' AutoscalersDelete Text+adZone = lens _adZone (\ s a -> s{_adZone = a})++-- | Name of the persistent autoscaler resource to delete.+adAutoscaler :: Lens' AutoscalersDelete Text+adAutoscaler+  = lens _adAutoscaler (\ s a -> s{_adAutoscaler = a})++instance GoogleRequest AutoscalersDelete where+        type Rs AutoscalersDelete = Operation+        requestClient AutoscalersDelete{..}+          = go _adProject _adZone _adAutoscaler (Just AltJSON)+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy AutoscalersDeleteResource)+                      mempty
+ gen/Network/Google/Resource/Compute/Autoscalers/Get.hs view
@@ -0,0 +1,108 @@+{-# 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.Compute.Autoscalers.Get+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns the specified autoscaler resource.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.autoscalers.get@.+module Network.Google.Resource.Compute.Autoscalers.Get+    (+    -- * REST Resource+      AutoscalersGetResource++    -- * Creating a Request+    , autoscalersGet+    , AutoscalersGet++    -- * Request Lenses+    , agProject+    , agZone+    , agAutoscaler+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.autoscalers.get@ method which the+-- 'AutoscalersGet' request conforms to.+type AutoscalersGetResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "zones" :>+               Capture "zone" Text :>+                 "autoscalers" :>+                   Capture "autoscaler" Text :>+                     QueryParam "alt" AltJSON :> Get '[JSON] Autoscaler++-- | Returns the specified autoscaler resource.+--+-- /See:/ 'autoscalersGet' smart constructor.+data AutoscalersGet = AutoscalersGet+    { _agProject    :: !Text+    , _agZone       :: !Text+    , _agAutoscaler :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'AutoscalersGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'agProject'+--+-- * 'agZone'+--+-- * 'agAutoscaler'+autoscalersGet+    :: Text -- ^ 'agProject'+    -> Text -- ^ 'agZone'+    -> Text -- ^ 'agAutoscaler'+    -> AutoscalersGet+autoscalersGet pAgProject_ pAgZone_ pAgAutoscaler_ =+    AutoscalersGet+    { _agProject = pAgProject_+    , _agZone = pAgZone_+    , _agAutoscaler = pAgAutoscaler_+    }++-- | Name of the project scoping this request.+agProject :: Lens' AutoscalersGet Text+agProject+  = lens _agProject (\ s a -> s{_agProject = a})++-- | Name of the zone scoping this request.+agZone :: Lens' AutoscalersGet Text+agZone = lens _agZone (\ s a -> s{_agZone = a})++-- | Name of the persistent autoscaler resource to return.+agAutoscaler :: Lens' AutoscalersGet Text+agAutoscaler+  = lens _agAutoscaler (\ s a -> s{_agAutoscaler = a})++instance GoogleRequest AutoscalersGet where+        type Rs AutoscalersGet = Autoscaler+        requestClient AutoscalersGet{..}+          = go _agProject _agZone _agAutoscaler (Just AltJSON)+              computeService+          where go+                  = buildClient (Proxy :: Proxy AutoscalersGetResource)+                      mempty
+ gen/Network/Google/Resource/Compute/Autoscalers/Insert.hs view
@@ -0,0 +1,111 @@+{-# 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.Compute.Autoscalers.Insert+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates an autoscaler resource in the specified project using the data+-- included in the request.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.autoscalers.insert@.+module Network.Google.Resource.Compute.Autoscalers.Insert+    (+    -- * REST Resource+      AutoscalersInsertResource++    -- * Creating a Request+    , autoscalersInsert+    , AutoscalersInsert++    -- * Request Lenses+    , aiiProject+    , aiiZone+    , aiiPayload+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.autoscalers.insert@ method which the+-- 'AutoscalersInsert' request conforms to.+type AutoscalersInsertResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "zones" :>+               Capture "zone" Text :>+                 "autoscalers" :>+                   QueryParam "alt" AltJSON :>+                     ReqBody '[JSON] Autoscaler :> Post '[JSON] Operation++-- | Creates an autoscaler resource in the specified project using the data+-- included in the request.+--+-- /See:/ 'autoscalersInsert' smart constructor.+data AutoscalersInsert = AutoscalersInsert+    { _aiiProject :: !Text+    , _aiiZone    :: !Text+    , _aiiPayload :: !Autoscaler+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'AutoscalersInsert' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aiiProject'+--+-- * 'aiiZone'+--+-- * 'aiiPayload'+autoscalersInsert+    :: Text -- ^ 'aiiProject'+    -> Text -- ^ 'aiiZone'+    -> Autoscaler -- ^ 'aiiPayload'+    -> AutoscalersInsert+autoscalersInsert pAiiProject_ pAiiZone_ pAiiPayload_ =+    AutoscalersInsert+    { _aiiProject = pAiiProject_+    , _aiiZone = pAiiZone_+    , _aiiPayload = pAiiPayload_+    }++-- | Name of the project scoping this request.+aiiProject :: Lens' AutoscalersInsert Text+aiiProject+  = lens _aiiProject (\ s a -> s{_aiiProject = a})++-- | Name of the zone scoping this request.+aiiZone :: Lens' AutoscalersInsert Text+aiiZone = lens _aiiZone (\ s a -> s{_aiiZone = a})++-- | Multipart request metadata.+aiiPayload :: Lens' AutoscalersInsert Autoscaler+aiiPayload+  = lens _aiiPayload (\ s a -> s{_aiiPayload = a})++instance GoogleRequest AutoscalersInsert where+        type Rs AutoscalersInsert = Operation+        requestClient AutoscalersInsert{..}+          = go _aiiProject _aiiZone (Just AltJSON) _aiiPayload+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy AutoscalersInsertResource)+                      mempty
+ gen/Network/Google/Resource/Compute/Autoscalers/List.hs view
@@ -0,0 +1,146 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Compute.Autoscalers.List+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves the list of autoscaler resources contained within the+-- specified zone.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.autoscalers.list@.+module Network.Google.Resource.Compute.Autoscalers.List+    (+    -- * REST Resource+      AutoscalersListResource++    -- * Creating a Request+    , autoscalersList+    , AutoscalersList++    -- * Request Lenses+    , aProject+    , aZone+    , aFilter+    , aPageToken+    , aMaxResults+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.autoscalers.list@ method which the+-- 'AutoscalersList' request conforms to.+type AutoscalersListResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "zones" :>+               Capture "zone" Text :>+                 "autoscalers" :>+                   QueryParam "filter" Text :>+                     QueryParam "pageToken" Text :>+                       QueryParam "maxResults" (Textual Word32) :>+                         QueryParam "alt" AltJSON :>+                           Get '[JSON] AutoscalerList++-- | Retrieves the list of autoscaler resources contained within the+-- specified zone.+--+-- /See:/ 'autoscalersList' smart constructor.+data AutoscalersList = AutoscalersList+    { _aProject    :: !Text+    , _aZone       :: !Text+    , _aFilter     :: !(Maybe Text)+    , _aPageToken  :: !(Maybe Text)+    , _aMaxResults :: !(Textual Word32)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'AutoscalersList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aProject'+--+-- * 'aZone'+--+-- * 'aFilter'+--+-- * 'aPageToken'+--+-- * 'aMaxResults'+autoscalersList+    :: Text -- ^ 'aProject'+    -> Text -- ^ 'aZone'+    -> AutoscalersList+autoscalersList pAProject_ pAZone_ =+    AutoscalersList+    { _aProject = pAProject_+    , _aZone = pAZone_+    , _aFilter = Nothing+    , _aPageToken = Nothing+    , _aMaxResults = 500+    }++-- | Name of the project scoping this request.+aProject :: Lens' AutoscalersList Text+aProject = lens _aProject (\ s a -> s{_aProject = a})++-- | Name of the zone scoping this request.+aZone :: Lens' AutoscalersList Text+aZone = lens _aZone (\ s a -> s{_aZone = a})++-- | Sets a filter expression for filtering listed resources, in the form+-- filter={expression}. Your {expression} must be in the format: FIELD_NAME+-- COMPARISON_STRING LITERAL_STRING. The FIELD_NAME is the name of the+-- field you want to compare. Only atomic field types are supported+-- (string, number, boolean). The COMPARISON_STRING must be either eq+-- (equals) or ne (not equals). The LITERAL_STRING is the string value to+-- filter to. The literal value must be valid for the type of field+-- (string, number, boolean). For string fields, the literal value is+-- interpreted as a regular expression using RE2 syntax. The literal value+-- must match the entire field. For example, filter=name ne+-- example-instance.+aFilter :: Lens' AutoscalersList (Maybe Text)+aFilter = lens _aFilter (\ s a -> s{_aFilter = a})++-- | Specifies a page token to use. Use this parameter if you want to list+-- the next page of results. Set pageToken to the nextPageToken returned by+-- a previous list request.+aPageToken :: Lens' AutoscalersList (Maybe Text)+aPageToken+  = lens _aPageToken (\ s a -> s{_aPageToken = a})++-- | Maximum count of results to be returned.+aMaxResults :: Lens' AutoscalersList Word32+aMaxResults+  = lens _aMaxResults (\ s a -> s{_aMaxResults = a}) .+      _Coerce++instance GoogleRequest AutoscalersList where+        type Rs AutoscalersList = AutoscalerList+        requestClient AutoscalersList{..}+          = go _aProject _aZone _aFilter _aPageToken+              (Just _aMaxResults)+              (Just AltJSON)+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy AutoscalersListResource)+                      mempty
+ gen/Network/Google/Resource/Compute/Autoscalers/Patch.hs view
@@ -0,0 +1,125 @@+{-# 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.Compute.Autoscalers.Patch+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates an autoscaler resource in the specified project using the data+-- included in the request. This method supports patch semantics.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.autoscalers.patch@.+module Network.Google.Resource.Compute.Autoscalers.Patch+    (+    -- * REST Resource+      AutoscalersPatchResource++    -- * Creating a Request+    , autoscalersPatch+    , AutoscalersPatch++    -- * Request Lenses+    , apProject+    , apZone+    , apPayload+    , apAutoscaler+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.autoscalers.patch@ method which the+-- 'AutoscalersPatch' request conforms to.+type AutoscalersPatchResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "zones" :>+               Capture "zone" Text :>+                 "autoscalers" :>+                   QueryParam "autoscaler" Text :>+                     QueryParam "alt" AltJSON :>+                       ReqBody '[JSON] Autoscaler :> Patch '[JSON] Operation++-- | Updates an autoscaler resource in the specified project using the data+-- included in the request. This method supports patch semantics.+--+-- /See:/ 'autoscalersPatch' smart constructor.+data AutoscalersPatch = AutoscalersPatch+    { _apProject    :: !Text+    , _apZone       :: !Text+    , _apPayload    :: !Autoscaler+    , _apAutoscaler :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'AutoscalersPatch' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'apProject'+--+-- * 'apZone'+--+-- * 'apPayload'+--+-- * 'apAutoscaler'+autoscalersPatch+    :: Text -- ^ 'apProject'+    -> Text -- ^ 'apZone'+    -> Autoscaler -- ^ 'apPayload'+    -> Text -- ^ 'apAutoscaler'+    -> AutoscalersPatch+autoscalersPatch pApProject_ pApZone_ pApPayload_ pApAutoscaler_ =+    AutoscalersPatch+    { _apProject = pApProject_+    , _apZone = pApZone_+    , _apPayload = pApPayload_+    , _apAutoscaler = pApAutoscaler_+    }++-- | Name of the project scoping this request.+apProject :: Lens' AutoscalersPatch Text+apProject+  = lens _apProject (\ s a -> s{_apProject = a})++-- | Name of the zone scoping this request.+apZone :: Lens' AutoscalersPatch Text+apZone = lens _apZone (\ s a -> s{_apZone = a})++-- | Multipart request metadata.+apPayload :: Lens' AutoscalersPatch Autoscaler+apPayload+  = lens _apPayload (\ s a -> s{_apPayload = a})++-- | Name of the autoscaler resource to update.+apAutoscaler :: Lens' AutoscalersPatch Text+apAutoscaler+  = lens _apAutoscaler (\ s a -> s{_apAutoscaler = a})++instance GoogleRequest AutoscalersPatch where+        type Rs AutoscalersPatch = Operation+        requestClient AutoscalersPatch{..}+          = go _apProject _apZone (Just _apAutoscaler)+              (Just AltJSON)+              _apPayload+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy AutoscalersPatchResource)+                      mempty
+ gen/Network/Google/Resource/Compute/Autoscalers/Update.hs view
@@ -0,0 +1,123 @@+{-# 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.Compute.Autoscalers.Update+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates an autoscaler resource in the specified project using the data+-- included in the request.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.autoscalers.update@.+module Network.Google.Resource.Compute.Autoscalers.Update+    (+    -- * REST Resource+      AutoscalersUpdateResource++    -- * Creating a Request+    , autoscalersUpdate+    , AutoscalersUpdate++    -- * Request Lenses+    , auProject+    , auZone+    , auPayload+    , auAutoscaler+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.autoscalers.update@ method which the+-- 'AutoscalersUpdate' request conforms to.+type AutoscalersUpdateResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "zones" :>+               Capture "zone" Text :>+                 "autoscalers" :>+                   QueryParam "autoscaler" Text :>+                     QueryParam "alt" AltJSON :>+                       ReqBody '[JSON] Autoscaler :> Put '[JSON] Operation++-- | Updates an autoscaler resource in the specified project using the data+-- included in the request.+--+-- /See:/ 'autoscalersUpdate' smart constructor.+data AutoscalersUpdate = AutoscalersUpdate+    { _auProject    :: !Text+    , _auZone       :: !Text+    , _auPayload    :: !Autoscaler+    , _auAutoscaler :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'AutoscalersUpdate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'auProject'+--+-- * 'auZone'+--+-- * 'auPayload'+--+-- * 'auAutoscaler'+autoscalersUpdate+    :: Text -- ^ 'auProject'+    -> Text -- ^ 'auZone'+    -> Autoscaler -- ^ 'auPayload'+    -> AutoscalersUpdate+autoscalersUpdate pAuProject_ pAuZone_ pAuPayload_ =+    AutoscalersUpdate+    { _auProject = pAuProject_+    , _auZone = pAuZone_+    , _auPayload = pAuPayload_+    , _auAutoscaler = Nothing+    }++-- | Name of the project scoping this request.+auProject :: Lens' AutoscalersUpdate Text+auProject+  = lens _auProject (\ s a -> s{_auProject = a})++-- | Name of the zone scoping this request.+auZone :: Lens' AutoscalersUpdate Text+auZone = lens _auZone (\ s a -> s{_auZone = a})++-- | Multipart request metadata.+auPayload :: Lens' AutoscalersUpdate Autoscaler+auPayload+  = lens _auPayload (\ s a -> s{_auPayload = a})++-- | Name of the autoscaler resource to update.+auAutoscaler :: Lens' AutoscalersUpdate (Maybe Text)+auAutoscaler+  = lens _auAutoscaler (\ s a -> s{_auAutoscaler = a})++instance GoogleRequest AutoscalersUpdate where+        type Rs AutoscalersUpdate = Operation+        requestClient AutoscalersUpdate{..}+          = go _auProject _auZone _auAutoscaler (Just AltJSON)+              _auPayload+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy AutoscalersUpdateResource)+                      mempty
+ gen/Network/Google/Resource/Compute/BackendServices/Delete.hs view
@@ -0,0 +1,99 @@+{-# 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.Compute.BackendServices.Delete+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes the specified BackendService resource.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.backendServices.delete@.+module Network.Google.Resource.Compute.BackendServices.Delete+    (+    -- * REST Resource+      BackendServicesDeleteResource++    -- * Creating a Request+    , backendServicesDelete+    , BackendServicesDelete++    -- * Request Lenses+    , bsdProject+    , bsdBackendService+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.backendServices.delete@ method which the+-- 'BackendServicesDelete' request conforms to.+type BackendServicesDeleteResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "global" :>+               "backendServices" :>+                 Capture "backendService" Text :>+                   QueryParam "alt" AltJSON :> Delete '[JSON] Operation++-- | Deletes the specified BackendService resource.+--+-- /See:/ 'backendServicesDelete' smart constructor.+data BackendServicesDelete = BackendServicesDelete+    { _bsdProject        :: !Text+    , _bsdBackendService :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'BackendServicesDelete' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'bsdProject'+--+-- * 'bsdBackendService'+backendServicesDelete+    :: Text -- ^ 'bsdProject'+    -> Text -- ^ 'bsdBackendService'+    -> BackendServicesDelete+backendServicesDelete pBsdProject_ pBsdBackendService_ =+    BackendServicesDelete+    { _bsdProject = pBsdProject_+    , _bsdBackendService = pBsdBackendService_+    }++-- | Name of the project scoping this request.+bsdProject :: Lens' BackendServicesDelete Text+bsdProject+  = lens _bsdProject (\ s a -> s{_bsdProject = a})++-- | Name of the BackendService resource to delete.+bsdBackendService :: Lens' BackendServicesDelete Text+bsdBackendService+  = lens _bsdBackendService+      (\ s a -> s{_bsdBackendService = a})++instance GoogleRequest BackendServicesDelete where+        type Rs BackendServicesDelete = Operation+        requestClient BackendServicesDelete{..}+          = go _bsdProject _bsdBackendService (Just AltJSON)+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy BackendServicesDeleteResource)+                      mempty
+ gen/Network/Google/Resource/Compute/BackendServices/Get.hs view
@@ -0,0 +1,100 @@+{-# 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.Compute.BackendServices.Get+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns the specified BackendService resource.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.backendServices.get@.+module Network.Google.Resource.Compute.BackendServices.Get+    (+    -- * REST Resource+      BackendServicesGetResource++    -- * Creating a Request+    , backendServicesGet+    , BackendServicesGet++    -- * Request Lenses+    , bsgProject+    , bsgBackendService+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.backendServices.get@ method which the+-- 'BackendServicesGet' request conforms to.+type BackendServicesGetResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "global" :>+               "backendServices" :>+                 Capture "backendService" Text :>+                   QueryParam "alt" AltJSON :>+                     Get '[JSON] BackendService++-- | Returns the specified BackendService resource.+--+-- /See:/ 'backendServicesGet' smart constructor.+data BackendServicesGet = BackendServicesGet+    { _bsgProject        :: !Text+    , _bsgBackendService :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'BackendServicesGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'bsgProject'+--+-- * 'bsgBackendService'+backendServicesGet+    :: Text -- ^ 'bsgProject'+    -> Text -- ^ 'bsgBackendService'+    -> BackendServicesGet+backendServicesGet pBsgProject_ pBsgBackendService_ =+    BackendServicesGet+    { _bsgProject = pBsgProject_+    , _bsgBackendService = pBsgBackendService_+    }++-- | Name of the project scoping this request.+bsgProject :: Lens' BackendServicesGet Text+bsgProject+  = lens _bsgProject (\ s a -> s{_bsgProject = a})++-- | Name of the BackendService resource to return.+bsgBackendService :: Lens' BackendServicesGet Text+bsgBackendService+  = lens _bsgBackendService+      (\ s a -> s{_bsgBackendService = a})++instance GoogleRequest BackendServicesGet where+        type Rs BackendServicesGet = BackendService+        requestClient BackendServicesGet{..}+          = go _bsgProject _bsgBackendService (Just AltJSON)+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy BackendServicesGetResource)+                      mempty
+ gen/Network/Google/Resource/Compute/BackendServices/GetHealth.hs view
@@ -0,0 +1,115 @@+{-# 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.Compute.BackendServices.GetHealth+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets the most recent health check results for this BackendService.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.backendServices.getHealth@.+module Network.Google.Resource.Compute.BackendServices.GetHealth+    (+    -- * REST Resource+      BackendServicesGetHealthResource++    -- * Creating a Request+    , backendServicesGetHealth+    , BackendServicesGetHealth++    -- * Request Lenses+    , bsghProject+    , bsghPayload+    , bsghBackendService+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.backendServices.getHealth@ method which the+-- 'BackendServicesGetHealth' request conforms to.+type BackendServicesGetHealthResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "global" :>+               "backendServices" :>+                 Capture "backendService" Text :>+                   "getHealth" :>+                     QueryParam "alt" AltJSON :>+                       ReqBody '[JSON] ResourceGroupReference :>+                         Post '[JSON] BackendServiceGroupHealth++-- | Gets the most recent health check results for this BackendService.+--+-- /See:/ 'backendServicesGetHealth' smart constructor.+data BackendServicesGetHealth = BackendServicesGetHealth+    { _bsghProject        :: !Text+    , _bsghPayload        :: !ResourceGroupReference+    , _bsghBackendService :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'BackendServicesGetHealth' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'bsghProject'+--+-- * 'bsghPayload'+--+-- * 'bsghBackendService'+backendServicesGetHealth+    :: Text -- ^ 'bsghProject'+    -> ResourceGroupReference -- ^ 'bsghPayload'+    -> Text -- ^ 'bsghBackendService'+    -> BackendServicesGetHealth+backendServicesGetHealth pBsghProject_ pBsghPayload_ pBsghBackendService_ =+    BackendServicesGetHealth+    { _bsghProject = pBsghProject_+    , _bsghPayload = pBsghPayload_+    , _bsghBackendService = pBsghBackendService_+    }++bsghProject :: Lens' BackendServicesGetHealth Text+bsghProject+  = lens _bsghProject (\ s a -> s{_bsghProject = a})++-- | Multipart request metadata.+bsghPayload :: Lens' BackendServicesGetHealth ResourceGroupReference+bsghPayload+  = lens _bsghPayload (\ s a -> s{_bsghPayload = a})++-- | Name of the BackendService resource to which the queried instance+-- belongs.+bsghBackendService :: Lens' BackendServicesGetHealth Text+bsghBackendService+  = lens _bsghBackendService+      (\ s a -> s{_bsghBackendService = a})++instance GoogleRequest BackendServicesGetHealth where+        type Rs BackendServicesGetHealth =+             BackendServiceGroupHealth+        requestClient BackendServicesGetHealth{..}+          = go _bsghProject _bsghBackendService (Just AltJSON)+              _bsghPayload+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy BackendServicesGetHealthResource)+                      mempty
+ gen/Network/Google/Resource/Compute/BackendServices/Insert.hs view
@@ -0,0 +1,101 @@+{-# 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.Compute.BackendServices.Insert+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a BackendService resource in the specified project using the+-- data included in the request.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.backendServices.insert@.+module Network.Google.Resource.Compute.BackendServices.Insert+    (+    -- * REST Resource+      BackendServicesInsertResource++    -- * Creating a Request+    , backendServicesInsert+    , BackendServicesInsert++    -- * Request Lenses+    , bsiProject+    , bsiPayload+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.backendServices.insert@ method which the+-- 'BackendServicesInsert' request conforms to.+type BackendServicesInsertResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "global" :>+               "backendServices" :>+                 QueryParam "alt" AltJSON :>+                   ReqBody '[JSON] BackendService :>+                     Post '[JSON] Operation++-- | Creates a BackendService resource in the specified project using the+-- data included in the request.+--+-- /See:/ 'backendServicesInsert' smart constructor.+data BackendServicesInsert = BackendServicesInsert+    { _bsiProject :: !Text+    , _bsiPayload :: !BackendService+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'BackendServicesInsert' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'bsiProject'+--+-- * 'bsiPayload'+backendServicesInsert+    :: Text -- ^ 'bsiProject'+    -> BackendService -- ^ 'bsiPayload'+    -> BackendServicesInsert+backendServicesInsert pBsiProject_ pBsiPayload_ =+    BackendServicesInsert+    { _bsiProject = pBsiProject_+    , _bsiPayload = pBsiPayload_+    }++-- | Name of the project scoping this request.+bsiProject :: Lens' BackendServicesInsert Text+bsiProject+  = lens _bsiProject (\ s a -> s{_bsiProject = a})++-- | Multipart request metadata.+bsiPayload :: Lens' BackendServicesInsert BackendService+bsiPayload+  = lens _bsiPayload (\ s a -> s{_bsiPayload = a})++instance GoogleRequest BackendServicesInsert where+        type Rs BackendServicesInsert = Operation+        requestClient BackendServicesInsert{..}+          = go _bsiProject (Just AltJSON) _bsiPayload+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy BackendServicesInsertResource)+                      mempty
+ gen/Network/Google/Resource/Compute/BackendServices/List.hs view
@@ -0,0 +1,138 @@+{-# 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.Compute.BackendServices.List+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves the list of BackendService resources available to the+-- specified project.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.backendServices.list@.+module Network.Google.Resource.Compute.BackendServices.List+    (+    -- * REST Resource+      BackendServicesListResource++    -- * Creating a Request+    , backendServicesList+    , BackendServicesList++    -- * Request Lenses+    , bslProject+    , bslFilter+    , bslPageToken+    , bslMaxResults+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.backendServices.list@ method which the+-- 'BackendServicesList' request conforms to.+type BackendServicesListResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "global" :>+               "backendServices" :>+                 QueryParam "filter" Text :>+                   QueryParam "pageToken" Text :>+                     QueryParam "maxResults" (Textual Word32) :>+                       QueryParam "alt" AltJSON :>+                         Get '[JSON] BackendServiceList++-- | Retrieves the list of BackendService resources available to the+-- specified project.+--+-- /See:/ 'backendServicesList' smart constructor.+data BackendServicesList = BackendServicesList+    { _bslProject    :: !Text+    , _bslFilter     :: !(Maybe Text)+    , _bslPageToken  :: !(Maybe Text)+    , _bslMaxResults :: !(Textual Word32)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'BackendServicesList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'bslProject'+--+-- * 'bslFilter'+--+-- * 'bslPageToken'+--+-- * 'bslMaxResults'+backendServicesList+    :: Text -- ^ 'bslProject'+    -> BackendServicesList+backendServicesList pBslProject_ =+    BackendServicesList+    { _bslProject = pBslProject_+    , _bslFilter = Nothing+    , _bslPageToken = Nothing+    , _bslMaxResults = 500+    }++-- | Name of the project scoping this request.+bslProject :: Lens' BackendServicesList Text+bslProject+  = lens _bslProject (\ s a -> s{_bslProject = a})++-- | Sets a filter expression for filtering listed resources, in the form+-- filter={expression}. Your {expression} must be in the format: FIELD_NAME+-- COMPARISON_STRING LITERAL_STRING. The FIELD_NAME is the name of the+-- field you want to compare. Only atomic field types are supported+-- (string, number, boolean). The COMPARISON_STRING must be either eq+-- (equals) or ne (not equals). The LITERAL_STRING is the string value to+-- filter to. The literal value must be valid for the type of field+-- (string, number, boolean). For string fields, the literal value is+-- interpreted as a regular expression using RE2 syntax. The literal value+-- must match the entire field. For example, filter=name ne+-- example-instance.+bslFilter :: Lens' BackendServicesList (Maybe Text)+bslFilter+  = lens _bslFilter (\ s a -> s{_bslFilter = a})++-- | Specifies a page token to use. Use this parameter if you want to list+-- the next page of results. Set pageToken to the nextPageToken returned by+-- a previous list request.+bslPageToken :: Lens' BackendServicesList (Maybe Text)+bslPageToken+  = lens _bslPageToken (\ s a -> s{_bslPageToken = a})++-- | Maximum count of results to be returned.+bslMaxResults :: Lens' BackendServicesList Word32+bslMaxResults+  = lens _bslMaxResults+      (\ s a -> s{_bslMaxResults = a})+      . _Coerce++instance GoogleRequest BackendServicesList where+        type Rs BackendServicesList = BackendServiceList+        requestClient BackendServicesList{..}+          = go _bslProject _bslFilter _bslPageToken+              (Just _bslMaxResults)+              (Just AltJSON)+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy BackendServicesListResource)+                      mempty
+ gen/Network/Google/Resource/Compute/BackendServices/Patch.hs view
@@ -0,0 +1,115 @@+{-# 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.Compute.BackendServices.Patch+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Update the entire content of the BackendService resource. This method+-- supports patch semantics.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.backendServices.patch@.+module Network.Google.Resource.Compute.BackendServices.Patch+    (+    -- * REST Resource+      BackendServicesPatchResource++    -- * Creating a Request+    , backendServicesPatch+    , BackendServicesPatch++    -- * Request Lenses+    , bspProject+    , bspPayload+    , bspBackendService+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.backendServices.patch@ method which the+-- 'BackendServicesPatch' request conforms to.+type BackendServicesPatchResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "global" :>+               "backendServices" :>+                 Capture "backendService" Text :>+                   QueryParam "alt" AltJSON :>+                     ReqBody '[JSON] BackendService :>+                       Patch '[JSON] Operation++-- | Update the entire content of the BackendService resource. This method+-- supports patch semantics.+--+-- /See:/ 'backendServicesPatch' smart constructor.+data BackendServicesPatch = BackendServicesPatch+    { _bspProject        :: !Text+    , _bspPayload        :: !BackendService+    , _bspBackendService :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'BackendServicesPatch' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'bspProject'+--+-- * 'bspPayload'+--+-- * 'bspBackendService'+backendServicesPatch+    :: Text -- ^ 'bspProject'+    -> BackendService -- ^ 'bspPayload'+    -> Text -- ^ 'bspBackendService'+    -> BackendServicesPatch+backendServicesPatch pBspProject_ pBspPayload_ pBspBackendService_ =+    BackendServicesPatch+    { _bspProject = pBspProject_+    , _bspPayload = pBspPayload_+    , _bspBackendService = pBspBackendService_+    }++-- | Name of the project scoping this request.+bspProject :: Lens' BackendServicesPatch Text+bspProject+  = lens _bspProject (\ s a -> s{_bspProject = a})++-- | Multipart request metadata.+bspPayload :: Lens' BackendServicesPatch BackendService+bspPayload+  = lens _bspPayload (\ s a -> s{_bspPayload = a})++-- | Name of the BackendService resource to update.+bspBackendService :: Lens' BackendServicesPatch Text+bspBackendService+  = lens _bspBackendService+      (\ s a -> s{_bspBackendService = a})++instance GoogleRequest BackendServicesPatch where+        type Rs BackendServicesPatch = Operation+        requestClient BackendServicesPatch{..}+          = go _bspProject _bspBackendService (Just AltJSON)+              _bspPayload+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy BackendServicesPatchResource)+                      mempty
+ gen/Network/Google/Resource/Compute/BackendServices/Update.hs view
@@ -0,0 +1,113 @@+{-# 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.Compute.BackendServices.Update+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Update the entire content of the BackendService resource.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.backendServices.update@.+module Network.Google.Resource.Compute.BackendServices.Update+    (+    -- * REST Resource+      BackendServicesUpdateResource++    -- * Creating a Request+    , backendServicesUpdate+    , BackendServicesUpdate++    -- * Request Lenses+    , bsuProject+    , bsuPayload+    , bsuBackendService+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.backendServices.update@ method which the+-- 'BackendServicesUpdate' request conforms to.+type BackendServicesUpdateResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "global" :>+               "backendServices" :>+                 Capture "backendService" Text :>+                   QueryParam "alt" AltJSON :>+                     ReqBody '[JSON] BackendService :>+                       Put '[JSON] Operation++-- | Update the entire content of the BackendService resource.+--+-- /See:/ 'backendServicesUpdate' smart constructor.+data BackendServicesUpdate = BackendServicesUpdate+    { _bsuProject        :: !Text+    , _bsuPayload        :: !BackendService+    , _bsuBackendService :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'BackendServicesUpdate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'bsuProject'+--+-- * 'bsuPayload'+--+-- * 'bsuBackendService'+backendServicesUpdate+    :: Text -- ^ 'bsuProject'+    -> BackendService -- ^ 'bsuPayload'+    -> Text -- ^ 'bsuBackendService'+    -> BackendServicesUpdate+backendServicesUpdate pBsuProject_ pBsuPayload_ pBsuBackendService_ =+    BackendServicesUpdate+    { _bsuProject = pBsuProject_+    , _bsuPayload = pBsuPayload_+    , _bsuBackendService = pBsuBackendService_+    }++-- | Name of the project scoping this request.+bsuProject :: Lens' BackendServicesUpdate Text+bsuProject+  = lens _bsuProject (\ s a -> s{_bsuProject = a})++-- | Multipart request metadata.+bsuPayload :: Lens' BackendServicesUpdate BackendService+bsuPayload+  = lens _bsuPayload (\ s a -> s{_bsuPayload = a})++-- | Name of the BackendService resource to update.+bsuBackendService :: Lens' BackendServicesUpdate Text+bsuBackendService+  = lens _bsuBackendService+      (\ s a -> s{_bsuBackendService = a})++instance GoogleRequest BackendServicesUpdate where+        type Rs BackendServicesUpdate = Operation+        requestClient BackendServicesUpdate{..}+          = go _bsuProject _bsuBackendService (Just AltJSON)+              _bsuPayload+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy BackendServicesUpdateResource)+                      mempty
+ gen/Network/Google/Resource/Compute/DiskTypes/AggregatedList.hs view
@@ -0,0 +1,138 @@+{-# 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.Compute.DiskTypes.AggregatedList+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves the list of disk type resources grouped by scope.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.diskTypes.aggregatedList@.+module Network.Google.Resource.Compute.DiskTypes.AggregatedList+    (+    -- * REST Resource+      DiskTypesAggregatedListResource++    -- * Creating a Request+    , diskTypesAggregatedList+    , DiskTypesAggregatedList++    -- * Request Lenses+    , dtalProject+    , dtalFilter+    , dtalPageToken+    , dtalMaxResults+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.diskTypes.aggregatedList@ method which the+-- 'DiskTypesAggregatedList' request conforms to.+type DiskTypesAggregatedListResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "aggregated" :>+               "diskTypes" :>+                 QueryParam "filter" Text :>+                   QueryParam "pageToken" Text :>+                     QueryParam "maxResults" (Textual Word32) :>+                       QueryParam "alt" AltJSON :>+                         Get '[JSON] DiskTypeAggregatedList++-- | Retrieves the list of disk type resources grouped by scope.+--+-- /See:/ 'diskTypesAggregatedList' smart constructor.+data DiskTypesAggregatedList = DiskTypesAggregatedList+    { _dtalProject    :: !Text+    , _dtalFilter     :: !(Maybe Text)+    , _dtalPageToken  :: !(Maybe Text)+    , _dtalMaxResults :: !(Textual Word32)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DiskTypesAggregatedList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dtalProject'+--+-- * 'dtalFilter'+--+-- * 'dtalPageToken'+--+-- * 'dtalMaxResults'+diskTypesAggregatedList+    :: Text -- ^ 'dtalProject'+    -> DiskTypesAggregatedList+diskTypesAggregatedList pDtalProject_ =+    DiskTypesAggregatedList+    { _dtalProject = pDtalProject_+    , _dtalFilter = Nothing+    , _dtalPageToken = Nothing+    , _dtalMaxResults = 500+    }++-- | Project ID for this request.+dtalProject :: Lens' DiskTypesAggregatedList Text+dtalProject+  = lens _dtalProject (\ s a -> s{_dtalProject = a})++-- | Sets a filter expression for filtering listed resources, in the form+-- filter={expression}. Your {expression} must be in the format: FIELD_NAME+-- COMPARISON_STRING LITERAL_STRING. The FIELD_NAME is the name of the+-- field you want to compare. Only atomic field types are supported+-- (string, number, boolean). The COMPARISON_STRING must be either eq+-- (equals) or ne (not equals). The LITERAL_STRING is the string value to+-- filter to. The literal value must be valid for the type of field+-- (string, number, boolean). For string fields, the literal value is+-- interpreted as a regular expression using RE2 syntax. The literal value+-- must match the entire field. For example, filter=name ne+-- example-instance.+dtalFilter :: Lens' DiskTypesAggregatedList (Maybe Text)+dtalFilter+  = lens _dtalFilter (\ s a -> s{_dtalFilter = a})++-- | Specifies a page token to use. Use this parameter if you want to list+-- the next page of results. Set pageToken to the nextPageToken returned by+-- a previous list request.+dtalPageToken :: Lens' DiskTypesAggregatedList (Maybe Text)+dtalPageToken+  = lens _dtalPageToken+      (\ s a -> s{_dtalPageToken = a})++-- | Maximum count of results to be returned.+dtalMaxResults :: Lens' DiskTypesAggregatedList Word32+dtalMaxResults+  = lens _dtalMaxResults+      (\ s a -> s{_dtalMaxResults = a})+      . _Coerce++instance GoogleRequest DiskTypesAggregatedList where+        type Rs DiskTypesAggregatedList =+             DiskTypeAggregatedList+        requestClient DiskTypesAggregatedList{..}+          = go _dtalProject _dtalFilter _dtalPageToken+              (Just _dtalMaxResults)+              (Just AltJSON)+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy DiskTypesAggregatedListResource)+                      mempty
+ gen/Network/Google/Resource/Compute/DiskTypes/Get.hs view
@@ -0,0 +1,108 @@+{-# 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.Compute.DiskTypes.Get+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns the specified disk type resource.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.diskTypes.get@.+module Network.Google.Resource.Compute.DiskTypes.Get+    (+    -- * REST Resource+      DiskTypesGetResource++    -- * Creating a Request+    , diskTypesGet+    , DiskTypesGet++    -- * Request Lenses+    , dtgProject+    , dtgZone+    , dtgDiskType+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.diskTypes.get@ method which the+-- 'DiskTypesGet' request conforms to.+type DiskTypesGetResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "zones" :>+               Capture "zone" Text :>+                 "diskTypes" :>+                   Capture "diskType" Text :>+                     QueryParam "alt" AltJSON :> Get '[JSON] DiskType++-- | Returns the specified disk type resource.+--+-- /See:/ 'diskTypesGet' smart constructor.+data DiskTypesGet = DiskTypesGet+    { _dtgProject  :: !Text+    , _dtgZone     :: !Text+    , _dtgDiskType :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DiskTypesGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dtgProject'+--+-- * 'dtgZone'+--+-- * 'dtgDiskType'+diskTypesGet+    :: Text -- ^ 'dtgProject'+    -> Text -- ^ 'dtgZone'+    -> Text -- ^ 'dtgDiskType'+    -> DiskTypesGet+diskTypesGet pDtgProject_ pDtgZone_ pDtgDiskType_ =+    DiskTypesGet+    { _dtgProject = pDtgProject_+    , _dtgZone = pDtgZone_+    , _dtgDiskType = pDtgDiskType_+    }++-- | Project ID for this request.+dtgProject :: Lens' DiskTypesGet Text+dtgProject+  = lens _dtgProject (\ s a -> s{_dtgProject = a})++-- | The name of the zone for this request.+dtgZone :: Lens' DiskTypesGet Text+dtgZone = lens _dtgZone (\ s a -> s{_dtgZone = a})++-- | Name of the disk type resource to return.+dtgDiskType :: Lens' DiskTypesGet Text+dtgDiskType+  = lens _dtgDiskType (\ s a -> s{_dtgDiskType = a})++instance GoogleRequest DiskTypesGet where+        type Rs DiskTypesGet = DiskType+        requestClient DiskTypesGet{..}+          = go _dtgProject _dtgZone _dtgDiskType (Just AltJSON)+              computeService+          where go+                  = buildClient (Proxy :: Proxy DiskTypesGetResource)+                      mempty
+ gen/Network/Google/Resource/Compute/DiskTypes/List.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.Compute.DiskTypes.List+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves the list of disk type resources available to the specified+-- project.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.diskTypes.list@.+module Network.Google.Resource.Compute.DiskTypes.List+    (+    -- * REST Resource+      DiskTypesListResource++    -- * Creating a Request+    , diskTypesList+    , DiskTypesList++    -- * Request Lenses+    , dtlProject+    , dtlZone+    , dtlFilter+    , dtlPageToken+    , dtlMaxResults+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.diskTypes.list@ method which the+-- 'DiskTypesList' request conforms to.+type DiskTypesListResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "zones" :>+               Capture "zone" Text :>+                 "diskTypes" :>+                   QueryParam "filter" Text :>+                     QueryParam "pageToken" Text :>+                       QueryParam "maxResults" (Textual Word32) :>+                         QueryParam "alt" AltJSON :> Get '[JSON] DiskTypeList++-- | Retrieves the list of disk type resources available to the specified+-- project.+--+-- /See:/ 'diskTypesList' smart constructor.+data DiskTypesList = DiskTypesList+    { _dtlProject    :: !Text+    , _dtlZone       :: !Text+    , _dtlFilter     :: !(Maybe Text)+    , _dtlPageToken  :: !(Maybe Text)+    , _dtlMaxResults :: !(Textual Word32)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DiskTypesList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dtlProject'+--+-- * 'dtlZone'+--+-- * 'dtlFilter'+--+-- * 'dtlPageToken'+--+-- * 'dtlMaxResults'+diskTypesList+    :: Text -- ^ 'dtlProject'+    -> Text -- ^ 'dtlZone'+    -> DiskTypesList+diskTypesList pDtlProject_ pDtlZone_ =+    DiskTypesList+    { _dtlProject = pDtlProject_+    , _dtlZone = pDtlZone_+    , _dtlFilter = Nothing+    , _dtlPageToken = Nothing+    , _dtlMaxResults = 500+    }++-- | Project ID for this request.+dtlProject :: Lens' DiskTypesList Text+dtlProject+  = lens _dtlProject (\ s a -> s{_dtlProject = a})++-- | The name of the zone for this request.+dtlZone :: Lens' DiskTypesList Text+dtlZone = lens _dtlZone (\ s a -> s{_dtlZone = a})++-- | Sets a filter expression for filtering listed resources, in the form+-- filter={expression}. Your {expression} must be in the format: FIELD_NAME+-- COMPARISON_STRING LITERAL_STRING. The FIELD_NAME is the name of the+-- field you want to compare. Only atomic field types are supported+-- (string, number, boolean). The COMPARISON_STRING must be either eq+-- (equals) or ne (not equals). The LITERAL_STRING is the string value to+-- filter to. The literal value must be valid for the type of field+-- (string, number, boolean). For string fields, the literal value is+-- interpreted as a regular expression using RE2 syntax. The literal value+-- must match the entire field. For example, filter=name ne+-- example-instance.+dtlFilter :: Lens' DiskTypesList (Maybe Text)+dtlFilter+  = lens _dtlFilter (\ s a -> s{_dtlFilter = a})++-- | Specifies a page token to use. Use this parameter if you want to list+-- the next page of results. Set pageToken to the nextPageToken returned by+-- a previous list request.+dtlPageToken :: Lens' DiskTypesList (Maybe Text)+dtlPageToken+  = lens _dtlPageToken (\ s a -> s{_dtlPageToken = a})++-- | Maximum count of results to be returned.+dtlMaxResults :: Lens' DiskTypesList Word32+dtlMaxResults+  = lens _dtlMaxResults+      (\ s a -> s{_dtlMaxResults = a})+      . _Coerce++instance GoogleRequest DiskTypesList where+        type Rs DiskTypesList = DiskTypeList+        requestClient DiskTypesList{..}+          = go _dtlProject _dtlZone _dtlFilter _dtlPageToken+              (Just _dtlMaxResults)+              (Just AltJSON)+              computeService+          where go+                  = buildClient (Proxy :: Proxy DiskTypesListResource)+                      mempty
+ gen/Network/Google/Resource/Compute/Disks/AggregatedList.hs view
@@ -0,0 +1,136 @@+{-# 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.Compute.Disks.AggregatedList+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves the list of disks grouped by scope.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.disks.aggregatedList@.+module Network.Google.Resource.Compute.Disks.AggregatedList+    (+    -- * REST Resource+      DisksAggregatedListResource++    -- * Creating a Request+    , disksAggregatedList+    , DisksAggregatedList++    -- * Request Lenses+    , dalProject+    , dalFilter+    , dalPageToken+    , dalMaxResults+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.disks.aggregatedList@ method which the+-- 'DisksAggregatedList' request conforms to.+type DisksAggregatedListResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "aggregated" :>+               "disks" :>+                 QueryParam "filter" Text :>+                   QueryParam "pageToken" Text :>+                     QueryParam "maxResults" (Textual Word32) :>+                       QueryParam "alt" AltJSON :>+                         Get '[JSON] DiskAggregatedList++-- | Retrieves the list of disks grouped by scope.+--+-- /See:/ 'disksAggregatedList' smart constructor.+data DisksAggregatedList = DisksAggregatedList+    { _dalProject    :: !Text+    , _dalFilter     :: !(Maybe Text)+    , _dalPageToken  :: !(Maybe Text)+    , _dalMaxResults :: !(Textual Word32)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DisksAggregatedList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dalProject'+--+-- * 'dalFilter'+--+-- * 'dalPageToken'+--+-- * 'dalMaxResults'+disksAggregatedList+    :: Text -- ^ 'dalProject'+    -> DisksAggregatedList+disksAggregatedList pDalProject_ =+    DisksAggregatedList+    { _dalProject = pDalProject_+    , _dalFilter = Nothing+    , _dalPageToken = Nothing+    , _dalMaxResults = 500+    }++-- | Project ID for this request.+dalProject :: Lens' DisksAggregatedList Text+dalProject+  = lens _dalProject (\ s a -> s{_dalProject = a})++-- | Sets a filter expression for filtering listed resources, in the form+-- filter={expression}. Your {expression} must be in the format: FIELD_NAME+-- COMPARISON_STRING LITERAL_STRING. The FIELD_NAME is the name of the+-- field you want to compare. Only atomic field types are supported+-- (string, number, boolean). The COMPARISON_STRING must be either eq+-- (equals) or ne (not equals). The LITERAL_STRING is the string value to+-- filter to. The literal value must be valid for the type of field+-- (string, number, boolean). For string fields, the literal value is+-- interpreted as a regular expression using RE2 syntax. The literal value+-- must match the entire field. For example, filter=name ne+-- example-instance.+dalFilter :: Lens' DisksAggregatedList (Maybe Text)+dalFilter+  = lens _dalFilter (\ s a -> s{_dalFilter = a})++-- | Specifies a page token to use. Use this parameter if you want to list+-- the next page of results. Set pageToken to the nextPageToken returned by+-- a previous list request.+dalPageToken :: Lens' DisksAggregatedList (Maybe Text)+dalPageToken+  = lens _dalPageToken (\ s a -> s{_dalPageToken = a})++-- | Maximum count of results to be returned.+dalMaxResults :: Lens' DisksAggregatedList Word32+dalMaxResults+  = lens _dalMaxResults+      (\ s a -> s{_dalMaxResults = a})+      . _Coerce++instance GoogleRequest DisksAggregatedList where+        type Rs DisksAggregatedList = DiskAggregatedList+        requestClient DisksAggregatedList{..}+          = go _dalProject _dalFilter _dalPageToken+              (Just _dalMaxResults)+              (Just AltJSON)+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy DisksAggregatedListResource)+                      mempty
+ gen/Network/Google/Resource/Compute/Disks/CreateSnapshot.hs view
@@ -0,0 +1,122 @@+{-# 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.Compute.Disks.CreateSnapshot+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a snapshot of this disk.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.disks.createSnapshot@.+module Network.Google.Resource.Compute.Disks.CreateSnapshot+    (+    -- * REST Resource+      DisksCreateSnapshotResource++    -- * Creating a Request+    , disksCreateSnapshot+    , DisksCreateSnapshot++    -- * Request Lenses+    , dcsProject+    , dcsDisk+    , dcsZone+    , dcsPayload+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.disks.createSnapshot@ method which the+-- 'DisksCreateSnapshot' request conforms to.+type DisksCreateSnapshotResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "zones" :>+               Capture "zone" Text :>+                 "disks" :>+                   Capture "disk" Text :>+                     "createSnapshot" :>+                       QueryParam "alt" AltJSON :>+                         ReqBody '[JSON] Snapshot :> Post '[JSON] Operation++-- | Creates a snapshot of this disk.+--+-- /See:/ 'disksCreateSnapshot' smart constructor.+data DisksCreateSnapshot = DisksCreateSnapshot+    { _dcsProject :: !Text+    , _dcsDisk    :: !Text+    , _dcsZone    :: !Text+    , _dcsPayload :: !Snapshot+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DisksCreateSnapshot' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dcsProject'+--+-- * 'dcsDisk'+--+-- * 'dcsZone'+--+-- * 'dcsPayload'+disksCreateSnapshot+    :: Text -- ^ 'dcsProject'+    -> Text -- ^ 'dcsDisk'+    -> Text -- ^ 'dcsZone'+    -> Snapshot -- ^ 'dcsPayload'+    -> DisksCreateSnapshot+disksCreateSnapshot pDcsProject_ pDcsDisk_ pDcsZone_ pDcsPayload_ =+    DisksCreateSnapshot+    { _dcsProject = pDcsProject_+    , _dcsDisk = pDcsDisk_+    , _dcsZone = pDcsZone_+    , _dcsPayload = pDcsPayload_+    }++-- | Project ID for this request.+dcsProject :: Lens' DisksCreateSnapshot Text+dcsProject+  = lens _dcsProject (\ s a -> s{_dcsProject = a})++-- | Name of the persistent disk to snapshot.+dcsDisk :: Lens' DisksCreateSnapshot Text+dcsDisk = lens _dcsDisk (\ s a -> s{_dcsDisk = a})++-- | The name of the zone for this request.+dcsZone :: Lens' DisksCreateSnapshot Text+dcsZone = lens _dcsZone (\ s a -> s{_dcsZone = a})++-- | Multipart request metadata.+dcsPayload :: Lens' DisksCreateSnapshot Snapshot+dcsPayload+  = lens _dcsPayload (\ s a -> s{_dcsPayload = a})++instance GoogleRequest DisksCreateSnapshot where+        type Rs DisksCreateSnapshot = Operation+        requestClient DisksCreateSnapshot{..}+          = go _dcsProject _dcsZone _dcsDisk (Just AltJSON)+              _dcsPayload+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy DisksCreateSnapshotResource)+                      mempty
+ gen/Network/Google/Resource/Compute/Disks/Delete.hs view
@@ -0,0 +1,113 @@+{-# 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.Compute.Disks.Delete+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes the specified persistent disk. Deleting a disk removes its data+-- permanently and is irreversible. However, deleting a disk does not+-- delete any snapshots previously made from the disk. You must separately+-- delete snapshots.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.disks.delete@.+module Network.Google.Resource.Compute.Disks.Delete+    (+    -- * REST Resource+      DisksDeleteResource++    -- * Creating a Request+    , disksDelete+    , DisksDelete++    -- * Request Lenses+    , ddProject+    , ddDisk+    , ddZone+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.disks.delete@ method which the+-- 'DisksDelete' request conforms to.+type DisksDeleteResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "zones" :>+               Capture "zone" Text :>+                 "disks" :>+                   Capture "disk" Text :>+                     QueryParam "alt" AltJSON :> Delete '[JSON] Operation++-- | Deletes the specified persistent disk. Deleting a disk removes its data+-- permanently and is irreversible. However, deleting a disk does not+-- delete any snapshots previously made from the disk. You must separately+-- delete snapshots.+--+-- /See:/ 'disksDelete' smart constructor.+data DisksDelete = DisksDelete+    { _ddProject :: !Text+    , _ddDisk    :: !Text+    , _ddZone    :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DisksDelete' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ddProject'+--+-- * 'ddDisk'+--+-- * 'ddZone'+disksDelete+    :: Text -- ^ 'ddProject'+    -> Text -- ^ 'ddDisk'+    -> Text -- ^ 'ddZone'+    -> DisksDelete+disksDelete pDdProject_ pDdDisk_ pDdZone_ =+    DisksDelete+    { _ddProject = pDdProject_+    , _ddDisk = pDdDisk_+    , _ddZone = pDdZone_+    }++-- | Project ID for this request.+ddProject :: Lens' DisksDelete Text+ddProject+  = lens _ddProject (\ s a -> s{_ddProject = a})++-- | Name of the persistent disk to delete.+ddDisk :: Lens' DisksDelete Text+ddDisk = lens _ddDisk (\ s a -> s{_ddDisk = a})++-- | The name of the zone for this request.+ddZone :: Lens' DisksDelete Text+ddZone = lens _ddZone (\ s a -> s{_ddZone = a})++instance GoogleRequest DisksDelete where+        type Rs DisksDelete = Operation+        requestClient DisksDelete{..}+          = go _ddProject _ddZone _ddDisk (Just AltJSON)+              computeService+          where go+                  = buildClient (Proxy :: Proxy DisksDeleteResource)+                      mempty
+ gen/Network/Google/Resource/Compute/Disks/Get.hs view
@@ -0,0 +1,107 @@+{-# 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.Compute.Disks.Get+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a specified persistent disk.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.disks.get@.+module Network.Google.Resource.Compute.Disks.Get+    (+    -- * REST Resource+      DisksGetResource++    -- * Creating a Request+    , disksGet+    , DisksGet++    -- * Request Lenses+    , dgProject+    , dgDisk+    , dgZone+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.disks.get@ method which the+-- 'DisksGet' request conforms to.+type DisksGetResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "zones" :>+               Capture "zone" Text :>+                 "disks" :>+                   Capture "disk" Text :>+                     QueryParam "alt" AltJSON :> Get '[JSON] Disk++-- | Returns a specified persistent disk.+--+-- /See:/ 'disksGet' smart constructor.+data DisksGet = DisksGet+    { _dgProject :: !Text+    , _dgDisk    :: !Text+    , _dgZone    :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DisksGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dgProject'+--+-- * 'dgDisk'+--+-- * 'dgZone'+disksGet+    :: Text -- ^ 'dgProject'+    -> Text -- ^ 'dgDisk'+    -> Text -- ^ 'dgZone'+    -> DisksGet+disksGet pDgProject_ pDgDisk_ pDgZone_ =+    DisksGet+    { _dgProject = pDgProject_+    , _dgDisk = pDgDisk_+    , _dgZone = pDgZone_+    }++-- | Project ID for this request.+dgProject :: Lens' DisksGet Text+dgProject+  = lens _dgProject (\ s a -> s{_dgProject = a})++-- | Name of the persistent disk to return.+dgDisk :: Lens' DisksGet Text+dgDisk = lens _dgDisk (\ s a -> s{_dgDisk = a})++-- | The name of the zone for this request.+dgZone :: Lens' DisksGet Text+dgZone = lens _dgZone (\ s a -> s{_dgZone = a})++instance GoogleRequest DisksGet where+        type Rs DisksGet = Disk+        requestClient DisksGet{..}+          = go _dgProject _dgZone _dgDisk (Just AltJSON)+              computeService+          where go+                  = buildClient (Proxy :: Proxy DisksGetResource)+                      mempty
+ gen/Network/Google/Resource/Compute/Disks/Insert.hs view
@@ -0,0 +1,123 @@+{-# 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.Compute.Disks.Insert+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a persistent disk in the specified project using the data+-- included in the request.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.disks.insert@.+module Network.Google.Resource.Compute.Disks.Insert+    (+    -- * REST Resource+      DisksInsertResource++    -- * Creating a Request+    , disksInsert+    , DisksInsert++    -- * Request Lenses+    , diSourceImage+    , diProject+    , diZone+    , diPayload+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.disks.insert@ method which the+-- 'DisksInsert' request conforms to.+type DisksInsertResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "zones" :>+               Capture "zone" Text :>+                 "disks" :>+                   QueryParam "sourceImage" Text :>+                     QueryParam "alt" AltJSON :>+                       ReqBody '[JSON] Disk :> Post '[JSON] Operation++-- | Creates a persistent disk in the specified project using the data+-- included in the request.+--+-- /See:/ 'disksInsert' smart constructor.+data DisksInsert = DisksInsert+    { _diSourceImage :: !(Maybe Text)+    , _diProject     :: !Text+    , _diZone        :: !Text+    , _diPayload     :: !Disk+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DisksInsert' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'diSourceImage'+--+-- * 'diProject'+--+-- * 'diZone'+--+-- * 'diPayload'+disksInsert+    :: Text -- ^ 'diProject'+    -> Text -- ^ 'diZone'+    -> Disk -- ^ 'diPayload'+    -> DisksInsert+disksInsert pDiProject_ pDiZone_ pDiPayload_ =+    DisksInsert+    { _diSourceImage = Nothing+    , _diProject = pDiProject_+    , _diZone = pDiZone_+    , _diPayload = pDiPayload_+    }++-- | Optional. Source image to restore onto a disk.+diSourceImage :: Lens' DisksInsert (Maybe Text)+diSourceImage+  = lens _diSourceImage+      (\ s a -> s{_diSourceImage = a})++-- | Project ID for this request.+diProject :: Lens' DisksInsert Text+diProject+  = lens _diProject (\ s a -> s{_diProject = a})++-- | The name of the zone for this request.+diZone :: Lens' DisksInsert Text+diZone = lens _diZone (\ s a -> s{_diZone = a})++-- | Multipart request metadata.+diPayload :: Lens' DisksInsert Disk+diPayload+  = lens _diPayload (\ s a -> s{_diPayload = a})++instance GoogleRequest DisksInsert where+        type Rs DisksInsert = Operation+        requestClient DisksInsert{..}+          = go _diProject _diZone _diSourceImage (Just AltJSON)+              _diPayload+              computeService+          where go+                  = buildClient (Proxy :: Proxy DisksInsertResource)+                      mempty
+ gen/Network/Google/Resource/Compute/Disks/List.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.Compute.Disks.List+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves the list of persistent disks contained within the specified+-- zone.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.disks.list@.+module Network.Google.Resource.Compute.Disks.List+    (+    -- * REST Resource+      DisksListResource++    -- * Creating a Request+    , disksList+    , DisksList++    -- * Request Lenses+    , dlProject+    , dlZone+    , dlFilter+    , dlPageToken+    , dlMaxResults+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.disks.list@ method which the+-- 'DisksList' request conforms to.+type DisksListResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "zones" :>+               Capture "zone" Text :>+                 "disks" :>+                   QueryParam "filter" Text :>+                     QueryParam "pageToken" Text :>+                       QueryParam "maxResults" (Textual Word32) :>+                         QueryParam "alt" AltJSON :> Get '[JSON] DiskList++-- | Retrieves the list of persistent disks contained within the specified+-- zone.+--+-- /See:/ 'disksList' smart constructor.+data DisksList = DisksList+    { _dlProject    :: !Text+    , _dlZone       :: !Text+    , _dlFilter     :: !(Maybe Text)+    , _dlPageToken  :: !(Maybe Text)+    , _dlMaxResults :: !(Textual Word32)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DisksList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dlProject'+--+-- * 'dlZone'+--+-- * 'dlFilter'+--+-- * 'dlPageToken'+--+-- * 'dlMaxResults'+disksList+    :: Text -- ^ 'dlProject'+    -> Text -- ^ 'dlZone'+    -> DisksList+disksList pDlProject_ pDlZone_ =+    DisksList+    { _dlProject = pDlProject_+    , _dlZone = pDlZone_+    , _dlFilter = Nothing+    , _dlPageToken = Nothing+    , _dlMaxResults = 500+    }++-- | Project ID for this request.+dlProject :: Lens' DisksList Text+dlProject+  = lens _dlProject (\ s a -> s{_dlProject = a})++-- | The name of the zone for this request.+dlZone :: Lens' DisksList Text+dlZone = lens _dlZone (\ s a -> s{_dlZone = a})++-- | Sets a filter expression for filtering listed resources, in the form+-- filter={expression}. Your {expression} must be in the format: FIELD_NAME+-- COMPARISON_STRING LITERAL_STRING. The FIELD_NAME is the name of the+-- field you want to compare. Only atomic field types are supported+-- (string, number, boolean). The COMPARISON_STRING must be either eq+-- (equals) or ne (not equals). The LITERAL_STRING is the string value to+-- filter to. The literal value must be valid for the type of field+-- (string, number, boolean). For string fields, the literal value is+-- interpreted as a regular expression using RE2 syntax. The literal value+-- must match the entire field. For example, filter=name ne+-- example-instance.+dlFilter :: Lens' DisksList (Maybe Text)+dlFilter = lens _dlFilter (\ s a -> s{_dlFilter = a})++-- | Specifies a page token to use. Use this parameter if you want to list+-- the next page of results. Set pageToken to the nextPageToken returned by+-- a previous list request.+dlPageToken :: Lens' DisksList (Maybe Text)+dlPageToken+  = lens _dlPageToken (\ s a -> s{_dlPageToken = a})++-- | Maximum count of results to be returned.+dlMaxResults :: Lens' DisksList Word32+dlMaxResults+  = lens _dlMaxResults (\ s a -> s{_dlMaxResults = a})+      . _Coerce++instance GoogleRequest DisksList where+        type Rs DisksList = DiskList+        requestClient DisksList{..}+          = go _dlProject _dlZone _dlFilter _dlPageToken+              (Just _dlMaxResults)+              (Just AltJSON)+              computeService+          where go+                  = buildClient (Proxy :: Proxy DisksListResource)+                      mempty
+ gen/Network/Google/Resource/Compute/Firewalls/Delete.hs view
@@ -0,0 +1,98 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Compute.Firewalls.Delete+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes the specified firewall resource.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.firewalls.delete@.+module Network.Google.Resource.Compute.Firewalls.Delete+    (+    -- * REST Resource+      FirewallsDeleteResource++    -- * Creating a Request+    , firewallsDelete+    , FirewallsDelete++    -- * Request Lenses+    , fdProject+    , fdFirewall+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.firewalls.delete@ method which the+-- 'FirewallsDelete' request conforms to.+type FirewallsDeleteResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "global" :>+               "firewalls" :>+                 Capture "firewall" Text :>+                   QueryParam "alt" AltJSON :> Delete '[JSON] Operation++-- | Deletes the specified firewall resource.+--+-- /See:/ 'firewallsDelete' smart constructor.+data FirewallsDelete = FirewallsDelete+    { _fdProject  :: !Text+    , _fdFirewall :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'FirewallsDelete' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'fdProject'+--+-- * 'fdFirewall'+firewallsDelete+    :: Text -- ^ 'fdProject'+    -> Text -- ^ 'fdFirewall'+    -> FirewallsDelete+firewallsDelete pFdProject_ pFdFirewall_ =+    FirewallsDelete+    { _fdProject = pFdProject_+    , _fdFirewall = pFdFirewall_+    }++-- | Project ID for this request.+fdProject :: Lens' FirewallsDelete Text+fdProject+  = lens _fdProject (\ s a -> s{_fdProject = a})++-- | Name of the firewall resource to delete.+fdFirewall :: Lens' FirewallsDelete Text+fdFirewall+  = lens _fdFirewall (\ s a -> s{_fdFirewall = a})++instance GoogleRequest FirewallsDelete where+        type Rs FirewallsDelete = Operation+        requestClient FirewallsDelete{..}+          = go _fdProject _fdFirewall (Just AltJSON)+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy FirewallsDeleteResource)+                      mempty
+ gen/Network/Google/Resource/Compute/Firewalls/Get.hs view
@@ -0,0 +1,97 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Compute.Firewalls.Get+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns the specified firewall resource.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.firewalls.get@.+module Network.Google.Resource.Compute.Firewalls.Get+    (+    -- * REST Resource+      FirewallsGetResource++    -- * Creating a Request+    , firewallsGet+    , FirewallsGet++    -- * Request Lenses+    , fgProject+    , fgFirewall+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.firewalls.get@ method which the+-- 'FirewallsGet' request conforms to.+type FirewallsGetResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "global" :>+               "firewalls" :>+                 Capture "firewall" Text :>+                   QueryParam "alt" AltJSON :> Get '[JSON] Firewall++-- | Returns the specified firewall resource.+--+-- /See:/ 'firewallsGet' smart constructor.+data FirewallsGet = FirewallsGet+    { _fgProject  :: !Text+    , _fgFirewall :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'FirewallsGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'fgProject'+--+-- * 'fgFirewall'+firewallsGet+    :: Text -- ^ 'fgProject'+    -> Text -- ^ 'fgFirewall'+    -> FirewallsGet+firewallsGet pFgProject_ pFgFirewall_ =+    FirewallsGet+    { _fgProject = pFgProject_+    , _fgFirewall = pFgFirewall_+    }++-- | Project ID for this request.+fgProject :: Lens' FirewallsGet Text+fgProject+  = lens _fgProject (\ s a -> s{_fgProject = a})++-- | Name of the firewall resource to return.+fgFirewall :: Lens' FirewallsGet Text+fgFirewall+  = lens _fgFirewall (\ s a -> s{_fgFirewall = a})++instance GoogleRequest FirewallsGet where+        type Rs FirewallsGet = Firewall+        requestClient FirewallsGet{..}+          = go _fgProject _fgFirewall (Just AltJSON)+              computeService+          where go+                  = buildClient (Proxy :: Proxy FirewallsGetResource)+                      mempty
+ gen/Network/Google/Resource/Compute/Firewalls/Insert.hs view
@@ -0,0 +1,100 @@+{-# 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.Compute.Firewalls.Insert+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a firewall resource in the specified project using the data+-- included in the request.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.firewalls.insert@.+module Network.Google.Resource.Compute.Firewalls.Insert+    (+    -- * REST Resource+      FirewallsInsertResource++    -- * Creating a Request+    , firewallsInsert+    , FirewallsInsert++    -- * Request Lenses+    , fiProject+    , fiPayload+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.firewalls.insert@ method which the+-- 'FirewallsInsert' request conforms to.+type FirewallsInsertResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "global" :>+               "firewalls" :>+                 QueryParam "alt" AltJSON :>+                   ReqBody '[JSON] Firewall :> Post '[JSON] Operation++-- | Creates a firewall resource in the specified project using the data+-- included in the request.+--+-- /See:/ 'firewallsInsert' smart constructor.+data FirewallsInsert = FirewallsInsert+    { _fiProject :: !Text+    , _fiPayload :: !Firewall+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'FirewallsInsert' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'fiProject'+--+-- * 'fiPayload'+firewallsInsert+    :: Text -- ^ 'fiProject'+    -> Firewall -- ^ 'fiPayload'+    -> FirewallsInsert+firewallsInsert pFiProject_ pFiPayload_ =+    FirewallsInsert+    { _fiProject = pFiProject_+    , _fiPayload = pFiPayload_+    }++-- | Project ID for this request.+fiProject :: Lens' FirewallsInsert Text+fiProject+  = lens _fiProject (\ s a -> s{_fiProject = a})++-- | Multipart request metadata.+fiPayload :: Lens' FirewallsInsert Firewall+fiPayload+  = lens _fiPayload (\ s a -> s{_fiPayload = a})++instance GoogleRequest FirewallsInsert where+        type Rs FirewallsInsert = Operation+        requestClient FirewallsInsert{..}+          = go _fiProject (Just AltJSON) _fiPayload+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy FirewallsInsertResource)+                      mempty
+ gen/Network/Google/Resource/Compute/Firewalls/List.hs view
@@ -0,0 +1,134 @@+{-# 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.Compute.Firewalls.List+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves the list of firewall resources available to the specified+-- project.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.firewalls.list@.+module Network.Google.Resource.Compute.Firewalls.List+    (+    -- * REST Resource+      FirewallsListResource++    -- * Creating a Request+    , firewallsList+    , FirewallsList++    -- * Request Lenses+    , flProject+    , flFilter+    , flPageToken+    , flMaxResults+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.firewalls.list@ method which the+-- 'FirewallsList' request conforms to.+type FirewallsListResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "global" :>+               "firewalls" :>+                 QueryParam "filter" Text :>+                   QueryParam "pageToken" Text :>+                     QueryParam "maxResults" (Textual Word32) :>+                       QueryParam "alt" AltJSON :> Get '[JSON] FirewallList++-- | Retrieves the list of firewall resources available to the specified+-- project.+--+-- /See:/ 'firewallsList' smart constructor.+data FirewallsList = FirewallsList+    { _flProject    :: !Text+    , _flFilter     :: !(Maybe Text)+    , _flPageToken  :: !(Maybe Text)+    , _flMaxResults :: !(Textual Word32)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'FirewallsList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'flProject'+--+-- * 'flFilter'+--+-- * 'flPageToken'+--+-- * 'flMaxResults'+firewallsList+    :: Text -- ^ 'flProject'+    -> FirewallsList+firewallsList pFlProject_ =+    FirewallsList+    { _flProject = pFlProject_+    , _flFilter = Nothing+    , _flPageToken = Nothing+    , _flMaxResults = 500+    }++-- | Project ID for this request.+flProject :: Lens' FirewallsList Text+flProject+  = lens _flProject (\ s a -> s{_flProject = a})++-- | Sets a filter expression for filtering listed resources, in the form+-- filter={expression}. Your {expression} must be in the format: FIELD_NAME+-- COMPARISON_STRING LITERAL_STRING. The FIELD_NAME is the name of the+-- field you want to compare. Only atomic field types are supported+-- (string, number, boolean). The COMPARISON_STRING must be either eq+-- (equals) or ne (not equals). The LITERAL_STRING is the string value to+-- filter to. The literal value must be valid for the type of field+-- (string, number, boolean). For string fields, the literal value is+-- interpreted as a regular expression using RE2 syntax. The literal value+-- must match the entire field. For example, filter=name ne+-- example-instance.+flFilter :: Lens' FirewallsList (Maybe Text)+flFilter = lens _flFilter (\ s a -> s{_flFilter = a})++-- | Specifies a page token to use. Use this parameter if you want to list+-- the next page of results. Set pageToken to the nextPageToken returned by+-- a previous list request.+flPageToken :: Lens' FirewallsList (Maybe Text)+flPageToken+  = lens _flPageToken (\ s a -> s{_flPageToken = a})++-- | Maximum count of results to be returned.+flMaxResults :: Lens' FirewallsList Word32+flMaxResults+  = lens _flMaxResults (\ s a -> s{_flMaxResults = a})+      . _Coerce++instance GoogleRequest FirewallsList where+        type Rs FirewallsList = FirewallList+        requestClient FirewallsList{..}+          = go _flProject _flFilter _flPageToken+              (Just _flMaxResults)+              (Just AltJSON)+              computeService+          where go+                  = buildClient (Proxy :: Proxy FirewallsListResource)+                      mempty
+ gen/Network/Google/Resource/Compute/Firewalls/Patch.hs view
@@ -0,0 +1,111 @@+{-# 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.Compute.Firewalls.Patch+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates the specified firewall resource with the data included in the+-- request. This method supports patch semantics.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.firewalls.patch@.+module Network.Google.Resource.Compute.Firewalls.Patch+    (+    -- * REST Resource+      FirewallsPatchResource++    -- * Creating a Request+    , firewallsPatch+    , FirewallsPatch++    -- * Request Lenses+    , fpProject+    , fpPayload+    , fpFirewall+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.firewalls.patch@ method which the+-- 'FirewallsPatch' request conforms to.+type FirewallsPatchResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "global" :>+               "firewalls" :>+                 Capture "firewall" Text :>+                   QueryParam "alt" AltJSON :>+                     ReqBody '[JSON] Firewall :> Patch '[JSON] Operation++-- | Updates the specified firewall resource with the data included in the+-- request. This method supports patch semantics.+--+-- /See:/ 'firewallsPatch' smart constructor.+data FirewallsPatch = FirewallsPatch+    { _fpProject  :: !Text+    , _fpPayload  :: !Firewall+    , _fpFirewall :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'FirewallsPatch' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'fpProject'+--+-- * 'fpPayload'+--+-- * 'fpFirewall'+firewallsPatch+    :: Text -- ^ 'fpProject'+    -> Firewall -- ^ 'fpPayload'+    -> Text -- ^ 'fpFirewall'+    -> FirewallsPatch+firewallsPatch pFpProject_ pFpPayload_ pFpFirewall_ =+    FirewallsPatch+    { _fpProject = pFpProject_+    , _fpPayload = pFpPayload_+    , _fpFirewall = pFpFirewall_+    }++-- | Project ID for this request.+fpProject :: Lens' FirewallsPatch Text+fpProject+  = lens _fpProject (\ s a -> s{_fpProject = a})++-- | Multipart request metadata.+fpPayload :: Lens' FirewallsPatch Firewall+fpPayload+  = lens _fpPayload (\ s a -> s{_fpPayload = a})++-- | Name of the firewall resource to update.+fpFirewall :: Lens' FirewallsPatch Text+fpFirewall+  = lens _fpFirewall (\ s a -> s{_fpFirewall = a})++instance GoogleRequest FirewallsPatch where+        type Rs FirewallsPatch = Operation+        requestClient FirewallsPatch{..}+          = go _fpProject _fpFirewall (Just AltJSON) _fpPayload+              computeService+          where go+                  = buildClient (Proxy :: Proxy FirewallsPatchResource)+                      mempty
+ gen/Network/Google/Resource/Compute/Firewalls/Update.hs view
@@ -0,0 +1,112 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Compute.Firewalls.Update+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates the specified firewall resource with the data included in the+-- request.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.firewalls.update@.+module Network.Google.Resource.Compute.Firewalls.Update+    (+    -- * REST Resource+      FirewallsUpdateResource++    -- * Creating a Request+    , firewallsUpdate+    , FirewallsUpdate++    -- * Request Lenses+    , fuProject+    , fuPayload+    , fuFirewall+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.firewalls.update@ method which the+-- 'FirewallsUpdate' request conforms to.+type FirewallsUpdateResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "global" :>+               "firewalls" :>+                 Capture "firewall" Text :>+                   QueryParam "alt" AltJSON :>+                     ReqBody '[JSON] Firewall :> Put '[JSON] Operation++-- | Updates the specified firewall resource with the data included in the+-- request.+--+-- /See:/ 'firewallsUpdate' smart constructor.+data FirewallsUpdate = FirewallsUpdate+    { _fuProject  :: !Text+    , _fuPayload  :: !Firewall+    , _fuFirewall :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'FirewallsUpdate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'fuProject'+--+-- * 'fuPayload'+--+-- * 'fuFirewall'+firewallsUpdate+    :: Text -- ^ 'fuProject'+    -> Firewall -- ^ 'fuPayload'+    -> Text -- ^ 'fuFirewall'+    -> FirewallsUpdate+firewallsUpdate pFuProject_ pFuPayload_ pFuFirewall_ =+    FirewallsUpdate+    { _fuProject = pFuProject_+    , _fuPayload = pFuPayload_+    , _fuFirewall = pFuFirewall_+    }++-- | Project ID for this request.+fuProject :: Lens' FirewallsUpdate Text+fuProject+  = lens _fuProject (\ s a -> s{_fuProject = a})++-- | Multipart request metadata.+fuPayload :: Lens' FirewallsUpdate Firewall+fuPayload+  = lens _fuPayload (\ s a -> s{_fuPayload = a})++-- | Name of the firewall resource to update.+fuFirewall :: Lens' FirewallsUpdate Text+fuFirewall+  = lens _fuFirewall (\ s a -> s{_fuFirewall = a})++instance GoogleRequest FirewallsUpdate where+        type Rs FirewallsUpdate = Operation+        requestClient FirewallsUpdate{..}+          = go _fuProject _fuFirewall (Just AltJSON) _fuPayload+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy FirewallsUpdateResource)+                      mempty
+ gen/Network/Google/Resource/Compute/ForwardingRules/AggregatedList.hs view
@@ -0,0 +1,140 @@+{-# 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.Compute.ForwardingRules.AggregatedList+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves the list of forwarding rules grouped by scope.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.forwardingRules.aggregatedList@.+module Network.Google.Resource.Compute.ForwardingRules.AggregatedList+    (+    -- * REST Resource+      ForwardingRulesAggregatedListResource++    -- * Creating a Request+    , forwardingRulesAggregatedList+    , ForwardingRulesAggregatedList++    -- * Request Lenses+    , fralProject+    , fralFilter+    , fralPageToken+    , fralMaxResults+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.forwardingRules.aggregatedList@ method which the+-- 'ForwardingRulesAggregatedList' request conforms to.+type ForwardingRulesAggregatedListResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "aggregated" :>+               "forwardingRules" :>+                 QueryParam "filter" Text :>+                   QueryParam "pageToken" Text :>+                     QueryParam "maxResults" (Textual Word32) :>+                       QueryParam "alt" AltJSON :>+                         Get '[JSON] ForwardingRuleAggregatedList++-- | Retrieves the list of forwarding rules grouped by scope.+--+-- /See:/ 'forwardingRulesAggregatedList' smart constructor.+data ForwardingRulesAggregatedList = ForwardingRulesAggregatedList+    { _fralProject    :: !Text+    , _fralFilter     :: !(Maybe Text)+    , _fralPageToken  :: !(Maybe Text)+    , _fralMaxResults :: !(Textual Word32)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ForwardingRulesAggregatedList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'fralProject'+--+-- * 'fralFilter'+--+-- * 'fralPageToken'+--+-- * 'fralMaxResults'+forwardingRulesAggregatedList+    :: Text -- ^ 'fralProject'+    -> ForwardingRulesAggregatedList+forwardingRulesAggregatedList pFralProject_ =+    ForwardingRulesAggregatedList+    { _fralProject = pFralProject_+    , _fralFilter = Nothing+    , _fralPageToken = Nothing+    , _fralMaxResults = 500+    }++-- | Name of the project scoping this request.+fralProject :: Lens' ForwardingRulesAggregatedList Text+fralProject+  = lens _fralProject (\ s a -> s{_fralProject = a})++-- | Sets a filter expression for filtering listed resources, in the form+-- filter={expression}. Your {expression} must be in the format: FIELD_NAME+-- COMPARISON_STRING LITERAL_STRING. The FIELD_NAME is the name of the+-- field you want to compare. Only atomic field types are supported+-- (string, number, boolean). The COMPARISON_STRING must be either eq+-- (equals) or ne (not equals). The LITERAL_STRING is the string value to+-- filter to. The literal value must be valid for the type of field+-- (string, number, boolean). For string fields, the literal value is+-- interpreted as a regular expression using RE2 syntax. The literal value+-- must match the entire field. For example, filter=name ne+-- example-instance.+fralFilter :: Lens' ForwardingRulesAggregatedList (Maybe Text)+fralFilter+  = lens _fralFilter (\ s a -> s{_fralFilter = a})++-- | Specifies a page token to use. Use this parameter if you want to list+-- the next page of results. Set pageToken to the nextPageToken returned by+-- a previous list request.+fralPageToken :: Lens' ForwardingRulesAggregatedList (Maybe Text)+fralPageToken+  = lens _fralPageToken+      (\ s a -> s{_fralPageToken = a})++-- | Maximum count of results to be returned.+fralMaxResults :: Lens' ForwardingRulesAggregatedList Word32+fralMaxResults+  = lens _fralMaxResults+      (\ s a -> s{_fralMaxResults = a})+      . _Coerce++instance GoogleRequest ForwardingRulesAggregatedList+         where+        type Rs ForwardingRulesAggregatedList =+             ForwardingRuleAggregatedList+        requestClient ForwardingRulesAggregatedList{..}+          = go _fralProject _fralFilter _fralPageToken+              (Just _fralMaxResults)+              (Just AltJSON)+              computeService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy ForwardingRulesAggregatedListResource)+                      mempty
+ gen/Network/Google/Resource/Compute/ForwardingRules/Delete.hs view
@@ -0,0 +1,112 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Compute.ForwardingRules.Delete+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes the specified ForwardingRule resource.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.forwardingRules.delete@.+module Network.Google.Resource.Compute.ForwardingRules.Delete+    (+    -- * REST Resource+      ForwardingRulesDeleteResource++    -- * Creating a Request+    , forwardingRulesDelete+    , ForwardingRulesDelete++    -- * Request Lenses+    , frdProject+    , frdForwardingRule+    , frdRegion+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.forwardingRules.delete@ method which the+-- 'ForwardingRulesDelete' request conforms to.+type ForwardingRulesDeleteResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "regions" :>+               Capture "region" Text :>+                 "forwardingRules" :>+                   Capture "forwardingRule" Text :>+                     QueryParam "alt" AltJSON :> Delete '[JSON] Operation++-- | Deletes the specified ForwardingRule resource.+--+-- /See:/ 'forwardingRulesDelete' smart constructor.+data ForwardingRulesDelete = ForwardingRulesDelete+    { _frdProject        :: !Text+    , _frdForwardingRule :: !Text+    , _frdRegion         :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ForwardingRulesDelete' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'frdProject'+--+-- * 'frdForwardingRule'+--+-- * 'frdRegion'+forwardingRulesDelete+    :: Text -- ^ 'frdProject'+    -> Text -- ^ 'frdForwardingRule'+    -> Text -- ^ 'frdRegion'+    -> ForwardingRulesDelete+forwardingRulesDelete pFrdProject_ pFrdForwardingRule_ pFrdRegion_ =+    ForwardingRulesDelete+    { _frdProject = pFrdProject_+    , _frdForwardingRule = pFrdForwardingRule_+    , _frdRegion = pFrdRegion_+    }++-- | Name of the project scoping this request.+frdProject :: Lens' ForwardingRulesDelete Text+frdProject+  = lens _frdProject (\ s a -> s{_frdProject = a})++-- | Name of the ForwardingRule resource to delete.+frdForwardingRule :: Lens' ForwardingRulesDelete Text+frdForwardingRule+  = lens _frdForwardingRule+      (\ s a -> s{_frdForwardingRule = a})++-- | Name of the region scoping this request.+frdRegion :: Lens' ForwardingRulesDelete Text+frdRegion+  = lens _frdRegion (\ s a -> s{_frdRegion = a})++instance GoogleRequest ForwardingRulesDelete where+        type Rs ForwardingRulesDelete = Operation+        requestClient ForwardingRulesDelete{..}+          = go _frdProject _frdRegion _frdForwardingRule+              (Just AltJSON)+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy ForwardingRulesDeleteResource)+                      mempty
+ gen/Network/Google/Resource/Compute/ForwardingRules/Get.hs view
@@ -0,0 +1,113 @@+{-# 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.Compute.ForwardingRules.Get+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns the specified ForwardingRule resource.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.forwardingRules.get@.+module Network.Google.Resource.Compute.ForwardingRules.Get+    (+    -- * REST Resource+      ForwardingRulesGetResource++    -- * Creating a Request+    , forwardingRulesGet+    , ForwardingRulesGet++    -- * Request Lenses+    , frgProject+    , frgForwardingRule+    , frgRegion+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.forwardingRules.get@ method which the+-- 'ForwardingRulesGet' request conforms to.+type ForwardingRulesGetResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "regions" :>+               Capture "region" Text :>+                 "forwardingRules" :>+                   Capture "forwardingRule" Text :>+                     QueryParam "alt" AltJSON :>+                       Get '[JSON] ForwardingRule++-- | Returns the specified ForwardingRule resource.+--+-- /See:/ 'forwardingRulesGet' smart constructor.+data ForwardingRulesGet = ForwardingRulesGet+    { _frgProject        :: !Text+    , _frgForwardingRule :: !Text+    , _frgRegion         :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ForwardingRulesGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'frgProject'+--+-- * 'frgForwardingRule'+--+-- * 'frgRegion'+forwardingRulesGet+    :: Text -- ^ 'frgProject'+    -> Text -- ^ 'frgForwardingRule'+    -> Text -- ^ 'frgRegion'+    -> ForwardingRulesGet+forwardingRulesGet pFrgProject_ pFrgForwardingRule_ pFrgRegion_ =+    ForwardingRulesGet+    { _frgProject = pFrgProject_+    , _frgForwardingRule = pFrgForwardingRule_+    , _frgRegion = pFrgRegion_+    }++-- | Name of the project scoping this request.+frgProject :: Lens' ForwardingRulesGet Text+frgProject+  = lens _frgProject (\ s a -> s{_frgProject = a})++-- | Name of the ForwardingRule resource to return.+frgForwardingRule :: Lens' ForwardingRulesGet Text+frgForwardingRule+  = lens _frgForwardingRule+      (\ s a -> s{_frgForwardingRule = a})++-- | Name of the region scoping this request.+frgRegion :: Lens' ForwardingRulesGet Text+frgRegion+  = lens _frgRegion (\ s a -> s{_frgRegion = a})++instance GoogleRequest ForwardingRulesGet where+        type Rs ForwardingRulesGet = ForwardingRule+        requestClient ForwardingRulesGet{..}+          = go _frgProject _frgRegion _frgForwardingRule+              (Just AltJSON)+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy ForwardingRulesGetResource)+                      mempty
+ gen/Network/Google/Resource/Compute/ForwardingRules/Insert.hs view
@@ -0,0 +1,114 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Compute.ForwardingRules.Insert+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a ForwardingRule resource in the specified project and region+-- using the data included in the request.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.forwardingRules.insert@.+module Network.Google.Resource.Compute.ForwardingRules.Insert+    (+    -- * REST Resource+      ForwardingRulesInsertResource++    -- * Creating a Request+    , forwardingRulesInsert+    , ForwardingRulesInsert++    -- * Request Lenses+    , friProject+    , friPayload+    , friRegion+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.forwardingRules.insert@ method which the+-- 'ForwardingRulesInsert' request conforms to.+type ForwardingRulesInsertResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "regions" :>+               Capture "region" Text :>+                 "forwardingRules" :>+                   QueryParam "alt" AltJSON :>+                     ReqBody '[JSON] ForwardingRule :>+                       Post '[JSON] Operation++-- | Creates a ForwardingRule resource in the specified project and region+-- using the data included in the request.+--+-- /See:/ 'forwardingRulesInsert' smart constructor.+data ForwardingRulesInsert = ForwardingRulesInsert+    { _friProject :: !Text+    , _friPayload :: !ForwardingRule+    , _friRegion  :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ForwardingRulesInsert' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'friProject'+--+-- * 'friPayload'+--+-- * 'friRegion'+forwardingRulesInsert+    :: Text -- ^ 'friProject'+    -> ForwardingRule -- ^ 'friPayload'+    -> Text -- ^ 'friRegion'+    -> ForwardingRulesInsert+forwardingRulesInsert pFriProject_ pFriPayload_ pFriRegion_ =+    ForwardingRulesInsert+    { _friProject = pFriProject_+    , _friPayload = pFriPayload_+    , _friRegion = pFriRegion_+    }++-- | Name of the project scoping this request.+friProject :: Lens' ForwardingRulesInsert Text+friProject+  = lens _friProject (\ s a -> s{_friProject = a})++-- | Multipart request metadata.+friPayload :: Lens' ForwardingRulesInsert ForwardingRule+friPayload+  = lens _friPayload (\ s a -> s{_friPayload = a})++-- | Name of the region scoping this request.+friRegion :: Lens' ForwardingRulesInsert Text+friRegion+  = lens _friRegion (\ s a -> s{_friRegion = a})++instance GoogleRequest ForwardingRulesInsert where+        type Rs ForwardingRulesInsert = Operation+        requestClient ForwardingRulesInsert{..}+          = go _friProject _friRegion (Just AltJSON)+              _friPayload+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy ForwardingRulesInsertResource)+                      mempty
+ gen/Network/Google/Resource/Compute/ForwardingRules/List.hs view
@@ -0,0 +1,150 @@+{-# 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.Compute.ForwardingRules.List+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves the list of ForwardingRule resources available to the+-- specified project and region.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.forwardingRules.list@.+module Network.Google.Resource.Compute.ForwardingRules.List+    (+    -- * REST Resource+      ForwardingRulesListResource++    -- * Creating a Request+    , forwardingRulesList+    , ForwardingRulesList++    -- * Request Lenses+    , frlProject+    , frlFilter+    , frlRegion+    , frlPageToken+    , frlMaxResults+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.forwardingRules.list@ method which the+-- 'ForwardingRulesList' request conforms to.+type ForwardingRulesListResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "regions" :>+               Capture "region" Text :>+                 "forwardingRules" :>+                   QueryParam "filter" Text :>+                     QueryParam "pageToken" Text :>+                       QueryParam "maxResults" (Textual Word32) :>+                         QueryParam "alt" AltJSON :>+                           Get '[JSON] ForwardingRuleList++-- | Retrieves the list of ForwardingRule resources available to the+-- specified project and region.+--+-- /See:/ 'forwardingRulesList' smart constructor.+data ForwardingRulesList = ForwardingRulesList+    { _frlProject    :: !Text+    , _frlFilter     :: !(Maybe Text)+    , _frlRegion     :: !Text+    , _frlPageToken  :: !(Maybe Text)+    , _frlMaxResults :: !(Textual Word32)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ForwardingRulesList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'frlProject'+--+-- * 'frlFilter'+--+-- * 'frlRegion'+--+-- * 'frlPageToken'+--+-- * 'frlMaxResults'+forwardingRulesList+    :: Text -- ^ 'frlProject'+    -> Text -- ^ 'frlRegion'+    -> ForwardingRulesList+forwardingRulesList pFrlProject_ pFrlRegion_ =+    ForwardingRulesList+    { _frlProject = pFrlProject_+    , _frlFilter = Nothing+    , _frlRegion = pFrlRegion_+    , _frlPageToken = Nothing+    , _frlMaxResults = 500+    }++-- | Name of the project scoping this request.+frlProject :: Lens' ForwardingRulesList Text+frlProject+  = lens _frlProject (\ s a -> s{_frlProject = a})++-- | Sets a filter expression for filtering listed resources, in the form+-- filter={expression}. Your {expression} must be in the format: FIELD_NAME+-- COMPARISON_STRING LITERAL_STRING. The FIELD_NAME is the name of the+-- field you want to compare. Only atomic field types are supported+-- (string, number, boolean). The COMPARISON_STRING must be either eq+-- (equals) or ne (not equals). The LITERAL_STRING is the string value to+-- filter to. The literal value must be valid for the type of field+-- (string, number, boolean). For string fields, the literal value is+-- interpreted as a regular expression using RE2 syntax. The literal value+-- must match the entire field. For example, filter=name ne+-- example-instance.+frlFilter :: Lens' ForwardingRulesList (Maybe Text)+frlFilter+  = lens _frlFilter (\ s a -> s{_frlFilter = a})++-- | Name of the region scoping this request.+frlRegion :: Lens' ForwardingRulesList Text+frlRegion+  = lens _frlRegion (\ s a -> s{_frlRegion = a})++-- | Specifies a page token to use. Use this parameter if you want to list+-- the next page of results. Set pageToken to the nextPageToken returned by+-- a previous list request.+frlPageToken :: Lens' ForwardingRulesList (Maybe Text)+frlPageToken+  = lens _frlPageToken (\ s a -> s{_frlPageToken = a})++-- | Maximum count of results to be returned.+frlMaxResults :: Lens' ForwardingRulesList Word32+frlMaxResults+  = lens _frlMaxResults+      (\ s a -> s{_frlMaxResults = a})+      . _Coerce++instance GoogleRequest ForwardingRulesList where+        type Rs ForwardingRulesList = ForwardingRuleList+        requestClient ForwardingRulesList{..}+          = go _frlProject _frlRegion _frlFilter _frlPageToken+              (Just _frlMaxResults)+              (Just AltJSON)+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy ForwardingRulesListResource)+                      mempty
+ gen/Network/Google/Resource/Compute/ForwardingRules/SetTarget.hs view
@@ -0,0 +1,127 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Compute.ForwardingRules.SetTarget+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Changes target url for forwarding rule.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.forwardingRules.setTarget@.+module Network.Google.Resource.Compute.ForwardingRules.SetTarget+    (+    -- * REST Resource+      ForwardingRulesSetTargetResource++    -- * Creating a Request+    , forwardingRulesSetTarget+    , ForwardingRulesSetTarget++    -- * Request Lenses+    , frstProject+    , frstForwardingRule+    , frstPayload+    , frstRegion+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.forwardingRules.setTarget@ method which the+-- 'ForwardingRulesSetTarget' request conforms to.+type ForwardingRulesSetTargetResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "regions" :>+               Capture "region" Text :>+                 "forwardingRules" :>+                   Capture "forwardingRule" Text :>+                     "setTarget" :>+                       QueryParam "alt" AltJSON :>+                         ReqBody '[JSON] TargetReference :>+                           Post '[JSON] Operation++-- | Changes target url for forwarding rule.+--+-- /See:/ 'forwardingRulesSetTarget' smart constructor.+data ForwardingRulesSetTarget = ForwardingRulesSetTarget+    { _frstProject        :: !Text+    , _frstForwardingRule :: !Text+    , _frstPayload        :: !TargetReference+    , _frstRegion         :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ForwardingRulesSetTarget' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'frstProject'+--+-- * 'frstForwardingRule'+--+-- * 'frstPayload'+--+-- * 'frstRegion'+forwardingRulesSetTarget+    :: Text -- ^ 'frstProject'+    -> Text -- ^ 'frstForwardingRule'+    -> TargetReference -- ^ 'frstPayload'+    -> Text -- ^ 'frstRegion'+    -> ForwardingRulesSetTarget+forwardingRulesSetTarget pFrstProject_ pFrstForwardingRule_ pFrstPayload_ pFrstRegion_ =+    ForwardingRulesSetTarget+    { _frstProject = pFrstProject_+    , _frstForwardingRule = pFrstForwardingRule_+    , _frstPayload = pFrstPayload_+    , _frstRegion = pFrstRegion_+    }++-- | Name of the project scoping this request.+frstProject :: Lens' ForwardingRulesSetTarget Text+frstProject+  = lens _frstProject (\ s a -> s{_frstProject = a})++-- | Name of the ForwardingRule resource in which target is to be set.+frstForwardingRule :: Lens' ForwardingRulesSetTarget Text+frstForwardingRule+  = lens _frstForwardingRule+      (\ s a -> s{_frstForwardingRule = a})++-- | Multipart request metadata.+frstPayload :: Lens' ForwardingRulesSetTarget TargetReference+frstPayload+  = lens _frstPayload (\ s a -> s{_frstPayload = a})++-- | Name of the region scoping this request.+frstRegion :: Lens' ForwardingRulesSetTarget Text+frstRegion+  = lens _frstRegion (\ s a -> s{_frstRegion = a})++instance GoogleRequest ForwardingRulesSetTarget where+        type Rs ForwardingRulesSetTarget = Operation+        requestClient ForwardingRulesSetTarget{..}+          = go _frstProject _frstRegion _frstForwardingRule+              (Just AltJSON)+              _frstPayload+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy ForwardingRulesSetTargetResource)+                      mempty
+ gen/Network/Google/Resource/Compute/GlobalAddresses/Delete.hs view
@@ -0,0 +1,98 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Compute.GlobalAddresses.Delete+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes the specified address resource.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.globalAddresses.delete@.+module Network.Google.Resource.Compute.GlobalAddresses.Delete+    (+    -- * REST Resource+      GlobalAddressesDeleteResource++    -- * Creating a Request+    , globalAddressesDelete+    , GlobalAddressesDelete++    -- * Request Lenses+    , gadProject+    , gadAddress+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.globalAddresses.delete@ method which the+-- 'GlobalAddressesDelete' request conforms to.+type GlobalAddressesDeleteResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "global" :>+               "addresses" :>+                 Capture "address" Text :>+                   QueryParam "alt" AltJSON :> Delete '[JSON] Operation++-- | Deletes the specified address resource.+--+-- /See:/ 'globalAddressesDelete' smart constructor.+data GlobalAddressesDelete = GlobalAddressesDelete+    { _gadProject :: !Text+    , _gadAddress :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'GlobalAddressesDelete' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gadProject'+--+-- * 'gadAddress'+globalAddressesDelete+    :: Text -- ^ 'gadProject'+    -> Text -- ^ 'gadAddress'+    -> GlobalAddressesDelete+globalAddressesDelete pGadProject_ pGadAddress_ =+    GlobalAddressesDelete+    { _gadProject = pGadProject_+    , _gadAddress = pGadAddress_+    }++-- | Project ID for this request.+gadProject :: Lens' GlobalAddressesDelete Text+gadProject+  = lens _gadProject (\ s a -> s{_gadProject = a})++-- | Name of the address resource to delete.+gadAddress :: Lens' GlobalAddressesDelete Text+gadAddress+  = lens _gadAddress (\ s a -> s{_gadAddress = a})++instance GoogleRequest GlobalAddressesDelete where+        type Rs GlobalAddressesDelete = Operation+        requestClient GlobalAddressesDelete{..}+          = go _gadProject _gadAddress (Just AltJSON)+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy GlobalAddressesDeleteResource)+                      mempty
+ gen/Network/Google/Resource/Compute/GlobalAddresses/Get.hs view
@@ -0,0 +1,98 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Compute.GlobalAddresses.Get+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns the specified address resource.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.globalAddresses.get@.+module Network.Google.Resource.Compute.GlobalAddresses.Get+    (+    -- * REST Resource+      GlobalAddressesGetResource++    -- * Creating a Request+    , globalAddressesGet+    , GlobalAddressesGet++    -- * Request Lenses+    , gagProject+    , gagAddress+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.globalAddresses.get@ method which the+-- 'GlobalAddressesGet' request conforms to.+type GlobalAddressesGetResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "global" :>+               "addresses" :>+                 Capture "address" Text :>+                   QueryParam "alt" AltJSON :> Get '[JSON] Address++-- | Returns the specified address resource.+--+-- /See:/ 'globalAddressesGet' smart constructor.+data GlobalAddressesGet = GlobalAddressesGet+    { _gagProject :: !Text+    , _gagAddress :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'GlobalAddressesGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gagProject'+--+-- * 'gagAddress'+globalAddressesGet+    :: Text -- ^ 'gagProject'+    -> Text -- ^ 'gagAddress'+    -> GlobalAddressesGet+globalAddressesGet pGagProject_ pGagAddress_ =+    GlobalAddressesGet+    { _gagProject = pGagProject_+    , _gagAddress = pGagAddress_+    }++-- | Project ID for this request.+gagProject :: Lens' GlobalAddressesGet Text+gagProject+  = lens _gagProject (\ s a -> s{_gagProject = a})++-- | Name of the address resource to return.+gagAddress :: Lens' GlobalAddressesGet Text+gagAddress+  = lens _gagAddress (\ s a -> s{_gagAddress = a})++instance GoogleRequest GlobalAddressesGet where+        type Rs GlobalAddressesGet = Address+        requestClient GlobalAddressesGet{..}+          = go _gagProject _gagAddress (Just AltJSON)+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy GlobalAddressesGetResource)+                      mempty
+ gen/Network/Google/Resource/Compute/GlobalAddresses/Insert.hs view
@@ -0,0 +1,100 @@+{-# 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.Compute.GlobalAddresses.Insert+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates an address resource in the specified project using the data+-- included in the request.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.globalAddresses.insert@.+module Network.Google.Resource.Compute.GlobalAddresses.Insert+    (+    -- * REST Resource+      GlobalAddressesInsertResource++    -- * Creating a Request+    , globalAddressesInsert+    , GlobalAddressesInsert++    -- * Request Lenses+    , gaiProject+    , gaiPayload+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.globalAddresses.insert@ method which the+-- 'GlobalAddressesInsert' request conforms to.+type GlobalAddressesInsertResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "global" :>+               "addresses" :>+                 QueryParam "alt" AltJSON :>+                   ReqBody '[JSON] Address :> Post '[JSON] Operation++-- | Creates an address resource in the specified project using the data+-- included in the request.+--+-- /See:/ 'globalAddressesInsert' smart constructor.+data GlobalAddressesInsert = GlobalAddressesInsert+    { _gaiProject :: !Text+    , _gaiPayload :: !Address+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'GlobalAddressesInsert' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gaiProject'+--+-- * 'gaiPayload'+globalAddressesInsert+    :: Text -- ^ 'gaiProject'+    -> Address -- ^ 'gaiPayload'+    -> GlobalAddressesInsert+globalAddressesInsert pGaiProject_ pGaiPayload_ =+    GlobalAddressesInsert+    { _gaiProject = pGaiProject_+    , _gaiPayload = pGaiPayload_+    }++-- | Project ID for this request.+gaiProject :: Lens' GlobalAddressesInsert Text+gaiProject+  = lens _gaiProject (\ s a -> s{_gaiProject = a})++-- | Multipart request metadata.+gaiPayload :: Lens' GlobalAddressesInsert Address+gaiPayload+  = lens _gaiPayload (\ s a -> s{_gaiPayload = a})++instance GoogleRequest GlobalAddressesInsert where+        type Rs GlobalAddressesInsert = Operation+        requestClient GlobalAddressesInsert{..}+          = go _gaiProject (Just AltJSON) _gaiPayload+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy GlobalAddressesInsertResource)+                      mempty
+ gen/Network/Google/Resource/Compute/GlobalAddresses/List.hs view
@@ -0,0 +1,135 @@+{-# 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.Compute.GlobalAddresses.List+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves the list of global address resources.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.globalAddresses.list@.+module Network.Google.Resource.Compute.GlobalAddresses.List+    (+    -- * REST Resource+      GlobalAddressesListResource++    -- * Creating a Request+    , globalAddressesList+    , GlobalAddressesList++    -- * Request Lenses+    , galProject+    , galFilter+    , galPageToken+    , galMaxResults+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.globalAddresses.list@ method which the+-- 'GlobalAddressesList' request conforms to.+type GlobalAddressesListResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "global" :>+               "addresses" :>+                 QueryParam "filter" Text :>+                   QueryParam "pageToken" Text :>+                     QueryParam "maxResults" (Textual Word32) :>+                       QueryParam "alt" AltJSON :> Get '[JSON] AddressList++-- | Retrieves the list of global address resources.+--+-- /See:/ 'globalAddressesList' smart constructor.+data GlobalAddressesList = GlobalAddressesList+    { _galProject    :: !Text+    , _galFilter     :: !(Maybe Text)+    , _galPageToken  :: !(Maybe Text)+    , _galMaxResults :: !(Textual Word32)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'GlobalAddressesList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'galProject'+--+-- * 'galFilter'+--+-- * 'galPageToken'+--+-- * 'galMaxResults'+globalAddressesList+    :: Text -- ^ 'galProject'+    -> GlobalAddressesList+globalAddressesList pGalProject_ =+    GlobalAddressesList+    { _galProject = pGalProject_+    , _galFilter = Nothing+    , _galPageToken = Nothing+    , _galMaxResults = 500+    }++-- | Project ID for this request.+galProject :: Lens' GlobalAddressesList Text+galProject+  = lens _galProject (\ s a -> s{_galProject = a})++-- | Sets a filter expression for filtering listed resources, in the form+-- filter={expression}. Your {expression} must be in the format: FIELD_NAME+-- COMPARISON_STRING LITERAL_STRING. The FIELD_NAME is the name of the+-- field you want to compare. Only atomic field types are supported+-- (string, number, boolean). The COMPARISON_STRING must be either eq+-- (equals) or ne (not equals). The LITERAL_STRING is the string value to+-- filter to. The literal value must be valid for the type of field+-- (string, number, boolean). For string fields, the literal value is+-- interpreted as a regular expression using RE2 syntax. The literal value+-- must match the entire field. For example, filter=name ne+-- example-instance.+galFilter :: Lens' GlobalAddressesList (Maybe Text)+galFilter+  = lens _galFilter (\ s a -> s{_galFilter = a})++-- | Specifies a page token to use. Use this parameter if you want to list+-- the next page of results. Set pageToken to the nextPageToken returned by+-- a previous list request.+galPageToken :: Lens' GlobalAddressesList (Maybe Text)+galPageToken+  = lens _galPageToken (\ s a -> s{_galPageToken = a})++-- | Maximum count of results to be returned.+galMaxResults :: Lens' GlobalAddressesList Word32+galMaxResults+  = lens _galMaxResults+      (\ s a -> s{_galMaxResults = a})+      . _Coerce++instance GoogleRequest GlobalAddressesList where+        type Rs GlobalAddressesList = AddressList+        requestClient GlobalAddressesList{..}+          = go _galProject _galFilter _galPageToken+              (Just _galMaxResults)+              (Just AltJSON)+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy GlobalAddressesListResource)+                      mempty
+ gen/Network/Google/Resource/Compute/GlobalForwardingRules/Delete.hs view
@@ -0,0 +1,100 @@+{-# 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.Compute.GlobalForwardingRules.Delete+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes the specified ForwardingRule resource.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.globalForwardingRules.delete@.+module Network.Google.Resource.Compute.GlobalForwardingRules.Delete+    (+    -- * REST Resource+      GlobalForwardingRulesDeleteResource++    -- * Creating a Request+    , globalForwardingRulesDelete+    , GlobalForwardingRulesDelete++    -- * Request Lenses+    , gfrdProject+    , gfrdForwardingRule+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.globalForwardingRules.delete@ method which the+-- 'GlobalForwardingRulesDelete' request conforms to.+type GlobalForwardingRulesDeleteResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "global" :>+               "forwardingRules" :>+                 Capture "forwardingRule" Text :>+                   QueryParam "alt" AltJSON :> Delete '[JSON] Operation++-- | Deletes the specified ForwardingRule resource.+--+-- /See:/ 'globalForwardingRulesDelete' smart constructor.+data GlobalForwardingRulesDelete = GlobalForwardingRulesDelete+    { _gfrdProject        :: !Text+    , _gfrdForwardingRule :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'GlobalForwardingRulesDelete' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gfrdProject'+--+-- * 'gfrdForwardingRule'+globalForwardingRulesDelete+    :: Text -- ^ 'gfrdProject'+    -> Text -- ^ 'gfrdForwardingRule'+    -> GlobalForwardingRulesDelete+globalForwardingRulesDelete pGfrdProject_ pGfrdForwardingRule_ =+    GlobalForwardingRulesDelete+    { _gfrdProject = pGfrdProject_+    , _gfrdForwardingRule = pGfrdForwardingRule_+    }++-- | Name of the project scoping this request.+gfrdProject :: Lens' GlobalForwardingRulesDelete Text+gfrdProject+  = lens _gfrdProject (\ s a -> s{_gfrdProject = a})++-- | Name of the ForwardingRule resource to delete.+gfrdForwardingRule :: Lens' GlobalForwardingRulesDelete Text+gfrdForwardingRule+  = lens _gfrdForwardingRule+      (\ s a -> s{_gfrdForwardingRule = a})++instance GoogleRequest GlobalForwardingRulesDelete+         where+        type Rs GlobalForwardingRulesDelete = Operation+        requestClient GlobalForwardingRulesDelete{..}+          = go _gfrdProject _gfrdForwardingRule (Just AltJSON)+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy GlobalForwardingRulesDeleteResource)+                      mempty
+ gen/Network/Google/Resource/Compute/GlobalForwardingRules/Get.hs view
@@ -0,0 +1,100 @@+{-# 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.Compute.GlobalForwardingRules.Get+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns the specified ForwardingRule resource.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.globalForwardingRules.get@.+module Network.Google.Resource.Compute.GlobalForwardingRules.Get+    (+    -- * REST Resource+      GlobalForwardingRulesGetResource++    -- * Creating a Request+    , globalForwardingRulesGet+    , GlobalForwardingRulesGet++    -- * Request Lenses+    , gfrgProject+    , gfrgForwardingRule+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.globalForwardingRules.get@ method which the+-- 'GlobalForwardingRulesGet' request conforms to.+type GlobalForwardingRulesGetResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "global" :>+               "forwardingRules" :>+                 Capture "forwardingRule" Text :>+                   QueryParam "alt" AltJSON :>+                     Get '[JSON] ForwardingRule++-- | Returns the specified ForwardingRule resource.+--+-- /See:/ 'globalForwardingRulesGet' smart constructor.+data GlobalForwardingRulesGet = GlobalForwardingRulesGet+    { _gfrgProject        :: !Text+    , _gfrgForwardingRule :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'GlobalForwardingRulesGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gfrgProject'+--+-- * 'gfrgForwardingRule'+globalForwardingRulesGet+    :: Text -- ^ 'gfrgProject'+    -> Text -- ^ 'gfrgForwardingRule'+    -> GlobalForwardingRulesGet+globalForwardingRulesGet pGfrgProject_ pGfrgForwardingRule_ =+    GlobalForwardingRulesGet+    { _gfrgProject = pGfrgProject_+    , _gfrgForwardingRule = pGfrgForwardingRule_+    }++-- | Name of the project scoping this request.+gfrgProject :: Lens' GlobalForwardingRulesGet Text+gfrgProject+  = lens _gfrgProject (\ s a -> s{_gfrgProject = a})++-- | Name of the ForwardingRule resource to return.+gfrgForwardingRule :: Lens' GlobalForwardingRulesGet Text+gfrgForwardingRule+  = lens _gfrgForwardingRule+      (\ s a -> s{_gfrgForwardingRule = a})++instance GoogleRequest GlobalForwardingRulesGet where+        type Rs GlobalForwardingRulesGet = ForwardingRule+        requestClient GlobalForwardingRulesGet{..}+          = go _gfrgProject _gfrgForwardingRule (Just AltJSON)+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy GlobalForwardingRulesGetResource)+                      mempty
+ gen/Network/Google/Resource/Compute/GlobalForwardingRules/Insert.hs view
@@ -0,0 +1,102 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Compute.GlobalForwardingRules.Insert+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a ForwardingRule resource in the specified project and region+-- using the data included in the request.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.globalForwardingRules.insert@.+module Network.Google.Resource.Compute.GlobalForwardingRules.Insert+    (+    -- * REST Resource+      GlobalForwardingRulesInsertResource++    -- * Creating a Request+    , globalForwardingRulesInsert+    , GlobalForwardingRulesInsert++    -- * Request Lenses+    , gfriProject+    , gfriPayload+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.globalForwardingRules.insert@ method which the+-- 'GlobalForwardingRulesInsert' request conforms to.+type GlobalForwardingRulesInsertResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "global" :>+               "forwardingRules" :>+                 QueryParam "alt" AltJSON :>+                   ReqBody '[JSON] ForwardingRule :>+                     Post '[JSON] Operation++-- | Creates a ForwardingRule resource in the specified project and region+-- using the data included in the request.+--+-- /See:/ 'globalForwardingRulesInsert' smart constructor.+data GlobalForwardingRulesInsert = GlobalForwardingRulesInsert+    { _gfriProject :: !Text+    , _gfriPayload :: !ForwardingRule+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'GlobalForwardingRulesInsert' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gfriProject'+--+-- * 'gfriPayload'+globalForwardingRulesInsert+    :: Text -- ^ 'gfriProject'+    -> ForwardingRule -- ^ 'gfriPayload'+    -> GlobalForwardingRulesInsert+globalForwardingRulesInsert pGfriProject_ pGfriPayload_ =+    GlobalForwardingRulesInsert+    { _gfriProject = pGfriProject_+    , _gfriPayload = pGfriPayload_+    }++-- | Name of the project scoping this request.+gfriProject :: Lens' GlobalForwardingRulesInsert Text+gfriProject+  = lens _gfriProject (\ s a -> s{_gfriProject = a})++-- | Multipart request metadata.+gfriPayload :: Lens' GlobalForwardingRulesInsert ForwardingRule+gfriPayload+  = lens _gfriPayload (\ s a -> s{_gfriPayload = a})++instance GoogleRequest GlobalForwardingRulesInsert+         where+        type Rs GlobalForwardingRulesInsert = Operation+        requestClient GlobalForwardingRulesInsert{..}+          = go _gfriProject (Just AltJSON) _gfriPayload+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy GlobalForwardingRulesInsertResource)+                      mempty
+ gen/Network/Google/Resource/Compute/GlobalForwardingRules/List.hs view
@@ -0,0 +1,141 @@+{-# 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.Compute.GlobalForwardingRules.List+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves the list of ForwardingRule resources available to the+-- specified project.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.globalForwardingRules.list@.+module Network.Google.Resource.Compute.GlobalForwardingRules.List+    (+    -- * REST Resource+      GlobalForwardingRulesListResource++    -- * Creating a Request+    , globalForwardingRulesList+    , GlobalForwardingRulesList++    -- * Request Lenses+    , gfrlProject+    , gfrlFilter+    , gfrlPageToken+    , gfrlMaxResults+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.globalForwardingRules.list@ method which the+-- 'GlobalForwardingRulesList' request conforms to.+type GlobalForwardingRulesListResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "global" :>+               "forwardingRules" :>+                 QueryParam "filter" Text :>+                   QueryParam "pageToken" Text :>+                     QueryParam "maxResults" (Textual Word32) :>+                       QueryParam "alt" AltJSON :>+                         Get '[JSON] ForwardingRuleList++-- | Retrieves the list of ForwardingRule resources available to the+-- specified project.+--+-- /See:/ 'globalForwardingRulesList' smart constructor.+data GlobalForwardingRulesList = GlobalForwardingRulesList+    { _gfrlProject    :: !Text+    , _gfrlFilter     :: !(Maybe Text)+    , _gfrlPageToken  :: !(Maybe Text)+    , _gfrlMaxResults :: !(Textual Word32)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'GlobalForwardingRulesList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gfrlProject'+--+-- * 'gfrlFilter'+--+-- * 'gfrlPageToken'+--+-- * 'gfrlMaxResults'+globalForwardingRulesList+    :: Text -- ^ 'gfrlProject'+    -> GlobalForwardingRulesList+globalForwardingRulesList pGfrlProject_ =+    GlobalForwardingRulesList+    { _gfrlProject = pGfrlProject_+    , _gfrlFilter = Nothing+    , _gfrlPageToken = Nothing+    , _gfrlMaxResults = 500+    }++-- | Name of the project scoping this request.+gfrlProject :: Lens' GlobalForwardingRulesList Text+gfrlProject+  = lens _gfrlProject (\ s a -> s{_gfrlProject = a})++-- | Sets a filter expression for filtering listed resources, in the form+-- filter={expression}. Your {expression} must be in the format: FIELD_NAME+-- COMPARISON_STRING LITERAL_STRING. The FIELD_NAME is the name of the+-- field you want to compare. Only atomic field types are supported+-- (string, number, boolean). The COMPARISON_STRING must be either eq+-- (equals) or ne (not equals). The LITERAL_STRING is the string value to+-- filter to. The literal value must be valid for the type of field+-- (string, number, boolean). For string fields, the literal value is+-- interpreted as a regular expression using RE2 syntax. The literal value+-- must match the entire field. For example, filter=name ne+-- example-instance.+gfrlFilter :: Lens' GlobalForwardingRulesList (Maybe Text)+gfrlFilter+  = lens _gfrlFilter (\ s a -> s{_gfrlFilter = a})++-- | Specifies a page token to use. Use this parameter if you want to list+-- the next page of results. Set pageToken to the nextPageToken returned by+-- a previous list request.+gfrlPageToken :: Lens' GlobalForwardingRulesList (Maybe Text)+gfrlPageToken+  = lens _gfrlPageToken+      (\ s a -> s{_gfrlPageToken = a})++-- | Maximum count of results to be returned.+gfrlMaxResults :: Lens' GlobalForwardingRulesList Word32+gfrlMaxResults+  = lens _gfrlMaxResults+      (\ s a -> s{_gfrlMaxResults = a})+      . _Coerce++instance GoogleRequest GlobalForwardingRulesList+         where+        type Rs GlobalForwardingRulesList =+             ForwardingRuleList+        requestClient GlobalForwardingRulesList{..}+          = go _gfrlProject _gfrlFilter _gfrlPageToken+              (Just _gfrlMaxResults)+              (Just AltJSON)+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy GlobalForwardingRulesListResource)+                      mempty
+ gen/Network/Google/Resource/Compute/GlobalForwardingRules/SetTarget.hs view
@@ -0,0 +1,117 @@+{-# 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.Compute.GlobalForwardingRules.SetTarget+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Changes target url for forwarding rule.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.globalForwardingRules.setTarget@.+module Network.Google.Resource.Compute.GlobalForwardingRules.SetTarget+    (+    -- * REST Resource+      GlobalForwardingRulesSetTargetResource++    -- * Creating a Request+    , globalForwardingRulesSetTarget+    , GlobalForwardingRulesSetTarget++    -- * Request Lenses+    , gfrstProject+    , gfrstForwardingRule+    , gfrstPayload+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.globalForwardingRules.setTarget@ method which the+-- 'GlobalForwardingRulesSetTarget' request conforms to.+type GlobalForwardingRulesSetTargetResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "global" :>+               "forwardingRules" :>+                 Capture "forwardingRule" Text :>+                   "setTarget" :>+                     QueryParam "alt" AltJSON :>+                       ReqBody '[JSON] TargetReference :>+                         Post '[JSON] Operation++-- | Changes target url for forwarding rule.+--+-- /See:/ 'globalForwardingRulesSetTarget' smart constructor.+data GlobalForwardingRulesSetTarget = GlobalForwardingRulesSetTarget+    { _gfrstProject        :: !Text+    , _gfrstForwardingRule :: !Text+    , _gfrstPayload        :: !TargetReference+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'GlobalForwardingRulesSetTarget' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gfrstProject'+--+-- * 'gfrstForwardingRule'+--+-- * 'gfrstPayload'+globalForwardingRulesSetTarget+    :: Text -- ^ 'gfrstProject'+    -> Text -- ^ 'gfrstForwardingRule'+    -> TargetReference -- ^ 'gfrstPayload'+    -> GlobalForwardingRulesSetTarget+globalForwardingRulesSetTarget pGfrstProject_ pGfrstForwardingRule_ pGfrstPayload_ =+    GlobalForwardingRulesSetTarget+    { _gfrstProject = pGfrstProject_+    , _gfrstForwardingRule = pGfrstForwardingRule_+    , _gfrstPayload = pGfrstPayload_+    }++-- | Name of the project scoping this request.+gfrstProject :: Lens' GlobalForwardingRulesSetTarget Text+gfrstProject+  = lens _gfrstProject (\ s a -> s{_gfrstProject = a})++-- | Name of the ForwardingRule resource in which target is to be set.+gfrstForwardingRule :: Lens' GlobalForwardingRulesSetTarget Text+gfrstForwardingRule+  = lens _gfrstForwardingRule+      (\ s a -> s{_gfrstForwardingRule = a})++-- | Multipart request metadata.+gfrstPayload :: Lens' GlobalForwardingRulesSetTarget TargetReference+gfrstPayload+  = lens _gfrstPayload (\ s a -> s{_gfrstPayload = a})++instance GoogleRequest GlobalForwardingRulesSetTarget+         where+        type Rs GlobalForwardingRulesSetTarget = Operation+        requestClient GlobalForwardingRulesSetTarget{..}+          = go _gfrstProject _gfrstForwardingRule+              (Just AltJSON)+              _gfrstPayload+              computeService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy GlobalForwardingRulesSetTargetResource)+                      mempty
+ gen/Network/Google/Resource/Compute/GlobalOperations/AggregatedList.hs view
@@ -0,0 +1,140 @@+{-# 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.Compute.GlobalOperations.AggregatedList+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves the list of all operations grouped by scope.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.globalOperations.aggregatedList@.+module Network.Google.Resource.Compute.GlobalOperations.AggregatedList+    (+    -- * REST Resource+      GlobalOperationsAggregatedListResource++    -- * Creating a Request+    , globalOperationsAggregatedList+    , GlobalOperationsAggregatedList++    -- * Request Lenses+    , goalProject+    , goalFilter+    , goalPageToken+    , goalMaxResults+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.globalOperations.aggregatedList@ method which the+-- 'GlobalOperationsAggregatedList' request conforms to.+type GlobalOperationsAggregatedListResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "aggregated" :>+               "operations" :>+                 QueryParam "filter" Text :>+                   QueryParam "pageToken" Text :>+                     QueryParam "maxResults" (Textual Word32) :>+                       QueryParam "alt" AltJSON :>+                         Get '[JSON] OperationAggregatedList++-- | Retrieves the list of all operations grouped by scope.+--+-- /See:/ 'globalOperationsAggregatedList' smart constructor.+data GlobalOperationsAggregatedList = GlobalOperationsAggregatedList+    { _goalProject    :: !Text+    , _goalFilter     :: !(Maybe Text)+    , _goalPageToken  :: !(Maybe Text)+    , _goalMaxResults :: !(Textual Word32)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'GlobalOperationsAggregatedList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'goalProject'+--+-- * 'goalFilter'+--+-- * 'goalPageToken'+--+-- * 'goalMaxResults'+globalOperationsAggregatedList+    :: Text -- ^ 'goalProject'+    -> GlobalOperationsAggregatedList+globalOperationsAggregatedList pGoalProject_ =+    GlobalOperationsAggregatedList+    { _goalProject = pGoalProject_+    , _goalFilter = Nothing+    , _goalPageToken = Nothing+    , _goalMaxResults = 500+    }++-- | Project ID for this request.+goalProject :: Lens' GlobalOperationsAggregatedList Text+goalProject+  = lens _goalProject (\ s a -> s{_goalProject = a})++-- | Sets a filter expression for filtering listed resources, in the form+-- filter={expression}. Your {expression} must be in the format: FIELD_NAME+-- COMPARISON_STRING LITERAL_STRING. The FIELD_NAME is the name of the+-- field you want to compare. Only atomic field types are supported+-- (string, number, boolean). The COMPARISON_STRING must be either eq+-- (equals) or ne (not equals). The LITERAL_STRING is the string value to+-- filter to. The literal value must be valid for the type of field+-- (string, number, boolean). For string fields, the literal value is+-- interpreted as a regular expression using RE2 syntax. The literal value+-- must match the entire field. For example, filter=name ne+-- example-instance.+goalFilter :: Lens' GlobalOperationsAggregatedList (Maybe Text)+goalFilter+  = lens _goalFilter (\ s a -> s{_goalFilter = a})++-- | Specifies a page token to use. Use this parameter if you want to list+-- the next page of results. Set pageToken to the nextPageToken returned by+-- a previous list request.+goalPageToken :: Lens' GlobalOperationsAggregatedList (Maybe Text)+goalPageToken+  = lens _goalPageToken+      (\ s a -> s{_goalPageToken = a})++-- | Maximum count of results to be returned.+goalMaxResults :: Lens' GlobalOperationsAggregatedList Word32+goalMaxResults+  = lens _goalMaxResults+      (\ s a -> s{_goalMaxResults = a})+      . _Coerce++instance GoogleRequest GlobalOperationsAggregatedList+         where+        type Rs GlobalOperationsAggregatedList =+             OperationAggregatedList+        requestClient GlobalOperationsAggregatedList{..}+          = go _goalProject _goalFilter _goalPageToken+              (Just _goalMaxResults)+              (Just AltJSON)+              computeService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy GlobalOperationsAggregatedListResource)+                      mempty
+ gen/Network/Google/Resource/Compute/GlobalOperations/Delete.hs view
@@ -0,0 +1,98 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Compute.GlobalOperations.Delete+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes the specified Operations resource.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.globalOperations.delete@.+module Network.Google.Resource.Compute.GlobalOperations.Delete+    (+    -- * REST Resource+      GlobalOperationsDeleteResource++    -- * Creating a Request+    , globalOperationsDelete+    , GlobalOperationsDelete++    -- * Request Lenses+    , godProject+    , godOperation+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.globalOperations.delete@ method which the+-- 'GlobalOperationsDelete' request conforms to.+type GlobalOperationsDeleteResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "global" :>+               "operations" :>+                 Capture "operation" Text :>+                   QueryParam "alt" AltJSON :> Delete '[JSON] ()++-- | Deletes the specified Operations resource.+--+-- /See:/ 'globalOperationsDelete' smart constructor.+data GlobalOperationsDelete = GlobalOperationsDelete+    { _godProject   :: !Text+    , _godOperation :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'GlobalOperationsDelete' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'godProject'+--+-- * 'godOperation'+globalOperationsDelete+    :: Text -- ^ 'godProject'+    -> Text -- ^ 'godOperation'+    -> GlobalOperationsDelete+globalOperationsDelete pGodProject_ pGodOperation_ =+    GlobalOperationsDelete+    { _godProject = pGodProject_+    , _godOperation = pGodOperation_+    }++-- | Project ID for this request.+godProject :: Lens' GlobalOperationsDelete Text+godProject+  = lens _godProject (\ s a -> s{_godProject = a})++-- | Name of the Operations resource to delete.+godOperation :: Lens' GlobalOperationsDelete Text+godOperation+  = lens _godOperation (\ s a -> s{_godOperation = a})++instance GoogleRequest GlobalOperationsDelete where+        type Rs GlobalOperationsDelete = ()+        requestClient GlobalOperationsDelete{..}+          = go _godProject _godOperation (Just AltJSON)+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy GlobalOperationsDeleteResource)+                      mempty
+ gen/Network/Google/Resource/Compute/GlobalOperations/Get.hs view
@@ -0,0 +1,98 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Compute.GlobalOperations.Get+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves the specified Operations resource.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.globalOperations.get@.+module Network.Google.Resource.Compute.GlobalOperations.Get+    (+    -- * REST Resource+      GlobalOperationsGetResource++    -- * Creating a Request+    , globalOperationsGet+    , GlobalOperationsGet++    -- * Request Lenses+    , gogProject+    , gogOperation+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.globalOperations.get@ method which the+-- 'GlobalOperationsGet' request conforms to.+type GlobalOperationsGetResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "global" :>+               "operations" :>+                 Capture "operation" Text :>+                   QueryParam "alt" AltJSON :> Get '[JSON] Operation++-- | Retrieves the specified Operations resource.+--+-- /See:/ 'globalOperationsGet' smart constructor.+data GlobalOperationsGet = GlobalOperationsGet+    { _gogProject   :: !Text+    , _gogOperation :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'GlobalOperationsGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gogProject'+--+-- * 'gogOperation'+globalOperationsGet+    :: Text -- ^ 'gogProject'+    -> Text -- ^ 'gogOperation'+    -> GlobalOperationsGet+globalOperationsGet pGogProject_ pGogOperation_ =+    GlobalOperationsGet+    { _gogProject = pGogProject_+    , _gogOperation = pGogOperation_+    }++-- | Project ID for this request.+gogProject :: Lens' GlobalOperationsGet Text+gogProject+  = lens _gogProject (\ s a -> s{_gogProject = a})++-- | Name of the Operations resource to return.+gogOperation :: Lens' GlobalOperationsGet Text+gogOperation+  = lens _gogOperation (\ s a -> s{_gogOperation = a})++instance GoogleRequest GlobalOperationsGet where+        type Rs GlobalOperationsGet = Operation+        requestClient GlobalOperationsGet{..}+          = go _gogProject _gogOperation (Just AltJSON)+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy GlobalOperationsGetResource)+                      mempty
+ gen/Network/Google/Resource/Compute/GlobalOperations/List.hs view
@@ -0,0 +1,137 @@+{-# 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.Compute.GlobalOperations.List+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves the list of Operation resources contained within the specified+-- project.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.globalOperations.list@.+module Network.Google.Resource.Compute.GlobalOperations.List+    (+    -- * REST Resource+      GlobalOperationsListResource++    -- * Creating a Request+    , globalOperationsList+    , GlobalOperationsList++    -- * Request Lenses+    , golProject+    , golFilter+    , golPageToken+    , golMaxResults+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.globalOperations.list@ method which the+-- 'GlobalOperationsList' request conforms to.+type GlobalOperationsListResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "global" :>+               "operations" :>+                 QueryParam "filter" Text :>+                   QueryParam "pageToken" Text :>+                     QueryParam "maxResults" (Textual Word32) :>+                       QueryParam "alt" AltJSON :> Get '[JSON] OperationList++-- | Retrieves the list of Operation resources contained within the specified+-- project.+--+-- /See:/ 'globalOperationsList' smart constructor.+data GlobalOperationsList = GlobalOperationsList+    { _golProject    :: !Text+    , _golFilter     :: !(Maybe Text)+    , _golPageToken  :: !(Maybe Text)+    , _golMaxResults :: !(Textual Word32)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'GlobalOperationsList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'golProject'+--+-- * 'golFilter'+--+-- * 'golPageToken'+--+-- * 'golMaxResults'+globalOperationsList+    :: Text -- ^ 'golProject'+    -> GlobalOperationsList+globalOperationsList pGolProject_ =+    GlobalOperationsList+    { _golProject = pGolProject_+    , _golFilter = Nothing+    , _golPageToken = Nothing+    , _golMaxResults = 500+    }++-- | Project ID for this request.+golProject :: Lens' GlobalOperationsList Text+golProject+  = lens _golProject (\ s a -> s{_golProject = a})++-- | Sets a filter expression for filtering listed resources, in the form+-- filter={expression}. Your {expression} must be in the format: FIELD_NAME+-- COMPARISON_STRING LITERAL_STRING. The FIELD_NAME is the name of the+-- field you want to compare. Only atomic field types are supported+-- (string, number, boolean). The COMPARISON_STRING must be either eq+-- (equals) or ne (not equals). The LITERAL_STRING is the string value to+-- filter to. The literal value must be valid for the type of field+-- (string, number, boolean). For string fields, the literal value is+-- interpreted as a regular expression using RE2 syntax. The literal value+-- must match the entire field. For example, filter=name ne+-- example-instance.+golFilter :: Lens' GlobalOperationsList (Maybe Text)+golFilter+  = lens _golFilter (\ s a -> s{_golFilter = a})++-- | Specifies a page token to use. Use this parameter if you want to list+-- the next page of results. Set pageToken to the nextPageToken returned by+-- a previous list request.+golPageToken :: Lens' GlobalOperationsList (Maybe Text)+golPageToken+  = lens _golPageToken (\ s a -> s{_golPageToken = a})++-- | Maximum count of results to be returned.+golMaxResults :: Lens' GlobalOperationsList Word32+golMaxResults+  = lens _golMaxResults+      (\ s a -> s{_golMaxResults = a})+      . _Coerce++instance GoogleRequest GlobalOperationsList where+        type Rs GlobalOperationsList = OperationList+        requestClient GlobalOperationsList{..}+          = go _golProject _golFilter _golPageToken+              (Just _golMaxResults)+              (Just AltJSON)+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy GlobalOperationsListResource)+                      mempty
+ gen/Network/Google/Resource/Compute/HTTPHealthChecks/Delete.hs view
@@ -0,0 +1,101 @@+{-# 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.Compute.HTTPHealthChecks.Delete+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes the specified HttpHealthCheck resource.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.httpHealthChecks.delete@.+module Network.Google.Resource.Compute.HTTPHealthChecks.Delete+    (+    -- * REST Resource+      HTTPHealthChecksDeleteResource++    -- * Creating a Request+    , hTTPHealthChecksDelete+    , HTTPHealthChecksDelete++    -- * Request Lenses+    , httphcdProject+    , httphcdHTTPHealthCheck+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.httpHealthChecks.delete@ method which the+-- 'HTTPHealthChecksDelete' request conforms to.+type HTTPHealthChecksDeleteResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "global" :>+               "httpHealthChecks" :>+                 Capture "httpHealthCheck" Text :>+                   QueryParam "alt" AltJSON :> Delete '[JSON] Operation++-- | Deletes the specified HttpHealthCheck resource.+--+-- /See:/ 'hTTPHealthChecksDelete' smart constructor.+data HTTPHealthChecksDelete = HTTPHealthChecksDelete+    { _httphcdProject         :: !Text+    , _httphcdHTTPHealthCheck :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'HTTPHealthChecksDelete' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'httphcdProject'+--+-- * 'httphcdHTTPHealthCheck'+hTTPHealthChecksDelete+    :: Text -- ^ 'httphcdProject'+    -> Text -- ^ 'httphcdHTTPHealthCheck'+    -> HTTPHealthChecksDelete+hTTPHealthChecksDelete pHttphcdProject_ pHttphcdHTTPHealthCheck_ =+    HTTPHealthChecksDelete+    { _httphcdProject = pHttphcdProject_+    , _httphcdHTTPHealthCheck = pHttphcdHTTPHealthCheck_+    }++-- | Name of the project scoping this request.+httphcdProject :: Lens' HTTPHealthChecksDelete Text+httphcdProject+  = lens _httphcdProject+      (\ s a -> s{_httphcdProject = a})++-- | Name of the HttpHealthCheck resource to delete.+httphcdHTTPHealthCheck :: Lens' HTTPHealthChecksDelete Text+httphcdHTTPHealthCheck+  = lens _httphcdHTTPHealthCheck+      (\ s a -> s{_httphcdHTTPHealthCheck = a})++instance GoogleRequest HTTPHealthChecksDelete where+        type Rs HTTPHealthChecksDelete = Operation+        requestClient HTTPHealthChecksDelete{..}+          = go _httphcdProject _httphcdHTTPHealthCheck+              (Just AltJSON)+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy HTTPHealthChecksDeleteResource)+                      mempty
+ gen/Network/Google/Resource/Compute/HTTPHealthChecks/Get.hs view
@@ -0,0 +1,102 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Compute.HTTPHealthChecks.Get+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns the specified HttpHealthCheck resource.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.httpHealthChecks.get@.+module Network.Google.Resource.Compute.HTTPHealthChecks.Get+    (+    -- * REST Resource+      HTTPHealthChecksGetResource++    -- * Creating a Request+    , hTTPHealthChecksGet+    , HTTPHealthChecksGet++    -- * Request Lenses+    , httphcgProject+    , httphcgHTTPHealthCheck+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.httpHealthChecks.get@ method which the+-- 'HTTPHealthChecksGet' request conforms to.+type HTTPHealthChecksGetResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "global" :>+               "httpHealthChecks" :>+                 Capture "httpHealthCheck" Text :>+                   QueryParam "alt" AltJSON :>+                     Get '[JSON] HTTPHealthCheck++-- | Returns the specified HttpHealthCheck resource.+--+-- /See:/ 'hTTPHealthChecksGet' smart constructor.+data HTTPHealthChecksGet = HTTPHealthChecksGet+    { _httphcgProject         :: !Text+    , _httphcgHTTPHealthCheck :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'HTTPHealthChecksGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'httphcgProject'+--+-- * 'httphcgHTTPHealthCheck'+hTTPHealthChecksGet+    :: Text -- ^ 'httphcgProject'+    -> Text -- ^ 'httphcgHTTPHealthCheck'+    -> HTTPHealthChecksGet+hTTPHealthChecksGet pHttphcgProject_ pHttphcgHTTPHealthCheck_ =+    HTTPHealthChecksGet+    { _httphcgProject = pHttphcgProject_+    , _httphcgHTTPHealthCheck = pHttphcgHTTPHealthCheck_+    }++-- | Name of the project scoping this request.+httphcgProject :: Lens' HTTPHealthChecksGet Text+httphcgProject+  = lens _httphcgProject+      (\ s a -> s{_httphcgProject = a})++-- | Name of the HttpHealthCheck resource to return.+httphcgHTTPHealthCheck :: Lens' HTTPHealthChecksGet Text+httphcgHTTPHealthCheck+  = lens _httphcgHTTPHealthCheck+      (\ s a -> s{_httphcgHTTPHealthCheck = a})++instance GoogleRequest HTTPHealthChecksGet where+        type Rs HTTPHealthChecksGet = HTTPHealthCheck+        requestClient HTTPHealthChecksGet{..}+          = go _httphcgProject _httphcgHTTPHealthCheck+              (Just AltJSON)+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy HTTPHealthChecksGetResource)+                      mempty
+ gen/Network/Google/Resource/Compute/HTTPHealthChecks/Insert.hs view
@@ -0,0 +1,103 @@+{-# 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.Compute.HTTPHealthChecks.Insert+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a HttpHealthCheck resource in the specified project using the+-- data included in the request.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.httpHealthChecks.insert@.+module Network.Google.Resource.Compute.HTTPHealthChecks.Insert+    (+    -- * REST Resource+      HTTPHealthChecksInsertResource++    -- * Creating a Request+    , hTTPHealthChecksInsert+    , HTTPHealthChecksInsert++    -- * Request Lenses+    , httphciProject+    , httphciPayload+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.httpHealthChecks.insert@ method which the+-- 'HTTPHealthChecksInsert' request conforms to.+type HTTPHealthChecksInsertResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "global" :>+               "httpHealthChecks" :>+                 QueryParam "alt" AltJSON :>+                   ReqBody '[JSON] HTTPHealthCheck :>+                     Post '[JSON] Operation++-- | Creates a HttpHealthCheck resource in the specified project using the+-- data included in the request.+--+-- /See:/ 'hTTPHealthChecksInsert' smart constructor.+data HTTPHealthChecksInsert = HTTPHealthChecksInsert+    { _httphciProject :: !Text+    , _httphciPayload :: !HTTPHealthCheck+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'HTTPHealthChecksInsert' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'httphciProject'+--+-- * 'httphciPayload'+hTTPHealthChecksInsert+    :: Text -- ^ 'httphciProject'+    -> HTTPHealthCheck -- ^ 'httphciPayload'+    -> HTTPHealthChecksInsert+hTTPHealthChecksInsert pHttphciProject_ pHttphciPayload_ =+    HTTPHealthChecksInsert+    { _httphciProject = pHttphciProject_+    , _httphciPayload = pHttphciPayload_+    }++-- | Name of the project scoping this request.+httphciProject :: Lens' HTTPHealthChecksInsert Text+httphciProject+  = lens _httphciProject+      (\ s a -> s{_httphciProject = a})++-- | Multipart request metadata.+httphciPayload :: Lens' HTTPHealthChecksInsert HTTPHealthCheck+httphciPayload+  = lens _httphciPayload+      (\ s a -> s{_httphciPayload = a})++instance GoogleRequest HTTPHealthChecksInsert where+        type Rs HTTPHealthChecksInsert = Operation+        requestClient HTTPHealthChecksInsert{..}+          = go _httphciProject (Just AltJSON) _httphciPayload+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy HTTPHealthChecksInsertResource)+                      mempty
+ gen/Network/Google/Resource/Compute/HTTPHealthChecks/List.hs view
@@ -0,0 +1,141 @@+{-# 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.Compute.HTTPHealthChecks.List+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves the list of HttpHealthCheck resources available to the+-- specified project.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.httpHealthChecks.list@.+module Network.Google.Resource.Compute.HTTPHealthChecks.List+    (+    -- * REST Resource+      HTTPHealthChecksListResource++    -- * Creating a Request+    , hTTPHealthChecksList+    , HTTPHealthChecksList++    -- * Request Lenses+    , httphclProject+    , httphclFilter+    , httphclPageToken+    , httphclMaxResults+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.httpHealthChecks.list@ method which the+-- 'HTTPHealthChecksList' request conforms to.+type HTTPHealthChecksListResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "global" :>+               "httpHealthChecks" :>+                 QueryParam "filter" Text :>+                   QueryParam "pageToken" Text :>+                     QueryParam "maxResults" (Textual Word32) :>+                       QueryParam "alt" AltJSON :>+                         Get '[JSON] HTTPHealthCheckList++-- | Retrieves the list of HttpHealthCheck resources available to the+-- specified project.+--+-- /See:/ 'hTTPHealthChecksList' smart constructor.+data HTTPHealthChecksList = HTTPHealthChecksList+    { _httphclProject    :: !Text+    , _httphclFilter     :: !(Maybe Text)+    , _httphclPageToken  :: !(Maybe Text)+    , _httphclMaxResults :: !(Textual Word32)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'HTTPHealthChecksList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'httphclProject'+--+-- * 'httphclFilter'+--+-- * 'httphclPageToken'+--+-- * 'httphclMaxResults'+hTTPHealthChecksList+    :: Text -- ^ 'httphclProject'+    -> HTTPHealthChecksList+hTTPHealthChecksList pHttphclProject_ =+    HTTPHealthChecksList+    { _httphclProject = pHttphclProject_+    , _httphclFilter = Nothing+    , _httphclPageToken = Nothing+    , _httphclMaxResults = 500+    }++-- | Name of the project scoping this request.+httphclProject :: Lens' HTTPHealthChecksList Text+httphclProject+  = lens _httphclProject+      (\ s a -> s{_httphclProject = a})++-- | Sets a filter expression for filtering listed resources, in the form+-- filter={expression}. Your {expression} must be in the format: FIELD_NAME+-- COMPARISON_STRING LITERAL_STRING. The FIELD_NAME is the name of the+-- field you want to compare. Only atomic field types are supported+-- (string, number, boolean). The COMPARISON_STRING must be either eq+-- (equals) or ne (not equals). The LITERAL_STRING is the string value to+-- filter to. The literal value must be valid for the type of field+-- (string, number, boolean). For string fields, the literal value is+-- interpreted as a regular expression using RE2 syntax. The literal value+-- must match the entire field. For example, filter=name ne+-- example-instance.+httphclFilter :: Lens' HTTPHealthChecksList (Maybe Text)+httphclFilter+  = lens _httphclFilter+      (\ s a -> s{_httphclFilter = a})++-- | Specifies a page token to use. Use this parameter if you want to list+-- the next page of results. Set pageToken to the nextPageToken returned by+-- a previous list request.+httphclPageToken :: Lens' HTTPHealthChecksList (Maybe Text)+httphclPageToken+  = lens _httphclPageToken+      (\ s a -> s{_httphclPageToken = a})++-- | Maximum count of results to be returned.+httphclMaxResults :: Lens' HTTPHealthChecksList Word32+httphclMaxResults+  = lens _httphclMaxResults+      (\ s a -> s{_httphclMaxResults = a})+      . _Coerce++instance GoogleRequest HTTPHealthChecksList where+        type Rs HTTPHealthChecksList = HTTPHealthCheckList+        requestClient HTTPHealthChecksList{..}+          = go _httphclProject _httphclFilter _httphclPageToken+              (Just _httphclMaxResults)+              (Just AltJSON)+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy HTTPHealthChecksListResource)+                      mempty
+ gen/Network/Google/Resource/Compute/HTTPHealthChecks/Patch.hs view
@@ -0,0 +1,118 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Compute.HTTPHealthChecks.Patch+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates a HttpHealthCheck resource in the specified project using the+-- data included in the request. This method supports patch semantics.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.httpHealthChecks.patch@.+module Network.Google.Resource.Compute.HTTPHealthChecks.Patch+    (+    -- * REST Resource+      HTTPHealthChecksPatchResource++    -- * Creating a Request+    , hTTPHealthChecksPatch+    , HTTPHealthChecksPatch++    -- * Request Lenses+    , httphcpProject+    , httphcpPayload+    , httphcpHTTPHealthCheck+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.httpHealthChecks.patch@ method which the+-- 'HTTPHealthChecksPatch' request conforms to.+type HTTPHealthChecksPatchResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "global" :>+               "httpHealthChecks" :>+                 Capture "httpHealthCheck" Text :>+                   QueryParam "alt" AltJSON :>+                     ReqBody '[JSON] HTTPHealthCheck :>+                       Patch '[JSON] Operation++-- | Updates a HttpHealthCheck resource in the specified project using the+-- data included in the request. This method supports patch semantics.+--+-- /See:/ 'hTTPHealthChecksPatch' smart constructor.+data HTTPHealthChecksPatch = HTTPHealthChecksPatch+    { _httphcpProject         :: !Text+    , _httphcpPayload         :: !HTTPHealthCheck+    , _httphcpHTTPHealthCheck :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'HTTPHealthChecksPatch' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'httphcpProject'+--+-- * 'httphcpPayload'+--+-- * 'httphcpHTTPHealthCheck'+hTTPHealthChecksPatch+    :: Text -- ^ 'httphcpProject'+    -> HTTPHealthCheck -- ^ 'httphcpPayload'+    -> Text -- ^ 'httphcpHTTPHealthCheck'+    -> HTTPHealthChecksPatch+hTTPHealthChecksPatch pHttphcpProject_ pHttphcpPayload_ pHttphcpHTTPHealthCheck_ =+    HTTPHealthChecksPatch+    { _httphcpProject = pHttphcpProject_+    , _httphcpPayload = pHttphcpPayload_+    , _httphcpHTTPHealthCheck = pHttphcpHTTPHealthCheck_+    }++-- | Name of the project scoping this request.+httphcpProject :: Lens' HTTPHealthChecksPatch Text+httphcpProject+  = lens _httphcpProject+      (\ s a -> s{_httphcpProject = a})++-- | Multipart request metadata.+httphcpPayload :: Lens' HTTPHealthChecksPatch HTTPHealthCheck+httphcpPayload+  = lens _httphcpPayload+      (\ s a -> s{_httphcpPayload = a})++-- | Name of the HttpHealthCheck resource to update.+httphcpHTTPHealthCheck :: Lens' HTTPHealthChecksPatch Text+httphcpHTTPHealthCheck+  = lens _httphcpHTTPHealthCheck+      (\ s a -> s{_httphcpHTTPHealthCheck = a})++instance GoogleRequest HTTPHealthChecksPatch where+        type Rs HTTPHealthChecksPatch = Operation+        requestClient HTTPHealthChecksPatch{..}+          = go _httphcpProject _httphcpHTTPHealthCheck+              (Just AltJSON)+              _httphcpPayload+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy HTTPHealthChecksPatchResource)+                      mempty
+ gen/Network/Google/Resource/Compute/HTTPHealthChecks/Update.hs view
@@ -0,0 +1,118 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Compute.HTTPHealthChecks.Update+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates a HttpHealthCheck resource in the specified project using the+-- data included in the request.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.httpHealthChecks.update@.+module Network.Google.Resource.Compute.HTTPHealthChecks.Update+    (+    -- * REST Resource+      HTTPHealthChecksUpdateResource++    -- * Creating a Request+    , hTTPHealthChecksUpdate+    , HTTPHealthChecksUpdate++    -- * Request Lenses+    , httphcuProject+    , httphcuPayload+    , httphcuHTTPHealthCheck+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.httpHealthChecks.update@ method which the+-- 'HTTPHealthChecksUpdate' request conforms to.+type HTTPHealthChecksUpdateResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "global" :>+               "httpHealthChecks" :>+                 Capture "httpHealthCheck" Text :>+                   QueryParam "alt" AltJSON :>+                     ReqBody '[JSON] HTTPHealthCheck :>+                       Put '[JSON] Operation++-- | Updates a HttpHealthCheck resource in the specified project using the+-- data included in the request.+--+-- /See:/ 'hTTPHealthChecksUpdate' smart constructor.+data HTTPHealthChecksUpdate = HTTPHealthChecksUpdate+    { _httphcuProject         :: !Text+    , _httphcuPayload         :: !HTTPHealthCheck+    , _httphcuHTTPHealthCheck :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'HTTPHealthChecksUpdate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'httphcuProject'+--+-- * 'httphcuPayload'+--+-- * 'httphcuHTTPHealthCheck'+hTTPHealthChecksUpdate+    :: Text -- ^ 'httphcuProject'+    -> HTTPHealthCheck -- ^ 'httphcuPayload'+    -> Text -- ^ 'httphcuHTTPHealthCheck'+    -> HTTPHealthChecksUpdate+hTTPHealthChecksUpdate pHttphcuProject_ pHttphcuPayload_ pHttphcuHTTPHealthCheck_ =+    HTTPHealthChecksUpdate+    { _httphcuProject = pHttphcuProject_+    , _httphcuPayload = pHttphcuPayload_+    , _httphcuHTTPHealthCheck = pHttphcuHTTPHealthCheck_+    }++-- | Name of the project scoping this request.+httphcuProject :: Lens' HTTPHealthChecksUpdate Text+httphcuProject+  = lens _httphcuProject+      (\ s a -> s{_httphcuProject = a})++-- | Multipart request metadata.+httphcuPayload :: Lens' HTTPHealthChecksUpdate HTTPHealthCheck+httphcuPayload+  = lens _httphcuPayload+      (\ s a -> s{_httphcuPayload = a})++-- | Name of the HttpHealthCheck resource to update.+httphcuHTTPHealthCheck :: Lens' HTTPHealthChecksUpdate Text+httphcuHTTPHealthCheck+  = lens _httphcuHTTPHealthCheck+      (\ s a -> s{_httphcuHTTPHealthCheck = a})++instance GoogleRequest HTTPHealthChecksUpdate where+        type Rs HTTPHealthChecksUpdate = Operation+        requestClient HTTPHealthChecksUpdate{..}+          = go _httphcuProject _httphcuHTTPHealthCheck+              (Just AltJSON)+              _httphcuPayload+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy HTTPHealthChecksUpdateResource)+                      mempty
+ gen/Network/Google/Resource/Compute/HTTPSHealthChecks/Delete.hs view
@@ -0,0 +1,100 @@+{-# 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.Compute.HTTPSHealthChecks.Delete+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes the specified HttpsHealthCheck resource.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.httpsHealthChecks.delete@.+module Network.Google.Resource.Compute.HTTPSHealthChecks.Delete+    (+    -- * REST Resource+      HTTPSHealthChecksDeleteResource++    -- * Creating a Request+    , httpsHealthChecksDelete+    , HTTPSHealthChecksDelete++    -- * Request Lenses+    , hhcdProject+    , hhcdHTTPSHealthCheck+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.httpsHealthChecks.delete@ method which the+-- 'HTTPSHealthChecksDelete' request conforms to.+type HTTPSHealthChecksDeleteResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "global" :>+               "httpsHealthChecks" :>+                 Capture "httpsHealthCheck" Text :>+                   QueryParam "alt" AltJSON :> Delete '[JSON] Operation++-- | Deletes the specified HttpsHealthCheck resource.+--+-- /See:/ 'httpsHealthChecksDelete' smart constructor.+data HTTPSHealthChecksDelete = HTTPSHealthChecksDelete+    { _hhcdProject          :: !Text+    , _hhcdHTTPSHealthCheck :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'HTTPSHealthChecksDelete' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'hhcdProject'+--+-- * 'hhcdHTTPSHealthCheck'+httpsHealthChecksDelete+    :: Text -- ^ 'hhcdProject'+    -> Text -- ^ 'hhcdHTTPSHealthCheck'+    -> HTTPSHealthChecksDelete+httpsHealthChecksDelete pHhcdProject_ pHhcdHTTPSHealthCheck_ =+    HTTPSHealthChecksDelete+    { _hhcdProject = pHhcdProject_+    , _hhcdHTTPSHealthCheck = pHhcdHTTPSHealthCheck_+    }++-- | Name of the project scoping this request.+hhcdProject :: Lens' HTTPSHealthChecksDelete Text+hhcdProject+  = lens _hhcdProject (\ s a -> s{_hhcdProject = a})++-- | Name of the HttpsHealthCheck resource to delete.+hhcdHTTPSHealthCheck :: Lens' HTTPSHealthChecksDelete Text+hhcdHTTPSHealthCheck+  = lens _hhcdHTTPSHealthCheck+      (\ s a -> s{_hhcdHTTPSHealthCheck = a})++instance GoogleRequest HTTPSHealthChecksDelete where+        type Rs HTTPSHealthChecksDelete = Operation+        requestClient HTTPSHealthChecksDelete{..}+          = go _hhcdProject _hhcdHTTPSHealthCheck+              (Just AltJSON)+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy HTTPSHealthChecksDeleteResource)+                      mempty
+ gen/Network/Google/Resource/Compute/HTTPSHealthChecks/Get.hs view
@@ -0,0 +1,101 @@+{-# 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.Compute.HTTPSHealthChecks.Get+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns the specified HttpsHealthCheck resource.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.httpsHealthChecks.get@.+module Network.Google.Resource.Compute.HTTPSHealthChecks.Get+    (+    -- * REST Resource+      HTTPSHealthChecksGetResource++    -- * Creating a Request+    , httpsHealthChecksGet+    , HTTPSHealthChecksGet++    -- * Request Lenses+    , hhcgProject+    , hhcgHTTPSHealthCheck+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.httpsHealthChecks.get@ method which the+-- 'HTTPSHealthChecksGet' request conforms to.+type HTTPSHealthChecksGetResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "global" :>+               "httpsHealthChecks" :>+                 Capture "httpsHealthCheck" Text :>+                   QueryParam "alt" AltJSON :>+                     Get '[JSON] HTTPSHealthCheck++-- | Returns the specified HttpsHealthCheck resource.+--+-- /See:/ 'httpsHealthChecksGet' smart constructor.+data HTTPSHealthChecksGet = HTTPSHealthChecksGet+    { _hhcgProject          :: !Text+    , _hhcgHTTPSHealthCheck :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'HTTPSHealthChecksGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'hhcgProject'+--+-- * 'hhcgHTTPSHealthCheck'+httpsHealthChecksGet+    :: Text -- ^ 'hhcgProject'+    -> Text -- ^ 'hhcgHTTPSHealthCheck'+    -> HTTPSHealthChecksGet+httpsHealthChecksGet pHhcgProject_ pHhcgHTTPSHealthCheck_ =+    HTTPSHealthChecksGet+    { _hhcgProject = pHhcgProject_+    , _hhcgHTTPSHealthCheck = pHhcgHTTPSHealthCheck_+    }++-- | Name of the project scoping this request.+hhcgProject :: Lens' HTTPSHealthChecksGet Text+hhcgProject+  = lens _hhcgProject (\ s a -> s{_hhcgProject = a})++-- | Name of the HttpsHealthCheck resource to return.+hhcgHTTPSHealthCheck :: Lens' HTTPSHealthChecksGet Text+hhcgHTTPSHealthCheck+  = lens _hhcgHTTPSHealthCheck+      (\ s a -> s{_hhcgHTTPSHealthCheck = a})++instance GoogleRequest HTTPSHealthChecksGet where+        type Rs HTTPSHealthChecksGet = HTTPSHealthCheck+        requestClient HTTPSHealthChecksGet{..}+          = go _hhcgProject _hhcgHTTPSHealthCheck+              (Just AltJSON)+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy HTTPSHealthChecksGetResource)+                      mempty
+ gen/Network/Google/Resource/Compute/HTTPSHealthChecks/Insert.hs view
@@ -0,0 +1,101 @@+{-# 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.Compute.HTTPSHealthChecks.Insert+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a HttpsHealthCheck resource in the specified project using the+-- data included in the request.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.httpsHealthChecks.insert@.+module Network.Google.Resource.Compute.HTTPSHealthChecks.Insert+    (+    -- * REST Resource+      HTTPSHealthChecksInsertResource++    -- * Creating a Request+    , httpsHealthChecksInsert+    , HTTPSHealthChecksInsert++    -- * Request Lenses+    , hhciProject+    , hhciPayload+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.httpsHealthChecks.insert@ method which the+-- 'HTTPSHealthChecksInsert' request conforms to.+type HTTPSHealthChecksInsertResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "global" :>+               "httpsHealthChecks" :>+                 QueryParam "alt" AltJSON :>+                   ReqBody '[JSON] HTTPSHealthCheck :>+                     Post '[JSON] Operation++-- | Creates a HttpsHealthCheck resource in the specified project using the+-- data included in the request.+--+-- /See:/ 'httpsHealthChecksInsert' smart constructor.+data HTTPSHealthChecksInsert = HTTPSHealthChecksInsert+    { _hhciProject :: !Text+    , _hhciPayload :: !HTTPSHealthCheck+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'HTTPSHealthChecksInsert' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'hhciProject'+--+-- * 'hhciPayload'+httpsHealthChecksInsert+    :: Text -- ^ 'hhciProject'+    -> HTTPSHealthCheck -- ^ 'hhciPayload'+    -> HTTPSHealthChecksInsert+httpsHealthChecksInsert pHhciProject_ pHhciPayload_ =+    HTTPSHealthChecksInsert+    { _hhciProject = pHhciProject_+    , _hhciPayload = pHhciPayload_+    }++-- | Name of the project scoping this request.+hhciProject :: Lens' HTTPSHealthChecksInsert Text+hhciProject+  = lens _hhciProject (\ s a -> s{_hhciProject = a})++-- | Multipart request metadata.+hhciPayload :: Lens' HTTPSHealthChecksInsert HTTPSHealthCheck+hhciPayload+  = lens _hhciPayload (\ s a -> s{_hhciPayload = a})++instance GoogleRequest HTTPSHealthChecksInsert where+        type Rs HTTPSHealthChecksInsert = Operation+        requestClient HTTPSHealthChecksInsert{..}+          = go _hhciProject (Just AltJSON) _hhciPayload+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy HTTPSHealthChecksInsertResource)+                      mempty
+ gen/Network/Google/Resource/Compute/HTTPSHealthChecks/List.hs view
@@ -0,0 +1,139 @@+{-# 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.Compute.HTTPSHealthChecks.List+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves the list of HttpsHealthCheck resources available to the+-- specified project.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.httpsHealthChecks.list@.+module Network.Google.Resource.Compute.HTTPSHealthChecks.List+    (+    -- * REST Resource+      HTTPSHealthChecksListResource++    -- * Creating a Request+    , httpsHealthChecksList+    , HTTPSHealthChecksList++    -- * Request Lenses+    , hhclProject+    , hhclFilter+    , hhclPageToken+    , hhclMaxResults+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.httpsHealthChecks.list@ method which the+-- 'HTTPSHealthChecksList' request conforms to.+type HTTPSHealthChecksListResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "global" :>+               "httpsHealthChecks" :>+                 QueryParam "filter" Text :>+                   QueryParam "pageToken" Text :>+                     QueryParam "maxResults" (Textual Word32) :>+                       QueryParam "alt" AltJSON :>+                         Get '[JSON] HTTPSHealthCheckList++-- | Retrieves the list of HttpsHealthCheck resources available to the+-- specified project.+--+-- /See:/ 'httpsHealthChecksList' smart constructor.+data HTTPSHealthChecksList = HTTPSHealthChecksList+    { _hhclProject    :: !Text+    , _hhclFilter     :: !(Maybe Text)+    , _hhclPageToken  :: !(Maybe Text)+    , _hhclMaxResults :: !(Textual Word32)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'HTTPSHealthChecksList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'hhclProject'+--+-- * 'hhclFilter'+--+-- * 'hhclPageToken'+--+-- * 'hhclMaxResults'+httpsHealthChecksList+    :: Text -- ^ 'hhclProject'+    -> HTTPSHealthChecksList+httpsHealthChecksList pHhclProject_ =+    HTTPSHealthChecksList+    { _hhclProject = pHhclProject_+    , _hhclFilter = Nothing+    , _hhclPageToken = Nothing+    , _hhclMaxResults = 500+    }++-- | Name of the project scoping this request.+hhclProject :: Lens' HTTPSHealthChecksList Text+hhclProject+  = lens _hhclProject (\ s a -> s{_hhclProject = a})++-- | Sets a filter expression for filtering listed resources, in the form+-- filter={expression}. Your {expression} must be in the format: FIELD_NAME+-- COMPARISON_STRING LITERAL_STRING. The FIELD_NAME is the name of the+-- field you want to compare. Only atomic field types are supported+-- (string, number, boolean). The COMPARISON_STRING must be either eq+-- (equals) or ne (not equals). The LITERAL_STRING is the string value to+-- filter to. The literal value must be valid for the type of field+-- (string, number, boolean). For string fields, the literal value is+-- interpreted as a regular expression using RE2 syntax. The literal value+-- must match the entire field. For example, filter=name ne+-- example-instance.+hhclFilter :: Lens' HTTPSHealthChecksList (Maybe Text)+hhclFilter+  = lens _hhclFilter (\ s a -> s{_hhclFilter = a})++-- | Specifies a page token to use. Use this parameter if you want to list+-- the next page of results. Set pageToken to the nextPageToken returned by+-- a previous list request.+hhclPageToken :: Lens' HTTPSHealthChecksList (Maybe Text)+hhclPageToken+  = lens _hhclPageToken+      (\ s a -> s{_hhclPageToken = a})++-- | Maximum count of results to be returned.+hhclMaxResults :: Lens' HTTPSHealthChecksList Word32+hhclMaxResults+  = lens _hhclMaxResults+      (\ s a -> s{_hhclMaxResults = a})+      . _Coerce++instance GoogleRequest HTTPSHealthChecksList where+        type Rs HTTPSHealthChecksList = HTTPSHealthCheckList+        requestClient HTTPSHealthChecksList{..}+          = go _hhclProject _hhclFilter _hhclPageToken+              (Just _hhclMaxResults)+              (Just AltJSON)+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy HTTPSHealthChecksListResource)+                      mempty
+ gen/Network/Google/Resource/Compute/HTTPSHealthChecks/Patch.hs view
@@ -0,0 +1,116 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Compute.HTTPSHealthChecks.Patch+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates a HttpsHealthCheck resource in the specified project using the+-- data included in the request. This method supports patch semantics.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.httpsHealthChecks.patch@.+module Network.Google.Resource.Compute.HTTPSHealthChecks.Patch+    (+    -- * REST Resource+      HTTPSHealthChecksPatchResource++    -- * Creating a Request+    , httpsHealthChecksPatch+    , HTTPSHealthChecksPatch++    -- * Request Lenses+    , hhcpProject+    , hhcpPayload+    , hhcpHTTPSHealthCheck+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.httpsHealthChecks.patch@ method which the+-- 'HTTPSHealthChecksPatch' request conforms to.+type HTTPSHealthChecksPatchResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "global" :>+               "httpsHealthChecks" :>+                 Capture "httpsHealthCheck" Text :>+                   QueryParam "alt" AltJSON :>+                     ReqBody '[JSON] HTTPSHealthCheck :>+                       Patch '[JSON] Operation++-- | Updates a HttpsHealthCheck resource in the specified project using the+-- data included in the request. This method supports patch semantics.+--+-- /See:/ 'httpsHealthChecksPatch' smart constructor.+data HTTPSHealthChecksPatch = HTTPSHealthChecksPatch+    { _hhcpProject          :: !Text+    , _hhcpPayload          :: !HTTPSHealthCheck+    , _hhcpHTTPSHealthCheck :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'HTTPSHealthChecksPatch' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'hhcpProject'+--+-- * 'hhcpPayload'+--+-- * 'hhcpHTTPSHealthCheck'+httpsHealthChecksPatch+    :: Text -- ^ 'hhcpProject'+    -> HTTPSHealthCheck -- ^ 'hhcpPayload'+    -> Text -- ^ 'hhcpHTTPSHealthCheck'+    -> HTTPSHealthChecksPatch+httpsHealthChecksPatch pHhcpProject_ pHhcpPayload_ pHhcpHTTPSHealthCheck_ =+    HTTPSHealthChecksPatch+    { _hhcpProject = pHhcpProject_+    , _hhcpPayload = pHhcpPayload_+    , _hhcpHTTPSHealthCheck = pHhcpHTTPSHealthCheck_+    }++-- | Name of the project scoping this request.+hhcpProject :: Lens' HTTPSHealthChecksPatch Text+hhcpProject+  = lens _hhcpProject (\ s a -> s{_hhcpProject = a})++-- | Multipart request metadata.+hhcpPayload :: Lens' HTTPSHealthChecksPatch HTTPSHealthCheck+hhcpPayload+  = lens _hhcpPayload (\ s a -> s{_hhcpPayload = a})++-- | Name of the HttpsHealthCheck resource to update.+hhcpHTTPSHealthCheck :: Lens' HTTPSHealthChecksPatch Text+hhcpHTTPSHealthCheck+  = lens _hhcpHTTPSHealthCheck+      (\ s a -> s{_hhcpHTTPSHealthCheck = a})++instance GoogleRequest HTTPSHealthChecksPatch where+        type Rs HTTPSHealthChecksPatch = Operation+        requestClient HTTPSHealthChecksPatch{..}+          = go _hhcpProject _hhcpHTTPSHealthCheck+              (Just AltJSON)+              _hhcpPayload+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy HTTPSHealthChecksPatchResource)+                      mempty
+ gen/Network/Google/Resource/Compute/HTTPSHealthChecks/Update.hs view
@@ -0,0 +1,116 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Compute.HTTPSHealthChecks.Update+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates a HttpsHealthCheck resource in the specified project using the+-- data included in the request.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.httpsHealthChecks.update@.+module Network.Google.Resource.Compute.HTTPSHealthChecks.Update+    (+    -- * REST Resource+      HTTPSHealthChecksUpdateResource++    -- * Creating a Request+    , httpsHealthChecksUpdate+    , HTTPSHealthChecksUpdate++    -- * Request Lenses+    , hhcuProject+    , hhcuPayload+    , hhcuHTTPSHealthCheck+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.httpsHealthChecks.update@ method which the+-- 'HTTPSHealthChecksUpdate' request conforms to.+type HTTPSHealthChecksUpdateResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "global" :>+               "httpsHealthChecks" :>+                 Capture "httpsHealthCheck" Text :>+                   QueryParam "alt" AltJSON :>+                     ReqBody '[JSON] HTTPSHealthCheck :>+                       Put '[JSON] Operation++-- | Updates a HttpsHealthCheck resource in the specified project using the+-- data included in the request.+--+-- /See:/ 'httpsHealthChecksUpdate' smart constructor.+data HTTPSHealthChecksUpdate = HTTPSHealthChecksUpdate+    { _hhcuProject          :: !Text+    , _hhcuPayload          :: !HTTPSHealthCheck+    , _hhcuHTTPSHealthCheck :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'HTTPSHealthChecksUpdate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'hhcuProject'+--+-- * 'hhcuPayload'+--+-- * 'hhcuHTTPSHealthCheck'+httpsHealthChecksUpdate+    :: Text -- ^ 'hhcuProject'+    -> HTTPSHealthCheck -- ^ 'hhcuPayload'+    -> Text -- ^ 'hhcuHTTPSHealthCheck'+    -> HTTPSHealthChecksUpdate+httpsHealthChecksUpdate pHhcuProject_ pHhcuPayload_ pHhcuHTTPSHealthCheck_ =+    HTTPSHealthChecksUpdate+    { _hhcuProject = pHhcuProject_+    , _hhcuPayload = pHhcuPayload_+    , _hhcuHTTPSHealthCheck = pHhcuHTTPSHealthCheck_+    }++-- | Name of the project scoping this request.+hhcuProject :: Lens' HTTPSHealthChecksUpdate Text+hhcuProject+  = lens _hhcuProject (\ s a -> s{_hhcuProject = a})++-- | Multipart request metadata.+hhcuPayload :: Lens' HTTPSHealthChecksUpdate HTTPSHealthCheck+hhcuPayload+  = lens _hhcuPayload (\ s a -> s{_hhcuPayload = a})++-- | Name of the HttpsHealthCheck resource to update.+hhcuHTTPSHealthCheck :: Lens' HTTPSHealthChecksUpdate Text+hhcuHTTPSHealthCheck+  = lens _hhcuHTTPSHealthCheck+      (\ s a -> s{_hhcuHTTPSHealthCheck = a})++instance GoogleRequest HTTPSHealthChecksUpdate where+        type Rs HTTPSHealthChecksUpdate = Operation+        requestClient HTTPSHealthChecksUpdate{..}+          = go _hhcuProject _hhcuHTTPSHealthCheck+              (Just AltJSON)+              _hhcuPayload+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy HTTPSHealthChecksUpdateResource)+                      mempty
+ gen/Network/Google/Resource/Compute/Images/Delete.hs view
@@ -0,0 +1,96 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Compute.Images.Delete+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes the specified image resource.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.images.delete@.+module Network.Google.Resource.Compute.Images.Delete+    (+    -- * REST Resource+      ImagesDeleteResource++    -- * Creating a Request+    , imagesDelete+    , ImagesDelete++    -- * Request Lenses+    , imaImage+    , imaProject+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.images.delete@ method which the+-- 'ImagesDelete' request conforms to.+type ImagesDeleteResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "global" :>+               "images" :>+                 Capture "image" Text :>+                   QueryParam "alt" AltJSON :> Delete '[JSON] Operation++-- | Deletes the specified image resource.+--+-- /See:/ 'imagesDelete' smart constructor.+data ImagesDelete = ImagesDelete+    { _imaImage   :: !Text+    , _imaProject :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ImagesDelete' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'imaImage'+--+-- * 'imaProject'+imagesDelete+    :: Text -- ^ 'imaImage'+    -> Text -- ^ 'imaProject'+    -> ImagesDelete+imagesDelete pImaImage_ pImaProject_ =+    ImagesDelete+    { _imaImage = pImaImage_+    , _imaProject = pImaProject_+    }++-- | Name of the image resource to delete.+imaImage :: Lens' ImagesDelete Text+imaImage = lens _imaImage (\ s a -> s{_imaImage = a})++-- | Project ID for this request.+imaProject :: Lens' ImagesDelete Text+imaProject+  = lens _imaProject (\ s a -> s{_imaProject = a})++instance GoogleRequest ImagesDelete where+        type Rs ImagesDelete = Operation+        requestClient ImagesDelete{..}+          = go _imaProject _imaImage (Just AltJSON)+              computeService+          where go+                  = buildClient (Proxy :: Proxy ImagesDeleteResource)+                      mempty
+ gen/Network/Google/Resource/Compute/Images/Deprecate.hs view
@@ -0,0 +1,115 @@+{-# 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.Compute.Images.Deprecate+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Sets the deprecation status of an image. If an empty request body is+-- given, clears the deprecation status instead.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.images.deprecate@.+module Network.Google.Resource.Compute.Images.Deprecate+    (+    -- * REST Resource+      ImagesDeprecateResource++    -- * Creating a Request+    , imagesDeprecate+    , ImagesDeprecate++    -- * Request Lenses+    , imamImage+    , imamProject+    , imamPayload+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.images.deprecate@ method which the+-- 'ImagesDeprecate' request conforms to.+type ImagesDeprecateResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "global" :>+               "images" :>+                 Capture "image" Text :>+                   "deprecate" :>+                     QueryParam "alt" AltJSON :>+                       ReqBody '[JSON] DeprecationStatus :>+                         Post '[JSON] Operation++-- | Sets the deprecation status of an image. If an empty request body is+-- given, clears the deprecation status instead.+--+-- /See:/ 'imagesDeprecate' smart constructor.+data ImagesDeprecate = ImagesDeprecate+    { _imamImage   :: !Text+    , _imamProject :: !Text+    , _imamPayload :: !DeprecationStatus+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ImagesDeprecate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'imamImage'+--+-- * 'imamProject'+--+-- * 'imamPayload'+imagesDeprecate+    :: Text -- ^ 'imamImage'+    -> Text -- ^ 'imamProject'+    -> DeprecationStatus -- ^ 'imamPayload'+    -> ImagesDeprecate+imagesDeprecate pImamImage_ pImamProject_ pImamPayload_ =+    ImagesDeprecate+    { _imamImage = pImamImage_+    , _imamProject = pImamProject_+    , _imamPayload = pImamPayload_+    }++-- | Image name.+imamImage :: Lens' ImagesDeprecate Text+imamImage+  = lens _imamImage (\ s a -> s{_imamImage = a})++-- | Project ID for this request.+imamProject :: Lens' ImagesDeprecate Text+imamProject+  = lens _imamProject (\ s a -> s{_imamProject = a})++-- | Multipart request metadata.+imamPayload :: Lens' ImagesDeprecate DeprecationStatus+imamPayload+  = lens _imamPayload (\ s a -> s{_imamPayload = a})++instance GoogleRequest ImagesDeprecate where+        type Rs ImagesDeprecate = Operation+        requestClient ImagesDeprecate{..}+          = go _imamProject _imamImage (Just AltJSON)+              _imamPayload+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy ImagesDeprecateResource)+                      mempty
+ gen/Network/Google/Resource/Compute/Images/Get.hs view
@@ -0,0 +1,94 @@+{-# 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.Compute.Images.Get+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns the specified image resource.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.images.get@.+module Network.Google.Resource.Compute.Images.Get+    (+    -- * REST Resource+      ImagesGetResource++    -- * Creating a Request+    , imagesGet+    , ImagesGet++    -- * Request Lenses+    , iImage+    , iProject+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.images.get@ method which the+-- 'ImagesGet' request conforms to.+type ImagesGetResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "global" :>+               "images" :>+                 Capture "image" Text :>+                   QueryParam "alt" AltJSON :> Get '[JSON] Image++-- | Returns the specified image resource.+--+-- /See:/ 'imagesGet' smart constructor.+data ImagesGet = ImagesGet+    { _iImage   :: !Text+    , _iProject :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ImagesGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'iImage'+--+-- * 'iProject'+imagesGet+    :: Text -- ^ 'iImage'+    -> Text -- ^ 'iProject'+    -> ImagesGet+imagesGet pIImage_ pIProject_ =+    ImagesGet+    { _iImage = pIImage_+    , _iProject = pIProject_+    }++-- | Name of the image resource to return.+iImage :: Lens' ImagesGet Text+iImage = lens _iImage (\ s a -> s{_iImage = a})++-- | Project ID for this request.+iProject :: Lens' ImagesGet Text+iProject = lens _iProject (\ s a -> s{_iProject = a})++instance GoogleRequest ImagesGet where+        type Rs ImagesGet = Image+        requestClient ImagesGet{..}+          = go _iProject _iImage (Just AltJSON) computeService+          where go+                  = buildClient (Proxy :: Proxy ImagesGetResource)+                      mempty
+ gen/Network/Google/Resource/Compute/Images/Insert.hs view
@@ -0,0 +1,99 @@+{-# 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.Compute.Images.Insert+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates an image resource in the specified project using the data+-- included in the request.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.images.insert@.+module Network.Google.Resource.Compute.Images.Insert+    (+    -- * REST Resource+      ImagesInsertResource++    -- * Creating a Request+    , imagesInsert+    , ImagesInsert++    -- * Request Lenses+    , iiProject+    , iiPayload+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.images.insert@ method which the+-- 'ImagesInsert' request conforms to.+type ImagesInsertResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "global" :>+               "images" :>+                 QueryParam "alt" AltJSON :>+                   ReqBody '[JSON] Image :> Post '[JSON] Operation++-- | Creates an image resource in the specified project using the data+-- included in the request.+--+-- /See:/ 'imagesInsert' smart constructor.+data ImagesInsert = ImagesInsert+    { _iiProject :: !Text+    , _iiPayload :: !Image+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ImagesInsert' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'iiProject'+--+-- * 'iiPayload'+imagesInsert+    :: Text -- ^ 'iiProject'+    -> Image -- ^ 'iiPayload'+    -> ImagesInsert+imagesInsert pIiProject_ pIiPayload_ =+    ImagesInsert+    { _iiProject = pIiProject_+    , _iiPayload = pIiPayload_+    }++-- | Project ID for this request.+iiProject :: Lens' ImagesInsert Text+iiProject+  = lens _iiProject (\ s a -> s{_iiProject = a})++-- | Multipart request metadata.+iiPayload :: Lens' ImagesInsert Image+iiPayload+  = lens _iiPayload (\ s a -> s{_iiPayload = a})++instance GoogleRequest ImagesInsert where+        type Rs ImagesInsert = Operation+        requestClient ImagesInsert{..}+          = go _iiProject (Just AltJSON) _iiPayload+              computeService+          where go+                  = buildClient (Proxy :: Proxy ImagesInsertResource)+                      mempty
+ gen/Network/Google/Resource/Compute/Images/List.hs view
@@ -0,0 +1,146 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Compute.Images.List+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves the list of private images available to the specified project.+-- Private images are images you create that belong to your project. This+-- method does not get any images that belong to other projects, including+-- publicly-available images, like Debian 7. If you want to get a list of+-- publicly-available images, use this method to make a request to the+-- respective image project, such as debian-cloud or windows-cloud. See+-- Accessing images for more information.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.images.list@.+module Network.Google.Resource.Compute.Images.List+    (+    -- * REST Resource+      ImagesListResource++    -- * Creating a Request+    , imagesList+    , ImagesList++    -- * Request Lenses+    , illProject+    , illFilter+    , illPageToken+    , illMaxResults+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.images.list@ method which the+-- 'ImagesList' request conforms to.+type ImagesListResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "global" :>+               "images" :>+                 QueryParam "filter" Text :>+                   QueryParam "pageToken" Text :>+                     QueryParam "maxResults" (Textual Word32) :>+                       QueryParam "alt" AltJSON :> Get '[JSON] ImageList++-- | Retrieves the list of private images available to the specified project.+-- Private images are images you create that belong to your project. This+-- method does not get any images that belong to other projects, including+-- publicly-available images, like Debian 7. If you want to get a list of+-- publicly-available images, use this method to make a request to the+-- respective image project, such as debian-cloud or windows-cloud. See+-- Accessing images for more information.+--+-- /See:/ 'imagesList' smart constructor.+data ImagesList = ImagesList+    { _illProject    :: !Text+    , _illFilter     :: !(Maybe Text)+    , _illPageToken  :: !(Maybe Text)+    , _illMaxResults :: !(Textual Word32)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ImagesList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'illProject'+--+-- * 'illFilter'+--+-- * 'illPageToken'+--+-- * 'illMaxResults'+imagesList+    :: Text -- ^ 'illProject'+    -> ImagesList+imagesList pIllProject_ =+    ImagesList+    { _illProject = pIllProject_+    , _illFilter = Nothing+    , _illPageToken = Nothing+    , _illMaxResults = 500+    }++-- | Project ID for this request.+illProject :: Lens' ImagesList Text+illProject+  = lens _illProject (\ s a -> s{_illProject = a})++-- | Sets a filter expression for filtering listed resources, in the form+-- filter={expression}. Your {expression} must be in the format: FIELD_NAME+-- COMPARISON_STRING LITERAL_STRING. The FIELD_NAME is the name of the+-- field you want to compare. Only atomic field types are supported+-- (string, number, boolean). The COMPARISON_STRING must be either eq+-- (equals) or ne (not equals). The LITERAL_STRING is the string value to+-- filter to. The literal value must be valid for the type of field+-- (string, number, boolean). For string fields, the literal value is+-- interpreted as a regular expression using RE2 syntax. The literal value+-- must match the entire field. For example, filter=name ne+-- example-instance.+illFilter :: Lens' ImagesList (Maybe Text)+illFilter+  = lens _illFilter (\ s a -> s{_illFilter = a})++-- | Specifies a page token to use. Use this parameter if you want to list+-- the next page of results. Set pageToken to the nextPageToken returned by+-- a previous list request.+illPageToken :: Lens' ImagesList (Maybe Text)+illPageToken+  = lens _illPageToken (\ s a -> s{_illPageToken = a})++-- | Maximum count of results to be returned.+illMaxResults :: Lens' ImagesList Word32+illMaxResults+  = lens _illMaxResults+      (\ s a -> s{_illMaxResults = a})+      . _Coerce++instance GoogleRequest ImagesList where+        type Rs ImagesList = ImageList+        requestClient ImagesList{..}+          = go _illProject _illFilter _illPageToken+              (Just _illMaxResults)+              (Just AltJSON)+              computeService+          where go+                  = buildClient (Proxy :: Proxy ImagesListResource)+                      mempty
+ gen/Network/Google/Resource/Compute/InstanceGroupManagers/AbandonInstances.hs view
@@ -0,0 +1,149 @@+{-# 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.Compute.InstanceGroupManagers.AbandonInstances+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Schedules a group action to remove the specified instances from the+-- managed instance group. Abandoning an instance does not delete the+-- instance, but it does remove the instance from any target pools that are+-- applied by the managed instance group. This method reduces the+-- targetSize of the managed instance group by the number of instances that+-- you abandon. This operation is marked as DONE when the action is+-- scheduled even if the instances have not yet been removed from the+-- group. You must separately verify the status of the abandoning action+-- with the listmanagedinstances method.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instanceGroupManagers.abandonInstances@.+module Network.Google.Resource.Compute.InstanceGroupManagers.AbandonInstances+    (+    -- * REST Resource+      InstanceGroupManagersAbandonInstancesResource++    -- * Creating a Request+    , instanceGroupManagersAbandonInstances+    , InstanceGroupManagersAbandonInstances++    -- * Request Lenses+    , igmaiProject+    , igmaiInstanceGroupManager+    , igmaiZone+    , igmaiPayload+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.instanceGroupManagers.abandonInstances@ method which the+-- 'InstanceGroupManagersAbandonInstances' request conforms to.+type InstanceGroupManagersAbandonInstancesResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "zones" :>+               Capture "zone" Text :>+                 "instanceGroupManagers" :>+                   Capture "instanceGroupManager" Text :>+                     "abandonInstances" :>+                       QueryParam "alt" AltJSON :>+                         ReqBody '[JSON]+                           InstanceGroupManagersAbandonInstancesRequest+                           :> Post '[JSON] Operation++-- | Schedules a group action to remove the specified instances from the+-- managed instance group. Abandoning an instance does not delete the+-- instance, but it does remove the instance from any target pools that are+-- applied by the managed instance group. This method reduces the+-- targetSize of the managed instance group by the number of instances that+-- you abandon. This operation is marked as DONE when the action is+-- scheduled even if the instances have not yet been removed from the+-- group. You must separately verify the status of the abandoning action+-- with the listmanagedinstances method.+--+-- /See:/ 'instanceGroupManagersAbandonInstances' smart constructor.+data InstanceGroupManagersAbandonInstances = InstanceGroupManagersAbandonInstances+    { _igmaiProject              :: !Text+    , _igmaiInstanceGroupManager :: !Text+    , _igmaiZone                 :: !Text+    , _igmaiPayload              :: !InstanceGroupManagersAbandonInstancesRequest+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstanceGroupManagersAbandonInstances' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'igmaiProject'+--+-- * 'igmaiInstanceGroupManager'+--+-- * 'igmaiZone'+--+-- * 'igmaiPayload'+instanceGroupManagersAbandonInstances+    :: Text -- ^ 'igmaiProject'+    -> Text -- ^ 'igmaiInstanceGroupManager'+    -> Text -- ^ 'igmaiZone'+    -> InstanceGroupManagersAbandonInstancesRequest -- ^ 'igmaiPayload'+    -> InstanceGroupManagersAbandonInstances+instanceGroupManagersAbandonInstances pIgmaiProject_ pIgmaiInstanceGroupManager_ pIgmaiZone_ pIgmaiPayload_ =+    InstanceGroupManagersAbandonInstances+    { _igmaiProject = pIgmaiProject_+    , _igmaiInstanceGroupManager = pIgmaiInstanceGroupManager_+    , _igmaiZone = pIgmaiZone_+    , _igmaiPayload = pIgmaiPayload_+    }++-- | The project ID for this request.+igmaiProject :: Lens' InstanceGroupManagersAbandonInstances Text+igmaiProject+  = lens _igmaiProject (\ s a -> s{_igmaiProject = a})++-- | The name of the managed instance group.+igmaiInstanceGroupManager :: Lens' InstanceGroupManagersAbandonInstances Text+igmaiInstanceGroupManager+  = lens _igmaiInstanceGroupManager+      (\ s a -> s{_igmaiInstanceGroupManager = a})++-- | The name of the zone where the managed instance group is located.+igmaiZone :: Lens' InstanceGroupManagersAbandonInstances Text+igmaiZone+  = lens _igmaiZone (\ s a -> s{_igmaiZone = a})++-- | Multipart request metadata.+igmaiPayload :: Lens' InstanceGroupManagersAbandonInstances InstanceGroupManagersAbandonInstancesRequest+igmaiPayload+  = lens _igmaiPayload (\ s a -> s{_igmaiPayload = a})++instance GoogleRequest+         InstanceGroupManagersAbandonInstances where+        type Rs InstanceGroupManagersAbandonInstances =+             Operation+        requestClient+          InstanceGroupManagersAbandonInstances{..}+          = go _igmaiProject _igmaiZone+              _igmaiInstanceGroupManager+              (Just AltJSON)+              _igmaiPayload+              computeService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy InstanceGroupManagersAbandonInstancesResource)+                      mempty
+ gen/Network/Google/Resource/Compute/InstanceGroupManagers/AggregatedList.hs view
@@ -0,0 +1,140 @@+{-# 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.Compute.InstanceGroupManagers.AggregatedList+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves the list of managed instance groups and groups them by zone.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instanceGroupManagers.aggregatedList@.+module Network.Google.Resource.Compute.InstanceGroupManagers.AggregatedList+    (+    -- * REST Resource+      InstanceGroupManagersAggregatedListResource++    -- * Creating a Request+    , instanceGroupManagersAggregatedList+    , InstanceGroupManagersAggregatedList++    -- * Request Lenses+    , igmalProject+    , igmalFilter+    , igmalPageToken+    , igmalMaxResults+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.instanceGroupManagers.aggregatedList@ method which the+-- 'InstanceGroupManagersAggregatedList' request conforms to.+type InstanceGroupManagersAggregatedListResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "aggregated" :>+               "instanceGroupManagers" :>+                 QueryParam "filter" Text :>+                   QueryParam "pageToken" Text :>+                     QueryParam "maxResults" (Textual Word32) :>+                       QueryParam "alt" AltJSON :>+                         Get '[JSON] InstanceGroupManagerAggregatedList++-- | Retrieves the list of managed instance groups and groups them by zone.+--+-- /See:/ 'instanceGroupManagersAggregatedList' smart constructor.+data InstanceGroupManagersAggregatedList = InstanceGroupManagersAggregatedList+    { _igmalProject    :: !Text+    , _igmalFilter     :: !(Maybe Text)+    , _igmalPageToken  :: !(Maybe Text)+    , _igmalMaxResults :: !(Textual Word32)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstanceGroupManagersAggregatedList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'igmalProject'+--+-- * 'igmalFilter'+--+-- * 'igmalPageToken'+--+-- * 'igmalMaxResults'+instanceGroupManagersAggregatedList+    :: Text -- ^ 'igmalProject'+    -> InstanceGroupManagersAggregatedList+instanceGroupManagersAggregatedList pIgmalProject_ =+    InstanceGroupManagersAggregatedList+    { _igmalProject = pIgmalProject_+    , _igmalFilter = Nothing+    , _igmalPageToken = Nothing+    , _igmalMaxResults = 500+    }++-- | The project ID for this request.+igmalProject :: Lens' InstanceGroupManagersAggregatedList Text+igmalProject+  = lens _igmalProject (\ s a -> s{_igmalProject = a})++-- | Sets a filter expression for filtering listed resources, in the form+-- filter={expression}. Your {expression} must be in the format: FIELD_NAME+-- COMPARISON_STRING LITERAL_STRING. The FIELD_NAME is the name of the+-- field you want to compare. Only atomic field types are supported+-- (string, number, boolean). The COMPARISON_STRING must be either eq+-- (equals) or ne (not equals). The LITERAL_STRING is the string value to+-- filter to. The literal value must be valid for the type of field+-- (string, number, boolean). For string fields, the literal value is+-- interpreted as a regular expression using RE2 syntax. The literal value+-- must match the entire field. For example, filter=name ne+-- example-instance.+igmalFilter :: Lens' InstanceGroupManagersAggregatedList (Maybe Text)+igmalFilter+  = lens _igmalFilter (\ s a -> s{_igmalFilter = a})++-- | Specifies a page token to use. Use this parameter if you want to list+-- the next page of results. Set pageToken to the nextPageToken returned by+-- a previous list request.+igmalPageToken :: Lens' InstanceGroupManagersAggregatedList (Maybe Text)+igmalPageToken+  = lens _igmalPageToken+      (\ s a -> s{_igmalPageToken = a})++-- | Maximum count of results to be returned.+igmalMaxResults :: Lens' InstanceGroupManagersAggregatedList Word32+igmalMaxResults+  = lens _igmalMaxResults+      (\ s a -> s{_igmalMaxResults = a})+      . _Coerce++instance GoogleRequest+         InstanceGroupManagersAggregatedList where+        type Rs InstanceGroupManagersAggregatedList =+             InstanceGroupManagerAggregatedList+        requestClient InstanceGroupManagersAggregatedList{..}+          = go _igmalProject _igmalFilter _igmalPageToken+              (Just _igmalMaxResults)+              (Just AltJSON)+              computeService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy InstanceGroupManagersAggregatedListResource)+                      mempty
+ gen/Network/Google/Resource/Compute/InstanceGroupManagers/Delete.hs view
@@ -0,0 +1,114 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Compute.InstanceGroupManagers.Delete+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes the specified managed instance group and all of the instances in+-- that group.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instanceGroupManagers.delete@.+module Network.Google.Resource.Compute.InstanceGroupManagers.Delete+    (+    -- * REST Resource+      InstanceGroupManagersDeleteResource++    -- * Creating a Request+    , instanceGroupManagersDelete+    , InstanceGroupManagersDelete++    -- * Request Lenses+    , igmdProject+    , igmdInstanceGroupManager+    , igmdZone+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.instanceGroupManagers.delete@ method which the+-- 'InstanceGroupManagersDelete' request conforms to.+type InstanceGroupManagersDeleteResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "zones" :>+               Capture "zone" Text :>+                 "instanceGroupManagers" :>+                   Capture "instanceGroupManager" Text :>+                     QueryParam "alt" AltJSON :> Delete '[JSON] Operation++-- | Deletes the specified managed instance group and all of the instances in+-- that group.+--+-- /See:/ 'instanceGroupManagersDelete' smart constructor.+data InstanceGroupManagersDelete = InstanceGroupManagersDelete+    { _igmdProject              :: !Text+    , _igmdInstanceGroupManager :: !Text+    , _igmdZone                 :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstanceGroupManagersDelete' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'igmdProject'+--+-- * 'igmdInstanceGroupManager'+--+-- * 'igmdZone'+instanceGroupManagersDelete+    :: Text -- ^ 'igmdProject'+    -> Text -- ^ 'igmdInstanceGroupManager'+    -> Text -- ^ 'igmdZone'+    -> InstanceGroupManagersDelete+instanceGroupManagersDelete pIgmdProject_ pIgmdInstanceGroupManager_ pIgmdZone_ =+    InstanceGroupManagersDelete+    { _igmdProject = pIgmdProject_+    , _igmdInstanceGroupManager = pIgmdInstanceGroupManager_+    , _igmdZone = pIgmdZone_+    }++-- | The project ID for this request.+igmdProject :: Lens' InstanceGroupManagersDelete Text+igmdProject+  = lens _igmdProject (\ s a -> s{_igmdProject = a})++-- | The name of the managed instance group to delete.+igmdInstanceGroupManager :: Lens' InstanceGroupManagersDelete Text+igmdInstanceGroupManager+  = lens _igmdInstanceGroupManager+      (\ s a -> s{_igmdInstanceGroupManager = a})++-- | The name of the zone where the managed instance group is located.+igmdZone :: Lens' InstanceGroupManagersDelete Text+igmdZone = lens _igmdZone (\ s a -> s{_igmdZone = a})++instance GoogleRequest InstanceGroupManagersDelete+         where+        type Rs InstanceGroupManagersDelete = Operation+        requestClient InstanceGroupManagersDelete{..}+          = go _igmdProject _igmdZone _igmdInstanceGroupManager+              (Just AltJSON)+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy InstanceGroupManagersDeleteResource)+                      mempty
+ gen/Network/Google/Resource/Compute/InstanceGroupManagers/DeleteInstances.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.Compute.InstanceGroupManagers.DeleteInstances+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Schedules a group action to delete the specified instances in the+-- managed instance group. The instances are also removed from any target+-- pools of which they were a member. This method reduces the targetSize of+-- the managed instance group by the number of instances that you delete.+-- This operation is marked as DONE when the action is scheduled even if+-- the instances are still being deleted. You must separately verify the+-- status of the deleting action with the listmanagedinstances method.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instanceGroupManagers.deleteInstances@.+module Network.Google.Resource.Compute.InstanceGroupManagers.DeleteInstances+    (+    -- * REST Resource+      InstanceGroupManagersDeleteInstancesResource++    -- * Creating a Request+    , instanceGroupManagersDeleteInstances+    , InstanceGroupManagersDeleteInstances++    -- * Request Lenses+    , igmdiProject+    , igmdiInstanceGroupManager+    , igmdiZone+    , igmdiPayload+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.instanceGroupManagers.deleteInstances@ method which the+-- 'InstanceGroupManagersDeleteInstances' request conforms to.+type InstanceGroupManagersDeleteInstancesResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "zones" :>+               Capture "zone" Text :>+                 "instanceGroupManagers" :>+                   Capture "instanceGroupManager" Text :>+                     "deleteInstances" :>+                       QueryParam "alt" AltJSON :>+                         ReqBody '[JSON]+                           InstanceGroupManagersDeleteInstancesRequest+                           :> Post '[JSON] Operation++-- | Schedules a group action to delete the specified instances in the+-- managed instance group. The instances are also removed from any target+-- pools of which they were a member. This method reduces the targetSize of+-- the managed instance group by the number of instances that you delete.+-- This operation is marked as DONE when the action is scheduled even if+-- the instances are still being deleted. You must separately verify the+-- status of the deleting action with the listmanagedinstances method.+--+-- /See:/ 'instanceGroupManagersDeleteInstances' smart constructor.+data InstanceGroupManagersDeleteInstances = InstanceGroupManagersDeleteInstances+    { _igmdiProject              :: !Text+    , _igmdiInstanceGroupManager :: !Text+    , _igmdiZone                 :: !Text+    , _igmdiPayload              :: !InstanceGroupManagersDeleteInstancesRequest+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstanceGroupManagersDeleteInstances' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'igmdiProject'+--+-- * 'igmdiInstanceGroupManager'+--+-- * 'igmdiZone'+--+-- * 'igmdiPayload'+instanceGroupManagersDeleteInstances+    :: Text -- ^ 'igmdiProject'+    -> Text -- ^ 'igmdiInstanceGroupManager'+    -> Text -- ^ 'igmdiZone'+    -> InstanceGroupManagersDeleteInstancesRequest -- ^ 'igmdiPayload'+    -> InstanceGroupManagersDeleteInstances+instanceGroupManagersDeleteInstances pIgmdiProject_ pIgmdiInstanceGroupManager_ pIgmdiZone_ pIgmdiPayload_ =+    InstanceGroupManagersDeleteInstances+    { _igmdiProject = pIgmdiProject_+    , _igmdiInstanceGroupManager = pIgmdiInstanceGroupManager_+    , _igmdiZone = pIgmdiZone_+    , _igmdiPayload = pIgmdiPayload_+    }++-- | The project ID for this request.+igmdiProject :: Lens' InstanceGroupManagersDeleteInstances Text+igmdiProject+  = lens _igmdiProject (\ s a -> s{_igmdiProject = a})++-- | The name of the managed instance group.+igmdiInstanceGroupManager :: Lens' InstanceGroupManagersDeleteInstances Text+igmdiInstanceGroupManager+  = lens _igmdiInstanceGroupManager+      (\ s a -> s{_igmdiInstanceGroupManager = a})++-- | The name of the zone where the managed instance group is located.+igmdiZone :: Lens' InstanceGroupManagersDeleteInstances Text+igmdiZone+  = lens _igmdiZone (\ s a -> s{_igmdiZone = a})++-- | Multipart request metadata.+igmdiPayload :: Lens' InstanceGroupManagersDeleteInstances InstanceGroupManagersDeleteInstancesRequest+igmdiPayload+  = lens _igmdiPayload (\ s a -> s{_igmdiPayload = a})++instance GoogleRequest+         InstanceGroupManagersDeleteInstances where+        type Rs InstanceGroupManagersDeleteInstances =+             Operation+        requestClient+          InstanceGroupManagersDeleteInstances{..}+          = go _igmdiProject _igmdiZone+              _igmdiInstanceGroupManager+              (Just AltJSON)+              _igmdiPayload+              computeService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy InstanceGroupManagersDeleteInstancesResource)+                      mempty
+ gen/Network/Google/Resource/Compute/InstanceGroupManagers/Get.hs view
@@ -0,0 +1,113 @@+{-# 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.Compute.InstanceGroupManagers.Get+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns all of the details about the specified managed instance group.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instanceGroupManagers.get@.+module Network.Google.Resource.Compute.InstanceGroupManagers.Get+    (+    -- * REST Resource+      InstanceGroupManagersGetResource++    -- * Creating a Request+    , instanceGroupManagersGet+    , InstanceGroupManagersGet++    -- * Request Lenses+    , igmgProject+    , igmgInstanceGroupManager+    , igmgZone+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.instanceGroupManagers.get@ method which the+-- 'InstanceGroupManagersGet' request conforms to.+type InstanceGroupManagersGetResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "zones" :>+               Capture "zone" Text :>+                 "instanceGroupManagers" :>+                   Capture "instanceGroupManager" Text :>+                     QueryParam "alt" AltJSON :>+                       Get '[JSON] InstanceGroupManager++-- | Returns all of the details about the specified managed instance group.+--+-- /See:/ 'instanceGroupManagersGet' smart constructor.+data InstanceGroupManagersGet = InstanceGroupManagersGet+    { _igmgProject              :: !Text+    , _igmgInstanceGroupManager :: !Text+    , _igmgZone                 :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstanceGroupManagersGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'igmgProject'+--+-- * 'igmgInstanceGroupManager'+--+-- * 'igmgZone'+instanceGroupManagersGet+    :: Text -- ^ 'igmgProject'+    -> Text -- ^ 'igmgInstanceGroupManager'+    -> Text -- ^ 'igmgZone'+    -> InstanceGroupManagersGet+instanceGroupManagersGet pIgmgProject_ pIgmgInstanceGroupManager_ pIgmgZone_ =+    InstanceGroupManagersGet+    { _igmgProject = pIgmgProject_+    , _igmgInstanceGroupManager = pIgmgInstanceGroupManager_+    , _igmgZone = pIgmgZone_+    }++-- | The project ID for this request.+igmgProject :: Lens' InstanceGroupManagersGet Text+igmgProject+  = lens _igmgProject (\ s a -> s{_igmgProject = a})++-- | The name of the managed instance group.+igmgInstanceGroupManager :: Lens' InstanceGroupManagersGet Text+igmgInstanceGroupManager+  = lens _igmgInstanceGroupManager+      (\ s a -> s{_igmgInstanceGroupManager = a})++-- | The name of the zone where the managed instance group is located.+igmgZone :: Lens' InstanceGroupManagersGet Text+igmgZone = lens _igmgZone (\ s a -> s{_igmgZone = a})++instance GoogleRequest InstanceGroupManagersGet where+        type Rs InstanceGroupManagersGet =+             InstanceGroupManager+        requestClient InstanceGroupManagersGet{..}+          = go _igmgProject _igmgZone _igmgInstanceGroupManager+              (Just AltJSON)+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy InstanceGroupManagersGetResource)+                      mempty
+ gen/Network/Google/Resource/Compute/InstanceGroupManagers/Insert.hs view
@@ -0,0 +1,125 @@+{-# 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.Compute.InstanceGroupManagers.Insert+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a managed instance group using the information that you specify+-- in the request. After the group is created, it schedules an action to+-- create instances in the group using the specified instance template.+-- This operation is marked as DONE when the group is created even if the+-- instances in the group have not yet been created. You must separately+-- verify the status of the individual instances with the+-- listmanagedinstances method.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instanceGroupManagers.insert@.+module Network.Google.Resource.Compute.InstanceGroupManagers.Insert+    (+    -- * REST Resource+      InstanceGroupManagersInsertResource++    -- * Creating a Request+    , instanceGroupManagersInsert+    , InstanceGroupManagersInsert++    -- * Request Lenses+    , igmiProject+    , igmiZone+    , igmiPayload+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.instanceGroupManagers.insert@ method which the+-- 'InstanceGroupManagersInsert' request conforms to.+type InstanceGroupManagersInsertResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "zones" :>+               Capture "zone" Text :>+                 "instanceGroupManagers" :>+                   QueryParam "alt" AltJSON :>+                     ReqBody '[JSON] InstanceGroupManager :>+                       Post '[JSON] Operation++-- | Creates a managed instance group using the information that you specify+-- in the request. After the group is created, it schedules an action to+-- create instances in the group using the specified instance template.+-- This operation is marked as DONE when the group is created even if the+-- instances in the group have not yet been created. You must separately+-- verify the status of the individual instances with the+-- listmanagedinstances method.+--+-- /See:/ 'instanceGroupManagersInsert' smart constructor.+data InstanceGroupManagersInsert = InstanceGroupManagersInsert+    { _igmiProject :: !Text+    , _igmiZone    :: !Text+    , _igmiPayload :: !InstanceGroupManager+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstanceGroupManagersInsert' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'igmiProject'+--+-- * 'igmiZone'+--+-- * 'igmiPayload'+instanceGroupManagersInsert+    :: Text -- ^ 'igmiProject'+    -> Text -- ^ 'igmiZone'+    -> InstanceGroupManager -- ^ 'igmiPayload'+    -> InstanceGroupManagersInsert+instanceGroupManagersInsert pIgmiProject_ pIgmiZone_ pIgmiPayload_ =+    InstanceGroupManagersInsert+    { _igmiProject = pIgmiProject_+    , _igmiZone = pIgmiZone_+    , _igmiPayload = pIgmiPayload_+    }++-- | The project ID for this request.+igmiProject :: Lens' InstanceGroupManagersInsert Text+igmiProject+  = lens _igmiProject (\ s a -> s{_igmiProject = a})++-- | The name of the zone where you want to create the managed instance+-- group.+igmiZone :: Lens' InstanceGroupManagersInsert Text+igmiZone = lens _igmiZone (\ s a -> s{_igmiZone = a})++-- | Multipart request metadata.+igmiPayload :: Lens' InstanceGroupManagersInsert InstanceGroupManager+igmiPayload+  = lens _igmiPayload (\ s a -> s{_igmiPayload = a})++instance GoogleRequest InstanceGroupManagersInsert+         where+        type Rs InstanceGroupManagersInsert = Operation+        requestClient InstanceGroupManagersInsert{..}+          = go _igmiProject _igmiZone (Just AltJSON)+              _igmiPayload+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy InstanceGroupManagersInsertResource)+                      mempty
+ gen/Network/Google/Resource/Compute/InstanceGroupManagers/List.hs view
@@ -0,0 +1,153 @@+{-# 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.Compute.InstanceGroupManagers.List+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves a list of managed instance groups that are contained within+-- the specified project and zone.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instanceGroupManagers.list@.+module Network.Google.Resource.Compute.InstanceGroupManagers.List+    (+    -- * REST Resource+      InstanceGroupManagersListResource++    -- * Creating a Request+    , instanceGroupManagersList+    , InstanceGroupManagersList++    -- * Request Lenses+    , igmlProject+    , igmlZone+    , igmlFilter+    , igmlPageToken+    , igmlMaxResults+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.instanceGroupManagers.list@ method which the+-- 'InstanceGroupManagersList' request conforms to.+type InstanceGroupManagersListResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "zones" :>+               Capture "zone" Text :>+                 "instanceGroupManagers" :>+                   QueryParam "filter" Text :>+                     QueryParam "pageToken" Text :>+                       QueryParam "maxResults" (Textual Word32) :>+                         QueryParam "alt" AltJSON :>+                           Get '[JSON] InstanceGroupManagerList++-- | Retrieves a list of managed instance groups that are contained within+-- the specified project and zone.+--+-- /See:/ 'instanceGroupManagersList' smart constructor.+data InstanceGroupManagersList = InstanceGroupManagersList+    { _igmlProject    :: !Text+    , _igmlZone       :: !Text+    , _igmlFilter     :: !(Maybe Text)+    , _igmlPageToken  :: !(Maybe Text)+    , _igmlMaxResults :: !(Textual Word32)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstanceGroupManagersList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'igmlProject'+--+-- * 'igmlZone'+--+-- * 'igmlFilter'+--+-- * 'igmlPageToken'+--+-- * 'igmlMaxResults'+instanceGroupManagersList+    :: Text -- ^ 'igmlProject'+    -> Text -- ^ 'igmlZone'+    -> InstanceGroupManagersList+instanceGroupManagersList pIgmlProject_ pIgmlZone_ =+    InstanceGroupManagersList+    { _igmlProject = pIgmlProject_+    , _igmlZone = pIgmlZone_+    , _igmlFilter = Nothing+    , _igmlPageToken = Nothing+    , _igmlMaxResults = 500+    }++-- | The project ID for this request.+igmlProject :: Lens' InstanceGroupManagersList Text+igmlProject+  = lens _igmlProject (\ s a -> s{_igmlProject = a})++-- | The name of the zone where the managed instance group is located.+igmlZone :: Lens' InstanceGroupManagersList Text+igmlZone = lens _igmlZone (\ s a -> s{_igmlZone = a})++-- | Sets a filter expression for filtering listed resources, in the form+-- filter={expression}. Your {expression} must be in the format: FIELD_NAME+-- COMPARISON_STRING LITERAL_STRING. The FIELD_NAME is the name of the+-- field you want to compare. Only atomic field types are supported+-- (string, number, boolean). The COMPARISON_STRING must be either eq+-- (equals) or ne (not equals). The LITERAL_STRING is the string value to+-- filter to. The literal value must be valid for the type of field+-- (string, number, boolean). For string fields, the literal value is+-- interpreted as a regular expression using RE2 syntax. The literal value+-- must match the entire field. For example, filter=name ne+-- example-instance.+igmlFilter :: Lens' InstanceGroupManagersList (Maybe Text)+igmlFilter+  = lens _igmlFilter (\ s a -> s{_igmlFilter = a})++-- | Specifies a page token to use. Use this parameter if you want to list+-- the next page of results. Set pageToken to the nextPageToken returned by+-- a previous list request.+igmlPageToken :: Lens' InstanceGroupManagersList (Maybe Text)+igmlPageToken+  = lens _igmlPageToken+      (\ s a -> s{_igmlPageToken = a})++-- | Maximum count of results to be returned.+igmlMaxResults :: Lens' InstanceGroupManagersList Word32+igmlMaxResults+  = lens _igmlMaxResults+      (\ s a -> s{_igmlMaxResults = a})+      . _Coerce++instance GoogleRequest InstanceGroupManagersList+         where+        type Rs InstanceGroupManagersList =+             InstanceGroupManagerList+        requestClient InstanceGroupManagersList{..}+          = go _igmlProject _igmlZone _igmlFilter+              _igmlPageToken+              (Just _igmlMaxResults)+              (Just AltJSON)+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy InstanceGroupManagersListResource)+                      mempty
+ gen/Network/Google/Resource/Compute/InstanceGroupManagers/ListManagedInstances.hs view
@@ -0,0 +1,133 @@+{-# 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.Compute.InstanceGroupManagers.ListManagedInstances+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists all of the instances in the managed instance group. Each instance+-- in the list has a currentAction, which indicates the action that the+-- managed instance group is performing on the instance. For example, if+-- the group is still creating an instance, the currentAction is CREATING.+-- If a previous action failed, the list displays the errors for that+-- failed action.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instanceGroupManagers.listManagedInstances@.+module Network.Google.Resource.Compute.InstanceGroupManagers.ListManagedInstances+    (+    -- * REST Resource+      InstanceGroupManagersListManagedInstancesResource++    -- * Creating a Request+    , instanceGroupManagersListManagedInstances+    , InstanceGroupManagersListManagedInstances++    -- * Request Lenses+    , igmlmiProject+    , igmlmiInstanceGroupManager+    , igmlmiZone+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.instanceGroupManagers.listManagedInstances@ method which the+-- 'InstanceGroupManagersListManagedInstances' request conforms to.+type InstanceGroupManagersListManagedInstancesResource+     =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "zones" :>+               Capture "zone" Text :>+                 "instanceGroupManagers" :>+                   Capture "instanceGroupManager" Text :>+                     "listManagedInstances" :>+                       QueryParam "alt" AltJSON :>+                         Post '[JSON]+                           InstanceGroupManagersListManagedInstancesResponse++-- | Lists all of the instances in the managed instance group. Each instance+-- in the list has a currentAction, which indicates the action that the+-- managed instance group is performing on the instance. For example, if+-- the group is still creating an instance, the currentAction is CREATING.+-- If a previous action failed, the list displays the errors for that+-- failed action.+--+-- /See:/ 'instanceGroupManagersListManagedInstances' smart constructor.+data InstanceGroupManagersListManagedInstances = InstanceGroupManagersListManagedInstances+    { _igmlmiProject              :: !Text+    , _igmlmiInstanceGroupManager :: !Text+    , _igmlmiZone                 :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstanceGroupManagersListManagedInstances' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'igmlmiProject'+--+-- * 'igmlmiInstanceGroupManager'+--+-- * 'igmlmiZone'+instanceGroupManagersListManagedInstances+    :: Text -- ^ 'igmlmiProject'+    -> Text -- ^ 'igmlmiInstanceGroupManager'+    -> Text -- ^ 'igmlmiZone'+    -> InstanceGroupManagersListManagedInstances+instanceGroupManagersListManagedInstances pIgmlmiProject_ pIgmlmiInstanceGroupManager_ pIgmlmiZone_ =+    InstanceGroupManagersListManagedInstances+    { _igmlmiProject = pIgmlmiProject_+    , _igmlmiInstanceGroupManager = pIgmlmiInstanceGroupManager_+    , _igmlmiZone = pIgmlmiZone_+    }++-- | The project ID for this request.+igmlmiProject :: Lens' InstanceGroupManagersListManagedInstances Text+igmlmiProject+  = lens _igmlmiProject+      (\ s a -> s{_igmlmiProject = a})++-- | The name of the managed instance group.+igmlmiInstanceGroupManager :: Lens' InstanceGroupManagersListManagedInstances Text+igmlmiInstanceGroupManager+  = lens _igmlmiInstanceGroupManager+      (\ s a -> s{_igmlmiInstanceGroupManager = a})++-- | The name of the zone where the managed instance group is located.+igmlmiZone :: Lens' InstanceGroupManagersListManagedInstances Text+igmlmiZone+  = lens _igmlmiZone (\ s a -> s{_igmlmiZone = a})++instance GoogleRequest+         InstanceGroupManagersListManagedInstances where+        type Rs InstanceGroupManagersListManagedInstances =+             InstanceGroupManagersListManagedInstancesResponse+        requestClient+          InstanceGroupManagersListManagedInstances{..}+          = go _igmlmiProject _igmlmiZone+              _igmlmiInstanceGroupManager+              (Just AltJSON)+              computeService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy+                           InstanceGroupManagersListManagedInstancesResource)+                      mempty
+ gen/Network/Google/Resource/Compute/InstanceGroupManagers/RecreateInstances.hs view
@@ -0,0 +1,143 @@+{-# 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.Compute.InstanceGroupManagers.RecreateInstances+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Schedules a group action to recreate the specified instances in the+-- managed instance group. The instances are deleted and recreated using+-- the current instance template for the managed instance group. This+-- operation is marked as DONE when the action is scheduled even if the+-- instances have not yet been recreated. You must separately verify the+-- status of the recreating action with the listmanagedinstances method.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instanceGroupManagers.recreateInstances@.+module Network.Google.Resource.Compute.InstanceGroupManagers.RecreateInstances+    (+    -- * REST Resource+      InstanceGroupManagersRecreateInstancesResource++    -- * Creating a Request+    , instanceGroupManagersRecreateInstances+    , InstanceGroupManagersRecreateInstances++    -- * Request Lenses+    , igmriProject+    , igmriInstanceGroupManager+    , igmriZone+    , igmriPayload+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.instanceGroupManagers.recreateInstances@ method which the+-- 'InstanceGroupManagersRecreateInstances' request conforms to.+type InstanceGroupManagersRecreateInstancesResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "zones" :>+               Capture "zone" Text :>+                 "instanceGroupManagers" :>+                   Capture "instanceGroupManager" Text :>+                     "recreateInstances" :>+                       QueryParam "alt" AltJSON :>+                         ReqBody '[JSON]+                           InstanceGroupManagersRecreateInstancesRequest+                           :> Post '[JSON] Operation++-- | Schedules a group action to recreate the specified instances in the+-- managed instance group. The instances are deleted and recreated using+-- the current instance template for the managed instance group. This+-- operation is marked as DONE when the action is scheduled even if the+-- instances have not yet been recreated. You must separately verify the+-- status of the recreating action with the listmanagedinstances method.+--+-- /See:/ 'instanceGroupManagersRecreateInstances' smart constructor.+data InstanceGroupManagersRecreateInstances = InstanceGroupManagersRecreateInstances+    { _igmriProject              :: !Text+    , _igmriInstanceGroupManager :: !Text+    , _igmriZone                 :: !Text+    , _igmriPayload              :: !InstanceGroupManagersRecreateInstancesRequest+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstanceGroupManagersRecreateInstances' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'igmriProject'+--+-- * 'igmriInstanceGroupManager'+--+-- * 'igmriZone'+--+-- * 'igmriPayload'+instanceGroupManagersRecreateInstances+    :: Text -- ^ 'igmriProject'+    -> Text -- ^ 'igmriInstanceGroupManager'+    -> Text -- ^ 'igmriZone'+    -> InstanceGroupManagersRecreateInstancesRequest -- ^ 'igmriPayload'+    -> InstanceGroupManagersRecreateInstances+instanceGroupManagersRecreateInstances pIgmriProject_ pIgmriInstanceGroupManager_ pIgmriZone_ pIgmriPayload_ =+    InstanceGroupManagersRecreateInstances+    { _igmriProject = pIgmriProject_+    , _igmriInstanceGroupManager = pIgmriInstanceGroupManager_+    , _igmriZone = pIgmriZone_+    , _igmriPayload = pIgmriPayload_+    }++-- | The project ID for this request.+igmriProject :: Lens' InstanceGroupManagersRecreateInstances Text+igmriProject+  = lens _igmriProject (\ s a -> s{_igmriProject = a})++-- | The name of the managed instance group.+igmriInstanceGroupManager :: Lens' InstanceGroupManagersRecreateInstances Text+igmriInstanceGroupManager+  = lens _igmriInstanceGroupManager+      (\ s a -> s{_igmriInstanceGroupManager = a})++-- | The name of the zone where the managed instance group is located.+igmriZone :: Lens' InstanceGroupManagersRecreateInstances Text+igmriZone+  = lens _igmriZone (\ s a -> s{_igmriZone = a})++-- | Multipart request metadata.+igmriPayload :: Lens' InstanceGroupManagersRecreateInstances InstanceGroupManagersRecreateInstancesRequest+igmriPayload+  = lens _igmriPayload (\ s a -> s{_igmriPayload = a})++instance GoogleRequest+         InstanceGroupManagersRecreateInstances where+        type Rs InstanceGroupManagersRecreateInstances =+             Operation+        requestClient+          InstanceGroupManagersRecreateInstances{..}+          = go _igmriProject _igmriZone+              _igmriInstanceGroupManager+              (Just AltJSON)+              _igmriPayload+              computeService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy InstanceGroupManagersRecreateInstancesResource)+                      mempty
+ gen/Network/Google/Resource/Compute/InstanceGroupManagers/Resize.hs view
@@ -0,0 +1,142 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Compute.InstanceGroupManagers.Resize+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Resizes the managed instance group. If you increase the size, the group+-- creates new instances using the current instance template. If you+-- decrease the size, the group deletes instances. The resize operation is+-- marked DONE when the resize actions are scheduled even if the group has+-- not yet added or deleted any instances. You must separately verify the+-- status of the creating or deleting actions with the listmanagedinstances+-- method.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instanceGroupManagers.resize@.+module Network.Google.Resource.Compute.InstanceGroupManagers.Resize+    (+    -- * REST Resource+      InstanceGroupManagersResizeResource++    -- * Creating a Request+    , instanceGroupManagersResize+    , InstanceGroupManagersResize++    -- * Request Lenses+    , igmrProject+    , igmrSize+    , igmrInstanceGroupManager+    , igmrZone+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.instanceGroupManagers.resize@ method which the+-- 'InstanceGroupManagersResize' request conforms to.+type InstanceGroupManagersResizeResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "zones" :>+               Capture "zone" Text :>+                 "instanceGroupManagers" :>+                   Capture "instanceGroupManager" Text :>+                     "resize" :>+                       QueryParam "size" (Textual Int32) :>+                         QueryParam "alt" AltJSON :> Post '[JSON] Operation++-- | Resizes the managed instance group. If you increase the size, the group+-- creates new instances using the current instance template. If you+-- decrease the size, the group deletes instances. The resize operation is+-- marked DONE when the resize actions are scheduled even if the group has+-- not yet added or deleted any instances. You must separately verify the+-- status of the creating or deleting actions with the listmanagedinstances+-- method.+--+-- /See:/ 'instanceGroupManagersResize' smart constructor.+data InstanceGroupManagersResize = InstanceGroupManagersResize+    { _igmrProject              :: !Text+    , _igmrSize                 :: !(Textual Int32)+    , _igmrInstanceGroupManager :: !Text+    , _igmrZone                 :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstanceGroupManagersResize' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'igmrProject'+--+-- * 'igmrSize'+--+-- * 'igmrInstanceGroupManager'+--+-- * 'igmrZone'+instanceGroupManagersResize+    :: Text -- ^ 'igmrProject'+    -> Int32 -- ^ 'igmrSize'+    -> Text -- ^ 'igmrInstanceGroupManager'+    -> Text -- ^ 'igmrZone'+    -> InstanceGroupManagersResize+instanceGroupManagersResize pIgmrProject_ pIgmrSize_ pIgmrInstanceGroupManager_ pIgmrZone_ =+    InstanceGroupManagersResize+    { _igmrProject = pIgmrProject_+    , _igmrSize = _Coerce # pIgmrSize_+    , _igmrInstanceGroupManager = pIgmrInstanceGroupManager_+    , _igmrZone = pIgmrZone_+    }++-- | The project ID for this request.+igmrProject :: Lens' InstanceGroupManagersResize Text+igmrProject+  = lens _igmrProject (\ s a -> s{_igmrProject = a})++-- | The number of running instances that the managed instance group should+-- maintain at any given time. The group automatically adds or removes+-- instances to maintain the number of instances specified by this+-- parameter.+igmrSize :: Lens' InstanceGroupManagersResize Int32+igmrSize+  = lens _igmrSize (\ s a -> s{_igmrSize = a}) .+      _Coerce++-- | The name of the managed instance group.+igmrInstanceGroupManager :: Lens' InstanceGroupManagersResize Text+igmrInstanceGroupManager+  = lens _igmrInstanceGroupManager+      (\ s a -> s{_igmrInstanceGroupManager = a})++-- | The name of the zone where the managed instance group is located.+igmrZone :: Lens' InstanceGroupManagersResize Text+igmrZone = lens _igmrZone (\ s a -> s{_igmrZone = a})++instance GoogleRequest InstanceGroupManagersResize+         where+        type Rs InstanceGroupManagersResize = Operation+        requestClient InstanceGroupManagersResize{..}+          = go _igmrProject _igmrZone _igmrInstanceGroupManager+              (Just _igmrSize)+              (Just AltJSON)+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy InstanceGroupManagersResizeResource)+                      mempty
+ gen/Network/Google/Resource/Compute/InstanceGroupManagers/SetInstanceTemplate.hs view
@@ -0,0 +1,141 @@+{-# 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.Compute.InstanceGroupManagers.SetInstanceTemplate+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Specifies the instance template to use when creating new instances in+-- this group. The templates for existing instances in the group do not+-- change unless you recreate them.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instanceGroupManagers.setInstanceTemplate@.+module Network.Google.Resource.Compute.InstanceGroupManagers.SetInstanceTemplate+    (+    -- * REST Resource+      InstanceGroupManagersSetInstanceTemplateResource++    -- * Creating a Request+    , instanceGroupManagersSetInstanceTemplate+    , InstanceGroupManagersSetInstanceTemplate++    -- * Request Lenses+    , igmsitProject+    , igmsitInstanceGroupManager+    , igmsitZone+    , igmsitPayload+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.instanceGroupManagers.setInstanceTemplate@ method which the+-- 'InstanceGroupManagersSetInstanceTemplate' request conforms to.+type InstanceGroupManagersSetInstanceTemplateResource+     =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "zones" :>+               Capture "zone" Text :>+                 "instanceGroupManagers" :>+                   Capture "instanceGroupManager" Text :>+                     "setInstanceTemplate" :>+                       QueryParam "alt" AltJSON :>+                         ReqBody '[JSON]+                           InstanceGroupManagersSetInstanceTemplateRequest+                           :> Post '[JSON] Operation++-- | Specifies the instance template to use when creating new instances in+-- this group. The templates for existing instances in the group do not+-- change unless you recreate them.+--+-- /See:/ 'instanceGroupManagersSetInstanceTemplate' smart constructor.+data InstanceGroupManagersSetInstanceTemplate = InstanceGroupManagersSetInstanceTemplate+    { _igmsitProject              :: !Text+    , _igmsitInstanceGroupManager :: !Text+    , _igmsitZone                 :: !Text+    , _igmsitPayload              :: !InstanceGroupManagersSetInstanceTemplateRequest+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstanceGroupManagersSetInstanceTemplate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'igmsitProject'+--+-- * 'igmsitInstanceGroupManager'+--+-- * 'igmsitZone'+--+-- * 'igmsitPayload'+instanceGroupManagersSetInstanceTemplate+    :: Text -- ^ 'igmsitProject'+    -> Text -- ^ 'igmsitInstanceGroupManager'+    -> Text -- ^ 'igmsitZone'+    -> InstanceGroupManagersSetInstanceTemplateRequest -- ^ 'igmsitPayload'+    -> InstanceGroupManagersSetInstanceTemplate+instanceGroupManagersSetInstanceTemplate pIgmsitProject_ pIgmsitInstanceGroupManager_ pIgmsitZone_ pIgmsitPayload_ =+    InstanceGroupManagersSetInstanceTemplate+    { _igmsitProject = pIgmsitProject_+    , _igmsitInstanceGroupManager = pIgmsitInstanceGroupManager_+    , _igmsitZone = pIgmsitZone_+    , _igmsitPayload = pIgmsitPayload_+    }++-- | The project ID for this request.+igmsitProject :: Lens' InstanceGroupManagersSetInstanceTemplate Text+igmsitProject+  = lens _igmsitProject+      (\ s a -> s{_igmsitProject = a})++-- | The name of the managed instance group.+igmsitInstanceGroupManager :: Lens' InstanceGroupManagersSetInstanceTemplate Text+igmsitInstanceGroupManager+  = lens _igmsitInstanceGroupManager+      (\ s a -> s{_igmsitInstanceGroupManager = a})++-- | The name of the zone where the managed instance group is located.+igmsitZone :: Lens' InstanceGroupManagersSetInstanceTemplate Text+igmsitZone+  = lens _igmsitZone (\ s a -> s{_igmsitZone = a})++-- | Multipart request metadata.+igmsitPayload :: Lens' InstanceGroupManagersSetInstanceTemplate InstanceGroupManagersSetInstanceTemplateRequest+igmsitPayload+  = lens _igmsitPayload+      (\ s a -> s{_igmsitPayload = a})++instance GoogleRequest+         InstanceGroupManagersSetInstanceTemplate where+        type Rs InstanceGroupManagersSetInstanceTemplate =+             Operation+        requestClient+          InstanceGroupManagersSetInstanceTemplate{..}+          = go _igmsitProject _igmsitZone+              _igmsitInstanceGroupManager+              (Just AltJSON)+              _igmsitPayload+              computeService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy+                           InstanceGroupManagersSetInstanceTemplateResource)+                      mempty
+ gen/Network/Google/Resource/Compute/InstanceGroupManagers/SetTargetPools.hs view
@@ -0,0 +1,144 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Compute.InstanceGroupManagers.SetTargetPools+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Modifies the target pools to which all instances in this managed+-- instance group are assigned. The target pools automatically apply to all+-- of the instances in the managed instance group. This operation is marked+-- DONE when you make the request even if the instances have not yet been+-- added to their target pools. The change might take some time to apply to+-- all of the instances in the group depending on the size of the group.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instanceGroupManagers.setTargetPools@.+module Network.Google.Resource.Compute.InstanceGroupManagers.SetTargetPools+    (+    -- * REST Resource+      InstanceGroupManagersSetTargetPoolsResource++    -- * Creating a Request+    , instanceGroupManagersSetTargetPools+    , InstanceGroupManagersSetTargetPools++    -- * Request Lenses+    , igmstpProject+    , igmstpInstanceGroupManager+    , igmstpZone+    , igmstpPayload+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.instanceGroupManagers.setTargetPools@ method which the+-- 'InstanceGroupManagersSetTargetPools' request conforms to.+type InstanceGroupManagersSetTargetPoolsResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "zones" :>+               Capture "zone" Text :>+                 "instanceGroupManagers" :>+                   Capture "instanceGroupManager" Text :>+                     "setTargetPools" :>+                       QueryParam "alt" AltJSON :>+                         ReqBody '[JSON]+                           InstanceGroupManagersSetTargetPoolsRequest+                           :> Post '[JSON] Operation++-- | Modifies the target pools to which all instances in this managed+-- instance group are assigned. The target pools automatically apply to all+-- of the instances in the managed instance group. This operation is marked+-- DONE when you make the request even if the instances have not yet been+-- added to their target pools. The change might take some time to apply to+-- all of the instances in the group depending on the size of the group.+--+-- /See:/ 'instanceGroupManagersSetTargetPools' smart constructor.+data InstanceGroupManagersSetTargetPools = InstanceGroupManagersSetTargetPools+    { _igmstpProject              :: !Text+    , _igmstpInstanceGroupManager :: !Text+    , _igmstpZone                 :: !Text+    , _igmstpPayload              :: !InstanceGroupManagersSetTargetPoolsRequest+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstanceGroupManagersSetTargetPools' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'igmstpProject'+--+-- * 'igmstpInstanceGroupManager'+--+-- * 'igmstpZone'+--+-- * 'igmstpPayload'+instanceGroupManagersSetTargetPools+    :: Text -- ^ 'igmstpProject'+    -> Text -- ^ 'igmstpInstanceGroupManager'+    -> Text -- ^ 'igmstpZone'+    -> InstanceGroupManagersSetTargetPoolsRequest -- ^ 'igmstpPayload'+    -> InstanceGroupManagersSetTargetPools+instanceGroupManagersSetTargetPools pIgmstpProject_ pIgmstpInstanceGroupManager_ pIgmstpZone_ pIgmstpPayload_ =+    InstanceGroupManagersSetTargetPools+    { _igmstpProject = pIgmstpProject_+    , _igmstpInstanceGroupManager = pIgmstpInstanceGroupManager_+    , _igmstpZone = pIgmstpZone_+    , _igmstpPayload = pIgmstpPayload_+    }++-- | The project ID for this request.+igmstpProject :: Lens' InstanceGroupManagersSetTargetPools Text+igmstpProject+  = lens _igmstpProject+      (\ s a -> s{_igmstpProject = a})++-- | The name of the managed instance group.+igmstpInstanceGroupManager :: Lens' InstanceGroupManagersSetTargetPools Text+igmstpInstanceGroupManager+  = lens _igmstpInstanceGroupManager+      (\ s a -> s{_igmstpInstanceGroupManager = a})++-- | The name of the zone where the managed instance group is located.+igmstpZone :: Lens' InstanceGroupManagersSetTargetPools Text+igmstpZone+  = lens _igmstpZone (\ s a -> s{_igmstpZone = a})++-- | Multipart request metadata.+igmstpPayload :: Lens' InstanceGroupManagersSetTargetPools InstanceGroupManagersSetTargetPoolsRequest+igmstpPayload+  = lens _igmstpPayload+      (\ s a -> s{_igmstpPayload = a})++instance GoogleRequest+         InstanceGroupManagersSetTargetPools where+        type Rs InstanceGroupManagersSetTargetPools =+             Operation+        requestClient InstanceGroupManagersSetTargetPools{..}+          = go _igmstpProject _igmstpZone+              _igmstpInstanceGroupManager+              (Just AltJSON)+              _igmstpPayload+              computeService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy InstanceGroupManagersSetTargetPoolsResource)+                      mempty
+ gen/Network/Google/Resource/Compute/InstanceGroups/AddInstances.hs view
@@ -0,0 +1,131 @@+{-# 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.Compute.InstanceGroups.AddInstances+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Adds a list of instances to the specified instance group. All of the+-- instances in the instance group must be in the same network\/subnetwork.+-- TODO: Change to comment to state \"if IG is load balanced.\"+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instanceGroups.addInstances@.+module Network.Google.Resource.Compute.InstanceGroups.AddInstances+    (+    -- * REST Resource+      InstanceGroupsAddInstancesResource++    -- * Creating a Request+    , instanceGroupsAddInstances+    , InstanceGroupsAddInstances++    -- * Request Lenses+    , igaiProject+    , igaiZone+    , igaiPayload+    , igaiInstanceGroup+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.instanceGroups.addInstances@ method which the+-- 'InstanceGroupsAddInstances' request conforms to.+type InstanceGroupsAddInstancesResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "zones" :>+               Capture "zone" Text :>+                 "instanceGroups" :>+                   Capture "instanceGroup" Text :>+                     "addInstances" :>+                       QueryParam "alt" AltJSON :>+                         ReqBody '[JSON] InstanceGroupsAddInstancesRequest :>+                           Post '[JSON] Operation++-- | Adds a list of instances to the specified instance group. All of the+-- instances in the instance group must be in the same network\/subnetwork.+-- TODO: Change to comment to state \"if IG is load balanced.\"+--+-- /See:/ 'instanceGroupsAddInstances' smart constructor.+data InstanceGroupsAddInstances = InstanceGroupsAddInstances+    { _igaiProject       :: !Text+    , _igaiZone          :: !Text+    , _igaiPayload       :: !InstanceGroupsAddInstancesRequest+    , _igaiInstanceGroup :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstanceGroupsAddInstances' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'igaiProject'+--+-- * 'igaiZone'+--+-- * 'igaiPayload'+--+-- * 'igaiInstanceGroup'+instanceGroupsAddInstances+    :: Text -- ^ 'igaiProject'+    -> Text -- ^ 'igaiZone'+    -> InstanceGroupsAddInstancesRequest -- ^ 'igaiPayload'+    -> Text -- ^ 'igaiInstanceGroup'+    -> InstanceGroupsAddInstances+instanceGroupsAddInstances pIgaiProject_ pIgaiZone_ pIgaiPayload_ pIgaiInstanceGroup_ =+    InstanceGroupsAddInstances+    { _igaiProject = pIgaiProject_+    , _igaiZone = pIgaiZone_+    , _igaiPayload = pIgaiPayload_+    , _igaiInstanceGroup = pIgaiInstanceGroup_+    }++-- | The project ID for this request.+igaiProject :: Lens' InstanceGroupsAddInstances Text+igaiProject+  = lens _igaiProject (\ s a -> s{_igaiProject = a})++-- | The name of the zone where the instance group is located.+igaiZone :: Lens' InstanceGroupsAddInstances Text+igaiZone = lens _igaiZone (\ s a -> s{_igaiZone = a})++-- | Multipart request metadata.+igaiPayload :: Lens' InstanceGroupsAddInstances InstanceGroupsAddInstancesRequest+igaiPayload+  = lens _igaiPayload (\ s a -> s{_igaiPayload = a})++-- | The name of the instance group where you are adding instances.+igaiInstanceGroup :: Lens' InstanceGroupsAddInstances Text+igaiInstanceGroup+  = lens _igaiInstanceGroup+      (\ s a -> s{_igaiInstanceGroup = a})++instance GoogleRequest InstanceGroupsAddInstances+         where+        type Rs InstanceGroupsAddInstances = Operation+        requestClient InstanceGroupsAddInstances{..}+          = go _igaiProject _igaiZone _igaiInstanceGroup+              (Just AltJSON)+              _igaiPayload+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy InstanceGroupsAddInstancesResource)+                      mempty
+ gen/Network/Google/Resource/Compute/InstanceGroups/AggregatedList.hs view
@@ -0,0 +1,139 @@+{-# 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.Compute.InstanceGroups.AggregatedList+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves the list of instance groups and sorts them by zone.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instanceGroups.aggregatedList@.+module Network.Google.Resource.Compute.InstanceGroups.AggregatedList+    (+    -- * REST Resource+      InstanceGroupsAggregatedListResource++    -- * Creating a Request+    , instanceGroupsAggregatedList+    , InstanceGroupsAggregatedList++    -- * Request Lenses+    , igalProject+    , igalFilter+    , igalPageToken+    , igalMaxResults+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.instanceGroups.aggregatedList@ method which the+-- 'InstanceGroupsAggregatedList' request conforms to.+type InstanceGroupsAggregatedListResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "aggregated" :>+               "instanceGroups" :>+                 QueryParam "filter" Text :>+                   QueryParam "pageToken" Text :>+                     QueryParam "maxResults" (Textual Word32) :>+                       QueryParam "alt" AltJSON :>+                         Get '[JSON] InstanceGroupAggregatedList++-- | Retrieves the list of instance groups and sorts them by zone.+--+-- /See:/ 'instanceGroupsAggregatedList' smart constructor.+data InstanceGroupsAggregatedList = InstanceGroupsAggregatedList+    { _igalProject    :: !Text+    , _igalFilter     :: !(Maybe Text)+    , _igalPageToken  :: !(Maybe Text)+    , _igalMaxResults :: !(Textual Word32)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstanceGroupsAggregatedList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'igalProject'+--+-- * 'igalFilter'+--+-- * 'igalPageToken'+--+-- * 'igalMaxResults'+instanceGroupsAggregatedList+    :: Text -- ^ 'igalProject'+    -> InstanceGroupsAggregatedList+instanceGroupsAggregatedList pIgalProject_ =+    InstanceGroupsAggregatedList+    { _igalProject = pIgalProject_+    , _igalFilter = Nothing+    , _igalPageToken = Nothing+    , _igalMaxResults = 500+    }++-- | The project ID for this request.+igalProject :: Lens' InstanceGroupsAggregatedList Text+igalProject+  = lens _igalProject (\ s a -> s{_igalProject = a})++-- | Sets a filter expression for filtering listed resources, in the form+-- filter={expression}. Your {expression} must be in the format: FIELD_NAME+-- COMPARISON_STRING LITERAL_STRING. The FIELD_NAME is the name of the+-- field you want to compare. Only atomic field types are supported+-- (string, number, boolean). The COMPARISON_STRING must be either eq+-- (equals) or ne (not equals). The LITERAL_STRING is the string value to+-- filter to. The literal value must be valid for the type of field+-- (string, number, boolean). For string fields, the literal value is+-- interpreted as a regular expression using RE2 syntax. The literal value+-- must match the entire field. For example, filter=name ne+-- example-instance.+igalFilter :: Lens' InstanceGroupsAggregatedList (Maybe Text)+igalFilter+  = lens _igalFilter (\ s a -> s{_igalFilter = a})++-- | Specifies a page token to use. Use this parameter if you want to list+-- the next page of results. Set pageToken to the nextPageToken returned by+-- a previous list request.+igalPageToken :: Lens' InstanceGroupsAggregatedList (Maybe Text)+igalPageToken+  = lens _igalPageToken+      (\ s a -> s{_igalPageToken = a})++-- | Maximum count of results to be returned.+igalMaxResults :: Lens' InstanceGroupsAggregatedList Word32+igalMaxResults+  = lens _igalMaxResults+      (\ s a -> s{_igalMaxResults = a})+      . _Coerce++instance GoogleRequest InstanceGroupsAggregatedList+         where+        type Rs InstanceGroupsAggregatedList =+             InstanceGroupAggregatedList+        requestClient InstanceGroupsAggregatedList{..}+          = go _igalProject _igalFilter _igalPageToken+              (Just _igalMaxResults)+              (Just AltJSON)+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy InstanceGroupsAggregatedListResource)+                      mempty
+ gen/Network/Google/Resource/Compute/InstanceGroups/Delete.hs view
@@ -0,0 +1,113 @@+{-# 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.Compute.InstanceGroups.Delete+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes the specified instance group. The instances in the group are not+-- deleted.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instanceGroups.delete@.+module Network.Google.Resource.Compute.InstanceGroups.Delete+    (+    -- * REST Resource+      InstanceGroupsDeleteResource++    -- * Creating a Request+    , instanceGroupsDelete+    , InstanceGroupsDelete++    -- * Request Lenses+    , igdProject+    , igdZone+    , igdInstanceGroup+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.instanceGroups.delete@ method which the+-- 'InstanceGroupsDelete' request conforms to.+type InstanceGroupsDeleteResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "zones" :>+               Capture "zone" Text :>+                 "instanceGroups" :>+                   Capture "instanceGroup" Text :>+                     QueryParam "alt" AltJSON :> Delete '[JSON] Operation++-- | Deletes the specified instance group. The instances in the group are not+-- deleted.+--+-- /See:/ 'instanceGroupsDelete' smart constructor.+data InstanceGroupsDelete = InstanceGroupsDelete+    { _igdProject       :: !Text+    , _igdZone          :: !Text+    , _igdInstanceGroup :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstanceGroupsDelete' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'igdProject'+--+-- * 'igdZone'+--+-- * 'igdInstanceGroup'+instanceGroupsDelete+    :: Text -- ^ 'igdProject'+    -> Text -- ^ 'igdZone'+    -> Text -- ^ 'igdInstanceGroup'+    -> InstanceGroupsDelete+instanceGroupsDelete pIgdProject_ pIgdZone_ pIgdInstanceGroup_ =+    InstanceGroupsDelete+    { _igdProject = pIgdProject_+    , _igdZone = pIgdZone_+    , _igdInstanceGroup = pIgdInstanceGroup_+    }++-- | The project ID for this request.+igdProject :: Lens' InstanceGroupsDelete Text+igdProject+  = lens _igdProject (\ s a -> s{_igdProject = a})++-- | The name of the zone where the instance group is located.+igdZone :: Lens' InstanceGroupsDelete Text+igdZone = lens _igdZone (\ s a -> s{_igdZone = a})++-- | The name of the instance group to delete.+igdInstanceGroup :: Lens' InstanceGroupsDelete Text+igdInstanceGroup+  = lens _igdInstanceGroup+      (\ s a -> s{_igdInstanceGroup = a})++instance GoogleRequest InstanceGroupsDelete where+        type Rs InstanceGroupsDelete = Operation+        requestClient InstanceGroupsDelete{..}+          = go _igdProject _igdZone _igdInstanceGroup+              (Just AltJSON)+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy InstanceGroupsDeleteResource)+                      mempty
+ gen/Network/Google/Resource/Compute/InstanceGroups/Get.hs view
@@ -0,0 +1,111 @@+{-# 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.Compute.InstanceGroups.Get+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns the specified instance group resource.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instanceGroups.get@.+module Network.Google.Resource.Compute.InstanceGroups.Get+    (+    -- * REST Resource+      InstanceGroupsGetResource++    -- * Creating a Request+    , instanceGroupsGet+    , InstanceGroupsGet++    -- * Request Lenses+    , iggProject+    , iggZone+    , iggInstanceGroup+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.instanceGroups.get@ method which the+-- 'InstanceGroupsGet' request conforms to.+type InstanceGroupsGetResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "zones" :>+               Capture "zone" Text :>+                 "instanceGroups" :>+                   Capture "instanceGroup" Text :>+                     QueryParam "alt" AltJSON :> Get '[JSON] InstanceGroup++-- | Returns the specified instance group resource.+--+-- /See:/ 'instanceGroupsGet' smart constructor.+data InstanceGroupsGet = InstanceGroupsGet+    { _iggProject       :: !Text+    , _iggZone          :: !Text+    , _iggInstanceGroup :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstanceGroupsGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'iggProject'+--+-- * 'iggZone'+--+-- * 'iggInstanceGroup'+instanceGroupsGet+    :: Text -- ^ 'iggProject'+    -> Text -- ^ 'iggZone'+    -> Text -- ^ 'iggInstanceGroup'+    -> InstanceGroupsGet+instanceGroupsGet pIggProject_ pIggZone_ pIggInstanceGroup_ =+    InstanceGroupsGet+    { _iggProject = pIggProject_+    , _iggZone = pIggZone_+    , _iggInstanceGroup = pIggInstanceGroup_+    }++-- | The project ID for this request.+iggProject :: Lens' InstanceGroupsGet Text+iggProject+  = lens _iggProject (\ s a -> s{_iggProject = a})++-- | The name of the zone where the instance group is located.+iggZone :: Lens' InstanceGroupsGet Text+iggZone = lens _iggZone (\ s a -> s{_iggZone = a})++-- | The name of the instance group.+iggInstanceGroup :: Lens' InstanceGroupsGet Text+iggInstanceGroup+  = lens _iggInstanceGroup+      (\ s a -> s{_iggInstanceGroup = a})++instance GoogleRequest InstanceGroupsGet where+        type Rs InstanceGroupsGet = InstanceGroup+        requestClient InstanceGroupsGet{..}+          = go _iggProject _iggZone _iggInstanceGroup+              (Just AltJSON)+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy InstanceGroupsGetResource)+                      mempty
+ gen/Network/Google/Resource/Compute/InstanceGroups/Insert.hs view
@@ -0,0 +1,112 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Compute.InstanceGroups.Insert+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates an instance group in the specified project using the parameters+-- that are included in the request.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instanceGroups.insert@.+module Network.Google.Resource.Compute.InstanceGroups.Insert+    (+    -- * REST Resource+      InstanceGroupsInsertResource++    -- * Creating a Request+    , instanceGroupsInsert+    , InstanceGroupsInsert++    -- * Request Lenses+    , igiProject+    , igiZone+    , igiPayload+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.instanceGroups.insert@ method which the+-- 'InstanceGroupsInsert' request conforms to.+type InstanceGroupsInsertResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "zones" :>+               Capture "zone" Text :>+                 "instanceGroups" :>+                   QueryParam "alt" AltJSON :>+                     ReqBody '[JSON] InstanceGroup :>+                       Post '[JSON] Operation++-- | Creates an instance group in the specified project using the parameters+-- that are included in the request.+--+-- /See:/ 'instanceGroupsInsert' smart constructor.+data InstanceGroupsInsert = InstanceGroupsInsert+    { _igiProject :: !Text+    , _igiZone    :: !Text+    , _igiPayload :: !InstanceGroup+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstanceGroupsInsert' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'igiProject'+--+-- * 'igiZone'+--+-- * 'igiPayload'+instanceGroupsInsert+    :: Text -- ^ 'igiProject'+    -> Text -- ^ 'igiZone'+    -> InstanceGroup -- ^ 'igiPayload'+    -> InstanceGroupsInsert+instanceGroupsInsert pIgiProject_ pIgiZone_ pIgiPayload_ =+    InstanceGroupsInsert+    { _igiProject = pIgiProject_+    , _igiZone = pIgiZone_+    , _igiPayload = pIgiPayload_+    }++-- | The project ID for this request.+igiProject :: Lens' InstanceGroupsInsert Text+igiProject+  = lens _igiProject (\ s a -> s{_igiProject = a})++-- | The name of the zone where you want to create the instance group.+igiZone :: Lens' InstanceGroupsInsert Text+igiZone = lens _igiZone (\ s a -> s{_igiZone = a})++-- | Multipart request metadata.+igiPayload :: Lens' InstanceGroupsInsert InstanceGroup+igiPayload+  = lens _igiPayload (\ s a -> s{_igiPayload = a})++instance GoogleRequest InstanceGroupsInsert where+        type Rs InstanceGroupsInsert = Operation+        requestClient InstanceGroupsInsert{..}+          = go _igiProject _igiZone (Just AltJSON) _igiPayload+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy InstanceGroupsInsertResource)+                      mempty
+ gen/Network/Google/Resource/Compute/InstanceGroups/List.hs view
@@ -0,0 +1,149 @@+{-# 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.Compute.InstanceGroups.List+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves the list of instance groups that are located in the specified+-- project and zone.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instanceGroups.list@.+module Network.Google.Resource.Compute.InstanceGroups.List+    (+    -- * REST Resource+      InstanceGroupsListResource++    -- * Creating a Request+    , instanceGroupsList+    , InstanceGroupsList++    -- * Request Lenses+    , iglProject+    , iglZone+    , iglFilter+    , iglPageToken+    , iglMaxResults+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.instanceGroups.list@ method which the+-- 'InstanceGroupsList' request conforms to.+type InstanceGroupsListResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "zones" :>+               Capture "zone" Text :>+                 "instanceGroups" :>+                   QueryParam "filter" Text :>+                     QueryParam "pageToken" Text :>+                       QueryParam "maxResults" (Textual Word32) :>+                         QueryParam "alt" AltJSON :>+                           Get '[JSON] InstanceGroupList++-- | Retrieves the list of instance groups that are located in the specified+-- project and zone.+--+-- /See:/ 'instanceGroupsList' smart constructor.+data InstanceGroupsList = InstanceGroupsList+    { _iglProject    :: !Text+    , _iglZone       :: !Text+    , _iglFilter     :: !(Maybe Text)+    , _iglPageToken  :: !(Maybe Text)+    , _iglMaxResults :: !(Textual Word32)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstanceGroupsList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'iglProject'+--+-- * 'iglZone'+--+-- * 'iglFilter'+--+-- * 'iglPageToken'+--+-- * 'iglMaxResults'+instanceGroupsList+    :: Text -- ^ 'iglProject'+    -> Text -- ^ 'iglZone'+    -> InstanceGroupsList+instanceGroupsList pIglProject_ pIglZone_ =+    InstanceGroupsList+    { _iglProject = pIglProject_+    , _iglZone = pIglZone_+    , _iglFilter = Nothing+    , _iglPageToken = Nothing+    , _iglMaxResults = 500+    }++-- | The project ID for this request.+iglProject :: Lens' InstanceGroupsList Text+iglProject+  = lens _iglProject (\ s a -> s{_iglProject = a})++-- | The name of the zone where the instance group is located.+iglZone :: Lens' InstanceGroupsList Text+iglZone = lens _iglZone (\ s a -> s{_iglZone = a})++-- | Sets a filter expression for filtering listed resources, in the form+-- filter={expression}. Your {expression} must be in the format: FIELD_NAME+-- COMPARISON_STRING LITERAL_STRING. The FIELD_NAME is the name of the+-- field you want to compare. Only atomic field types are supported+-- (string, number, boolean). The COMPARISON_STRING must be either eq+-- (equals) or ne (not equals). The LITERAL_STRING is the string value to+-- filter to. The literal value must be valid for the type of field+-- (string, number, boolean). For string fields, the literal value is+-- interpreted as a regular expression using RE2 syntax. The literal value+-- must match the entire field. For example, filter=name ne+-- example-instance.+iglFilter :: Lens' InstanceGroupsList (Maybe Text)+iglFilter+  = lens _iglFilter (\ s a -> s{_iglFilter = a})++-- | Specifies a page token to use. Use this parameter if you want to list+-- the next page of results. Set pageToken to the nextPageToken returned by+-- a previous list request.+iglPageToken :: Lens' InstanceGroupsList (Maybe Text)+iglPageToken+  = lens _iglPageToken (\ s a -> s{_iglPageToken = a})++-- | Maximum count of results to be returned.+iglMaxResults :: Lens' InstanceGroupsList Word32+iglMaxResults+  = lens _iglMaxResults+      (\ s a -> s{_iglMaxResults = a})+      . _Coerce++instance GoogleRequest InstanceGroupsList where+        type Rs InstanceGroupsList = InstanceGroupList+        requestClient InstanceGroupsList{..}+          = go _iglProject _iglZone _iglFilter _iglPageToken+              (Just _iglMaxResults)+              (Just AltJSON)+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy InstanceGroupsListResource)+                      mempty
+ gen/Network/Google/Resource/Compute/InstanceGroups/ListInstances.hs view
@@ -0,0 +1,181 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Compute.InstanceGroups.ListInstances+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists the instances in the specified instance group.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instanceGroups.listInstances@.+module Network.Google.Resource.Compute.InstanceGroups.ListInstances+    (+    -- * REST Resource+      InstanceGroupsListInstancesResource++    -- * Creating a Request+    , instanceGroupsListInstances'+    , InstanceGroupsListInstances'++    -- * Request Lenses+    , igliProject+    , igliZone+    , igliPayload+    , igliFilter+    , igliPageToken+    , igliInstanceGroup+    , igliMaxResults+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.instanceGroups.listInstances@ method which the+-- 'InstanceGroupsListInstances'' request conforms to.+type InstanceGroupsListInstancesResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "zones" :>+               Capture "zone" Text :>+                 "instanceGroups" :>+                   Capture "instanceGroup" Text :>+                     "listInstances" :>+                       QueryParam "filter" Text :>+                         QueryParam "pageToken" Text :>+                           QueryParam "maxResults" (Textual Word32) :>+                             QueryParam "alt" AltJSON :>+                               ReqBody '[JSON]+                                 InstanceGroupsListInstancesRequest+                                 :> Post '[JSON] InstanceGroupsListInstances++-- | Lists the instances in the specified instance group.+--+-- /See:/ 'instanceGroupsListInstances'' smart constructor.+data InstanceGroupsListInstances' = InstanceGroupsListInstances'+    { _igliProject       :: !Text+    , _igliZone          :: !Text+    , _igliPayload       :: !InstanceGroupsListInstancesRequest+    , _igliFilter        :: !(Maybe Text)+    , _igliPageToken     :: !(Maybe Text)+    , _igliInstanceGroup :: !Text+    , _igliMaxResults    :: !(Textual Word32)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstanceGroupsListInstances'' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'igliProject'+--+-- * 'igliZone'+--+-- * 'igliPayload'+--+-- * 'igliFilter'+--+-- * 'igliPageToken'+--+-- * 'igliInstanceGroup'+--+-- * 'igliMaxResults'+instanceGroupsListInstances'+    :: Text -- ^ 'igliProject'+    -> Text -- ^ 'igliZone'+    -> InstanceGroupsListInstancesRequest -- ^ 'igliPayload'+    -> Text -- ^ 'igliInstanceGroup'+    -> InstanceGroupsListInstances'+instanceGroupsListInstances' pIgliProject_ pIgliZone_ pIgliPayload_ pIgliInstanceGroup_ =+    InstanceGroupsListInstances'+    { _igliProject = pIgliProject_+    , _igliZone = pIgliZone_+    , _igliPayload = pIgliPayload_+    , _igliFilter = Nothing+    , _igliPageToken = Nothing+    , _igliInstanceGroup = pIgliInstanceGroup_+    , _igliMaxResults = 500+    }++-- | The project ID for this request.+igliProject :: Lens' InstanceGroupsListInstances' Text+igliProject+  = lens _igliProject (\ s a -> s{_igliProject = a})++-- | The name of the zone where the instance group is located.+igliZone :: Lens' InstanceGroupsListInstances' Text+igliZone = lens _igliZone (\ s a -> s{_igliZone = a})++-- | Multipart request metadata.+igliPayload :: Lens' InstanceGroupsListInstances' InstanceGroupsListInstancesRequest+igliPayload+  = lens _igliPayload (\ s a -> s{_igliPayload = a})++-- | Sets a filter expression for filtering listed resources, in the form+-- filter={expression}. Your {expression} must be in the format: FIELD_NAME+-- COMPARISON_STRING LITERAL_STRING. The FIELD_NAME is the name of the+-- field you want to compare. Only atomic field types are supported+-- (string, number, boolean). The COMPARISON_STRING must be either eq+-- (equals) or ne (not equals). The LITERAL_STRING is the string value to+-- filter to. The literal value must be valid for the type of field+-- (string, number, boolean). For string fields, the literal value is+-- interpreted as a regular expression using RE2 syntax. The literal value+-- must match the entire field. For example, filter=name ne+-- example-instance.+igliFilter :: Lens' InstanceGroupsListInstances' (Maybe Text)+igliFilter+  = lens _igliFilter (\ s a -> s{_igliFilter = a})++-- | Specifies a page token to use. Use this parameter if you want to list+-- the next page of results. Set pageToken to the nextPageToken returned by+-- a previous list request.+igliPageToken :: Lens' InstanceGroupsListInstances' (Maybe Text)+igliPageToken+  = lens _igliPageToken+      (\ s a -> s{_igliPageToken = a})++-- | The name of the instance group from which you want to generate a list of+-- included instances.+igliInstanceGroup :: Lens' InstanceGroupsListInstances' Text+igliInstanceGroup+  = lens _igliInstanceGroup+      (\ s a -> s{_igliInstanceGroup = a})++-- | Maximum count of results to be returned.+igliMaxResults :: Lens' InstanceGroupsListInstances' Word32+igliMaxResults+  = lens _igliMaxResults+      (\ s a -> s{_igliMaxResults = a})+      . _Coerce++instance GoogleRequest InstanceGroupsListInstances'+         where+        type Rs InstanceGroupsListInstances' =+             InstanceGroupsListInstances+        requestClient InstanceGroupsListInstances'{..}+          = go _igliProject _igliZone _igliInstanceGroup+              _igliFilter+              _igliPageToken+              (Just _igliMaxResults)+              (Just AltJSON)+              _igliPayload+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy InstanceGroupsListInstancesResource)+                      mempty
+ gen/Network/Google/Resource/Compute/InstanceGroups/RemoveInstances.hs view
@@ -0,0 +1,131 @@+{-# 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.Compute.InstanceGroups.RemoveInstances+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Removes one or more instances from the specified instance group, but+-- does not delete those instances.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instanceGroups.removeInstances@.+module Network.Google.Resource.Compute.InstanceGroups.RemoveInstances+    (+    -- * REST Resource+      InstanceGroupsRemoveInstancesResource++    -- * Creating a Request+    , instanceGroupsRemoveInstances+    , InstanceGroupsRemoveInstances++    -- * Request Lenses+    , igriProject+    , igriZone+    , igriPayload+    , igriInstanceGroup+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.instanceGroups.removeInstances@ method which the+-- 'InstanceGroupsRemoveInstances' request conforms to.+type InstanceGroupsRemoveInstancesResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "zones" :>+               Capture "zone" Text :>+                 "instanceGroups" :>+                   Capture "instanceGroup" Text :>+                     "removeInstances" :>+                       QueryParam "alt" AltJSON :>+                         ReqBody '[JSON] InstanceGroupsRemoveInstancesRequest+                           :> Post '[JSON] Operation++-- | Removes one or more instances from the specified instance group, but+-- does not delete those instances.+--+-- /See:/ 'instanceGroupsRemoveInstances' smart constructor.+data InstanceGroupsRemoveInstances = InstanceGroupsRemoveInstances+    { _igriProject       :: !Text+    , _igriZone          :: !Text+    , _igriPayload       :: !InstanceGroupsRemoveInstancesRequest+    , _igriInstanceGroup :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstanceGroupsRemoveInstances' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'igriProject'+--+-- * 'igriZone'+--+-- * 'igriPayload'+--+-- * 'igriInstanceGroup'+instanceGroupsRemoveInstances+    :: Text -- ^ 'igriProject'+    -> Text -- ^ 'igriZone'+    -> InstanceGroupsRemoveInstancesRequest -- ^ 'igriPayload'+    -> Text -- ^ 'igriInstanceGroup'+    -> InstanceGroupsRemoveInstances+instanceGroupsRemoveInstances pIgriProject_ pIgriZone_ pIgriPayload_ pIgriInstanceGroup_ =+    InstanceGroupsRemoveInstances+    { _igriProject = pIgriProject_+    , _igriZone = pIgriZone_+    , _igriPayload = pIgriPayload_+    , _igriInstanceGroup = pIgriInstanceGroup_+    }++-- | The project ID for this request.+igriProject :: Lens' InstanceGroupsRemoveInstances Text+igriProject+  = lens _igriProject (\ s a -> s{_igriProject = a})++-- | The name of the zone where the instance group is located.+igriZone :: Lens' InstanceGroupsRemoveInstances Text+igriZone = lens _igriZone (\ s a -> s{_igriZone = a})++-- | Multipart request metadata.+igriPayload :: Lens' InstanceGroupsRemoveInstances InstanceGroupsRemoveInstancesRequest+igriPayload+  = lens _igriPayload (\ s a -> s{_igriPayload = a})++-- | The name of the instance group where the specified instances will be+-- removed.+igriInstanceGroup :: Lens' InstanceGroupsRemoveInstances Text+igriInstanceGroup+  = lens _igriInstanceGroup+      (\ s a -> s{_igriInstanceGroup = a})++instance GoogleRequest InstanceGroupsRemoveInstances+         where+        type Rs InstanceGroupsRemoveInstances = Operation+        requestClient InstanceGroupsRemoveInstances{..}+          = go _igriProject _igriZone _igriInstanceGroup+              (Just AltJSON)+              _igriPayload+              computeService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy InstanceGroupsRemoveInstancesResource)+                      mempty
+ gen/Network/Google/Resource/Compute/InstanceGroups/SetNamedPorts.hs view
@@ -0,0 +1,128 @@+{-# 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.Compute.InstanceGroups.SetNamedPorts+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Sets the named ports for the specified instance group.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instanceGroups.setNamedPorts@.+module Network.Google.Resource.Compute.InstanceGroups.SetNamedPorts+    (+    -- * REST Resource+      InstanceGroupsSetNamedPortsResource++    -- * Creating a Request+    , instanceGroupsSetNamedPorts+    , InstanceGroupsSetNamedPorts++    -- * Request Lenses+    , igsnpProject+    , igsnpZone+    , igsnpPayload+    , igsnpInstanceGroup+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.instanceGroups.setNamedPorts@ method which the+-- 'InstanceGroupsSetNamedPorts' request conforms to.+type InstanceGroupsSetNamedPortsResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "zones" :>+               Capture "zone" Text :>+                 "instanceGroups" :>+                   Capture "instanceGroup" Text :>+                     "setNamedPorts" :>+                       QueryParam "alt" AltJSON :>+                         ReqBody '[JSON] InstanceGroupsSetNamedPortsRequest :>+                           Post '[JSON] Operation++-- | Sets the named ports for the specified instance group.+--+-- /See:/ 'instanceGroupsSetNamedPorts' smart constructor.+data InstanceGroupsSetNamedPorts = InstanceGroupsSetNamedPorts+    { _igsnpProject       :: !Text+    , _igsnpZone          :: !Text+    , _igsnpPayload       :: !InstanceGroupsSetNamedPortsRequest+    , _igsnpInstanceGroup :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstanceGroupsSetNamedPorts' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'igsnpProject'+--+-- * 'igsnpZone'+--+-- * 'igsnpPayload'+--+-- * 'igsnpInstanceGroup'+instanceGroupsSetNamedPorts+    :: Text -- ^ 'igsnpProject'+    -> Text -- ^ 'igsnpZone'+    -> InstanceGroupsSetNamedPortsRequest -- ^ 'igsnpPayload'+    -> Text -- ^ 'igsnpInstanceGroup'+    -> InstanceGroupsSetNamedPorts+instanceGroupsSetNamedPorts pIgsnpProject_ pIgsnpZone_ pIgsnpPayload_ pIgsnpInstanceGroup_ =+    InstanceGroupsSetNamedPorts+    { _igsnpProject = pIgsnpProject_+    , _igsnpZone = pIgsnpZone_+    , _igsnpPayload = pIgsnpPayload_+    , _igsnpInstanceGroup = pIgsnpInstanceGroup_+    }++-- | The project ID for this request.+igsnpProject :: Lens' InstanceGroupsSetNamedPorts Text+igsnpProject+  = lens _igsnpProject (\ s a -> s{_igsnpProject = a})++-- | The name of the zone where the instance group is located.+igsnpZone :: Lens' InstanceGroupsSetNamedPorts Text+igsnpZone+  = lens _igsnpZone (\ s a -> s{_igsnpZone = a})++-- | Multipart request metadata.+igsnpPayload :: Lens' InstanceGroupsSetNamedPorts InstanceGroupsSetNamedPortsRequest+igsnpPayload+  = lens _igsnpPayload (\ s a -> s{_igsnpPayload = a})++-- | The name of the instance group where the named ports are updated.+igsnpInstanceGroup :: Lens' InstanceGroupsSetNamedPorts Text+igsnpInstanceGroup+  = lens _igsnpInstanceGroup+      (\ s a -> s{_igsnpInstanceGroup = a})++instance GoogleRequest InstanceGroupsSetNamedPorts+         where+        type Rs InstanceGroupsSetNamedPorts = Operation+        requestClient InstanceGroupsSetNamedPorts{..}+          = go _igsnpProject _igsnpZone _igsnpInstanceGroup+              (Just AltJSON)+              _igsnpPayload+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy InstanceGroupsSetNamedPortsResource)+                      mempty
+ gen/Network/Google/Resource/Compute/InstanceTemplates/Delete.hs view
@@ -0,0 +1,99 @@+{-# 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.Compute.InstanceTemplates.Delete+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes the specified instance template.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instanceTemplates.delete@.+module Network.Google.Resource.Compute.InstanceTemplates.Delete+    (+    -- * REST Resource+      InstanceTemplatesDeleteResource++    -- * Creating a Request+    , instanceTemplatesDelete+    , InstanceTemplatesDelete++    -- * Request Lenses+    , itdProject+    , itdInstanceTemplate+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.instanceTemplates.delete@ method which the+-- 'InstanceTemplatesDelete' request conforms to.+type InstanceTemplatesDeleteResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "global" :>+               "instanceTemplates" :>+                 Capture "instanceTemplate" Text :>+                   QueryParam "alt" AltJSON :> Delete '[JSON] Operation++-- | Deletes the specified instance template.+--+-- /See:/ 'instanceTemplatesDelete' smart constructor.+data InstanceTemplatesDelete = InstanceTemplatesDelete+    { _itdProject          :: !Text+    , _itdInstanceTemplate :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstanceTemplatesDelete' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'itdProject'+--+-- * 'itdInstanceTemplate'+instanceTemplatesDelete+    :: Text -- ^ 'itdProject'+    -> Text -- ^ 'itdInstanceTemplate'+    -> InstanceTemplatesDelete+instanceTemplatesDelete pItdProject_ pItdInstanceTemplate_ =+    InstanceTemplatesDelete+    { _itdProject = pItdProject_+    , _itdInstanceTemplate = pItdInstanceTemplate_+    }++-- | The project ID for this request.+itdProject :: Lens' InstanceTemplatesDelete Text+itdProject+  = lens _itdProject (\ s a -> s{_itdProject = a})++-- | The name of the instance template to delete.+itdInstanceTemplate :: Lens' InstanceTemplatesDelete Text+itdInstanceTemplate+  = lens _itdInstanceTemplate+      (\ s a -> s{_itdInstanceTemplate = a})++instance GoogleRequest InstanceTemplatesDelete where+        type Rs InstanceTemplatesDelete = Operation+        requestClient InstanceTemplatesDelete{..}+          = go _itdProject _itdInstanceTemplate (Just AltJSON)+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy InstanceTemplatesDeleteResource)+                      mempty
+ gen/Network/Google/Resource/Compute/InstanceTemplates/Get.hs view
@@ -0,0 +1,100 @@+{-# 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.Compute.InstanceTemplates.Get+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns the specified instance template resource.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instanceTemplates.get@.+module Network.Google.Resource.Compute.InstanceTemplates.Get+    (+    -- * REST Resource+      InstanceTemplatesGetResource++    -- * Creating a Request+    , instanceTemplatesGet+    , InstanceTemplatesGet++    -- * Request Lenses+    , itgProject+    , itgInstanceTemplate+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.instanceTemplates.get@ method which the+-- 'InstanceTemplatesGet' request conforms to.+type InstanceTemplatesGetResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "global" :>+               "instanceTemplates" :>+                 Capture "instanceTemplate" Text :>+                   QueryParam "alt" AltJSON :>+                     Get '[JSON] InstanceTemplate++-- | Returns the specified instance template resource.+--+-- /See:/ 'instanceTemplatesGet' smart constructor.+data InstanceTemplatesGet = InstanceTemplatesGet+    { _itgProject          :: !Text+    , _itgInstanceTemplate :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstanceTemplatesGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'itgProject'+--+-- * 'itgInstanceTemplate'+instanceTemplatesGet+    :: Text -- ^ 'itgProject'+    -> Text -- ^ 'itgInstanceTemplate'+    -> InstanceTemplatesGet+instanceTemplatesGet pItgProject_ pItgInstanceTemplate_ =+    InstanceTemplatesGet+    { _itgProject = pItgProject_+    , _itgInstanceTemplate = pItgInstanceTemplate_+    }++-- | The project ID for this request.+itgProject :: Lens' InstanceTemplatesGet Text+itgProject+  = lens _itgProject (\ s a -> s{_itgProject = a})++-- | The name of the instance template.+itgInstanceTemplate :: Lens' InstanceTemplatesGet Text+itgInstanceTemplate+  = lens _itgInstanceTemplate+      (\ s a -> s{_itgInstanceTemplate = a})++instance GoogleRequest InstanceTemplatesGet where+        type Rs InstanceTemplatesGet = InstanceTemplate+        requestClient InstanceTemplatesGet{..}+          = go _itgProject _itgInstanceTemplate (Just AltJSON)+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy InstanceTemplatesGetResource)+                      mempty
+ gen/Network/Google/Resource/Compute/InstanceTemplates/Insert.hs view
@@ -0,0 +1,101 @@+{-# 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.Compute.InstanceTemplates.Insert+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates an instance template in the specified project using the data+-- that is included in the request.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instanceTemplates.insert@.+module Network.Google.Resource.Compute.InstanceTemplates.Insert+    (+    -- * REST Resource+      InstanceTemplatesInsertResource++    -- * Creating a Request+    , instanceTemplatesInsert+    , InstanceTemplatesInsert++    -- * Request Lenses+    , itiProject+    , itiPayload+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.instanceTemplates.insert@ method which the+-- 'InstanceTemplatesInsert' request conforms to.+type InstanceTemplatesInsertResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "global" :>+               "instanceTemplates" :>+                 QueryParam "alt" AltJSON :>+                   ReqBody '[JSON] InstanceTemplate :>+                     Post '[JSON] Operation++-- | Creates an instance template in the specified project using the data+-- that is included in the request.+--+-- /See:/ 'instanceTemplatesInsert' smart constructor.+data InstanceTemplatesInsert = InstanceTemplatesInsert+    { _itiProject :: !Text+    , _itiPayload :: !InstanceTemplate+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstanceTemplatesInsert' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'itiProject'+--+-- * 'itiPayload'+instanceTemplatesInsert+    :: Text -- ^ 'itiProject'+    -> InstanceTemplate -- ^ 'itiPayload'+    -> InstanceTemplatesInsert+instanceTemplatesInsert pItiProject_ pItiPayload_ =+    InstanceTemplatesInsert+    { _itiProject = pItiProject_+    , _itiPayload = pItiPayload_+    }++-- | The project ID for this request.+itiProject :: Lens' InstanceTemplatesInsert Text+itiProject+  = lens _itiProject (\ s a -> s{_itiProject = a})++-- | Multipart request metadata.+itiPayload :: Lens' InstanceTemplatesInsert InstanceTemplate+itiPayload+  = lens _itiPayload (\ s a -> s{_itiPayload = a})++instance GoogleRequest InstanceTemplatesInsert where+        type Rs InstanceTemplatesInsert = Operation+        requestClient InstanceTemplatesInsert{..}+          = go _itiProject (Just AltJSON) _itiPayload+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy InstanceTemplatesInsertResource)+                      mempty
+ gen/Network/Google/Resource/Compute/InstanceTemplates/List.hs view
@@ -0,0 +1,138 @@+{-# 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.Compute.InstanceTemplates.List+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves a list of instance templates that are contained within the+-- specified project and zone.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instanceTemplates.list@.+module Network.Google.Resource.Compute.InstanceTemplates.List+    (+    -- * REST Resource+      InstanceTemplatesListResource++    -- * Creating a Request+    , instanceTemplatesList+    , InstanceTemplatesList++    -- * Request Lenses+    , itlProject+    , itlFilter+    , itlPageToken+    , itlMaxResults+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.instanceTemplates.list@ method which the+-- 'InstanceTemplatesList' request conforms to.+type InstanceTemplatesListResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "global" :>+               "instanceTemplates" :>+                 QueryParam "filter" Text :>+                   QueryParam "pageToken" Text :>+                     QueryParam "maxResults" (Textual Word32) :>+                       QueryParam "alt" AltJSON :>+                         Get '[JSON] InstanceTemplateList++-- | Retrieves a list of instance templates that are contained within the+-- specified project and zone.+--+-- /See:/ 'instanceTemplatesList' smart constructor.+data InstanceTemplatesList = InstanceTemplatesList+    { _itlProject    :: !Text+    , _itlFilter     :: !(Maybe Text)+    , _itlPageToken  :: !(Maybe Text)+    , _itlMaxResults :: !(Textual Word32)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstanceTemplatesList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'itlProject'+--+-- * 'itlFilter'+--+-- * 'itlPageToken'+--+-- * 'itlMaxResults'+instanceTemplatesList+    :: Text -- ^ 'itlProject'+    -> InstanceTemplatesList+instanceTemplatesList pItlProject_ =+    InstanceTemplatesList+    { _itlProject = pItlProject_+    , _itlFilter = Nothing+    , _itlPageToken = Nothing+    , _itlMaxResults = 500+    }++-- | The project ID for this request.+itlProject :: Lens' InstanceTemplatesList Text+itlProject+  = lens _itlProject (\ s a -> s{_itlProject = a})++-- | Sets a filter expression for filtering listed resources, in the form+-- filter={expression}. Your {expression} must be in the format: FIELD_NAME+-- COMPARISON_STRING LITERAL_STRING. The FIELD_NAME is the name of the+-- field you want to compare. Only atomic field types are supported+-- (string, number, boolean). The COMPARISON_STRING must be either eq+-- (equals) or ne (not equals). The LITERAL_STRING is the string value to+-- filter to. The literal value must be valid for the type of field+-- (string, number, boolean). For string fields, the literal value is+-- interpreted as a regular expression using RE2 syntax. The literal value+-- must match the entire field. For example, filter=name ne+-- example-instance.+itlFilter :: Lens' InstanceTemplatesList (Maybe Text)+itlFilter+  = lens _itlFilter (\ s a -> s{_itlFilter = a})++-- | Specifies a page token to use. Use this parameter if you want to list+-- the next page of results. Set pageToken to the nextPageToken returned by+-- a previous list request.+itlPageToken :: Lens' InstanceTemplatesList (Maybe Text)+itlPageToken+  = lens _itlPageToken (\ s a -> s{_itlPageToken = a})++-- | Maximum count of results to be returned.+itlMaxResults :: Lens' InstanceTemplatesList Word32+itlMaxResults+  = lens _itlMaxResults+      (\ s a -> s{_itlMaxResults = a})+      . _Coerce++instance GoogleRequest InstanceTemplatesList where+        type Rs InstanceTemplatesList = InstanceTemplateList+        requestClient InstanceTemplatesList{..}+          = go _itlProject _itlFilter _itlPageToken+              (Just _itlMaxResults)+              (Just AltJSON)+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy InstanceTemplatesListResource)+                      mempty
+ gen/Network/Google/Resource/Compute/Instances/AddAccessConfig.hs view
@@ -0,0 +1,139 @@+{-# 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.Compute.Instances.AddAccessConfig+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Adds an access config to an instance\'s network interface.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instances.addAccessConfig@.+module Network.Google.Resource.Compute.Instances.AddAccessConfig+    (+    -- * REST Resource+      InstancesAddAccessConfigResource++    -- * Creating a Request+    , instancesAddAccessConfig+    , InstancesAddAccessConfig++    -- * Request Lenses+    , iaacProject+    , iaacNetworkInterface+    , iaacZone+    , iaacPayload+    , iaacInstance+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.instances.addAccessConfig@ method which the+-- 'InstancesAddAccessConfig' request conforms to.+type InstancesAddAccessConfigResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "zones" :>+               Capture "zone" Text :>+                 "instances" :>+                   Capture "instance" Text :>+                     "addAccessConfig" :>+                       QueryParam "networkInterface" Text :>+                         QueryParam "alt" AltJSON :>+                           ReqBody '[JSON] AccessConfig :>+                             Post '[JSON] Operation++-- | Adds an access config to an instance\'s network interface.+--+-- /See:/ 'instancesAddAccessConfig' smart constructor.+data InstancesAddAccessConfig = InstancesAddAccessConfig+    { _iaacProject          :: !Text+    , _iaacNetworkInterface :: !Text+    , _iaacZone             :: !Text+    , _iaacPayload          :: !AccessConfig+    , _iaacInstance         :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstancesAddAccessConfig' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'iaacProject'+--+-- * 'iaacNetworkInterface'+--+-- * 'iaacZone'+--+-- * 'iaacPayload'+--+-- * 'iaacInstance'+instancesAddAccessConfig+    :: Text -- ^ 'iaacProject'+    -> Text -- ^ 'iaacNetworkInterface'+    -> Text -- ^ 'iaacZone'+    -> AccessConfig -- ^ 'iaacPayload'+    -> Text -- ^ 'iaacInstance'+    -> InstancesAddAccessConfig+instancesAddAccessConfig pIaacProject_ pIaacNetworkInterface_ pIaacZone_ pIaacPayload_ pIaacInstance_ =+    InstancesAddAccessConfig+    { _iaacProject = pIaacProject_+    , _iaacNetworkInterface = pIaacNetworkInterface_+    , _iaacZone = pIaacZone_+    , _iaacPayload = pIaacPayload_+    , _iaacInstance = pIaacInstance_+    }++-- | Project ID for this request.+iaacProject :: Lens' InstancesAddAccessConfig Text+iaacProject+  = lens _iaacProject (\ s a -> s{_iaacProject = a})++-- | The name of the network interface to add to this instance.+iaacNetworkInterface :: Lens' InstancesAddAccessConfig Text+iaacNetworkInterface+  = lens _iaacNetworkInterface+      (\ s a -> s{_iaacNetworkInterface = a})++-- | The name of the zone for this request.+iaacZone :: Lens' InstancesAddAccessConfig Text+iaacZone = lens _iaacZone (\ s a -> s{_iaacZone = a})++-- | Multipart request metadata.+iaacPayload :: Lens' InstancesAddAccessConfig AccessConfig+iaacPayload+  = lens _iaacPayload (\ s a -> s{_iaacPayload = a})++-- | The instance name for this request.+iaacInstance :: Lens' InstancesAddAccessConfig Text+iaacInstance+  = lens _iaacInstance (\ s a -> s{_iaacInstance = a})++instance GoogleRequest InstancesAddAccessConfig where+        type Rs InstancesAddAccessConfig = Operation+        requestClient InstancesAddAccessConfig{..}+          = go _iaacProject _iaacZone _iaacInstance+              (Just _iaacNetworkInterface)+              (Just AltJSON)+              _iaacPayload+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy InstancesAddAccessConfigResource)+                      mempty
+ gen/Network/Google/Resource/Compute/Instances/AggregatedList.hs view
@@ -0,0 +1,137 @@+{-# 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.Compute.Instances.AggregatedList+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves aggregated list of instance resources.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instances.aggregatedList@.+module Network.Google.Resource.Compute.Instances.AggregatedList+    (+    -- * REST Resource+      InstancesAggregatedListResource++    -- * Creating a Request+    , instancesAggregatedList+    , InstancesAggregatedList++    -- * Request Lenses+    , ialProject+    , ialFilter+    , ialPageToken+    , ialMaxResults+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.instances.aggregatedList@ method which the+-- 'InstancesAggregatedList' request conforms to.+type InstancesAggregatedListResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "aggregated" :>+               "instances" :>+                 QueryParam "filter" Text :>+                   QueryParam "pageToken" Text :>+                     QueryParam "maxResults" (Textual Word32) :>+                       QueryParam "alt" AltJSON :>+                         Get '[JSON] InstanceAggregatedList++-- | Retrieves aggregated list of instance resources.+--+-- /See:/ 'instancesAggregatedList' smart constructor.+data InstancesAggregatedList = InstancesAggregatedList+    { _ialProject    :: !Text+    , _ialFilter     :: !(Maybe Text)+    , _ialPageToken  :: !(Maybe Text)+    , _ialMaxResults :: !(Textual Word32)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstancesAggregatedList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ialProject'+--+-- * 'ialFilter'+--+-- * 'ialPageToken'+--+-- * 'ialMaxResults'+instancesAggregatedList+    :: Text -- ^ 'ialProject'+    -> InstancesAggregatedList+instancesAggregatedList pIalProject_ =+    InstancesAggregatedList+    { _ialProject = pIalProject_+    , _ialFilter = Nothing+    , _ialPageToken = Nothing+    , _ialMaxResults = 500+    }++-- | Project ID for this request.+ialProject :: Lens' InstancesAggregatedList Text+ialProject+  = lens _ialProject (\ s a -> s{_ialProject = a})++-- | Sets a filter expression for filtering listed resources, in the form+-- filter={expression}. Your {expression} must be in the format: FIELD_NAME+-- COMPARISON_STRING LITERAL_STRING. The FIELD_NAME is the name of the+-- field you want to compare. Only atomic field types are supported+-- (string, number, boolean). The COMPARISON_STRING must be either eq+-- (equals) or ne (not equals). The LITERAL_STRING is the string value to+-- filter to. The literal value must be valid for the type of field+-- (string, number, boolean). For string fields, the literal value is+-- interpreted as a regular expression using RE2 syntax. The literal value+-- must match the entire field. For example, filter=name ne+-- example-instance.+ialFilter :: Lens' InstancesAggregatedList (Maybe Text)+ialFilter+  = lens _ialFilter (\ s a -> s{_ialFilter = a})++-- | Specifies a page token to use. Use this parameter if you want to list+-- the next page of results. Set pageToken to the nextPageToken returned by+-- a previous list request.+ialPageToken :: Lens' InstancesAggregatedList (Maybe Text)+ialPageToken+  = lens _ialPageToken (\ s a -> s{_ialPageToken = a})++-- | Maximum count of results to be returned.+ialMaxResults :: Lens' InstancesAggregatedList Word32+ialMaxResults+  = lens _ialMaxResults+      (\ s a -> s{_ialMaxResults = a})+      . _Coerce++instance GoogleRequest InstancesAggregatedList where+        type Rs InstancesAggregatedList =+             InstanceAggregatedList+        requestClient InstancesAggregatedList{..}+          = go _ialProject _ialFilter _ialPageToken+              (Just _ialMaxResults)+              (Just AltJSON)+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy InstancesAggregatedListResource)+                      mempty
+ gen/Network/Google/Resource/Compute/Instances/AttachDisk.hs view
@@ -0,0 +1,124 @@+{-# 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.Compute.Instances.AttachDisk+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Attaches a Disk resource to an instance.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instances.attachDisk@.+module Network.Google.Resource.Compute.Instances.AttachDisk+    (+    -- * REST Resource+      InstancesAttachDiskResource++    -- * Creating a Request+    , instancesAttachDisk+    , InstancesAttachDisk++    -- * Request Lenses+    , iadProject+    , iadZone+    , iadPayload+    , iadInstance+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.instances.attachDisk@ method which the+-- 'InstancesAttachDisk' request conforms to.+type InstancesAttachDiskResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "zones" :>+               Capture "zone" Text :>+                 "instances" :>+                   Capture "instance" Text :>+                     "attachDisk" :>+                       QueryParam "alt" AltJSON :>+                         ReqBody '[JSON] AttachedDisk :>+                           Post '[JSON] Operation++-- | Attaches a Disk resource to an instance.+--+-- /See:/ 'instancesAttachDisk' smart constructor.+data InstancesAttachDisk = InstancesAttachDisk+    { _iadProject  :: !Text+    , _iadZone     :: !Text+    , _iadPayload  :: !AttachedDisk+    , _iadInstance :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstancesAttachDisk' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'iadProject'+--+-- * 'iadZone'+--+-- * 'iadPayload'+--+-- * 'iadInstance'+instancesAttachDisk+    :: Text -- ^ 'iadProject'+    -> Text -- ^ 'iadZone'+    -> AttachedDisk -- ^ 'iadPayload'+    -> Text -- ^ 'iadInstance'+    -> InstancesAttachDisk+instancesAttachDisk pIadProject_ pIadZone_ pIadPayload_ pIadInstance_ =+    InstancesAttachDisk+    { _iadProject = pIadProject_+    , _iadZone = pIadZone_+    , _iadPayload = pIadPayload_+    , _iadInstance = pIadInstance_+    }++-- | Project ID for this request.+iadProject :: Lens' InstancesAttachDisk Text+iadProject+  = lens _iadProject (\ s a -> s{_iadProject = a})++-- | The name of the zone for this request.+iadZone :: Lens' InstancesAttachDisk Text+iadZone = lens _iadZone (\ s a -> s{_iadZone = a})++-- | Multipart request metadata.+iadPayload :: Lens' InstancesAttachDisk AttachedDisk+iadPayload+  = lens _iadPayload (\ s a -> s{_iadPayload = a})++-- | Instance name.+iadInstance :: Lens' InstancesAttachDisk Text+iadInstance+  = lens _iadInstance (\ s a -> s{_iadInstance = a})++instance GoogleRequest InstancesAttachDisk where+        type Rs InstancesAttachDisk = Operation+        requestClient InstancesAttachDisk{..}+          = go _iadProject _iadZone _iadInstance (Just AltJSON)+              _iadPayload+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy InstancesAttachDiskResource)+                      mempty
+ gen/Network/Google/Resource/Compute/Instances/Delete.hs view
@@ -0,0 +1,111 @@+{-# 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.Compute.Instances.Delete+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes the specified Instance resource. For more information, see+-- Shutting down an instance.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instances.delete@.+module Network.Google.Resource.Compute.Instances.Delete+    (+    -- * REST Resource+      InstancesDeleteResource++    -- * Creating a Request+    , instancesDelete+    , InstancesDelete++    -- * Request Lenses+    , idProject+    , idZone+    , idInstance+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.instances.delete@ method which the+-- 'InstancesDelete' request conforms to.+type InstancesDeleteResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "zones" :>+               Capture "zone" Text :>+                 "instances" :>+                   Capture "instance" Text :>+                     QueryParam "alt" AltJSON :> Delete '[JSON] Operation++-- | Deletes the specified Instance resource. For more information, see+-- Shutting down an instance.+--+-- /See:/ 'instancesDelete' smart constructor.+data InstancesDelete = InstancesDelete+    { _idProject  :: !Text+    , _idZone     :: !Text+    , _idInstance :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstancesDelete' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'idProject'+--+-- * 'idZone'+--+-- * 'idInstance'+instancesDelete+    :: Text -- ^ 'idProject'+    -> Text -- ^ 'idZone'+    -> Text -- ^ 'idInstance'+    -> InstancesDelete+instancesDelete pIdProject_ pIdZone_ pIdInstance_ =+    InstancesDelete+    { _idProject = pIdProject_+    , _idZone = pIdZone_+    , _idInstance = pIdInstance_+    }++-- | Project ID for this request.+idProject :: Lens' InstancesDelete Text+idProject+  = lens _idProject (\ s a -> s{_idProject = a})++-- | The name of the zone for this request.+idZone :: Lens' InstancesDelete Text+idZone = lens _idZone (\ s a -> s{_idZone = a})++-- | Name of the instance resource to delete.+idInstance :: Lens' InstancesDelete Text+idInstance+  = lens _idInstance (\ s a -> s{_idInstance = a})++instance GoogleRequest InstancesDelete where+        type Rs InstancesDelete = Operation+        requestClient InstancesDelete{..}+          = go _idProject _idZone _idInstance (Just AltJSON)+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy InstancesDeleteResource)+                      mempty
+ gen/Network/Google/Resource/Compute/Instances/DeleteAccessConfig.hs view
@@ -0,0 +1,140 @@+{-# 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.Compute.Instances.DeleteAccessConfig+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes an access config from an instance\'s network interface.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instances.deleteAccessConfig@.+module Network.Google.Resource.Compute.Instances.DeleteAccessConfig+    (+    -- * REST Resource+      InstancesDeleteAccessConfigResource++    -- * Creating a Request+    , instancesDeleteAccessConfig+    , InstancesDeleteAccessConfig++    -- * Request Lenses+    , idacProject+    , idacNetworkInterface+    , idacZone+    , idacAccessConfig+    , idacInstance+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.instances.deleteAccessConfig@ method which the+-- 'InstancesDeleteAccessConfig' request conforms to.+type InstancesDeleteAccessConfigResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "zones" :>+               Capture "zone" Text :>+                 "instances" :>+                   Capture "instance" Text :>+                     "deleteAccessConfig" :>+                       QueryParam "accessConfig" Text :>+                         QueryParam "networkInterface" Text :>+                           QueryParam "alt" AltJSON :> Post '[JSON] Operation++-- | Deletes an access config from an instance\'s network interface.+--+-- /See:/ 'instancesDeleteAccessConfig' smart constructor.+data InstancesDeleteAccessConfig = InstancesDeleteAccessConfig+    { _idacProject          :: !Text+    , _idacNetworkInterface :: !Text+    , _idacZone             :: !Text+    , _idacAccessConfig     :: !Text+    , _idacInstance         :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstancesDeleteAccessConfig' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'idacProject'+--+-- * 'idacNetworkInterface'+--+-- * 'idacZone'+--+-- * 'idacAccessConfig'+--+-- * 'idacInstance'+instancesDeleteAccessConfig+    :: Text -- ^ 'idacProject'+    -> Text -- ^ 'idacNetworkInterface'+    -> Text -- ^ 'idacZone'+    -> Text -- ^ 'idacAccessConfig'+    -> Text -- ^ 'idacInstance'+    -> InstancesDeleteAccessConfig+instancesDeleteAccessConfig pIdacProject_ pIdacNetworkInterface_ pIdacZone_ pIdacAccessConfig_ pIdacInstance_ =+    InstancesDeleteAccessConfig+    { _idacProject = pIdacProject_+    , _idacNetworkInterface = pIdacNetworkInterface_+    , _idacZone = pIdacZone_+    , _idacAccessConfig = pIdacAccessConfig_+    , _idacInstance = pIdacInstance_+    }++-- | Project ID for this request.+idacProject :: Lens' InstancesDeleteAccessConfig Text+idacProject+  = lens _idacProject (\ s a -> s{_idacProject = a})++-- | The name of the network interface.+idacNetworkInterface :: Lens' InstancesDeleteAccessConfig Text+idacNetworkInterface+  = lens _idacNetworkInterface+      (\ s a -> s{_idacNetworkInterface = a})++-- | The name of the zone for this request.+idacZone :: Lens' InstancesDeleteAccessConfig Text+idacZone = lens _idacZone (\ s a -> s{_idacZone = a})++-- | The name of the access config to delete.+idacAccessConfig :: Lens' InstancesDeleteAccessConfig Text+idacAccessConfig+  = lens _idacAccessConfig+      (\ s a -> s{_idacAccessConfig = a})++-- | The instance name for this request.+idacInstance :: Lens' InstancesDeleteAccessConfig Text+idacInstance+  = lens _idacInstance (\ s a -> s{_idacInstance = a})++instance GoogleRequest InstancesDeleteAccessConfig+         where+        type Rs InstancesDeleteAccessConfig = Operation+        requestClient InstancesDeleteAccessConfig{..}+          = go _idacProject _idacZone _idacInstance+              (Just _idacAccessConfig)+              (Just _idacNetworkInterface)+              (Just AltJSON)+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy InstancesDeleteAccessConfigResource)+                      mempty
+ gen/Network/Google/Resource/Compute/Instances/DetachDisk.hs view
@@ -0,0 +1,125 @@+{-# 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.Compute.Instances.DetachDisk+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Detaches a disk from an instance.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instances.detachDisk@.+module Network.Google.Resource.Compute.Instances.DetachDisk+    (+    -- * REST Resource+      InstancesDetachDiskResource++    -- * Creating a Request+    , instancesDetachDisk+    , InstancesDetachDisk++    -- * Request Lenses+    , iddProject+    , iddZone+    , iddDeviceName+    , iddInstance+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.instances.detachDisk@ method which the+-- 'InstancesDetachDisk' request conforms to.+type InstancesDetachDiskResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "zones" :>+               Capture "zone" Text :>+                 "instances" :>+                   Capture "instance" Text :>+                     "detachDisk" :>+                       QueryParam "deviceName" Text :>+                         QueryParam "alt" AltJSON :> Post '[JSON] Operation++-- | Detaches a disk from an instance.+--+-- /See:/ 'instancesDetachDisk' smart constructor.+data InstancesDetachDisk = InstancesDetachDisk+    { _iddProject    :: !Text+    , _iddZone       :: !Text+    , _iddDeviceName :: !Text+    , _iddInstance   :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstancesDetachDisk' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'iddProject'+--+-- * 'iddZone'+--+-- * 'iddDeviceName'+--+-- * 'iddInstance'+instancesDetachDisk+    :: Text -- ^ 'iddProject'+    -> Text -- ^ 'iddZone'+    -> Text -- ^ 'iddDeviceName'+    -> Text -- ^ 'iddInstance'+    -> InstancesDetachDisk+instancesDetachDisk pIddProject_ pIddZone_ pIddDeviceName_ pIddInstance_ =+    InstancesDetachDisk+    { _iddProject = pIddProject_+    , _iddZone = pIddZone_+    , _iddDeviceName = pIddDeviceName_+    , _iddInstance = pIddInstance_+    }++-- | Project ID for this request.+iddProject :: Lens' InstancesDetachDisk Text+iddProject+  = lens _iddProject (\ s a -> s{_iddProject = a})++-- | The name of the zone for this request.+iddZone :: Lens' InstancesDetachDisk Text+iddZone = lens _iddZone (\ s a -> s{_iddZone = a})++-- | Disk device name to detach.+iddDeviceName :: Lens' InstancesDetachDisk Text+iddDeviceName+  = lens _iddDeviceName+      (\ s a -> s{_iddDeviceName = a})++-- | Instance name.+iddInstance :: Lens' InstancesDetachDisk Text+iddInstance+  = lens _iddInstance (\ s a -> s{_iddInstance = a})++instance GoogleRequest InstancesDetachDisk where+        type Rs InstancesDetachDisk = Operation+        requestClient InstancesDetachDisk{..}+          = go _iddProject _iddZone _iddInstance+              (Just _iddDeviceName)+              (Just AltJSON)+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy InstancesDetachDiskResource)+                      mempty
+ gen/Network/Google/Resource/Compute/Instances/Get.hs view
@@ -0,0 +1,108 @@+{-# 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.Compute.Instances.Get+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns the specified instance resource.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instances.get@.+module Network.Google.Resource.Compute.Instances.Get+    (+    -- * REST Resource+      InstancesGetResource++    -- * Creating a Request+    , instancesGet+    , InstancesGet++    -- * Request Lenses+    , igProject+    , igZone+    , igInstance+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.instances.get@ method which the+-- 'InstancesGet' request conforms to.+type InstancesGetResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "zones" :>+               Capture "zone" Text :>+                 "instances" :>+                   Capture "instance" Text :>+                     QueryParam "alt" AltJSON :> Get '[JSON] Instance++-- | Returns the specified instance resource.+--+-- /See:/ 'instancesGet' smart constructor.+data InstancesGet = InstancesGet+    { _igProject  :: !Text+    , _igZone     :: !Text+    , _igInstance :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstancesGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'igProject'+--+-- * 'igZone'+--+-- * 'igInstance'+instancesGet+    :: Text -- ^ 'igProject'+    -> Text -- ^ 'igZone'+    -> Text -- ^ 'igInstance'+    -> InstancesGet+instancesGet pIgProject_ pIgZone_ pIgInstance_ =+    InstancesGet+    { _igProject = pIgProject_+    , _igZone = pIgZone_+    , _igInstance = pIgInstance_+    }++-- | Project ID for this request.+igProject :: Lens' InstancesGet Text+igProject+  = lens _igProject (\ s a -> s{_igProject = a})++-- | The name of the zone for this request.+igZone :: Lens' InstancesGet Text+igZone = lens _igZone (\ s a -> s{_igZone = a})++-- | Name of the instance resource to return.+igInstance :: Lens' InstancesGet Text+igInstance+  = lens _igInstance (\ s a -> s{_igInstance = a})++instance GoogleRequest InstancesGet where+        type Rs InstancesGet = Instance+        requestClient InstancesGet{..}+          = go _igProject _igZone _igInstance (Just AltJSON)+              computeService+          where go+                  = buildClient (Proxy :: Proxy InstancesGetResource)+                      mempty
+ gen/Network/Google/Resource/Compute/Instances/GetSerialPortOutput.hs view
@@ -0,0 +1,129 @@+{-# 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.Compute.Instances.GetSerialPortOutput+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns the specified instance\'s serial port output.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instances.getSerialPortOutput@.+module Network.Google.Resource.Compute.Instances.GetSerialPortOutput+    (+    -- * REST Resource+      InstancesGetSerialPortOutputResource++    -- * Creating a Request+    , instancesGetSerialPortOutput+    , InstancesGetSerialPortOutput++    -- * Request Lenses+    , igspoProject+    , igspoZone+    , igspoPort+    , igspoInstance+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.instances.getSerialPortOutput@ method which the+-- 'InstancesGetSerialPortOutput' request conforms to.+type InstancesGetSerialPortOutputResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "zones" :>+               Capture "zone" Text :>+                 "instances" :>+                   Capture "instance" Text :>+                     "serialPort" :>+                       QueryParam "port" (Textual Int32) :>+                         QueryParam "alt" AltJSON :>+                           Get '[JSON] SerialPortOutput++-- | Returns the specified instance\'s serial port output.+--+-- /See:/ 'instancesGetSerialPortOutput' smart constructor.+data InstancesGetSerialPortOutput = InstancesGetSerialPortOutput+    { _igspoProject  :: !Text+    , _igspoZone     :: !Text+    , _igspoPort     :: !(Textual Int32)+    , _igspoInstance :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstancesGetSerialPortOutput' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'igspoProject'+--+-- * 'igspoZone'+--+-- * 'igspoPort'+--+-- * 'igspoInstance'+instancesGetSerialPortOutput+    :: Text -- ^ 'igspoProject'+    -> Text -- ^ 'igspoZone'+    -> Text -- ^ 'igspoInstance'+    -> InstancesGetSerialPortOutput+instancesGetSerialPortOutput pIgspoProject_ pIgspoZone_ pIgspoInstance_ =+    InstancesGetSerialPortOutput+    { _igspoProject = pIgspoProject_+    , _igspoZone = pIgspoZone_+    , _igspoPort = 1+    , _igspoInstance = pIgspoInstance_+    }++-- | Project ID for this request.+igspoProject :: Lens' InstancesGetSerialPortOutput Text+igspoProject+  = lens _igspoProject (\ s a -> s{_igspoProject = a})++-- | The name of the zone for this request.+igspoZone :: Lens' InstancesGetSerialPortOutput Text+igspoZone+  = lens _igspoZone (\ s a -> s{_igspoZone = a})++-- | Specifies which COM or serial port to retrieve data from.+igspoPort :: Lens' InstancesGetSerialPortOutput Int32+igspoPort+  = lens _igspoPort (\ s a -> s{_igspoPort = a}) .+      _Coerce++-- | Name of the instance scoping this request.+igspoInstance :: Lens' InstancesGetSerialPortOutput Text+igspoInstance+  = lens _igspoInstance+      (\ s a -> s{_igspoInstance = a})++instance GoogleRequest InstancesGetSerialPortOutput+         where+        type Rs InstancesGetSerialPortOutput =+             SerialPortOutput+        requestClient InstancesGetSerialPortOutput{..}+          = go _igspoProject _igspoZone _igspoInstance+              (Just _igspoPort)+              (Just AltJSON)+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy InstancesGetSerialPortOutputResource)+                      mempty
+ gen/Network/Google/Resource/Compute/Instances/Insert.hs view
@@ -0,0 +1,111 @@+{-# 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.Compute.Instances.Insert+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates an instance resource in the specified project using the data+-- included in the request.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instances.insert@.+module Network.Google.Resource.Compute.Instances.Insert+    (+    -- * REST Resource+      InstancesInsertResource++    -- * Creating a Request+    , instancesInsert+    , InstancesInsert++    -- * Request Lenses+    , iiiProject+    , iiiZone+    , iiiPayload+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.instances.insert@ method which the+-- 'InstancesInsert' request conforms to.+type InstancesInsertResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "zones" :>+               Capture "zone" Text :>+                 "instances" :>+                   QueryParam "alt" AltJSON :>+                     ReqBody '[JSON] Instance :> Post '[JSON] Operation++-- | Creates an instance resource in the specified project using the data+-- included in the request.+--+-- /See:/ 'instancesInsert' smart constructor.+data InstancesInsert = InstancesInsert+    { _iiiProject :: !Text+    , _iiiZone    :: !Text+    , _iiiPayload :: !Instance+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstancesInsert' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'iiiProject'+--+-- * 'iiiZone'+--+-- * 'iiiPayload'+instancesInsert+    :: Text -- ^ 'iiiProject'+    -> Text -- ^ 'iiiZone'+    -> Instance -- ^ 'iiiPayload'+    -> InstancesInsert+instancesInsert pIiiProject_ pIiiZone_ pIiiPayload_ =+    InstancesInsert+    { _iiiProject = pIiiProject_+    , _iiiZone = pIiiZone_+    , _iiiPayload = pIiiPayload_+    }++-- | Project ID for this request.+iiiProject :: Lens' InstancesInsert Text+iiiProject+  = lens _iiiProject (\ s a -> s{_iiiProject = a})++-- | The name of the zone for this request.+iiiZone :: Lens' InstancesInsert Text+iiiZone = lens _iiiZone (\ s a -> s{_iiiZone = a})++-- | Multipart request metadata.+iiiPayload :: Lens' InstancesInsert Instance+iiiPayload+  = lens _iiiPayload (\ s a -> s{_iiiPayload = a})++instance GoogleRequest InstancesInsert where+        type Rs InstancesInsert = Operation+        requestClient InstancesInsert{..}+          = go _iiiProject _iiiZone (Just AltJSON) _iiiPayload+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy InstancesInsertResource)+                      mempty
+ gen/Network/Google/Resource/Compute/Instances/List.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.Compute.Instances.List+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves the list of instance resources contained within the specified+-- zone.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instances.list@.+module Network.Google.Resource.Compute.Instances.List+    (+    -- * REST Resource+      InstancesListResource++    -- * Creating a Request+    , instancesList+    , InstancesList++    -- * Request Lenses+    , ilProject+    , ilZone+    , ilFilter+    , ilPageToken+    , ilMaxResults+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.instances.list@ method which the+-- 'InstancesList' request conforms to.+type InstancesListResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "zones" :>+               Capture "zone" Text :>+                 "instances" :>+                   QueryParam "filter" Text :>+                     QueryParam "pageToken" Text :>+                       QueryParam "maxResults" (Textual Word32) :>+                         QueryParam "alt" AltJSON :> Get '[JSON] InstanceList++-- | Retrieves the list of instance resources contained within the specified+-- zone.+--+-- /See:/ 'instancesList' smart constructor.+data InstancesList = InstancesList+    { _ilProject    :: !Text+    , _ilZone       :: !Text+    , _ilFilter     :: !(Maybe Text)+    , _ilPageToken  :: !(Maybe Text)+    , _ilMaxResults :: !(Textual Word32)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstancesList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ilProject'+--+-- * 'ilZone'+--+-- * 'ilFilter'+--+-- * 'ilPageToken'+--+-- * 'ilMaxResults'+instancesList+    :: Text -- ^ 'ilProject'+    -> Text -- ^ 'ilZone'+    -> InstancesList+instancesList pIlProject_ pIlZone_ =+    InstancesList+    { _ilProject = pIlProject_+    , _ilZone = pIlZone_+    , _ilFilter = Nothing+    , _ilPageToken = Nothing+    , _ilMaxResults = 500+    }++-- | Project ID for this request.+ilProject :: Lens' InstancesList Text+ilProject+  = lens _ilProject (\ s a -> s{_ilProject = a})++-- | The name of the zone for this request.+ilZone :: Lens' InstancesList Text+ilZone = lens _ilZone (\ s a -> s{_ilZone = a})++-- | Sets a filter expression for filtering listed resources, in the form+-- filter={expression}. Your {expression} must be in the format: FIELD_NAME+-- COMPARISON_STRING LITERAL_STRING. The FIELD_NAME is the name of the+-- field you want to compare. Only atomic field types are supported+-- (string, number, boolean). The COMPARISON_STRING must be either eq+-- (equals) or ne (not equals). The LITERAL_STRING is the string value to+-- filter to. The literal value must be valid for the type of field+-- (string, number, boolean). For string fields, the literal value is+-- interpreted as a regular expression using RE2 syntax. The literal value+-- must match the entire field. For example, filter=name ne+-- example-instance.+ilFilter :: Lens' InstancesList (Maybe Text)+ilFilter = lens _ilFilter (\ s a -> s{_ilFilter = a})++-- | Specifies a page token to use. Use this parameter if you want to list+-- the next page of results. Set pageToken to the nextPageToken returned by+-- a previous list request.+ilPageToken :: Lens' InstancesList (Maybe Text)+ilPageToken+  = lens _ilPageToken (\ s a -> s{_ilPageToken = a})++-- | Maximum count of results to be returned.+ilMaxResults :: Lens' InstancesList Word32+ilMaxResults+  = lens _ilMaxResults (\ s a -> s{_ilMaxResults = a})+      . _Coerce++instance GoogleRequest InstancesList where+        type Rs InstancesList = InstanceList+        requestClient InstancesList{..}+          = go _ilProject _ilZone _ilFilter _ilPageToken+              (Just _ilMaxResults)+              (Just AltJSON)+              computeService+          where go+                  = buildClient (Proxy :: Proxy InstancesListResource)+                      mempty
+ gen/Network/Google/Resource/Compute/Instances/Reset.hs view
@@ -0,0 +1,109 @@+{-# 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.Compute.Instances.Reset+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Performs a hard reset on the instance.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instances.reset@.+module Network.Google.Resource.Compute.Instances.Reset+    (+    -- * REST Resource+      InstancesResetResource++    -- * Creating a Request+    , instancesReset+    , InstancesReset++    -- * Request Lenses+    , irProject+    , irZone+    , irInstance+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.instances.reset@ method which the+-- 'InstancesReset' request conforms to.+type InstancesResetResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "zones" :>+               Capture "zone" Text :>+                 "instances" :>+                   Capture "instance" Text :>+                     "reset" :>+                       QueryParam "alt" AltJSON :> Post '[JSON] Operation++-- | Performs a hard reset on the instance.+--+-- /See:/ 'instancesReset' smart constructor.+data InstancesReset = InstancesReset+    { _irProject  :: !Text+    , _irZone     :: !Text+    , _irInstance :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstancesReset' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'irProject'+--+-- * 'irZone'+--+-- * 'irInstance'+instancesReset+    :: Text -- ^ 'irProject'+    -> Text -- ^ 'irZone'+    -> Text -- ^ 'irInstance'+    -> InstancesReset+instancesReset pIrProject_ pIrZone_ pIrInstance_ =+    InstancesReset+    { _irProject = pIrProject_+    , _irZone = pIrZone_+    , _irInstance = pIrInstance_+    }++-- | Project ID for this request.+irProject :: Lens' InstancesReset Text+irProject+  = lens _irProject (\ s a -> s{_irProject = a})++-- | The name of the zone for this request.+irZone :: Lens' InstancesReset Text+irZone = lens _irZone (\ s a -> s{_irZone = a})++-- | Name of the instance scoping this request.+irInstance :: Lens' InstancesReset Text+irInstance+  = lens _irInstance (\ s a -> s{_irInstance = a})++instance GoogleRequest InstancesReset where+        type Rs InstancesReset = Operation+        requestClient InstancesReset{..}+          = go _irProject _irZone _irInstance (Just AltJSON)+              computeService+          where go+                  = buildClient (Proxy :: Proxy InstancesResetResource)+                      mempty
+ gen/Network/Google/Resource/Compute/Instances/SetDiskAutoDelete.hs view
@@ -0,0 +1,142 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Compute.Instances.SetDiskAutoDelete+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Sets the auto-delete flag for a disk attached to an instance.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instances.setDiskAutoDelete@.+module Network.Google.Resource.Compute.Instances.SetDiskAutoDelete+    (+    -- * REST Resource+      InstancesSetDiskAutoDeleteResource++    -- * Creating a Request+    , instancesSetDiskAutoDelete+    , InstancesSetDiskAutoDelete++    -- * Request Lenses+    , isdadProject+    , isdadAutoDelete+    , isdadZone+    , isdadDeviceName+    , isdadInstance+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.instances.setDiskAutoDelete@ method which the+-- 'InstancesSetDiskAutoDelete' request conforms to.+type InstancesSetDiskAutoDeleteResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "zones" :>+               Capture "zone" Text :>+                 "instances" :>+                   Capture "instance" Text :>+                     "setDiskAutoDelete" :>+                       QueryParam "autoDelete" Bool :>+                         QueryParam "deviceName" Text :>+                           QueryParam "alt" AltJSON :> Post '[JSON] Operation++-- | Sets the auto-delete flag for a disk attached to an instance.+--+-- /See:/ 'instancesSetDiskAutoDelete' smart constructor.+data InstancesSetDiskAutoDelete = InstancesSetDiskAutoDelete+    { _isdadProject    :: !Text+    , _isdadAutoDelete :: !Bool+    , _isdadZone       :: !Text+    , _isdadDeviceName :: !Text+    , _isdadInstance   :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstancesSetDiskAutoDelete' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'isdadProject'+--+-- * 'isdadAutoDelete'+--+-- * 'isdadZone'+--+-- * 'isdadDeviceName'+--+-- * 'isdadInstance'+instancesSetDiskAutoDelete+    :: Text -- ^ 'isdadProject'+    -> Bool -- ^ 'isdadAutoDelete'+    -> Text -- ^ 'isdadZone'+    -> Text -- ^ 'isdadDeviceName'+    -> Text -- ^ 'isdadInstance'+    -> InstancesSetDiskAutoDelete+instancesSetDiskAutoDelete pIsdadProject_ pIsdadAutoDelete_ pIsdadZone_ pIsdadDeviceName_ pIsdadInstance_ =+    InstancesSetDiskAutoDelete+    { _isdadProject = pIsdadProject_+    , _isdadAutoDelete = pIsdadAutoDelete_+    , _isdadZone = pIsdadZone_+    , _isdadDeviceName = pIsdadDeviceName_+    , _isdadInstance = pIsdadInstance_+    }++-- | Project ID for this request.+isdadProject :: Lens' InstancesSetDiskAutoDelete Text+isdadProject+  = lens _isdadProject (\ s a -> s{_isdadProject = a})++-- | Whether to auto-delete the disk when the instance is deleted.+isdadAutoDelete :: Lens' InstancesSetDiskAutoDelete Bool+isdadAutoDelete+  = lens _isdadAutoDelete+      (\ s a -> s{_isdadAutoDelete = a})++-- | The name of the zone for this request.+isdadZone :: Lens' InstancesSetDiskAutoDelete Text+isdadZone+  = lens _isdadZone (\ s a -> s{_isdadZone = a})++-- | The device name of the disk to modify.+isdadDeviceName :: Lens' InstancesSetDiskAutoDelete Text+isdadDeviceName+  = lens _isdadDeviceName+      (\ s a -> s{_isdadDeviceName = a})++-- | The instance name.+isdadInstance :: Lens' InstancesSetDiskAutoDelete Text+isdadInstance+  = lens _isdadInstance+      (\ s a -> s{_isdadInstance = a})++instance GoogleRequest InstancesSetDiskAutoDelete+         where+        type Rs InstancesSetDiskAutoDelete = Operation+        requestClient InstancesSetDiskAutoDelete{..}+          = go _isdadProject _isdadZone _isdadInstance+              (Just _isdadAutoDelete)+              (Just _isdadDeviceName)+              (Just AltJSON)+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy InstancesSetDiskAutoDeleteResource)+                      mempty
+ gen/Network/Google/Resource/Compute/Instances/SetMetadata.hs view
@@ -0,0 +1,125 @@+{-# 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.Compute.Instances.SetMetadata+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Sets metadata for the specified instance to the data included in the+-- request.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instances.setMetadata@.+module Network.Google.Resource.Compute.Instances.SetMetadata+    (+    -- * REST Resource+      InstancesSetMetadataResource++    -- * Creating a Request+    , instancesSetMetadata+    , InstancesSetMetadata++    -- * Request Lenses+    , ismProject+    , ismZone+    , ismPayload+    , ismInstance+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.instances.setMetadata@ method which the+-- 'InstancesSetMetadata' request conforms to.+type InstancesSetMetadataResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "zones" :>+               Capture "zone" Text :>+                 "instances" :>+                   Capture "instance" Text :>+                     "setMetadata" :>+                       QueryParam "alt" AltJSON :>+                         ReqBody '[JSON] Metadata :> Post '[JSON] Operation++-- | Sets metadata for the specified instance to the data included in the+-- request.+--+-- /See:/ 'instancesSetMetadata' smart constructor.+data InstancesSetMetadata = InstancesSetMetadata+    { _ismProject  :: !Text+    , _ismZone     :: !Text+    , _ismPayload  :: !Metadata+    , _ismInstance :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstancesSetMetadata' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ismProject'+--+-- * 'ismZone'+--+-- * 'ismPayload'+--+-- * 'ismInstance'+instancesSetMetadata+    :: Text -- ^ 'ismProject'+    -> Text -- ^ 'ismZone'+    -> Metadata -- ^ 'ismPayload'+    -> Text -- ^ 'ismInstance'+    -> InstancesSetMetadata+instancesSetMetadata pIsmProject_ pIsmZone_ pIsmPayload_ pIsmInstance_ =+    InstancesSetMetadata+    { _ismProject = pIsmProject_+    , _ismZone = pIsmZone_+    , _ismPayload = pIsmPayload_+    , _ismInstance = pIsmInstance_+    }++-- | Project ID for this request.+ismProject :: Lens' InstancesSetMetadata Text+ismProject+  = lens _ismProject (\ s a -> s{_ismProject = a})++-- | The name of the zone for this request.+ismZone :: Lens' InstancesSetMetadata Text+ismZone = lens _ismZone (\ s a -> s{_ismZone = a})++-- | Multipart request metadata.+ismPayload :: Lens' InstancesSetMetadata Metadata+ismPayload+  = lens _ismPayload (\ s a -> s{_ismPayload = a})++-- | Name of the instance scoping this request.+ismInstance :: Lens' InstancesSetMetadata Text+ismInstance+  = lens _ismInstance (\ s a -> s{_ismInstance = a})++instance GoogleRequest InstancesSetMetadata where+        type Rs InstancesSetMetadata = Operation+        requestClient InstancesSetMetadata{..}+          = go _ismProject _ismZone _ismInstance (Just AltJSON)+              _ismPayload+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy InstancesSetMetadataResource)+                      mempty
+ gen/Network/Google/Resource/Compute/Instances/SetScheduling.hs view
@@ -0,0 +1,123 @@+{-# 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.Compute.Instances.SetScheduling+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Sets an instance\'s scheduling options.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instances.setScheduling@.+module Network.Google.Resource.Compute.Instances.SetScheduling+    (+    -- * REST Resource+      InstancesSetSchedulingResource++    -- * Creating a Request+    , instancesSetScheduling+    , InstancesSetScheduling++    -- * Request Lenses+    , issProject+    , issZone+    , issPayload+    , issInstance+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.instances.setScheduling@ method which the+-- 'InstancesSetScheduling' request conforms to.+type InstancesSetSchedulingResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "zones" :>+               Capture "zone" Text :>+                 "instances" :>+                   Capture "instance" Text :>+                     "setScheduling" :>+                       QueryParam "alt" AltJSON :>+                         ReqBody '[JSON] Scheduling :> Post '[JSON] Operation++-- | Sets an instance\'s scheduling options.+--+-- /See:/ 'instancesSetScheduling' smart constructor.+data InstancesSetScheduling = InstancesSetScheduling+    { _issProject  :: !Text+    , _issZone     :: !Text+    , _issPayload  :: !Scheduling+    , _issInstance :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstancesSetScheduling' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'issProject'+--+-- * 'issZone'+--+-- * 'issPayload'+--+-- * 'issInstance'+instancesSetScheduling+    :: Text -- ^ 'issProject'+    -> Text -- ^ 'issZone'+    -> Scheduling -- ^ 'issPayload'+    -> Text -- ^ 'issInstance'+    -> InstancesSetScheduling+instancesSetScheduling pIssProject_ pIssZone_ pIssPayload_ pIssInstance_ =+    InstancesSetScheduling+    { _issProject = pIssProject_+    , _issZone = pIssZone_+    , _issPayload = pIssPayload_+    , _issInstance = pIssInstance_+    }++-- | Project ID for this request.+issProject :: Lens' InstancesSetScheduling Text+issProject+  = lens _issProject (\ s a -> s{_issProject = a})++-- | The name of the zone for this request.+issZone :: Lens' InstancesSetScheduling Text+issZone = lens _issZone (\ s a -> s{_issZone = a})++-- | Multipart request metadata.+issPayload :: Lens' InstancesSetScheduling Scheduling+issPayload+  = lens _issPayload (\ s a -> s{_issPayload = a})++-- | Instance name.+issInstance :: Lens' InstancesSetScheduling Text+issInstance+  = lens _issInstance (\ s a -> s{_issInstance = a})++instance GoogleRequest InstancesSetScheduling where+        type Rs InstancesSetScheduling = Operation+        requestClient InstancesSetScheduling{..}+          = go _issProject _issZone _issInstance (Just AltJSON)+              _issPayload+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy InstancesSetSchedulingResource)+                      mempty
+ gen/Network/Google/Resource/Compute/Instances/SetTags.hs view
@@ -0,0 +1,125 @@+{-# 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.Compute.Instances.SetTags+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Sets tags for the specified instance to the data included in the+-- request.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instances.setTags@.+module Network.Google.Resource.Compute.Instances.SetTags+    (+    -- * REST Resource+      InstancesSetTagsResource++    -- * Creating a Request+    , instancesSetTags+    , InstancesSetTags++    -- * Request Lenses+    , istProject+    , istZone+    , istPayload+    , istInstance+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.instances.setTags@ method which the+-- 'InstancesSetTags' request conforms to.+type InstancesSetTagsResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "zones" :>+               Capture "zone" Text :>+                 "instances" :>+                   Capture "instance" Text :>+                     "setTags" :>+                       QueryParam "alt" AltJSON :>+                         ReqBody '[JSON] Tags :> Post '[JSON] Operation++-- | Sets tags for the specified instance to the data included in the+-- request.+--+-- /See:/ 'instancesSetTags' smart constructor.+data InstancesSetTags = InstancesSetTags+    { _istProject  :: !Text+    , _istZone     :: !Text+    , _istPayload  :: !Tags+    , _istInstance :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstancesSetTags' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'istProject'+--+-- * 'istZone'+--+-- * 'istPayload'+--+-- * 'istInstance'+instancesSetTags+    :: Text -- ^ 'istProject'+    -> Text -- ^ 'istZone'+    -> Tags -- ^ 'istPayload'+    -> Text -- ^ 'istInstance'+    -> InstancesSetTags+instancesSetTags pIstProject_ pIstZone_ pIstPayload_ pIstInstance_ =+    InstancesSetTags+    { _istProject = pIstProject_+    , _istZone = pIstZone_+    , _istPayload = pIstPayload_+    , _istInstance = pIstInstance_+    }++-- | Project ID for this request.+istProject :: Lens' InstancesSetTags Text+istProject+  = lens _istProject (\ s a -> s{_istProject = a})++-- | The name of the zone for this request.+istZone :: Lens' InstancesSetTags Text+istZone = lens _istZone (\ s a -> s{_istZone = a})++-- | Multipart request metadata.+istPayload :: Lens' InstancesSetTags Tags+istPayload+  = lens _istPayload (\ s a -> s{_istPayload = a})++-- | Name of the instance scoping this request.+istInstance :: Lens' InstancesSetTags Text+istInstance+  = lens _istInstance (\ s a -> s{_istInstance = a})++instance GoogleRequest InstancesSetTags where+        type Rs InstancesSetTags = Operation+        requestClient InstancesSetTags{..}+          = go _istProject _istZone _istInstance (Just AltJSON)+              _istPayload+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy InstancesSetTagsResource)+                      mempty
+ gen/Network/Google/Resource/Compute/Instances/Start.hs view
@@ -0,0 +1,111 @@+{-# 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.Compute.Instances.Start+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- This method starts an instance that was stopped using the using the+-- instances().stop method. For more information, see Restart an instance.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instances.start@.+module Network.Google.Resource.Compute.Instances.Start+    (+    -- * REST Resource+      InstancesStartResource++    -- * Creating a Request+    , instancesStart+    , InstancesStart++    -- * Request Lenses+    , insProject+    , insZone+    , insInstance+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.instances.start@ method which the+-- 'InstancesStart' request conforms to.+type InstancesStartResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "zones" :>+               Capture "zone" Text :>+                 "instances" :>+                   Capture "instance" Text :>+                     "start" :>+                       QueryParam "alt" AltJSON :> Post '[JSON] Operation++-- | This method starts an instance that was stopped using the using the+-- instances().stop method. For more information, see Restart an instance.+--+-- /See:/ 'instancesStart' smart constructor.+data InstancesStart = InstancesStart+    { _insProject  :: !Text+    , _insZone     :: !Text+    , _insInstance :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstancesStart' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'insProject'+--+-- * 'insZone'+--+-- * 'insInstance'+instancesStart+    :: Text -- ^ 'insProject'+    -> Text -- ^ 'insZone'+    -> Text -- ^ 'insInstance'+    -> InstancesStart+instancesStart pInsProject_ pInsZone_ pInsInstance_ =+    InstancesStart+    { _insProject = pInsProject_+    , _insZone = pInsZone_+    , _insInstance = pInsInstance_+    }++-- | Project ID for this request.+insProject :: Lens' InstancesStart Text+insProject+  = lens _insProject (\ s a -> s{_insProject = a})++-- | The name of the zone for this request.+insZone :: Lens' InstancesStart Text+insZone = lens _insZone (\ s a -> s{_insZone = a})++-- | Name of the instance resource to start.+insInstance :: Lens' InstancesStart Text+insInstance+  = lens _insInstance (\ s a -> s{_insInstance = a})++instance GoogleRequest InstancesStart where+        type Rs InstancesStart = Operation+        requestClient InstancesStart{..}+          = go _insProject _insZone _insInstance (Just AltJSON)+              computeService+          where go+                  = buildClient (Proxy :: Proxy InstancesStartResource)+                      mempty
+ gen/Network/Google/Resource/Compute/Instances/Stop.hs view
@@ -0,0 +1,119 @@+{-# 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.Compute.Instances.Stop+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- This method stops a running instance, shutting it down cleanly, and+-- allows you to restart the instance at a later time. Stopped instances do+-- not incur per-minute, virtual machine usage charges while they are+-- stopped, but any resources that the virtual machine is using, such as+-- persistent disks and static IP addresses,will continue to be charged+-- until they are deleted. For more information, see Stopping an instance.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instances.stop@.+module Network.Google.Resource.Compute.Instances.Stop+    (+    -- * REST Resource+      InstancesStopResource++    -- * Creating a Request+    , instancesStop+    , InstancesStop++    -- * Request Lenses+    , isProject+    , isZone+    , isInstance+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.instances.stop@ method which the+-- 'InstancesStop' request conforms to.+type InstancesStopResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "zones" :>+               Capture "zone" Text :>+                 "instances" :>+                   Capture "instance" Text :>+                     "stop" :>+                       QueryParam "alt" AltJSON :> Post '[JSON] Operation++-- | This method stops a running instance, shutting it down cleanly, and+-- allows you to restart the instance at a later time. Stopped instances do+-- not incur per-minute, virtual machine usage charges while they are+-- stopped, but any resources that the virtual machine is using, such as+-- persistent disks and static IP addresses,will continue to be charged+-- until they are deleted. For more information, see Stopping an instance.+--+-- /See:/ 'instancesStop' smart constructor.+data InstancesStop = InstancesStop+    { _isProject  :: !Text+    , _isZone     :: !Text+    , _isInstance :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstancesStop' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'isProject'+--+-- * 'isZone'+--+-- * 'isInstance'+instancesStop+    :: Text -- ^ 'isProject'+    -> Text -- ^ 'isZone'+    -> Text -- ^ 'isInstance'+    -> InstancesStop+instancesStop pIsProject_ pIsZone_ pIsInstance_ =+    InstancesStop+    { _isProject = pIsProject_+    , _isZone = pIsZone_+    , _isInstance = pIsInstance_+    }++-- | Project ID for this request.+isProject :: Lens' InstancesStop Text+isProject+  = lens _isProject (\ s a -> s{_isProject = a})++-- | The name of the zone for this request.+isZone :: Lens' InstancesStop Text+isZone = lens _isZone (\ s a -> s{_isZone = a})++-- | Name of the instance resource to stop.+isInstance :: Lens' InstancesStop Text+isInstance+  = lens _isInstance (\ s a -> s{_isInstance = a})++instance GoogleRequest InstancesStop where+        type Rs InstancesStop = Operation+        requestClient InstancesStop{..}+          = go _isProject _isZone _isInstance (Just AltJSON)+              computeService+          where go+                  = buildClient (Proxy :: Proxy InstancesStopResource)+                      mempty
+ gen/Network/Google/Resource/Compute/Licenses/Get.hs view
@@ -0,0 +1,97 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Compute.Licenses.Get+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns the specified license resource.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.licenses.get@.+module Network.Google.Resource.Compute.Licenses.Get+    (+    -- * REST Resource+      LicensesGetResource++    -- * Creating a Request+    , licensesGet+    , LicensesGet++    -- * Request Lenses+    , lgProject+    , lgLicense+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.licenses.get@ method which the+-- 'LicensesGet' request conforms to.+type LicensesGetResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "global" :>+               "licenses" :>+                 Capture "license" Text :>+                   QueryParam "alt" AltJSON :> Get '[JSON] License++-- | Returns the specified license resource.+--+-- /See:/ 'licensesGet' smart constructor.+data LicensesGet = LicensesGet+    { _lgProject :: !Text+    , _lgLicense :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'LicensesGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lgProject'+--+-- * 'lgLicense'+licensesGet+    :: Text -- ^ 'lgProject'+    -> Text -- ^ 'lgLicense'+    -> LicensesGet+licensesGet pLgProject_ pLgLicense_ =+    LicensesGet+    { _lgProject = pLgProject_+    , _lgLicense = pLgLicense_+    }++-- | Project ID for this request.+lgProject :: Lens' LicensesGet Text+lgProject+  = lens _lgProject (\ s a -> s{_lgProject = a})++-- | Name of the license resource to return.+lgLicense :: Lens' LicensesGet Text+lgLicense+  = lens _lgLicense (\ s a -> s{_lgLicense = a})++instance GoogleRequest LicensesGet where+        type Rs LicensesGet = License+        requestClient LicensesGet{..}+          = go _lgProject _lgLicense (Just AltJSON)+              computeService+          where go+                  = buildClient (Proxy :: Proxy LicensesGetResource)+                      mempty
+ gen/Network/Google/Resource/Compute/MachineTypes/AggregatedList.hs view
@@ -0,0 +1,139 @@+{-# 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.Compute.MachineTypes.AggregatedList+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves the list of machine type resources grouped by scope.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.machineTypes.aggregatedList@.+module Network.Google.Resource.Compute.MachineTypes.AggregatedList+    (+    -- * REST Resource+      MachineTypesAggregatedListResource++    -- * Creating a Request+    , machineTypesAggregatedList+    , MachineTypesAggregatedList++    -- * Request Lenses+    , mtalProject+    , mtalFilter+    , mtalPageToken+    , mtalMaxResults+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.machineTypes.aggregatedList@ method which the+-- 'MachineTypesAggregatedList' request conforms to.+type MachineTypesAggregatedListResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "aggregated" :>+               "machineTypes" :>+                 QueryParam "filter" Text :>+                   QueryParam "pageToken" Text :>+                     QueryParam "maxResults" (Textual Word32) :>+                       QueryParam "alt" AltJSON :>+                         Get '[JSON] MachineTypeAggregatedList++-- | Retrieves the list of machine type resources grouped by scope.+--+-- /See:/ 'machineTypesAggregatedList' smart constructor.+data MachineTypesAggregatedList = MachineTypesAggregatedList+    { _mtalProject    :: !Text+    , _mtalFilter     :: !(Maybe Text)+    , _mtalPageToken  :: !(Maybe Text)+    , _mtalMaxResults :: !(Textual Word32)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'MachineTypesAggregatedList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mtalProject'+--+-- * 'mtalFilter'+--+-- * 'mtalPageToken'+--+-- * 'mtalMaxResults'+machineTypesAggregatedList+    :: Text -- ^ 'mtalProject'+    -> MachineTypesAggregatedList+machineTypesAggregatedList pMtalProject_ =+    MachineTypesAggregatedList+    { _mtalProject = pMtalProject_+    , _mtalFilter = Nothing+    , _mtalPageToken = Nothing+    , _mtalMaxResults = 500+    }++-- | Project ID for this request.+mtalProject :: Lens' MachineTypesAggregatedList Text+mtalProject+  = lens _mtalProject (\ s a -> s{_mtalProject = a})++-- | Sets a filter expression for filtering listed resources, in the form+-- filter={expression}. Your {expression} must be in the format: FIELD_NAME+-- COMPARISON_STRING LITERAL_STRING. The FIELD_NAME is the name of the+-- field you want to compare. Only atomic field types are supported+-- (string, number, boolean). The COMPARISON_STRING must be either eq+-- (equals) or ne (not equals). The LITERAL_STRING is the string value to+-- filter to. The literal value must be valid for the type of field+-- (string, number, boolean). For string fields, the literal value is+-- interpreted as a regular expression using RE2 syntax. The literal value+-- must match the entire field. For example, filter=name ne+-- example-instance.+mtalFilter :: Lens' MachineTypesAggregatedList (Maybe Text)+mtalFilter+  = lens _mtalFilter (\ s a -> s{_mtalFilter = a})++-- | Specifies a page token to use. Use this parameter if you want to list+-- the next page of results. Set pageToken to the nextPageToken returned by+-- a previous list request.+mtalPageToken :: Lens' MachineTypesAggregatedList (Maybe Text)+mtalPageToken+  = lens _mtalPageToken+      (\ s a -> s{_mtalPageToken = a})++-- | Maximum count of results to be returned.+mtalMaxResults :: Lens' MachineTypesAggregatedList Word32+mtalMaxResults+  = lens _mtalMaxResults+      (\ s a -> s{_mtalMaxResults = a})+      . _Coerce++instance GoogleRequest MachineTypesAggregatedList+         where+        type Rs MachineTypesAggregatedList =+             MachineTypeAggregatedList+        requestClient MachineTypesAggregatedList{..}+          = go _mtalProject _mtalFilter _mtalPageToken+              (Just _mtalMaxResults)+              (Just AltJSON)+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy MachineTypesAggregatedListResource)+                      mempty
+ gen/Network/Google/Resource/Compute/MachineTypes/Get.hs view
@@ -0,0 +1,111 @@+{-# 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.Compute.MachineTypes.Get+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns the specified machine type resource.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.machineTypes.get@.+module Network.Google.Resource.Compute.MachineTypes.Get+    (+    -- * REST Resource+      MachineTypesGetResource++    -- * Creating a Request+    , machineTypesGet+    , MachineTypesGet++    -- * Request Lenses+    , mtgProject+    , mtgZone+    , mtgMachineType+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.machineTypes.get@ method which the+-- 'MachineTypesGet' request conforms to.+type MachineTypesGetResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "zones" :>+               Capture "zone" Text :>+                 "machineTypes" :>+                   Capture "machineType" Text :>+                     QueryParam "alt" AltJSON :> Get '[JSON] MachineType++-- | Returns the specified machine type resource.+--+-- /See:/ 'machineTypesGet' smart constructor.+data MachineTypesGet = MachineTypesGet+    { _mtgProject     :: !Text+    , _mtgZone        :: !Text+    , _mtgMachineType :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'MachineTypesGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mtgProject'+--+-- * 'mtgZone'+--+-- * 'mtgMachineType'+machineTypesGet+    :: Text -- ^ 'mtgProject'+    -> Text -- ^ 'mtgZone'+    -> Text -- ^ 'mtgMachineType'+    -> MachineTypesGet+machineTypesGet pMtgProject_ pMtgZone_ pMtgMachineType_ =+    MachineTypesGet+    { _mtgProject = pMtgProject_+    , _mtgZone = pMtgZone_+    , _mtgMachineType = pMtgMachineType_+    }++-- | Project ID for this request.+mtgProject :: Lens' MachineTypesGet Text+mtgProject+  = lens _mtgProject (\ s a -> s{_mtgProject = a})++-- | The name of the zone for this request.+mtgZone :: Lens' MachineTypesGet Text+mtgZone = lens _mtgZone (\ s a -> s{_mtgZone = a})++-- | Name of the machine type resource to return.+mtgMachineType :: Lens' MachineTypesGet Text+mtgMachineType+  = lens _mtgMachineType+      (\ s a -> s{_mtgMachineType = a})++instance GoogleRequest MachineTypesGet where+        type Rs MachineTypesGet = MachineType+        requestClient MachineTypesGet{..}+          = go _mtgProject _mtgZone _mtgMachineType+              (Just AltJSON)+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy MachineTypesGetResource)+                      mempty
+ gen/Network/Google/Resource/Compute/MachineTypes/List.hs view
@@ -0,0 +1,149 @@+{-# 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.Compute.MachineTypes.List+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves the list of machine type resources available to the specified+-- project.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.machineTypes.list@.+module Network.Google.Resource.Compute.MachineTypes.List+    (+    -- * REST Resource+      MachineTypesListResource++    -- * Creating a Request+    , machineTypesList+    , MachineTypesList++    -- * Request Lenses+    , mtlProject+    , mtlZone+    , mtlFilter+    , mtlPageToken+    , mtlMaxResults+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.machineTypes.list@ method which the+-- 'MachineTypesList' request conforms to.+type MachineTypesListResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "zones" :>+               Capture "zone" Text :>+                 "machineTypes" :>+                   QueryParam "filter" Text :>+                     QueryParam "pageToken" Text :>+                       QueryParam "maxResults" (Textual Word32) :>+                         QueryParam "alt" AltJSON :>+                           Get '[JSON] MachineTypeList++-- | Retrieves the list of machine type resources available to the specified+-- project.+--+-- /See:/ 'machineTypesList' smart constructor.+data MachineTypesList = MachineTypesList+    { _mtlProject    :: !Text+    , _mtlZone       :: !Text+    , _mtlFilter     :: !(Maybe Text)+    , _mtlPageToken  :: !(Maybe Text)+    , _mtlMaxResults :: !(Textual Word32)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'MachineTypesList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mtlProject'+--+-- * 'mtlZone'+--+-- * 'mtlFilter'+--+-- * 'mtlPageToken'+--+-- * 'mtlMaxResults'+machineTypesList+    :: Text -- ^ 'mtlProject'+    -> Text -- ^ 'mtlZone'+    -> MachineTypesList+machineTypesList pMtlProject_ pMtlZone_ =+    MachineTypesList+    { _mtlProject = pMtlProject_+    , _mtlZone = pMtlZone_+    , _mtlFilter = Nothing+    , _mtlPageToken = Nothing+    , _mtlMaxResults = 500+    }++-- | Project ID for this request.+mtlProject :: Lens' MachineTypesList Text+mtlProject+  = lens _mtlProject (\ s a -> s{_mtlProject = a})++-- | The name of the zone for this request.+mtlZone :: Lens' MachineTypesList Text+mtlZone = lens _mtlZone (\ s a -> s{_mtlZone = a})++-- | Sets a filter expression for filtering listed resources, in the form+-- filter={expression}. Your {expression} must be in the format: FIELD_NAME+-- COMPARISON_STRING LITERAL_STRING. The FIELD_NAME is the name of the+-- field you want to compare. Only atomic field types are supported+-- (string, number, boolean). The COMPARISON_STRING must be either eq+-- (equals) or ne (not equals). The LITERAL_STRING is the string value to+-- filter to. The literal value must be valid for the type of field+-- (string, number, boolean). For string fields, the literal value is+-- interpreted as a regular expression using RE2 syntax. The literal value+-- must match the entire field. For example, filter=name ne+-- example-instance.+mtlFilter :: Lens' MachineTypesList (Maybe Text)+mtlFilter+  = lens _mtlFilter (\ s a -> s{_mtlFilter = a})++-- | Specifies a page token to use. Use this parameter if you want to list+-- the next page of results. Set pageToken to the nextPageToken returned by+-- a previous list request.+mtlPageToken :: Lens' MachineTypesList (Maybe Text)+mtlPageToken+  = lens _mtlPageToken (\ s a -> s{_mtlPageToken = a})++-- | Maximum count of results to be returned.+mtlMaxResults :: Lens' MachineTypesList Word32+mtlMaxResults+  = lens _mtlMaxResults+      (\ s a -> s{_mtlMaxResults = a})+      . _Coerce++instance GoogleRequest MachineTypesList where+        type Rs MachineTypesList = MachineTypeList+        requestClient MachineTypesList{..}+          = go _mtlProject _mtlZone _mtlFilter _mtlPageToken+              (Just _mtlMaxResults)+              (Just AltJSON)+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy MachineTypesListResource)+                      mempty
+ gen/Network/Google/Resource/Compute/Networks/Delete.hs view
@@ -0,0 +1,97 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Compute.Networks.Delete+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes the specified network resource.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.networks.delete@.+module Network.Google.Resource.Compute.Networks.Delete+    (+    -- * REST Resource+      NetworksDeleteResource++    -- * Creating a Request+    , networksDelete+    , NetworksDelete++    -- * Request Lenses+    , ndProject+    , ndNetwork+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.networks.delete@ method which the+-- 'NetworksDelete' request conforms to.+type NetworksDeleteResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "global" :>+               "networks" :>+                 Capture "network" Text :>+                   QueryParam "alt" AltJSON :> Delete '[JSON] Operation++-- | Deletes the specified network resource.+--+-- /See:/ 'networksDelete' smart constructor.+data NetworksDelete = NetworksDelete+    { _ndProject :: !Text+    , _ndNetwork :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'NetworksDelete' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ndProject'+--+-- * 'ndNetwork'+networksDelete+    :: Text -- ^ 'ndProject'+    -> Text -- ^ 'ndNetwork'+    -> NetworksDelete+networksDelete pNdProject_ pNdNetwork_ =+    NetworksDelete+    { _ndProject = pNdProject_+    , _ndNetwork = pNdNetwork_+    }++-- | Project ID for this request.+ndProject :: Lens' NetworksDelete Text+ndProject+  = lens _ndProject (\ s a -> s{_ndProject = a})++-- | Name of the network resource to delete.+ndNetwork :: Lens' NetworksDelete Text+ndNetwork+  = lens _ndNetwork (\ s a -> s{_ndNetwork = a})++instance GoogleRequest NetworksDelete where+        type Rs NetworksDelete = Operation+        requestClient NetworksDelete{..}+          = go _ndProject _ndNetwork (Just AltJSON)+              computeService+          where go+                  = buildClient (Proxy :: Proxy NetworksDeleteResource)+                      mempty
+ gen/Network/Google/Resource/Compute/Networks/Get.hs view
@@ -0,0 +1,97 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Compute.Networks.Get+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns the specified network resource.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.networks.get@.+module Network.Google.Resource.Compute.Networks.Get+    (+    -- * REST Resource+      NetworksGetResource++    -- * Creating a Request+    , networksGet+    , NetworksGet++    -- * Request Lenses+    , ngProject+    , ngNetwork+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.networks.get@ method which the+-- 'NetworksGet' request conforms to.+type NetworksGetResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "global" :>+               "networks" :>+                 Capture "network" Text :>+                   QueryParam "alt" AltJSON :> Get '[JSON] Network++-- | Returns the specified network resource.+--+-- /See:/ 'networksGet' smart constructor.+data NetworksGet = NetworksGet+    { _ngProject :: !Text+    , _ngNetwork :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'NetworksGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ngProject'+--+-- * 'ngNetwork'+networksGet+    :: Text -- ^ 'ngProject'+    -> Text -- ^ 'ngNetwork'+    -> NetworksGet+networksGet pNgProject_ pNgNetwork_ =+    NetworksGet+    { _ngProject = pNgProject_+    , _ngNetwork = pNgNetwork_+    }++-- | Project ID for this request.+ngProject :: Lens' NetworksGet Text+ngProject+  = lens _ngProject (\ s a -> s{_ngProject = a})++-- | Name of the network resource to return.+ngNetwork :: Lens' NetworksGet Text+ngNetwork+  = lens _ngNetwork (\ s a -> s{_ngNetwork = a})++instance GoogleRequest NetworksGet where+        type Rs NetworksGet = Network+        requestClient NetworksGet{..}+          = go _ngProject _ngNetwork (Just AltJSON)+              computeService+          where go+                  = buildClient (Proxy :: Proxy NetworksGetResource)+                      mempty
+ gen/Network/Google/Resource/Compute/Networks/Insert.hs view
@@ -0,0 +1,99 @@+{-# 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.Compute.Networks.Insert+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a network resource in the specified project using the data+-- included in the request.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.networks.insert@.+module Network.Google.Resource.Compute.Networks.Insert+    (+    -- * REST Resource+      NetworksInsertResource++    -- * Creating a Request+    , networksInsert+    , NetworksInsert++    -- * Request Lenses+    , niProject+    , niPayload+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.networks.insert@ method which the+-- 'NetworksInsert' request conforms to.+type NetworksInsertResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "global" :>+               "networks" :>+                 QueryParam "alt" AltJSON :>+                   ReqBody '[JSON] Network :> Post '[JSON] Operation++-- | Creates a network resource in the specified project using the data+-- included in the request.+--+-- /See:/ 'networksInsert' smart constructor.+data NetworksInsert = NetworksInsert+    { _niProject :: !Text+    , _niPayload :: !Network+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'NetworksInsert' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'niProject'+--+-- * 'niPayload'+networksInsert+    :: Text -- ^ 'niProject'+    -> Network -- ^ 'niPayload'+    -> NetworksInsert+networksInsert pNiProject_ pNiPayload_ =+    NetworksInsert+    { _niProject = pNiProject_+    , _niPayload = pNiPayload_+    }++-- | Project ID for this request.+niProject :: Lens' NetworksInsert Text+niProject+  = lens _niProject (\ s a -> s{_niProject = a})++-- | Multipart request metadata.+niPayload :: Lens' NetworksInsert Network+niPayload+  = lens _niPayload (\ s a -> s{_niPayload = a})++instance GoogleRequest NetworksInsert where+        type Rs NetworksInsert = Operation+        requestClient NetworksInsert{..}+          = go _niProject (Just AltJSON) _niPayload+              computeService+          where go+                  = buildClient (Proxy :: Proxy NetworksInsertResource)+                      mempty
+ gen/Network/Google/Resource/Compute/Networks/List.hs view
@@ -0,0 +1,134 @@+{-# 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.Compute.Networks.List+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves the list of network resources available to the specified+-- project.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.networks.list@.+module Network.Google.Resource.Compute.Networks.List+    (+    -- * REST Resource+      NetworksListResource++    -- * Creating a Request+    , networksList+    , NetworksList++    -- * Request Lenses+    , nlProject+    , nlFilter+    , nlPageToken+    , nlMaxResults+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.networks.list@ method which the+-- 'NetworksList' request conforms to.+type NetworksListResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "global" :>+               "networks" :>+                 QueryParam "filter" Text :>+                   QueryParam "pageToken" Text :>+                     QueryParam "maxResults" (Textual Word32) :>+                       QueryParam "alt" AltJSON :> Get '[JSON] NetworkList++-- | Retrieves the list of network resources available to the specified+-- project.+--+-- /See:/ 'networksList' smart constructor.+data NetworksList = NetworksList+    { _nlProject    :: !Text+    , _nlFilter     :: !(Maybe Text)+    , _nlPageToken  :: !(Maybe Text)+    , _nlMaxResults :: !(Textual Word32)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'NetworksList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'nlProject'+--+-- * 'nlFilter'+--+-- * 'nlPageToken'+--+-- * 'nlMaxResults'+networksList+    :: Text -- ^ 'nlProject'+    -> NetworksList+networksList pNlProject_ =+    NetworksList+    { _nlProject = pNlProject_+    , _nlFilter = Nothing+    , _nlPageToken = Nothing+    , _nlMaxResults = 500+    }++-- | Project ID for this request.+nlProject :: Lens' NetworksList Text+nlProject+  = lens _nlProject (\ s a -> s{_nlProject = a})++-- | Sets a filter expression for filtering listed resources, in the form+-- filter={expression}. Your {expression} must be in the format: FIELD_NAME+-- COMPARISON_STRING LITERAL_STRING. The FIELD_NAME is the name of the+-- field you want to compare. Only atomic field types are supported+-- (string, number, boolean). The COMPARISON_STRING must be either eq+-- (equals) or ne (not equals). The LITERAL_STRING is the string value to+-- filter to. The literal value must be valid for the type of field+-- (string, number, boolean). For string fields, the literal value is+-- interpreted as a regular expression using RE2 syntax. The literal value+-- must match the entire field. For example, filter=name ne+-- example-instance.+nlFilter :: Lens' NetworksList (Maybe Text)+nlFilter = lens _nlFilter (\ s a -> s{_nlFilter = a})++-- | Specifies a page token to use. Use this parameter if you want to list+-- the next page of results. Set pageToken to the nextPageToken returned by+-- a previous list request.+nlPageToken :: Lens' NetworksList (Maybe Text)+nlPageToken+  = lens _nlPageToken (\ s a -> s{_nlPageToken = a})++-- | Maximum count of results to be returned.+nlMaxResults :: Lens' NetworksList Word32+nlMaxResults+  = lens _nlMaxResults (\ s a -> s{_nlMaxResults = a})+      . _Coerce++instance GoogleRequest NetworksList where+        type Rs NetworksList = NetworkList+        requestClient NetworksList{..}+          = go _nlProject _nlFilter _nlPageToken+              (Just _nlMaxResults)+              (Just AltJSON)+              computeService+          where go+                  = buildClient (Proxy :: Proxy NetworksListResource)+                      mempty
+ gen/Network/Google/Resource/Compute/Projects/Get.hs view
@@ -0,0 +1,82 @@+{-# 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.Compute.Projects.Get+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns the specified project resource.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.projects.get@.+module Network.Google.Resource.Compute.Projects.Get+    (+    -- * REST Resource+      ProjectsGetResource++    -- * Creating a Request+    , projectsGet+    , ProjectsGet++    -- * Request Lenses+    , pgProject+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.projects.get@ method which the+-- 'ProjectsGet' request conforms to.+type ProjectsGetResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             QueryParam "alt" AltJSON :> Get '[JSON] Project++-- | Returns the specified project resource.+--+-- /See:/ 'projectsGet' smart constructor.+newtype ProjectsGet = ProjectsGet+    { _pgProject :: Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectsGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pgProject'+projectsGet+    :: Text -- ^ 'pgProject'+    -> ProjectsGet+projectsGet pPgProject_ =+    ProjectsGet+    { _pgProject = pPgProject_+    }++-- | Project ID for this request.+pgProject :: Lens' ProjectsGet Text+pgProject+  = lens _pgProject (\ s a -> s{_pgProject = a})++instance GoogleRequest ProjectsGet where+        type Rs ProjectsGet = Project+        requestClient ProjectsGet{..}+          = go _pgProject (Just AltJSON) computeService+          where go+                  = buildClient (Proxy :: Proxy ProjectsGetResource)+                      mempty
+ gen/Network/Google/Resource/Compute/Projects/MoveDisk.hs view
@@ -0,0 +1,98 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Compute.Projects.MoveDisk+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Moves a persistent disk from one zone to another.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.projects.moveDisk@.+module Network.Google.Resource.Compute.Projects.MoveDisk+    (+    -- * REST Resource+      ProjectsMoveDiskResource++    -- * Creating a Request+    , projectsMoveDisk+    , ProjectsMoveDisk++    -- * Request Lenses+    , pmdProject+    , pmdPayload+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.projects.moveDisk@ method which the+-- 'ProjectsMoveDisk' request conforms to.+type ProjectsMoveDiskResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "moveDisk" :>+               QueryParam "alt" AltJSON :>+                 ReqBody '[JSON] DiskMoveRequest :>+                   Post '[JSON] Operation++-- | Moves a persistent disk from one zone to another.+--+-- /See:/ 'projectsMoveDisk' smart constructor.+data ProjectsMoveDisk = ProjectsMoveDisk+    { _pmdProject :: !Text+    , _pmdPayload :: !DiskMoveRequest+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectsMoveDisk' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pmdProject'+--+-- * 'pmdPayload'+projectsMoveDisk+    :: Text -- ^ 'pmdProject'+    -> DiskMoveRequest -- ^ 'pmdPayload'+    -> ProjectsMoveDisk+projectsMoveDisk pPmdProject_ pPmdPayload_ =+    ProjectsMoveDisk+    { _pmdProject = pPmdProject_+    , _pmdPayload = pPmdPayload_+    }++-- | Project ID for this request.+pmdProject :: Lens' ProjectsMoveDisk Text+pmdProject+  = lens _pmdProject (\ s a -> s{_pmdProject = a})++-- | Multipart request metadata.+pmdPayload :: Lens' ProjectsMoveDisk DiskMoveRequest+pmdPayload+  = lens _pmdPayload (\ s a -> s{_pmdPayload = a})++instance GoogleRequest ProjectsMoveDisk where+        type Rs ProjectsMoveDisk = Operation+        requestClient ProjectsMoveDisk{..}+          = go _pmdProject (Just AltJSON) _pmdPayload+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy ProjectsMoveDiskResource)+                      mempty
+ gen/Network/Google/Resource/Compute/Projects/MoveInstance.hs view
@@ -0,0 +1,100 @@+{-# 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.Compute.Projects.MoveInstance+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Moves an instance and its attached persistent disks from one zone to+-- another.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.projects.moveInstance@.+module Network.Google.Resource.Compute.Projects.MoveInstance+    (+    -- * REST Resource+      ProjectsMoveInstanceResource++    -- * Creating a Request+    , projectsMoveInstance+    , ProjectsMoveInstance++    -- * Request Lenses+    , pmiProject+    , pmiPayload+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.projects.moveInstance@ method which the+-- 'ProjectsMoveInstance' request conforms to.+type ProjectsMoveInstanceResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "moveInstance" :>+               QueryParam "alt" AltJSON :>+                 ReqBody '[JSON] InstanceMoveRequest :>+                   Post '[JSON] Operation++-- | Moves an instance and its attached persistent disks from one zone to+-- another.+--+-- /See:/ 'projectsMoveInstance' smart constructor.+data ProjectsMoveInstance = ProjectsMoveInstance+    { _pmiProject :: !Text+    , _pmiPayload :: !InstanceMoveRequest+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectsMoveInstance' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pmiProject'+--+-- * 'pmiPayload'+projectsMoveInstance+    :: Text -- ^ 'pmiProject'+    -> InstanceMoveRequest -- ^ 'pmiPayload'+    -> ProjectsMoveInstance+projectsMoveInstance pPmiProject_ pPmiPayload_ =+    ProjectsMoveInstance+    { _pmiProject = pPmiProject_+    , _pmiPayload = pPmiPayload_+    }++-- | Project ID for this request.+pmiProject :: Lens' ProjectsMoveInstance Text+pmiProject+  = lens _pmiProject (\ s a -> s{_pmiProject = a})++-- | Multipart request metadata.+pmiPayload :: Lens' ProjectsMoveInstance InstanceMoveRequest+pmiPayload+  = lens _pmiPayload (\ s a -> s{_pmiPayload = a})++instance GoogleRequest ProjectsMoveInstance where+        type Rs ProjectsMoveInstance = Operation+        requestClient ProjectsMoveInstance{..}+          = go _pmiProject (Just AltJSON) _pmiPayload+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy ProjectsMoveInstanceResource)+                      mempty
+ gen/Network/Google/Resource/Compute/Projects/SetCommonInstanceMetadata.hs view
@@ -0,0 +1,101 @@+{-# 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.Compute.Projects.SetCommonInstanceMetadata+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Sets metadata common to all instances within the specified project using+-- the data included in the request.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.projects.setCommonInstanceMetadata@.+module Network.Google.Resource.Compute.Projects.SetCommonInstanceMetadata+    (+    -- * REST Resource+      ProjectsSetCommonInstanceMetadataResource++    -- * Creating a Request+    , projectsSetCommonInstanceMetadata+    , ProjectsSetCommonInstanceMetadata++    -- * Request Lenses+    , pscimProject+    , pscimPayload+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.projects.setCommonInstanceMetadata@ method which the+-- 'ProjectsSetCommonInstanceMetadata' request conforms to.+type ProjectsSetCommonInstanceMetadataResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "setCommonInstanceMetadata" :>+               QueryParam "alt" AltJSON :>+                 ReqBody '[JSON] Metadata :> Post '[JSON] Operation++-- | Sets metadata common to all instances within the specified project using+-- the data included in the request.+--+-- /See:/ 'projectsSetCommonInstanceMetadata' smart constructor.+data ProjectsSetCommonInstanceMetadata = ProjectsSetCommonInstanceMetadata+    { _pscimProject :: !Text+    , _pscimPayload :: !Metadata+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectsSetCommonInstanceMetadata' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pscimProject'+--+-- * 'pscimPayload'+projectsSetCommonInstanceMetadata+    :: Text -- ^ 'pscimProject'+    -> Metadata -- ^ 'pscimPayload'+    -> ProjectsSetCommonInstanceMetadata+projectsSetCommonInstanceMetadata pPscimProject_ pPscimPayload_ =+    ProjectsSetCommonInstanceMetadata+    { _pscimProject = pPscimProject_+    , _pscimPayload = pPscimPayload_+    }++-- | Project ID for this request.+pscimProject :: Lens' ProjectsSetCommonInstanceMetadata Text+pscimProject+  = lens _pscimProject (\ s a -> s{_pscimProject = a})++-- | Multipart request metadata.+pscimPayload :: Lens' ProjectsSetCommonInstanceMetadata Metadata+pscimPayload+  = lens _pscimPayload (\ s a -> s{_pscimPayload = a})++instance GoogleRequest+         ProjectsSetCommonInstanceMetadata where+        type Rs ProjectsSetCommonInstanceMetadata = Operation+        requestClient ProjectsSetCommonInstanceMetadata{..}+          = go _pscimProject (Just AltJSON) _pscimPayload+              computeService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy ProjectsSetCommonInstanceMetadataResource)+                      mempty
+ gen/Network/Google/Resource/Compute/Projects/SetUsageExportBucket.hs view
@@ -0,0 +1,103 @@+{-# 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.Compute.Projects.SetUsageExportBucket+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Enables the usage export feature and sets the usage export bucket where+-- reports are stored. If you provide an empty request body using this+-- method, the usage export feature will be disabled.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.projects.setUsageExportBucket@.+module Network.Google.Resource.Compute.Projects.SetUsageExportBucket+    (+    -- * REST Resource+      ProjectsSetUsageExportBucketResource++    -- * Creating a Request+    , projectsSetUsageExportBucket+    , ProjectsSetUsageExportBucket++    -- * Request Lenses+    , psuebProject+    , psuebPayload+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.projects.setUsageExportBucket@ method which the+-- 'ProjectsSetUsageExportBucket' request conforms to.+type ProjectsSetUsageExportBucketResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "setUsageExportBucket" :>+               QueryParam "alt" AltJSON :>+                 ReqBody '[JSON] UsageExportLocation :>+                   Post '[JSON] Operation++-- | Enables the usage export feature and sets the usage export bucket where+-- reports are stored. If you provide an empty request body using this+-- method, the usage export feature will be disabled.+--+-- /See:/ 'projectsSetUsageExportBucket' smart constructor.+data ProjectsSetUsageExportBucket = ProjectsSetUsageExportBucket+    { _psuebProject :: !Text+    , _psuebPayload :: !UsageExportLocation+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectsSetUsageExportBucket' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'psuebProject'+--+-- * 'psuebPayload'+projectsSetUsageExportBucket+    :: Text -- ^ 'psuebProject'+    -> UsageExportLocation -- ^ 'psuebPayload'+    -> ProjectsSetUsageExportBucket+projectsSetUsageExportBucket pPsuebProject_ pPsuebPayload_ =+    ProjectsSetUsageExportBucket+    { _psuebProject = pPsuebProject_+    , _psuebPayload = pPsuebPayload_+    }++-- | Project ID for this request.+psuebProject :: Lens' ProjectsSetUsageExportBucket Text+psuebProject+  = lens _psuebProject (\ s a -> s{_psuebProject = a})++-- | Multipart request metadata.+psuebPayload :: Lens' ProjectsSetUsageExportBucket UsageExportLocation+psuebPayload+  = lens _psuebPayload (\ s a -> s{_psuebPayload = a})++instance GoogleRequest ProjectsSetUsageExportBucket+         where+        type Rs ProjectsSetUsageExportBucket = Operation+        requestClient ProjectsSetUsageExportBucket{..}+          = go _psuebProject (Just AltJSON) _psuebPayload+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy ProjectsSetUsageExportBucketResource)+                      mempty
+ gen/Network/Google/Resource/Compute/RegionOperations/Delete.hs view
@@ -0,0 +1,111 @@+{-# 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.Compute.RegionOperations.Delete+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes the specified region-specific Operations resource.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.regionOperations.delete@.+module Network.Google.Resource.Compute.RegionOperations.Delete+    (+    -- * REST Resource+      RegionOperationsDeleteResource++    -- * Creating a Request+    , regionOperationsDelete+    , RegionOperationsDelete++    -- * Request Lenses+    , rodProject+    , rodOperation+    , rodRegion+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.regionOperations.delete@ method which the+-- 'RegionOperationsDelete' request conforms to.+type RegionOperationsDeleteResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "regions" :>+               Capture "region" Text :>+                 "operations" :>+                   Capture "operation" Text :>+                     QueryParam "alt" AltJSON :> Delete '[JSON] ()++-- | Deletes the specified region-specific Operations resource.+--+-- /See:/ 'regionOperationsDelete' smart constructor.+data RegionOperationsDelete = RegionOperationsDelete+    { _rodProject   :: !Text+    , _rodOperation :: !Text+    , _rodRegion    :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'RegionOperationsDelete' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rodProject'+--+-- * 'rodOperation'+--+-- * 'rodRegion'+regionOperationsDelete+    :: Text -- ^ 'rodProject'+    -> Text -- ^ 'rodOperation'+    -> Text -- ^ 'rodRegion'+    -> RegionOperationsDelete+regionOperationsDelete pRodProject_ pRodOperation_ pRodRegion_ =+    RegionOperationsDelete+    { _rodProject = pRodProject_+    , _rodOperation = pRodOperation_+    , _rodRegion = pRodRegion_+    }++-- | Project ID for this request.+rodProject :: Lens' RegionOperationsDelete Text+rodProject+  = lens _rodProject (\ s a -> s{_rodProject = a})++-- | Name of the Operations resource to delete.+rodOperation :: Lens' RegionOperationsDelete Text+rodOperation+  = lens _rodOperation (\ s a -> s{_rodOperation = a})++-- | Name of the region scoping this request.+rodRegion :: Lens' RegionOperationsDelete Text+rodRegion+  = lens _rodRegion (\ s a -> s{_rodRegion = a})++instance GoogleRequest RegionOperationsDelete where+        type Rs RegionOperationsDelete = ()+        requestClient RegionOperationsDelete{..}+          = go _rodProject _rodRegion _rodOperation+              (Just AltJSON)+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy RegionOperationsDeleteResource)+                      mempty
+ gen/Network/Google/Resource/Compute/RegionOperations/Get.hs view
@@ -0,0 +1,111 @@+{-# 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.Compute.RegionOperations.Get+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves the specified region-specific Operations resource.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.regionOperations.get@.+module Network.Google.Resource.Compute.RegionOperations.Get+    (+    -- * REST Resource+      RegionOperationsGetResource++    -- * Creating a Request+    , regionOperationsGet+    , RegionOperationsGet++    -- * Request Lenses+    , rogProject+    , rogOperation+    , rogRegion+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.regionOperations.get@ method which the+-- 'RegionOperationsGet' request conforms to.+type RegionOperationsGetResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "regions" :>+               Capture "region" Text :>+                 "operations" :>+                   Capture "operation" Text :>+                     QueryParam "alt" AltJSON :> Get '[JSON] Operation++-- | Retrieves the specified region-specific Operations resource.+--+-- /See:/ 'regionOperationsGet' smart constructor.+data RegionOperationsGet = RegionOperationsGet+    { _rogProject   :: !Text+    , _rogOperation :: !Text+    , _rogRegion    :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'RegionOperationsGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rogProject'+--+-- * 'rogOperation'+--+-- * 'rogRegion'+regionOperationsGet+    :: Text -- ^ 'rogProject'+    -> Text -- ^ 'rogOperation'+    -> Text -- ^ 'rogRegion'+    -> RegionOperationsGet+regionOperationsGet pRogProject_ pRogOperation_ pRogRegion_ =+    RegionOperationsGet+    { _rogProject = pRogProject_+    , _rogOperation = pRogOperation_+    , _rogRegion = pRogRegion_+    }++-- | Project ID for this request.+rogProject :: Lens' RegionOperationsGet Text+rogProject+  = lens _rogProject (\ s a -> s{_rogProject = a})++-- | Name of the Operations resource to return.+rogOperation :: Lens' RegionOperationsGet Text+rogOperation+  = lens _rogOperation (\ s a -> s{_rogOperation = a})++-- | Name of the zone scoping this request.+rogRegion :: Lens' RegionOperationsGet Text+rogRegion+  = lens _rogRegion (\ s a -> s{_rogRegion = a})++instance GoogleRequest RegionOperationsGet where+        type Rs RegionOperationsGet = Operation+        requestClient RegionOperationsGet{..}+          = go _rogProject _rogRegion _rogOperation+              (Just AltJSON)+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy RegionOperationsGetResource)+                      mempty
+ gen/Network/Google/Resource/Compute/RegionOperations/List.hs view
@@ -0,0 +1,149 @@+{-# 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.Compute.RegionOperations.List+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves the list of Operation resources contained within the specified+-- region.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.regionOperations.list@.+module Network.Google.Resource.Compute.RegionOperations.List+    (+    -- * REST Resource+      RegionOperationsListResource++    -- * Creating a Request+    , regionOperationsList+    , RegionOperationsList++    -- * Request Lenses+    , rolProject+    , rolFilter+    , rolRegion+    , rolPageToken+    , rolMaxResults+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.regionOperations.list@ method which the+-- 'RegionOperationsList' request conforms to.+type RegionOperationsListResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "regions" :>+               Capture "region" Text :>+                 "operations" :>+                   QueryParam "filter" Text :>+                     QueryParam "pageToken" Text :>+                       QueryParam "maxResults" (Textual Word32) :>+                         QueryParam "alt" AltJSON :> Get '[JSON] OperationList++-- | Retrieves the list of Operation resources contained within the specified+-- region.+--+-- /See:/ 'regionOperationsList' smart constructor.+data RegionOperationsList = RegionOperationsList+    { _rolProject    :: !Text+    , _rolFilter     :: !(Maybe Text)+    , _rolRegion     :: !Text+    , _rolPageToken  :: !(Maybe Text)+    , _rolMaxResults :: !(Textual Word32)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'RegionOperationsList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rolProject'+--+-- * 'rolFilter'+--+-- * 'rolRegion'+--+-- * 'rolPageToken'+--+-- * 'rolMaxResults'+regionOperationsList+    :: Text -- ^ 'rolProject'+    -> Text -- ^ 'rolRegion'+    -> RegionOperationsList+regionOperationsList pRolProject_ pRolRegion_ =+    RegionOperationsList+    { _rolProject = pRolProject_+    , _rolFilter = Nothing+    , _rolRegion = pRolRegion_+    , _rolPageToken = Nothing+    , _rolMaxResults = 500+    }++-- | Project ID for this request.+rolProject :: Lens' RegionOperationsList Text+rolProject+  = lens _rolProject (\ s a -> s{_rolProject = a})++-- | Sets a filter expression for filtering listed resources, in the form+-- filter={expression}. Your {expression} must be in the format: FIELD_NAME+-- COMPARISON_STRING LITERAL_STRING. The FIELD_NAME is the name of the+-- field you want to compare. Only atomic field types are supported+-- (string, number, boolean). The COMPARISON_STRING must be either eq+-- (equals) or ne (not equals). The LITERAL_STRING is the string value to+-- filter to. The literal value must be valid for the type of field+-- (string, number, boolean). For string fields, the literal value is+-- interpreted as a regular expression using RE2 syntax. The literal value+-- must match the entire field. For example, filter=name ne+-- example-instance.+rolFilter :: Lens' RegionOperationsList (Maybe Text)+rolFilter+  = lens _rolFilter (\ s a -> s{_rolFilter = a})++-- | Name of the region scoping this request.+rolRegion :: Lens' RegionOperationsList Text+rolRegion+  = lens _rolRegion (\ s a -> s{_rolRegion = a})++-- | Specifies a page token to use. Use this parameter if you want to list+-- the next page of results. Set pageToken to the nextPageToken returned by+-- a previous list request.+rolPageToken :: Lens' RegionOperationsList (Maybe Text)+rolPageToken+  = lens _rolPageToken (\ s a -> s{_rolPageToken = a})++-- | Maximum count of results to be returned.+rolMaxResults :: Lens' RegionOperationsList Word32+rolMaxResults+  = lens _rolMaxResults+      (\ s a -> s{_rolMaxResults = a})+      . _Coerce++instance GoogleRequest RegionOperationsList where+        type Rs RegionOperationsList = OperationList+        requestClient RegionOperationsList{..}+          = go _rolProject _rolRegion _rolFilter _rolPageToken+              (Just _rolMaxResults)+              (Just AltJSON)+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy RegionOperationsListResource)+                      mempty
+ gen/Network/Google/Resource/Compute/Regions/Get.hs view
@@ -0,0 +1,95 @@+{-# 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.Compute.Regions.Get+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns the specified region resource.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.regions.get@.+module Network.Google.Resource.Compute.Regions.Get+    (+    -- * REST Resource+      RegionsGetResource++    -- * Creating a Request+    , regionsGet+    , RegionsGet++    -- * Request Lenses+    , rgProject+    , rgRegion+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.regions.get@ method which the+-- 'RegionsGet' request conforms to.+type RegionsGetResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "regions" :>+               Capture "region" Text :>+                 QueryParam "alt" AltJSON :> Get '[JSON] Region++-- | Returns the specified region resource.+--+-- /See:/ 'regionsGet' smart constructor.+data RegionsGet = RegionsGet+    { _rgProject :: !Text+    , _rgRegion  :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'RegionsGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rgProject'+--+-- * 'rgRegion'+regionsGet+    :: Text -- ^ 'rgProject'+    -> Text -- ^ 'rgRegion'+    -> RegionsGet+regionsGet pRgProject_ pRgRegion_ =+    RegionsGet+    { _rgProject = pRgProject_+    , _rgRegion = pRgRegion_+    }++-- | Project ID for this request.+rgProject :: Lens' RegionsGet Text+rgProject+  = lens _rgProject (\ s a -> s{_rgProject = a})++-- | Name of the region resource to return.+rgRegion :: Lens' RegionsGet Text+rgRegion = lens _rgRegion (\ s a -> s{_rgRegion = a})++instance GoogleRequest RegionsGet where+        type Rs RegionsGet = Region+        requestClient RegionsGet{..}+          = go _rgProject _rgRegion (Just AltJSON)+              computeService+          where go+                  = buildClient (Proxy :: Proxy RegionsGetResource)+                      mempty
+ gen/Network/Google/Resource/Compute/Regions/List.hs view
@@ -0,0 +1,132 @@+{-# 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.Compute.Regions.List+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves the list of region resources available to the specified+-- project.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.regions.list@.+module Network.Google.Resource.Compute.Regions.List+    (+    -- * REST Resource+      RegionsListResource++    -- * Creating a Request+    , regionsList+    , RegionsList++    -- * Request Lenses+    , rProject+    , rFilter+    , rPageToken+    , rMaxResults+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.regions.list@ method which the+-- 'RegionsList' request conforms to.+type RegionsListResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "regions" :>+               QueryParam "filter" Text :>+                 QueryParam "pageToken" Text :>+                   QueryParam "maxResults" (Textual Word32) :>+                     QueryParam "alt" AltJSON :> Get '[JSON] RegionList++-- | Retrieves the list of region resources available to the specified+-- project.+--+-- /See:/ 'regionsList' smart constructor.+data RegionsList = RegionsList+    { _rProject    :: !Text+    , _rFilter     :: !(Maybe Text)+    , _rPageToken  :: !(Maybe Text)+    , _rMaxResults :: !(Textual Word32)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'RegionsList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rProject'+--+-- * 'rFilter'+--+-- * 'rPageToken'+--+-- * 'rMaxResults'+regionsList+    :: Text -- ^ 'rProject'+    -> RegionsList+regionsList pRProject_ =+    RegionsList+    { _rProject = pRProject_+    , _rFilter = Nothing+    , _rPageToken = Nothing+    , _rMaxResults = 500+    }++-- | Project ID for this request.+rProject :: Lens' RegionsList Text+rProject = lens _rProject (\ s a -> s{_rProject = a})++-- | Sets a filter expression for filtering listed resources, in the form+-- filter={expression}. Your {expression} must be in the format: FIELD_NAME+-- COMPARISON_STRING LITERAL_STRING. The FIELD_NAME is the name of the+-- field you want to compare. Only atomic field types are supported+-- (string, number, boolean). The COMPARISON_STRING must be either eq+-- (equals) or ne (not equals). The LITERAL_STRING is the string value to+-- filter to. The literal value must be valid for the type of field+-- (string, number, boolean). For string fields, the literal value is+-- interpreted as a regular expression using RE2 syntax. The literal value+-- must match the entire field. For example, filter=name ne+-- example-instance.+rFilter :: Lens' RegionsList (Maybe Text)+rFilter = lens _rFilter (\ s a -> s{_rFilter = a})++-- | Specifies a page token to use. Use this parameter if you want to list+-- the next page of results. Set pageToken to the nextPageToken returned by+-- a previous list request.+rPageToken :: Lens' RegionsList (Maybe Text)+rPageToken+  = lens _rPageToken (\ s a -> s{_rPageToken = a})++-- | Maximum count of results to be returned.+rMaxResults :: Lens' RegionsList Word32+rMaxResults+  = lens _rMaxResults (\ s a -> s{_rMaxResults = a}) .+      _Coerce++instance GoogleRequest RegionsList where+        type Rs RegionsList = RegionList+        requestClient RegionsList{..}+          = go _rProject _rFilter _rPageToken+              (Just _rMaxResults)+              (Just AltJSON)+              computeService+          where go+                  = buildClient (Proxy :: Proxy RegionsListResource)+                      mempty
+ gen/Network/Google/Resource/Compute/Routes/Delete.hs view
@@ -0,0 +1,96 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Compute.Routes.Delete+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes the specified route resource.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.routes.delete@.+module Network.Google.Resource.Compute.Routes.Delete+    (+    -- * REST Resource+      RoutesDeleteResource++    -- * Creating a Request+    , routesDelete+    , RoutesDelete++    -- * Request Lenses+    , rdProject+    , rdRoute+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.routes.delete@ method which the+-- 'RoutesDelete' request conforms to.+type RoutesDeleteResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "global" :>+               "routes" :>+                 Capture "route" Text :>+                   QueryParam "alt" AltJSON :> Delete '[JSON] Operation++-- | Deletes the specified route resource.+--+-- /See:/ 'routesDelete' smart constructor.+data RoutesDelete = RoutesDelete+    { _rdProject :: !Text+    , _rdRoute   :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'RoutesDelete' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rdProject'+--+-- * 'rdRoute'+routesDelete+    :: Text -- ^ 'rdProject'+    -> Text -- ^ 'rdRoute'+    -> RoutesDelete+routesDelete pRdProject_ pRdRoute_ =+    RoutesDelete+    { _rdProject = pRdProject_+    , _rdRoute = pRdRoute_+    }++-- | Name of the project scoping this request.+rdProject :: Lens' RoutesDelete Text+rdProject+  = lens _rdProject (\ s a -> s{_rdProject = a})++-- | Name of the route resource to delete.+rdRoute :: Lens' RoutesDelete Text+rdRoute = lens _rdRoute (\ s a -> s{_rdRoute = a})++instance GoogleRequest RoutesDelete where+        type Rs RoutesDelete = Operation+        requestClient RoutesDelete{..}+          = go _rdProject _rdRoute (Just AltJSON)+              computeService+          where go+                  = buildClient (Proxy :: Proxy RoutesDeleteResource)+                      mempty
+ gen/Network/Google/Resource/Compute/Routes/Get.hs view
@@ -0,0 +1,96 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Compute.Routes.Get+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns the specified route resource.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.routes.get@.+module Network.Google.Resource.Compute.Routes.Get+    (+    -- * REST Resource+      RoutesGetResource++    -- * Creating a Request+    , routesGet+    , RoutesGet++    -- * Request Lenses+    , rouProject+    , rouRoute+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.routes.get@ method which the+-- 'RoutesGet' request conforms to.+type RoutesGetResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "global" :>+               "routes" :>+                 Capture "route" Text :>+                   QueryParam "alt" AltJSON :> Get '[JSON] Route++-- | Returns the specified route resource.+--+-- /See:/ 'routesGet' smart constructor.+data RoutesGet = RoutesGet+    { _rouProject :: !Text+    , _rouRoute   :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'RoutesGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rouProject'+--+-- * 'rouRoute'+routesGet+    :: Text -- ^ 'rouProject'+    -> Text -- ^ 'rouRoute'+    -> RoutesGet+routesGet pRouProject_ pRouRoute_ =+    RoutesGet+    { _rouProject = pRouProject_+    , _rouRoute = pRouRoute_+    }++-- | Name of the project scoping this request.+rouProject :: Lens' RoutesGet Text+rouProject+  = lens _rouProject (\ s a -> s{_rouProject = a})++-- | Name of the route resource to return.+rouRoute :: Lens' RoutesGet Text+rouRoute = lens _rouRoute (\ s a -> s{_rouRoute = a})++instance GoogleRequest RoutesGet where+        type Rs RoutesGet = Route+        requestClient RoutesGet{..}+          = go _rouProject _rouRoute (Just AltJSON)+              computeService+          where go+                  = buildClient (Proxy :: Proxy RoutesGetResource)+                      mempty
+ gen/Network/Google/Resource/Compute/Routes/Insert.hs view
@@ -0,0 +1,99 @@+{-# 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.Compute.Routes.Insert+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a route resource in the specified project using the data+-- included in the request.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.routes.insert@.+module Network.Google.Resource.Compute.Routes.Insert+    (+    -- * REST Resource+      RoutesInsertResource++    -- * Creating a Request+    , routesInsert+    , RoutesInsert++    -- * Request Lenses+    , riProject+    , riPayload+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.routes.insert@ method which the+-- 'RoutesInsert' request conforms to.+type RoutesInsertResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "global" :>+               "routes" :>+                 QueryParam "alt" AltJSON :>+                   ReqBody '[JSON] Route :> Post '[JSON] Operation++-- | Creates a route resource in the specified project using the data+-- included in the request.+--+-- /See:/ 'routesInsert' smart constructor.+data RoutesInsert = RoutesInsert+    { _riProject :: !Text+    , _riPayload :: !Route+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'RoutesInsert' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'riProject'+--+-- * 'riPayload'+routesInsert+    :: Text -- ^ 'riProject'+    -> Route -- ^ 'riPayload'+    -> RoutesInsert+routesInsert pRiProject_ pRiPayload_ =+    RoutesInsert+    { _riProject = pRiProject_+    , _riPayload = pRiPayload_+    }++-- | Name of the project scoping this request.+riProject :: Lens' RoutesInsert Text+riProject+  = lens _riProject (\ s a -> s{_riProject = a})++-- | Multipart request metadata.+riPayload :: Lens' RoutesInsert Route+riPayload+  = lens _riPayload (\ s a -> s{_riPayload = a})++instance GoogleRequest RoutesInsert where+        type Rs RoutesInsert = Operation+        requestClient RoutesInsert{..}+          = go _riProject (Just AltJSON) _riPayload+              computeService+          where go+                  = buildClient (Proxy :: Proxy RoutesInsertResource)+                      mempty
+ gen/Network/Google/Resource/Compute/Routes/List.hs view
@@ -0,0 +1,134 @@+{-# 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.Compute.Routes.List+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves the list of route resources available to the specified+-- project.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.routes.list@.+module Network.Google.Resource.Compute.Routes.List+    (+    -- * REST Resource+      RoutesListResource++    -- * Creating a Request+    , routesList+    , RoutesList++    -- * Request Lenses+    , rlProject+    , rlFilter+    , rlPageToken+    , rlMaxResults+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.routes.list@ method which the+-- 'RoutesList' request conforms to.+type RoutesListResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "global" :>+               "routes" :>+                 QueryParam "filter" Text :>+                   QueryParam "pageToken" Text :>+                     QueryParam "maxResults" (Textual Word32) :>+                       QueryParam "alt" AltJSON :> Get '[JSON] RouteList++-- | Retrieves the list of route resources available to the specified+-- project.+--+-- /See:/ 'routesList' smart constructor.+data RoutesList = RoutesList+    { _rlProject    :: !Text+    , _rlFilter     :: !(Maybe Text)+    , _rlPageToken  :: !(Maybe Text)+    , _rlMaxResults :: !(Textual Word32)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'RoutesList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rlProject'+--+-- * 'rlFilter'+--+-- * 'rlPageToken'+--+-- * 'rlMaxResults'+routesList+    :: Text -- ^ 'rlProject'+    -> RoutesList+routesList pRlProject_ =+    RoutesList+    { _rlProject = pRlProject_+    , _rlFilter = Nothing+    , _rlPageToken = Nothing+    , _rlMaxResults = 500+    }++-- | Name of the project scoping this request.+rlProject :: Lens' RoutesList Text+rlProject+  = lens _rlProject (\ s a -> s{_rlProject = a})++-- | Sets a filter expression for filtering listed resources, in the form+-- filter={expression}. Your {expression} must be in the format: FIELD_NAME+-- COMPARISON_STRING LITERAL_STRING. The FIELD_NAME is the name of the+-- field you want to compare. Only atomic field types are supported+-- (string, number, boolean). The COMPARISON_STRING must be either eq+-- (equals) or ne (not equals). The LITERAL_STRING is the string value to+-- filter to. The literal value must be valid for the type of field+-- (string, number, boolean). For string fields, the literal value is+-- interpreted as a regular expression using RE2 syntax. The literal value+-- must match the entire field. For example, filter=name ne+-- example-instance.+rlFilter :: Lens' RoutesList (Maybe Text)+rlFilter = lens _rlFilter (\ s a -> s{_rlFilter = a})++-- | Specifies a page token to use. Use this parameter if you want to list+-- the next page of results. Set pageToken to the nextPageToken returned by+-- a previous list request.+rlPageToken :: Lens' RoutesList (Maybe Text)+rlPageToken+  = lens _rlPageToken (\ s a -> s{_rlPageToken = a})++-- | Maximum count of results to be returned.+rlMaxResults :: Lens' RoutesList Word32+rlMaxResults+  = lens _rlMaxResults (\ s a -> s{_rlMaxResults = a})+      . _Coerce++instance GoogleRequest RoutesList where+        type Rs RoutesList = RouteList+        requestClient RoutesList{..}+          = go _rlProject _rlFilter _rlPageToken+              (Just _rlMaxResults)+              (Just AltJSON)+              computeService+          where go+                  = buildClient (Proxy :: Proxy RoutesListResource)+                      mempty
+ gen/Network/Google/Resource/Compute/SSLCertificates/Delete.hs view
@@ -0,0 +1,99 @@+{-# 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.Compute.SSLCertificates.Delete+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes the specified SslCertificate resource.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.sslCertificates.delete@.+module Network.Google.Resource.Compute.SSLCertificates.Delete+    (+    -- * REST Resource+      SSLCertificatesDeleteResource++    -- * Creating a Request+    , sslCertificatesDelete+    , SSLCertificatesDelete++    -- * Request Lenses+    , scdProject+    , scdSSLCertificate+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.sslCertificates.delete@ method which the+-- 'SSLCertificatesDelete' request conforms to.+type SSLCertificatesDeleteResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "global" :>+               "sslCertificates" :>+                 Capture "sslCertificate" Text :>+                   QueryParam "alt" AltJSON :> Delete '[JSON] Operation++-- | Deletes the specified SslCertificate resource.+--+-- /See:/ 'sslCertificatesDelete' smart constructor.+data SSLCertificatesDelete = SSLCertificatesDelete+    { _scdProject        :: !Text+    , _scdSSLCertificate :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'SSLCertificatesDelete' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'scdProject'+--+-- * 'scdSSLCertificate'+sslCertificatesDelete+    :: Text -- ^ 'scdProject'+    -> Text -- ^ 'scdSSLCertificate'+    -> SSLCertificatesDelete+sslCertificatesDelete pScdProject_ pScdSSLCertificate_ =+    SSLCertificatesDelete+    { _scdProject = pScdProject_+    , _scdSSLCertificate = pScdSSLCertificate_+    }++-- | Name of the project scoping this request.+scdProject :: Lens' SSLCertificatesDelete Text+scdProject+  = lens _scdProject (\ s a -> s{_scdProject = a})++-- | Name of the SslCertificate resource to delete.+scdSSLCertificate :: Lens' SSLCertificatesDelete Text+scdSSLCertificate+  = lens _scdSSLCertificate+      (\ s a -> s{_scdSSLCertificate = a})++instance GoogleRequest SSLCertificatesDelete where+        type Rs SSLCertificatesDelete = Operation+        requestClient SSLCertificatesDelete{..}+          = go _scdProject _scdSSLCertificate (Just AltJSON)+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy SSLCertificatesDeleteResource)+                      mempty
+ gen/Network/Google/Resource/Compute/SSLCertificates/Get.hs view
@@ -0,0 +1,100 @@+{-# 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.Compute.SSLCertificates.Get+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns the specified SslCertificate resource.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.sslCertificates.get@.+module Network.Google.Resource.Compute.SSLCertificates.Get+    (+    -- * REST Resource+      SSLCertificatesGetResource++    -- * Creating a Request+    , sslCertificatesGet+    , SSLCertificatesGet++    -- * Request Lenses+    , scgProject+    , scgSSLCertificate+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.sslCertificates.get@ method which the+-- 'SSLCertificatesGet' request conforms to.+type SSLCertificatesGetResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "global" :>+               "sslCertificates" :>+                 Capture "sslCertificate" Text :>+                   QueryParam "alt" AltJSON :>+                     Get '[JSON] SSLCertificate++-- | Returns the specified SslCertificate resource.+--+-- /See:/ 'sslCertificatesGet' smart constructor.+data SSLCertificatesGet = SSLCertificatesGet+    { _scgProject        :: !Text+    , _scgSSLCertificate :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'SSLCertificatesGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'scgProject'+--+-- * 'scgSSLCertificate'+sslCertificatesGet+    :: Text -- ^ 'scgProject'+    -> Text -- ^ 'scgSSLCertificate'+    -> SSLCertificatesGet+sslCertificatesGet pScgProject_ pScgSSLCertificate_ =+    SSLCertificatesGet+    { _scgProject = pScgProject_+    , _scgSSLCertificate = pScgSSLCertificate_+    }++-- | Name of the project scoping this request.+scgProject :: Lens' SSLCertificatesGet Text+scgProject+  = lens _scgProject (\ s a -> s{_scgProject = a})++-- | Name of the SslCertificate resource to return.+scgSSLCertificate :: Lens' SSLCertificatesGet Text+scgSSLCertificate+  = lens _scgSSLCertificate+      (\ s a -> s{_scgSSLCertificate = a})++instance GoogleRequest SSLCertificatesGet where+        type Rs SSLCertificatesGet = SSLCertificate+        requestClient SSLCertificatesGet{..}+          = go _scgProject _scgSSLCertificate (Just AltJSON)+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy SSLCertificatesGetResource)+                      mempty
+ gen/Network/Google/Resource/Compute/SSLCertificates/Insert.hs view
@@ -0,0 +1,101 @@+{-# 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.Compute.SSLCertificates.Insert+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a SslCertificate resource in the specified project using the+-- data included in the request.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.sslCertificates.insert@.+module Network.Google.Resource.Compute.SSLCertificates.Insert+    (+    -- * REST Resource+      SSLCertificatesInsertResource++    -- * Creating a Request+    , sslCertificatesInsert+    , SSLCertificatesInsert++    -- * Request Lenses+    , sciProject+    , sciPayload+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.sslCertificates.insert@ method which the+-- 'SSLCertificatesInsert' request conforms to.+type SSLCertificatesInsertResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "global" :>+               "sslCertificates" :>+                 QueryParam "alt" AltJSON :>+                   ReqBody '[JSON] SSLCertificate :>+                     Post '[JSON] Operation++-- | Creates a SslCertificate resource in the specified project using the+-- data included in the request.+--+-- /See:/ 'sslCertificatesInsert' smart constructor.+data SSLCertificatesInsert = SSLCertificatesInsert+    { _sciProject :: !Text+    , _sciPayload :: !SSLCertificate+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'SSLCertificatesInsert' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sciProject'+--+-- * 'sciPayload'+sslCertificatesInsert+    :: Text -- ^ 'sciProject'+    -> SSLCertificate -- ^ 'sciPayload'+    -> SSLCertificatesInsert+sslCertificatesInsert pSciProject_ pSciPayload_ =+    SSLCertificatesInsert+    { _sciProject = pSciProject_+    , _sciPayload = pSciPayload_+    }++-- | Name of the project scoping this request.+sciProject :: Lens' SSLCertificatesInsert Text+sciProject+  = lens _sciProject (\ s a -> s{_sciProject = a})++-- | Multipart request metadata.+sciPayload :: Lens' SSLCertificatesInsert SSLCertificate+sciPayload+  = lens _sciPayload (\ s a -> s{_sciPayload = a})++instance GoogleRequest SSLCertificatesInsert where+        type Rs SSLCertificatesInsert = Operation+        requestClient SSLCertificatesInsert{..}+          = go _sciProject (Just AltJSON) _sciPayload+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy SSLCertificatesInsertResource)+                      mempty
+ gen/Network/Google/Resource/Compute/SSLCertificates/List.hs view
@@ -0,0 +1,138 @@+{-# 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.Compute.SSLCertificates.List+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves the list of SslCertificate resources available to the+-- specified project.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.sslCertificates.list@.+module Network.Google.Resource.Compute.SSLCertificates.List+    (+    -- * REST Resource+      SSLCertificatesListResource++    -- * Creating a Request+    , sslCertificatesList+    , SSLCertificatesList++    -- * Request Lenses+    , sclProject+    , sclFilter+    , sclPageToken+    , sclMaxResults+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.sslCertificates.list@ method which the+-- 'SSLCertificatesList' request conforms to.+type SSLCertificatesListResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "global" :>+               "sslCertificates" :>+                 QueryParam "filter" Text :>+                   QueryParam "pageToken" Text :>+                     QueryParam "maxResults" (Textual Word32) :>+                       QueryParam "alt" AltJSON :>+                         Get '[JSON] SSLCertificateList++-- | Retrieves the list of SslCertificate resources available to the+-- specified project.+--+-- /See:/ 'sslCertificatesList' smart constructor.+data SSLCertificatesList = SSLCertificatesList+    { _sclProject    :: !Text+    , _sclFilter     :: !(Maybe Text)+    , _sclPageToken  :: !(Maybe Text)+    , _sclMaxResults :: !(Textual Word32)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'SSLCertificatesList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sclProject'+--+-- * 'sclFilter'+--+-- * 'sclPageToken'+--+-- * 'sclMaxResults'+sslCertificatesList+    :: Text -- ^ 'sclProject'+    -> SSLCertificatesList+sslCertificatesList pSclProject_ =+    SSLCertificatesList+    { _sclProject = pSclProject_+    , _sclFilter = Nothing+    , _sclPageToken = Nothing+    , _sclMaxResults = 500+    }++-- | Name of the project scoping this request.+sclProject :: Lens' SSLCertificatesList Text+sclProject+  = lens _sclProject (\ s a -> s{_sclProject = a})++-- | Sets a filter expression for filtering listed resources, in the form+-- filter={expression}. Your {expression} must be in the format: FIELD_NAME+-- COMPARISON_STRING LITERAL_STRING. The FIELD_NAME is the name of the+-- field you want to compare. Only atomic field types are supported+-- (string, number, boolean). The COMPARISON_STRING must be either eq+-- (equals) or ne (not equals). The LITERAL_STRING is the string value to+-- filter to. The literal value must be valid for the type of field+-- (string, number, boolean). For string fields, the literal value is+-- interpreted as a regular expression using RE2 syntax. The literal value+-- must match the entire field. For example, filter=name ne+-- example-instance.+sclFilter :: Lens' SSLCertificatesList (Maybe Text)+sclFilter+  = lens _sclFilter (\ s a -> s{_sclFilter = a})++-- | Specifies a page token to use. Use this parameter if you want to list+-- the next page of results. Set pageToken to the nextPageToken returned by+-- a previous list request.+sclPageToken :: Lens' SSLCertificatesList (Maybe Text)+sclPageToken+  = lens _sclPageToken (\ s a -> s{_sclPageToken = a})++-- | Maximum count of results to be returned.+sclMaxResults :: Lens' SSLCertificatesList Word32+sclMaxResults+  = lens _sclMaxResults+      (\ s a -> s{_sclMaxResults = a})+      . _Coerce++instance GoogleRequest SSLCertificatesList where+        type Rs SSLCertificatesList = SSLCertificateList+        requestClient SSLCertificatesList{..}+          = go _sclProject _sclFilter _sclPageToken+              (Just _sclMaxResults)+              (Just AltJSON)+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy SSLCertificatesListResource)+                      mempty
+ gen/Network/Google/Resource/Compute/Snapshots/Delete.hs view
@@ -0,0 +1,106 @@+{-# 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.Compute.Snapshots.Delete+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes the specified Snapshot resource. Keep in mind that deleting a+-- single snapshot might not necessarily delete all the data on that+-- snapshot. If any data on the snapshot that is marked for deletion is+-- needed for subsequent snapshots, the data will be moved to the next+-- corresponding snapshot. For more information, see Deleting snaphots.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.snapshots.delete@.+module Network.Google.Resource.Compute.Snapshots.Delete+    (+    -- * REST Resource+      SnapshotsDeleteResource++    -- * Creating a Request+    , snapshotsDelete+    , SnapshotsDelete++    -- * Request Lenses+    , sdSnapshot+    , sdProject+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.snapshots.delete@ method which the+-- 'SnapshotsDelete' request conforms to.+type SnapshotsDeleteResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "global" :>+               "snapshots" :>+                 Capture "snapshot" Text :>+                   QueryParam "alt" AltJSON :> Delete '[JSON] Operation++-- | Deletes the specified Snapshot resource. Keep in mind that deleting a+-- single snapshot might not necessarily delete all the data on that+-- snapshot. If any data on the snapshot that is marked for deletion is+-- needed for subsequent snapshots, the data will be moved to the next+-- corresponding snapshot. For more information, see Deleting snaphots.+--+-- /See:/ 'snapshotsDelete' smart constructor.+data SnapshotsDelete = SnapshotsDelete+    { _sdSnapshot :: !Text+    , _sdProject  :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'SnapshotsDelete' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sdSnapshot'+--+-- * 'sdProject'+snapshotsDelete+    :: Text -- ^ 'sdSnapshot'+    -> Text -- ^ 'sdProject'+    -> SnapshotsDelete+snapshotsDelete pSdSnapshot_ pSdProject_ =+    SnapshotsDelete+    { _sdSnapshot = pSdSnapshot_+    , _sdProject = pSdProject_+    }++-- | Name of the Snapshot resource to delete.+sdSnapshot :: Lens' SnapshotsDelete Text+sdSnapshot+  = lens _sdSnapshot (\ s a -> s{_sdSnapshot = a})++-- | Name of the project scoping this request.+sdProject :: Lens' SnapshotsDelete Text+sdProject+  = lens _sdProject (\ s a -> s{_sdProject = a})++instance GoogleRequest SnapshotsDelete where+        type Rs SnapshotsDelete = Operation+        requestClient SnapshotsDelete{..}+          = go _sdProject _sdSnapshot (Just AltJSON)+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy SnapshotsDeleteResource)+                      mempty
+ gen/Network/Google/Resource/Compute/Snapshots/Get.hs view
@@ -0,0 +1,97 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Compute.Snapshots.Get+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns the specified Snapshot resource.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.snapshots.get@.+module Network.Google.Resource.Compute.Snapshots.Get+    (+    -- * REST Resource+      SnapshotsGetResource++    -- * Creating a Request+    , snapshotsGet+    , SnapshotsGet++    -- * Request Lenses+    , sgSnapshot+    , sgProject+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.snapshots.get@ method which the+-- 'SnapshotsGet' request conforms to.+type SnapshotsGetResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "global" :>+               "snapshots" :>+                 Capture "snapshot" Text :>+                   QueryParam "alt" AltJSON :> Get '[JSON] Snapshot++-- | Returns the specified Snapshot resource.+--+-- /See:/ 'snapshotsGet' smart constructor.+data SnapshotsGet = SnapshotsGet+    { _sgSnapshot :: !Text+    , _sgProject  :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'SnapshotsGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sgSnapshot'+--+-- * 'sgProject'+snapshotsGet+    :: Text -- ^ 'sgSnapshot'+    -> Text -- ^ 'sgProject'+    -> SnapshotsGet+snapshotsGet pSgSnapshot_ pSgProject_ =+    SnapshotsGet+    { _sgSnapshot = pSgSnapshot_+    , _sgProject = pSgProject_+    }++-- | Name of the Snapshot resource to return.+sgSnapshot :: Lens' SnapshotsGet Text+sgSnapshot+  = lens _sgSnapshot (\ s a -> s{_sgSnapshot = a})++-- | Name of the project scoping this request.+sgProject :: Lens' SnapshotsGet Text+sgProject+  = lens _sgProject (\ s a -> s{_sgProject = a})++instance GoogleRequest SnapshotsGet where+        type Rs SnapshotsGet = Snapshot+        requestClient SnapshotsGet{..}+          = go _sgProject _sgSnapshot (Just AltJSON)+              computeService+          where go+                  = buildClient (Proxy :: Proxy SnapshotsGetResource)+                      mempty
+ gen/Network/Google/Resource/Compute/Snapshots/List.hs view
@@ -0,0 +1,134 @@+{-# 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.Compute.Snapshots.List+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves the list of Snapshot resources contained within the specified+-- project.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.snapshots.list@.+module Network.Google.Resource.Compute.Snapshots.List+    (+    -- * REST Resource+      SnapshotsListResource++    -- * Creating a Request+    , snapshotsList+    , SnapshotsList++    -- * Request Lenses+    , slProject+    , slFilter+    , slPageToken+    , slMaxResults+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.snapshots.list@ method which the+-- 'SnapshotsList' request conforms to.+type SnapshotsListResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "global" :>+               "snapshots" :>+                 QueryParam "filter" Text :>+                   QueryParam "pageToken" Text :>+                     QueryParam "maxResults" (Textual Word32) :>+                       QueryParam "alt" AltJSON :> Get '[JSON] SnapshotList++-- | Retrieves the list of Snapshot resources contained within the specified+-- project.+--+-- /See:/ 'snapshotsList' smart constructor.+data SnapshotsList = SnapshotsList+    { _slProject    :: !Text+    , _slFilter     :: !(Maybe Text)+    , _slPageToken  :: !(Maybe Text)+    , _slMaxResults :: !(Textual Word32)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'SnapshotsList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'slProject'+--+-- * 'slFilter'+--+-- * 'slPageToken'+--+-- * 'slMaxResults'+snapshotsList+    :: Text -- ^ 'slProject'+    -> SnapshotsList+snapshotsList pSlProject_ =+    SnapshotsList+    { _slProject = pSlProject_+    , _slFilter = Nothing+    , _slPageToken = Nothing+    , _slMaxResults = 500+    }++-- | Name of the project scoping this request.+slProject :: Lens' SnapshotsList Text+slProject+  = lens _slProject (\ s a -> s{_slProject = a})++-- | Sets a filter expression for filtering listed resources, in the form+-- filter={expression}. Your {expression} must be in the format: FIELD_NAME+-- COMPARISON_STRING LITERAL_STRING. The FIELD_NAME is the name of the+-- field you want to compare. Only atomic field types are supported+-- (string, number, boolean). The COMPARISON_STRING must be either eq+-- (equals) or ne (not equals). The LITERAL_STRING is the string value to+-- filter to. The literal value must be valid for the type of field+-- (string, number, boolean). For string fields, the literal value is+-- interpreted as a regular expression using RE2 syntax. The literal value+-- must match the entire field. For example, filter=name ne+-- example-instance.+slFilter :: Lens' SnapshotsList (Maybe Text)+slFilter = lens _slFilter (\ s a -> s{_slFilter = a})++-- | Specifies a page token to use. Use this parameter if you want to list+-- the next page of results. Set pageToken to the nextPageToken returned by+-- a previous list request.+slPageToken :: Lens' SnapshotsList (Maybe Text)+slPageToken+  = lens _slPageToken (\ s a -> s{_slPageToken = a})++-- | Maximum count of results to be returned.+slMaxResults :: Lens' SnapshotsList Word32+slMaxResults+  = lens _slMaxResults (\ s a -> s{_slMaxResults = a})+      . _Coerce++instance GoogleRequest SnapshotsList where+        type Rs SnapshotsList = SnapshotList+        requestClient SnapshotsList{..}+          = go _slProject _slFilter _slPageToken+              (Just _slMaxResults)+              (Just AltJSON)+              computeService+          where go+                  = buildClient (Proxy :: Proxy SnapshotsListResource)+                      mempty
+ gen/Network/Google/Resource/Compute/TargetHTTPProxies/Delete.hs view
@@ -0,0 +1,101 @@+{-# 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.Compute.TargetHTTPProxies.Delete+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes the specified TargetHttpProxy resource.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.targetHttpProxies.delete@.+module Network.Google.Resource.Compute.TargetHTTPProxies.Delete+    (+    -- * REST Resource+      TargetHTTPProxiesDeleteResource++    -- * Creating a Request+    , targetHTTPProxiesDelete+    , TargetHTTPProxiesDelete++    -- * Request Lenses+    , thttppdProject+    , thttppdTargetHTTPProxy+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.targetHttpProxies.delete@ method which the+-- 'TargetHTTPProxiesDelete' request conforms to.+type TargetHTTPProxiesDeleteResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "global" :>+               "targetHttpProxies" :>+                 Capture "targetHttpProxy" Text :>+                   QueryParam "alt" AltJSON :> Delete '[JSON] Operation++-- | Deletes the specified TargetHttpProxy resource.+--+-- /See:/ 'targetHTTPProxiesDelete' smart constructor.+data TargetHTTPProxiesDelete = TargetHTTPProxiesDelete+    { _thttppdProject         :: !Text+    , _thttppdTargetHTTPProxy :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TargetHTTPProxiesDelete' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'thttppdProject'+--+-- * 'thttppdTargetHTTPProxy'+targetHTTPProxiesDelete+    :: Text -- ^ 'thttppdProject'+    -> Text -- ^ 'thttppdTargetHTTPProxy'+    -> TargetHTTPProxiesDelete+targetHTTPProxiesDelete pThttppdProject_ pThttppdTargetHTTPProxy_ =+    TargetHTTPProxiesDelete+    { _thttppdProject = pThttppdProject_+    , _thttppdTargetHTTPProxy = pThttppdTargetHTTPProxy_+    }++-- | Name of the project scoping this request.+thttppdProject :: Lens' TargetHTTPProxiesDelete Text+thttppdProject+  = lens _thttppdProject+      (\ s a -> s{_thttppdProject = a})++-- | Name of the TargetHttpProxy resource to delete.+thttppdTargetHTTPProxy :: Lens' TargetHTTPProxiesDelete Text+thttppdTargetHTTPProxy+  = lens _thttppdTargetHTTPProxy+      (\ s a -> s{_thttppdTargetHTTPProxy = a})++instance GoogleRequest TargetHTTPProxiesDelete where+        type Rs TargetHTTPProxiesDelete = Operation+        requestClient TargetHTTPProxiesDelete{..}+          = go _thttppdProject _thttppdTargetHTTPProxy+              (Just AltJSON)+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy TargetHTTPProxiesDeleteResource)+                      mempty
+ gen/Network/Google/Resource/Compute/TargetHTTPProxies/Get.hs view
@@ -0,0 +1,102 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Compute.TargetHTTPProxies.Get+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns the specified TargetHttpProxy resource.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.targetHttpProxies.get@.+module Network.Google.Resource.Compute.TargetHTTPProxies.Get+    (+    -- * REST Resource+      TargetHTTPProxiesGetResource++    -- * Creating a Request+    , targetHTTPProxiesGet+    , TargetHTTPProxiesGet++    -- * Request Lenses+    , thttppgProject+    , thttppgTargetHTTPProxy+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.targetHttpProxies.get@ method which the+-- 'TargetHTTPProxiesGet' request conforms to.+type TargetHTTPProxiesGetResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "global" :>+               "targetHttpProxies" :>+                 Capture "targetHttpProxy" Text :>+                   QueryParam "alt" AltJSON :>+                     Get '[JSON] TargetHTTPProxy++-- | Returns the specified TargetHttpProxy resource.+--+-- /See:/ 'targetHTTPProxiesGet' smart constructor.+data TargetHTTPProxiesGet = TargetHTTPProxiesGet+    { _thttppgProject         :: !Text+    , _thttppgTargetHTTPProxy :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TargetHTTPProxiesGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'thttppgProject'+--+-- * 'thttppgTargetHTTPProxy'+targetHTTPProxiesGet+    :: Text -- ^ 'thttppgProject'+    -> Text -- ^ 'thttppgTargetHTTPProxy'+    -> TargetHTTPProxiesGet+targetHTTPProxiesGet pThttppgProject_ pThttppgTargetHTTPProxy_ =+    TargetHTTPProxiesGet+    { _thttppgProject = pThttppgProject_+    , _thttppgTargetHTTPProxy = pThttppgTargetHTTPProxy_+    }++-- | Name of the project scoping this request.+thttppgProject :: Lens' TargetHTTPProxiesGet Text+thttppgProject+  = lens _thttppgProject+      (\ s a -> s{_thttppgProject = a})++-- | Name of the TargetHttpProxy resource to return.+thttppgTargetHTTPProxy :: Lens' TargetHTTPProxiesGet Text+thttppgTargetHTTPProxy+  = lens _thttppgTargetHTTPProxy+      (\ s a -> s{_thttppgTargetHTTPProxy = a})++instance GoogleRequest TargetHTTPProxiesGet where+        type Rs TargetHTTPProxiesGet = TargetHTTPProxy+        requestClient TargetHTTPProxiesGet{..}+          = go _thttppgProject _thttppgTargetHTTPProxy+              (Just AltJSON)+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy TargetHTTPProxiesGetResource)+                      mempty
+ gen/Network/Google/Resource/Compute/TargetHTTPProxies/Insert.hs view
@@ -0,0 +1,103 @@+{-# 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.Compute.TargetHTTPProxies.Insert+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a TargetHttpProxy resource in the specified project using the+-- data included in the request.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.targetHttpProxies.insert@.+module Network.Google.Resource.Compute.TargetHTTPProxies.Insert+    (+    -- * REST Resource+      TargetHTTPProxiesInsertResource++    -- * Creating a Request+    , targetHTTPProxiesInsert+    , TargetHTTPProxiesInsert++    -- * Request Lenses+    , thttppiProject+    , thttppiPayload+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.targetHttpProxies.insert@ method which the+-- 'TargetHTTPProxiesInsert' request conforms to.+type TargetHTTPProxiesInsertResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "global" :>+               "targetHttpProxies" :>+                 QueryParam "alt" AltJSON :>+                   ReqBody '[JSON] TargetHTTPProxy :>+                     Post '[JSON] Operation++-- | Creates a TargetHttpProxy resource in the specified project using the+-- data included in the request.+--+-- /See:/ 'targetHTTPProxiesInsert' smart constructor.+data TargetHTTPProxiesInsert = TargetHTTPProxiesInsert+    { _thttppiProject :: !Text+    , _thttppiPayload :: !TargetHTTPProxy+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TargetHTTPProxiesInsert' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'thttppiProject'+--+-- * 'thttppiPayload'+targetHTTPProxiesInsert+    :: Text -- ^ 'thttppiProject'+    -> TargetHTTPProxy -- ^ 'thttppiPayload'+    -> TargetHTTPProxiesInsert+targetHTTPProxiesInsert pThttppiProject_ pThttppiPayload_ =+    TargetHTTPProxiesInsert+    { _thttppiProject = pThttppiProject_+    , _thttppiPayload = pThttppiPayload_+    }++-- | Name of the project scoping this request.+thttppiProject :: Lens' TargetHTTPProxiesInsert Text+thttppiProject+  = lens _thttppiProject+      (\ s a -> s{_thttppiProject = a})++-- | Multipart request metadata.+thttppiPayload :: Lens' TargetHTTPProxiesInsert TargetHTTPProxy+thttppiPayload+  = lens _thttppiPayload+      (\ s a -> s{_thttppiPayload = a})++instance GoogleRequest TargetHTTPProxiesInsert where+        type Rs TargetHTTPProxiesInsert = Operation+        requestClient TargetHTTPProxiesInsert{..}+          = go _thttppiProject (Just AltJSON) _thttppiPayload+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy TargetHTTPProxiesInsertResource)+                      mempty
+ gen/Network/Google/Resource/Compute/TargetHTTPProxies/List.hs view
@@ -0,0 +1,141 @@+{-# 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.Compute.TargetHTTPProxies.List+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves the list of TargetHttpProxy resources available to the+-- specified project.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.targetHttpProxies.list@.+module Network.Google.Resource.Compute.TargetHTTPProxies.List+    (+    -- * REST Resource+      TargetHTTPProxiesListResource++    -- * Creating a Request+    , targetHTTPProxiesList+    , TargetHTTPProxiesList++    -- * Request Lenses+    , thttpplProject+    , thttpplFilter+    , thttpplPageToken+    , thttpplMaxResults+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.targetHttpProxies.list@ method which the+-- 'TargetHTTPProxiesList' request conforms to.+type TargetHTTPProxiesListResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "global" :>+               "targetHttpProxies" :>+                 QueryParam "filter" Text :>+                   QueryParam "pageToken" Text :>+                     QueryParam "maxResults" (Textual Word32) :>+                       QueryParam "alt" AltJSON :>+                         Get '[JSON] TargetHTTPProxyList++-- | Retrieves the list of TargetHttpProxy resources available to the+-- specified project.+--+-- /See:/ 'targetHTTPProxiesList' smart constructor.+data TargetHTTPProxiesList = TargetHTTPProxiesList+    { _thttpplProject    :: !Text+    , _thttpplFilter     :: !(Maybe Text)+    , _thttpplPageToken  :: !(Maybe Text)+    , _thttpplMaxResults :: !(Textual Word32)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TargetHTTPProxiesList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'thttpplProject'+--+-- * 'thttpplFilter'+--+-- * 'thttpplPageToken'+--+-- * 'thttpplMaxResults'+targetHTTPProxiesList+    :: Text -- ^ 'thttpplProject'+    -> TargetHTTPProxiesList+targetHTTPProxiesList pThttpplProject_ =+    TargetHTTPProxiesList+    { _thttpplProject = pThttpplProject_+    , _thttpplFilter = Nothing+    , _thttpplPageToken = Nothing+    , _thttpplMaxResults = 500+    }++-- | Name of the project scoping this request.+thttpplProject :: Lens' TargetHTTPProxiesList Text+thttpplProject+  = lens _thttpplProject+      (\ s a -> s{_thttpplProject = a})++-- | Sets a filter expression for filtering listed resources, in the form+-- filter={expression}. Your {expression} must be in the format: FIELD_NAME+-- COMPARISON_STRING LITERAL_STRING. The FIELD_NAME is the name of the+-- field you want to compare. Only atomic field types are supported+-- (string, number, boolean). The COMPARISON_STRING must be either eq+-- (equals) or ne (not equals). The LITERAL_STRING is the string value to+-- filter to. The literal value must be valid for the type of field+-- (string, number, boolean). For string fields, the literal value is+-- interpreted as a regular expression using RE2 syntax. The literal value+-- must match the entire field. For example, filter=name ne+-- example-instance.+thttpplFilter :: Lens' TargetHTTPProxiesList (Maybe Text)+thttpplFilter+  = lens _thttpplFilter+      (\ s a -> s{_thttpplFilter = a})++-- | Specifies a page token to use. Use this parameter if you want to list+-- the next page of results. Set pageToken to the nextPageToken returned by+-- a previous list request.+thttpplPageToken :: Lens' TargetHTTPProxiesList (Maybe Text)+thttpplPageToken+  = lens _thttpplPageToken+      (\ s a -> s{_thttpplPageToken = a})++-- | Maximum count of results to be returned.+thttpplMaxResults :: Lens' TargetHTTPProxiesList Word32+thttpplMaxResults+  = lens _thttpplMaxResults+      (\ s a -> s{_thttpplMaxResults = a})+      . _Coerce++instance GoogleRequest TargetHTTPProxiesList where+        type Rs TargetHTTPProxiesList = TargetHTTPProxyList+        requestClient TargetHTTPProxiesList{..}+          = go _thttpplProject _thttpplFilter _thttpplPageToken+              (Just _thttpplMaxResults)+              (Just AltJSON)+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy TargetHTTPProxiesListResource)+                      mempty
+ gen/Network/Google/Resource/Compute/TargetHTTPProxies/SetURLMap.hs view
@@ -0,0 +1,117 @@+{-# 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.Compute.TargetHTTPProxies.SetURLMap+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Changes the URL map for TargetHttpProxy.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.targetHttpProxies.setUrlMap@.+module Network.Google.Resource.Compute.TargetHTTPProxies.SetURLMap+    (+    -- * REST Resource+      TargetHTTPProxiesSetURLMapResource++    -- * Creating a Request+    , targetHTTPProxiesSetURLMap+    , TargetHTTPProxiesSetURLMap++    -- * Request Lenses+    , thttppsumProject+    , thttppsumPayload+    , thttppsumTargetHTTPProxy+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.targetHttpProxies.setUrlMap@ method which the+-- 'TargetHTTPProxiesSetURLMap' request conforms to.+type TargetHTTPProxiesSetURLMapResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "targetHttpProxies" :>+               Capture "targetHttpProxy" Text :>+                 "setUrlMap" :>+                   QueryParam "alt" AltJSON :>+                     ReqBody '[JSON] URLMapReference :>+                       Post '[JSON] Operation++-- | Changes the URL map for TargetHttpProxy.+--+-- /See:/ 'targetHTTPProxiesSetURLMap' smart constructor.+data TargetHTTPProxiesSetURLMap = TargetHTTPProxiesSetURLMap+    { _thttppsumProject         :: !Text+    , _thttppsumPayload         :: !URLMapReference+    , _thttppsumTargetHTTPProxy :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TargetHTTPProxiesSetURLMap' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'thttppsumProject'+--+-- * 'thttppsumPayload'+--+-- * 'thttppsumTargetHTTPProxy'+targetHTTPProxiesSetURLMap+    :: Text -- ^ 'thttppsumProject'+    -> URLMapReference -- ^ 'thttppsumPayload'+    -> Text -- ^ 'thttppsumTargetHTTPProxy'+    -> TargetHTTPProxiesSetURLMap+targetHTTPProxiesSetURLMap pThttppsumProject_ pThttppsumPayload_ pThttppsumTargetHTTPProxy_ =+    TargetHTTPProxiesSetURLMap+    { _thttppsumProject = pThttppsumProject_+    , _thttppsumPayload = pThttppsumPayload_+    , _thttppsumTargetHTTPProxy = pThttppsumTargetHTTPProxy_+    }++-- | Name of the project scoping this request.+thttppsumProject :: Lens' TargetHTTPProxiesSetURLMap Text+thttppsumProject+  = lens _thttppsumProject+      (\ s a -> s{_thttppsumProject = a})++-- | Multipart request metadata.+thttppsumPayload :: Lens' TargetHTTPProxiesSetURLMap URLMapReference+thttppsumPayload+  = lens _thttppsumPayload+      (\ s a -> s{_thttppsumPayload = a})++-- | Name of the TargetHttpProxy resource whose URL map is to be set.+thttppsumTargetHTTPProxy :: Lens' TargetHTTPProxiesSetURLMap Text+thttppsumTargetHTTPProxy+  = lens _thttppsumTargetHTTPProxy+      (\ s a -> s{_thttppsumTargetHTTPProxy = a})++instance GoogleRequest TargetHTTPProxiesSetURLMap+         where+        type Rs TargetHTTPProxiesSetURLMap = Operation+        requestClient TargetHTTPProxiesSetURLMap{..}+          = go _thttppsumProject _thttppsumTargetHTTPProxy+              (Just AltJSON)+              _thttppsumPayload+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy TargetHTTPProxiesSetURLMapResource)+                      mempty
+ gen/Network/Google/Resource/Compute/TargetHTTPSProxies/Delete.hs view
@@ -0,0 +1,100 @@+{-# 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.Compute.TargetHTTPSProxies.Delete+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes the specified TargetHttpsProxy resource.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.targetHttpsProxies.delete@.+module Network.Google.Resource.Compute.TargetHTTPSProxies.Delete+    (+    -- * REST Resource+      TargetHTTPSProxiesDeleteResource++    -- * Creating a Request+    , targetHTTPSProxiesDelete+    , TargetHTTPSProxiesDelete++    -- * Request Lenses+    , thpdProject+    , thpdTargetHTTPSProxy+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.targetHttpsProxies.delete@ method which the+-- 'TargetHTTPSProxiesDelete' request conforms to.+type TargetHTTPSProxiesDeleteResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "global" :>+               "targetHttpsProxies" :>+                 Capture "targetHttpsProxy" Text :>+                   QueryParam "alt" AltJSON :> Delete '[JSON] Operation++-- | Deletes the specified TargetHttpsProxy resource.+--+-- /See:/ 'targetHTTPSProxiesDelete' smart constructor.+data TargetHTTPSProxiesDelete = TargetHTTPSProxiesDelete+    { _thpdProject          :: !Text+    , _thpdTargetHTTPSProxy :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TargetHTTPSProxiesDelete' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'thpdProject'+--+-- * 'thpdTargetHTTPSProxy'+targetHTTPSProxiesDelete+    :: Text -- ^ 'thpdProject'+    -> Text -- ^ 'thpdTargetHTTPSProxy'+    -> TargetHTTPSProxiesDelete+targetHTTPSProxiesDelete pThpdProject_ pThpdTargetHTTPSProxy_ =+    TargetHTTPSProxiesDelete+    { _thpdProject = pThpdProject_+    , _thpdTargetHTTPSProxy = pThpdTargetHTTPSProxy_+    }++-- | Name of the project scoping this request.+thpdProject :: Lens' TargetHTTPSProxiesDelete Text+thpdProject+  = lens _thpdProject (\ s a -> s{_thpdProject = a})++-- | Name of the TargetHttpsProxy resource to delete.+thpdTargetHTTPSProxy :: Lens' TargetHTTPSProxiesDelete Text+thpdTargetHTTPSProxy+  = lens _thpdTargetHTTPSProxy+      (\ s a -> s{_thpdTargetHTTPSProxy = a})++instance GoogleRequest TargetHTTPSProxiesDelete where+        type Rs TargetHTTPSProxiesDelete = Operation+        requestClient TargetHTTPSProxiesDelete{..}+          = go _thpdProject _thpdTargetHTTPSProxy+              (Just AltJSON)+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy TargetHTTPSProxiesDeleteResource)+                      mempty
+ gen/Network/Google/Resource/Compute/TargetHTTPSProxies/Get.hs view
@@ -0,0 +1,101 @@+{-# 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.Compute.TargetHTTPSProxies.Get+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns the specified TargetHttpsProxy resource.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.targetHttpsProxies.get@.+module Network.Google.Resource.Compute.TargetHTTPSProxies.Get+    (+    -- * REST Resource+      TargetHTTPSProxiesGetResource++    -- * Creating a Request+    , targetHTTPSProxiesGet+    , TargetHTTPSProxiesGet++    -- * Request Lenses+    , thpgProject+    , thpgTargetHTTPSProxy+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.targetHttpsProxies.get@ method which the+-- 'TargetHTTPSProxiesGet' request conforms to.+type TargetHTTPSProxiesGetResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "global" :>+               "targetHttpsProxies" :>+                 Capture "targetHttpsProxy" Text :>+                   QueryParam "alt" AltJSON :>+                     Get '[JSON] TargetHTTPSProxy++-- | Returns the specified TargetHttpsProxy resource.+--+-- /See:/ 'targetHTTPSProxiesGet' smart constructor.+data TargetHTTPSProxiesGet = TargetHTTPSProxiesGet+    { _thpgProject          :: !Text+    , _thpgTargetHTTPSProxy :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TargetHTTPSProxiesGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'thpgProject'+--+-- * 'thpgTargetHTTPSProxy'+targetHTTPSProxiesGet+    :: Text -- ^ 'thpgProject'+    -> Text -- ^ 'thpgTargetHTTPSProxy'+    -> TargetHTTPSProxiesGet+targetHTTPSProxiesGet pThpgProject_ pThpgTargetHTTPSProxy_ =+    TargetHTTPSProxiesGet+    { _thpgProject = pThpgProject_+    , _thpgTargetHTTPSProxy = pThpgTargetHTTPSProxy_+    }++-- | Name of the project scoping this request.+thpgProject :: Lens' TargetHTTPSProxiesGet Text+thpgProject+  = lens _thpgProject (\ s a -> s{_thpgProject = a})++-- | Name of the TargetHttpsProxy resource to return.+thpgTargetHTTPSProxy :: Lens' TargetHTTPSProxiesGet Text+thpgTargetHTTPSProxy+  = lens _thpgTargetHTTPSProxy+      (\ s a -> s{_thpgTargetHTTPSProxy = a})++instance GoogleRequest TargetHTTPSProxiesGet where+        type Rs TargetHTTPSProxiesGet = TargetHTTPSProxy+        requestClient TargetHTTPSProxiesGet{..}+          = go _thpgProject _thpgTargetHTTPSProxy+              (Just AltJSON)+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy TargetHTTPSProxiesGetResource)+                      mempty
+ gen/Network/Google/Resource/Compute/TargetHTTPSProxies/Insert.hs view
@@ -0,0 +1,101 @@+{-# 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.Compute.TargetHTTPSProxies.Insert+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a TargetHttpsProxy resource in the specified project using the+-- data included in the request.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.targetHttpsProxies.insert@.+module Network.Google.Resource.Compute.TargetHTTPSProxies.Insert+    (+    -- * REST Resource+      TargetHTTPSProxiesInsertResource++    -- * Creating a Request+    , targetHTTPSProxiesInsert+    , TargetHTTPSProxiesInsert++    -- * Request Lenses+    , thpiProject+    , thpiPayload+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.targetHttpsProxies.insert@ method which the+-- 'TargetHTTPSProxiesInsert' request conforms to.+type TargetHTTPSProxiesInsertResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "global" :>+               "targetHttpsProxies" :>+                 QueryParam "alt" AltJSON :>+                   ReqBody '[JSON] TargetHTTPSProxy :>+                     Post '[JSON] Operation++-- | Creates a TargetHttpsProxy resource in the specified project using the+-- data included in the request.+--+-- /See:/ 'targetHTTPSProxiesInsert' smart constructor.+data TargetHTTPSProxiesInsert = TargetHTTPSProxiesInsert+    { _thpiProject :: !Text+    , _thpiPayload :: !TargetHTTPSProxy+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TargetHTTPSProxiesInsert' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'thpiProject'+--+-- * 'thpiPayload'+targetHTTPSProxiesInsert+    :: Text -- ^ 'thpiProject'+    -> TargetHTTPSProxy -- ^ 'thpiPayload'+    -> TargetHTTPSProxiesInsert+targetHTTPSProxiesInsert pThpiProject_ pThpiPayload_ =+    TargetHTTPSProxiesInsert+    { _thpiProject = pThpiProject_+    , _thpiPayload = pThpiPayload_+    }++-- | Name of the project scoping this request.+thpiProject :: Lens' TargetHTTPSProxiesInsert Text+thpiProject+  = lens _thpiProject (\ s a -> s{_thpiProject = a})++-- | Multipart request metadata.+thpiPayload :: Lens' TargetHTTPSProxiesInsert TargetHTTPSProxy+thpiPayload+  = lens _thpiPayload (\ s a -> s{_thpiPayload = a})++instance GoogleRequest TargetHTTPSProxiesInsert where+        type Rs TargetHTTPSProxiesInsert = Operation+        requestClient TargetHTTPSProxiesInsert{..}+          = go _thpiProject (Just AltJSON) _thpiPayload+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy TargetHTTPSProxiesInsertResource)+                      mempty
+ gen/Network/Google/Resource/Compute/TargetHTTPSProxies/List.hs view
@@ -0,0 +1,139 @@+{-# 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.Compute.TargetHTTPSProxies.List+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves the list of TargetHttpsProxy resources available to the+-- specified project.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.targetHttpsProxies.list@.+module Network.Google.Resource.Compute.TargetHTTPSProxies.List+    (+    -- * REST Resource+      TargetHTTPSProxiesListResource++    -- * Creating a Request+    , targetHTTPSProxiesList+    , TargetHTTPSProxiesList++    -- * Request Lenses+    , thplProject+    , thplFilter+    , thplPageToken+    , thplMaxResults+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.targetHttpsProxies.list@ method which the+-- 'TargetHTTPSProxiesList' request conforms to.+type TargetHTTPSProxiesListResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "global" :>+               "targetHttpsProxies" :>+                 QueryParam "filter" Text :>+                   QueryParam "pageToken" Text :>+                     QueryParam "maxResults" (Textual Word32) :>+                       QueryParam "alt" AltJSON :>+                         Get '[JSON] TargetHTTPSProxyList++-- | Retrieves the list of TargetHttpsProxy resources available to the+-- specified project.+--+-- /See:/ 'targetHTTPSProxiesList' smart constructor.+data TargetHTTPSProxiesList = TargetHTTPSProxiesList+    { _thplProject    :: !Text+    , _thplFilter     :: !(Maybe Text)+    , _thplPageToken  :: !(Maybe Text)+    , _thplMaxResults :: !(Textual Word32)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TargetHTTPSProxiesList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'thplProject'+--+-- * 'thplFilter'+--+-- * 'thplPageToken'+--+-- * 'thplMaxResults'+targetHTTPSProxiesList+    :: Text -- ^ 'thplProject'+    -> TargetHTTPSProxiesList+targetHTTPSProxiesList pThplProject_ =+    TargetHTTPSProxiesList+    { _thplProject = pThplProject_+    , _thplFilter = Nothing+    , _thplPageToken = Nothing+    , _thplMaxResults = 500+    }++-- | Name of the project scoping this request.+thplProject :: Lens' TargetHTTPSProxiesList Text+thplProject+  = lens _thplProject (\ s a -> s{_thplProject = a})++-- | Sets a filter expression for filtering listed resources, in the form+-- filter={expression}. Your {expression} must be in the format: FIELD_NAME+-- COMPARISON_STRING LITERAL_STRING. The FIELD_NAME is the name of the+-- field you want to compare. Only atomic field types are supported+-- (string, number, boolean). The COMPARISON_STRING must be either eq+-- (equals) or ne (not equals). The LITERAL_STRING is the string value to+-- filter to. The literal value must be valid for the type of field+-- (string, number, boolean). For string fields, the literal value is+-- interpreted as a regular expression using RE2 syntax. The literal value+-- must match the entire field. For example, filter=name ne+-- example-instance.+thplFilter :: Lens' TargetHTTPSProxiesList (Maybe Text)+thplFilter+  = lens _thplFilter (\ s a -> s{_thplFilter = a})++-- | Specifies a page token to use. Use this parameter if you want to list+-- the next page of results. Set pageToken to the nextPageToken returned by+-- a previous list request.+thplPageToken :: Lens' TargetHTTPSProxiesList (Maybe Text)+thplPageToken+  = lens _thplPageToken+      (\ s a -> s{_thplPageToken = a})++-- | Maximum count of results to be returned.+thplMaxResults :: Lens' TargetHTTPSProxiesList Word32+thplMaxResults+  = lens _thplMaxResults+      (\ s a -> s{_thplMaxResults = a})+      . _Coerce++instance GoogleRequest TargetHTTPSProxiesList where+        type Rs TargetHTTPSProxiesList = TargetHTTPSProxyList+        requestClient TargetHTTPSProxiesList{..}+          = go _thplProject _thplFilter _thplPageToken+              (Just _thplMaxResults)+              (Just AltJSON)+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy TargetHTTPSProxiesListResource)+                      mempty
+ gen/Network/Google/Resource/Compute/TargetHTTPSProxies/SetSSLCertificates.hs view
@@ -0,0 +1,121 @@+{-# 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.Compute.TargetHTTPSProxies.SetSSLCertificates+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Replaces SslCertificates for TargetHttpsProxy.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.targetHttpsProxies.setSslCertificates@.+module Network.Google.Resource.Compute.TargetHTTPSProxies.SetSSLCertificates+    (+    -- * REST Resource+      TargetHTTPSProxiesSetSSLCertificatesResource++    -- * Creating a Request+    , targetHTTPSProxiesSetSSLCertificates+    , TargetHTTPSProxiesSetSSLCertificates++    -- * Request Lenses+    , thpsscProject+    , thpsscPayload+    , thpsscTargetHTTPSProxy+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.targetHttpsProxies.setSslCertificates@ method which the+-- 'TargetHTTPSProxiesSetSSLCertificates' request conforms to.+type TargetHTTPSProxiesSetSSLCertificatesResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "targetHttpsProxies" :>+               Capture "targetHttpsProxy" Text :>+                 "setSslCertificates" :>+                   QueryParam "alt" AltJSON :>+                     ReqBody '[JSON]+                       TargetHTTPSProxiesSetSSLCertificatesRequest+                       :> Post '[JSON] Operation++-- | Replaces SslCertificates for TargetHttpsProxy.+--+-- /See:/ 'targetHTTPSProxiesSetSSLCertificates' smart constructor.+data TargetHTTPSProxiesSetSSLCertificates = TargetHTTPSProxiesSetSSLCertificates+    { _thpsscProject          :: !Text+    , _thpsscPayload          :: !TargetHTTPSProxiesSetSSLCertificatesRequest+    , _thpsscTargetHTTPSProxy :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TargetHTTPSProxiesSetSSLCertificates' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'thpsscProject'+--+-- * 'thpsscPayload'+--+-- * 'thpsscTargetHTTPSProxy'+targetHTTPSProxiesSetSSLCertificates+    :: Text -- ^ 'thpsscProject'+    -> TargetHTTPSProxiesSetSSLCertificatesRequest -- ^ 'thpsscPayload'+    -> Text -- ^ 'thpsscTargetHTTPSProxy'+    -> TargetHTTPSProxiesSetSSLCertificates+targetHTTPSProxiesSetSSLCertificates pThpsscProject_ pThpsscPayload_ pThpsscTargetHTTPSProxy_ =+    TargetHTTPSProxiesSetSSLCertificates+    { _thpsscProject = pThpsscProject_+    , _thpsscPayload = pThpsscPayload_+    , _thpsscTargetHTTPSProxy = pThpsscTargetHTTPSProxy_+    }++-- | Name of the project scoping this request.+thpsscProject :: Lens' TargetHTTPSProxiesSetSSLCertificates Text+thpsscProject+  = lens _thpsscProject+      (\ s a -> s{_thpsscProject = a})++-- | Multipart request metadata.+thpsscPayload :: Lens' TargetHTTPSProxiesSetSSLCertificates TargetHTTPSProxiesSetSSLCertificatesRequest+thpsscPayload+  = lens _thpsscPayload+      (\ s a -> s{_thpsscPayload = a})++-- | Name of the TargetHttpsProxy resource whose URL map is to be set.+thpsscTargetHTTPSProxy :: Lens' TargetHTTPSProxiesSetSSLCertificates Text+thpsscTargetHTTPSProxy+  = lens _thpsscTargetHTTPSProxy+      (\ s a -> s{_thpsscTargetHTTPSProxy = a})++instance GoogleRequest+         TargetHTTPSProxiesSetSSLCertificates where+        type Rs TargetHTTPSProxiesSetSSLCertificates =+             Operation+        requestClient+          TargetHTTPSProxiesSetSSLCertificates{..}+          = go _thpsscProject _thpsscTargetHTTPSProxy+              (Just AltJSON)+              _thpsscPayload+              computeService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy TargetHTTPSProxiesSetSSLCertificatesResource)+                      mempty
+ gen/Network/Google/Resource/Compute/TargetHTTPSProxies/SetURLMap.hs view
@@ -0,0 +1,117 @@+{-# 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.Compute.TargetHTTPSProxies.SetURLMap+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Changes the URL map for TargetHttpsProxy.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.targetHttpsProxies.setUrlMap@.+module Network.Google.Resource.Compute.TargetHTTPSProxies.SetURLMap+    (+    -- * REST Resource+      TargetHTTPSProxiesSetURLMapResource++    -- * Creating a Request+    , targetHTTPSProxiesSetURLMap+    , TargetHTTPSProxiesSetURLMap++    -- * Request Lenses+    , thpsumProject+    , thpsumPayload+    , thpsumTargetHTTPSProxy+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.targetHttpsProxies.setUrlMap@ method which the+-- 'TargetHTTPSProxiesSetURLMap' request conforms to.+type TargetHTTPSProxiesSetURLMapResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "targetHttpsProxies" :>+               Capture "targetHttpsProxy" Text :>+                 "setUrlMap" :>+                   QueryParam "alt" AltJSON :>+                     ReqBody '[JSON] URLMapReference :>+                       Post '[JSON] Operation++-- | Changes the URL map for TargetHttpsProxy.+--+-- /See:/ 'targetHTTPSProxiesSetURLMap' smart constructor.+data TargetHTTPSProxiesSetURLMap = TargetHTTPSProxiesSetURLMap+    { _thpsumProject          :: !Text+    , _thpsumPayload          :: !URLMapReference+    , _thpsumTargetHTTPSProxy :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TargetHTTPSProxiesSetURLMap' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'thpsumProject'+--+-- * 'thpsumPayload'+--+-- * 'thpsumTargetHTTPSProxy'+targetHTTPSProxiesSetURLMap+    :: Text -- ^ 'thpsumProject'+    -> URLMapReference -- ^ 'thpsumPayload'+    -> Text -- ^ 'thpsumTargetHTTPSProxy'+    -> TargetHTTPSProxiesSetURLMap+targetHTTPSProxiesSetURLMap pThpsumProject_ pThpsumPayload_ pThpsumTargetHTTPSProxy_ =+    TargetHTTPSProxiesSetURLMap+    { _thpsumProject = pThpsumProject_+    , _thpsumPayload = pThpsumPayload_+    , _thpsumTargetHTTPSProxy = pThpsumTargetHTTPSProxy_+    }++-- | Name of the project scoping this request.+thpsumProject :: Lens' TargetHTTPSProxiesSetURLMap Text+thpsumProject+  = lens _thpsumProject+      (\ s a -> s{_thpsumProject = a})++-- | Multipart request metadata.+thpsumPayload :: Lens' TargetHTTPSProxiesSetURLMap URLMapReference+thpsumPayload+  = lens _thpsumPayload+      (\ s a -> s{_thpsumPayload = a})++-- | Name of the TargetHttpsProxy resource whose URL map is to be set.+thpsumTargetHTTPSProxy :: Lens' TargetHTTPSProxiesSetURLMap Text+thpsumTargetHTTPSProxy+  = lens _thpsumTargetHTTPSProxy+      (\ s a -> s{_thpsumTargetHTTPSProxy = a})++instance GoogleRequest TargetHTTPSProxiesSetURLMap+         where+        type Rs TargetHTTPSProxiesSetURLMap = Operation+        requestClient TargetHTTPSProxiesSetURLMap{..}+          = go _thpsumProject _thpsumTargetHTTPSProxy+              (Just AltJSON)+              _thpsumPayload+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy TargetHTTPSProxiesSetURLMapResource)+                      mempty
+ gen/Network/Google/Resource/Compute/TargetInstances/AggregatedList.hs view
@@ -0,0 +1,140 @@+{-# 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.Compute.TargetInstances.AggregatedList+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves the list of target instances grouped by scope.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.targetInstances.aggregatedList@.+module Network.Google.Resource.Compute.TargetInstances.AggregatedList+    (+    -- * REST Resource+      TargetInstancesAggregatedListResource++    -- * Creating a Request+    , targetInstancesAggregatedList+    , TargetInstancesAggregatedList++    -- * Request Lenses+    , tialProject+    , tialFilter+    , tialPageToken+    , tialMaxResults+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.targetInstances.aggregatedList@ method which the+-- 'TargetInstancesAggregatedList' request conforms to.+type TargetInstancesAggregatedListResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "aggregated" :>+               "targetInstances" :>+                 QueryParam "filter" Text :>+                   QueryParam "pageToken" Text :>+                     QueryParam "maxResults" (Textual Word32) :>+                       QueryParam "alt" AltJSON :>+                         Get '[JSON] TargetInstanceAggregatedList++-- | Retrieves the list of target instances grouped by scope.+--+-- /See:/ 'targetInstancesAggregatedList' smart constructor.+data TargetInstancesAggregatedList = TargetInstancesAggregatedList+    { _tialProject    :: !Text+    , _tialFilter     :: !(Maybe Text)+    , _tialPageToken  :: !(Maybe Text)+    , _tialMaxResults :: !(Textual Word32)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TargetInstancesAggregatedList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tialProject'+--+-- * 'tialFilter'+--+-- * 'tialPageToken'+--+-- * 'tialMaxResults'+targetInstancesAggregatedList+    :: Text -- ^ 'tialProject'+    -> TargetInstancesAggregatedList+targetInstancesAggregatedList pTialProject_ =+    TargetInstancesAggregatedList+    { _tialProject = pTialProject_+    , _tialFilter = Nothing+    , _tialPageToken = Nothing+    , _tialMaxResults = 500+    }++-- | Name of the project scoping this request.+tialProject :: Lens' TargetInstancesAggregatedList Text+tialProject+  = lens _tialProject (\ s a -> s{_tialProject = a})++-- | Sets a filter expression for filtering listed resources, in the form+-- filter={expression}. Your {expression} must be in the format: FIELD_NAME+-- COMPARISON_STRING LITERAL_STRING. The FIELD_NAME is the name of the+-- field you want to compare. Only atomic field types are supported+-- (string, number, boolean). The COMPARISON_STRING must be either eq+-- (equals) or ne (not equals). The LITERAL_STRING is the string value to+-- filter to. The literal value must be valid for the type of field+-- (string, number, boolean). For string fields, the literal value is+-- interpreted as a regular expression using RE2 syntax. The literal value+-- must match the entire field. For example, filter=name ne+-- example-instance.+tialFilter :: Lens' TargetInstancesAggregatedList (Maybe Text)+tialFilter+  = lens _tialFilter (\ s a -> s{_tialFilter = a})++-- | Specifies a page token to use. Use this parameter if you want to list+-- the next page of results. Set pageToken to the nextPageToken returned by+-- a previous list request.+tialPageToken :: Lens' TargetInstancesAggregatedList (Maybe Text)+tialPageToken+  = lens _tialPageToken+      (\ s a -> s{_tialPageToken = a})++-- | Maximum count of results to be returned.+tialMaxResults :: Lens' TargetInstancesAggregatedList Word32+tialMaxResults+  = lens _tialMaxResults+      (\ s a -> s{_tialMaxResults = a})+      . _Coerce++instance GoogleRequest TargetInstancesAggregatedList+         where+        type Rs TargetInstancesAggregatedList =+             TargetInstanceAggregatedList+        requestClient TargetInstancesAggregatedList{..}+          = go _tialProject _tialFilter _tialPageToken+              (Just _tialMaxResults)+              (Just AltJSON)+              computeService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy TargetInstancesAggregatedListResource)+                      mempty
+ gen/Network/Google/Resource/Compute/TargetInstances/Delete.hs view
@@ -0,0 +1,111 @@+{-# 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.Compute.TargetInstances.Delete+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes the specified TargetInstance resource.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.targetInstances.delete@.+module Network.Google.Resource.Compute.TargetInstances.Delete+    (+    -- * REST Resource+      TargetInstancesDeleteResource++    -- * Creating a Request+    , targetInstancesDelete+    , TargetInstancesDelete++    -- * Request Lenses+    , tidProject+    , tidTargetInstance+    , tidZone+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.targetInstances.delete@ method which the+-- 'TargetInstancesDelete' request conforms to.+type TargetInstancesDeleteResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "zones" :>+               Capture "zone" Text :>+                 "targetInstances" :>+                   Capture "targetInstance" Text :>+                     QueryParam "alt" AltJSON :> Delete '[JSON] Operation++-- | Deletes the specified TargetInstance resource.+--+-- /See:/ 'targetInstancesDelete' smart constructor.+data TargetInstancesDelete = TargetInstancesDelete+    { _tidProject        :: !Text+    , _tidTargetInstance :: !Text+    , _tidZone           :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TargetInstancesDelete' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tidProject'+--+-- * 'tidTargetInstance'+--+-- * 'tidZone'+targetInstancesDelete+    :: Text -- ^ 'tidProject'+    -> Text -- ^ 'tidTargetInstance'+    -> Text -- ^ 'tidZone'+    -> TargetInstancesDelete+targetInstancesDelete pTidProject_ pTidTargetInstance_ pTidZone_ =+    TargetInstancesDelete+    { _tidProject = pTidProject_+    , _tidTargetInstance = pTidTargetInstance_+    , _tidZone = pTidZone_+    }++-- | Name of the project scoping this request.+tidProject :: Lens' TargetInstancesDelete Text+tidProject+  = lens _tidProject (\ s a -> s{_tidProject = a})++-- | Name of the TargetInstance resource to delete.+tidTargetInstance :: Lens' TargetInstancesDelete Text+tidTargetInstance+  = lens _tidTargetInstance+      (\ s a -> s{_tidTargetInstance = a})++-- | Name of the zone scoping this request.+tidZone :: Lens' TargetInstancesDelete Text+tidZone = lens _tidZone (\ s a -> s{_tidZone = a})++instance GoogleRequest TargetInstancesDelete where+        type Rs TargetInstancesDelete = Operation+        requestClient TargetInstancesDelete{..}+          = go _tidProject _tidZone _tidTargetInstance+              (Just AltJSON)+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy TargetInstancesDeleteResource)+                      mempty
+ gen/Network/Google/Resource/Compute/TargetInstances/Get.hs view
@@ -0,0 +1,112 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Compute.TargetInstances.Get+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns the specified TargetInstance resource.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.targetInstances.get@.+module Network.Google.Resource.Compute.TargetInstances.Get+    (+    -- * REST Resource+      TargetInstancesGetResource++    -- * Creating a Request+    , targetInstancesGet+    , TargetInstancesGet++    -- * Request Lenses+    , tigProject+    , tigTargetInstance+    , tigZone+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.targetInstances.get@ method which the+-- 'TargetInstancesGet' request conforms to.+type TargetInstancesGetResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "zones" :>+               Capture "zone" Text :>+                 "targetInstances" :>+                   Capture "targetInstance" Text :>+                     QueryParam "alt" AltJSON :>+                       Get '[JSON] TargetInstance++-- | Returns the specified TargetInstance resource.+--+-- /See:/ 'targetInstancesGet' smart constructor.+data TargetInstancesGet = TargetInstancesGet+    { _tigProject        :: !Text+    , _tigTargetInstance :: !Text+    , _tigZone           :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TargetInstancesGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tigProject'+--+-- * 'tigTargetInstance'+--+-- * 'tigZone'+targetInstancesGet+    :: Text -- ^ 'tigProject'+    -> Text -- ^ 'tigTargetInstance'+    -> Text -- ^ 'tigZone'+    -> TargetInstancesGet+targetInstancesGet pTigProject_ pTigTargetInstance_ pTigZone_ =+    TargetInstancesGet+    { _tigProject = pTigProject_+    , _tigTargetInstance = pTigTargetInstance_+    , _tigZone = pTigZone_+    }++-- | Name of the project scoping this request.+tigProject :: Lens' TargetInstancesGet Text+tigProject+  = lens _tigProject (\ s a -> s{_tigProject = a})++-- | Name of the TargetInstance resource to return.+tigTargetInstance :: Lens' TargetInstancesGet Text+tigTargetInstance+  = lens _tigTargetInstance+      (\ s a -> s{_tigTargetInstance = a})++-- | Name of the zone scoping this request.+tigZone :: Lens' TargetInstancesGet Text+tigZone = lens _tigZone (\ s a -> s{_tigZone = a})++instance GoogleRequest TargetInstancesGet where+        type Rs TargetInstancesGet = TargetInstance+        requestClient TargetInstancesGet{..}+          = go _tigProject _tigZone _tigTargetInstance+              (Just AltJSON)+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy TargetInstancesGetResource)+                      mempty
+ gen/Network/Google/Resource/Compute/TargetInstances/Insert.hs view
@@ -0,0 +1,112 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Compute.TargetInstances.Insert+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a TargetInstance resource in the specified project and zone+-- using the data included in the request.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.targetInstances.insert@.+module Network.Google.Resource.Compute.TargetInstances.Insert+    (+    -- * REST Resource+      TargetInstancesInsertResource++    -- * Creating a Request+    , targetInstancesInsert+    , TargetInstancesInsert++    -- * Request Lenses+    , tiiProject+    , tiiZone+    , tiiPayload+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.targetInstances.insert@ method which the+-- 'TargetInstancesInsert' request conforms to.+type TargetInstancesInsertResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "zones" :>+               Capture "zone" Text :>+                 "targetInstances" :>+                   QueryParam "alt" AltJSON :>+                     ReqBody '[JSON] TargetInstance :>+                       Post '[JSON] Operation++-- | Creates a TargetInstance resource in the specified project and zone+-- using the data included in the request.+--+-- /See:/ 'targetInstancesInsert' smart constructor.+data TargetInstancesInsert = TargetInstancesInsert+    { _tiiProject :: !Text+    , _tiiZone    :: !Text+    , _tiiPayload :: !TargetInstance+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TargetInstancesInsert' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tiiProject'+--+-- * 'tiiZone'+--+-- * 'tiiPayload'+targetInstancesInsert+    :: Text -- ^ 'tiiProject'+    -> Text -- ^ 'tiiZone'+    -> TargetInstance -- ^ 'tiiPayload'+    -> TargetInstancesInsert+targetInstancesInsert pTiiProject_ pTiiZone_ pTiiPayload_ =+    TargetInstancesInsert+    { _tiiProject = pTiiProject_+    , _tiiZone = pTiiZone_+    , _tiiPayload = pTiiPayload_+    }++-- | Name of the project scoping this request.+tiiProject :: Lens' TargetInstancesInsert Text+tiiProject+  = lens _tiiProject (\ s a -> s{_tiiProject = a})++-- | Name of the zone scoping this request.+tiiZone :: Lens' TargetInstancesInsert Text+tiiZone = lens _tiiZone (\ s a -> s{_tiiZone = a})++-- | Multipart request metadata.+tiiPayload :: Lens' TargetInstancesInsert TargetInstance+tiiPayload+  = lens _tiiPayload (\ s a -> s{_tiiPayload = a})++instance GoogleRequest TargetInstancesInsert where+        type Rs TargetInstancesInsert = Operation+        requestClient TargetInstancesInsert{..}+          = go _tiiProject _tiiZone (Just AltJSON) _tiiPayload+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy TargetInstancesInsertResource)+                      mempty
+ gen/Network/Google/Resource/Compute/TargetInstances/List.hs view
@@ -0,0 +1,149 @@+{-# 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.Compute.TargetInstances.List+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves the list of TargetInstance resources available to the+-- specified project and zone.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.targetInstances.list@.+module Network.Google.Resource.Compute.TargetInstances.List+    (+    -- * REST Resource+      TargetInstancesListResource++    -- * Creating a Request+    , targetInstancesList+    , TargetInstancesList++    -- * Request Lenses+    , tilProject+    , tilZone+    , tilFilter+    , tilPageToken+    , tilMaxResults+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.targetInstances.list@ method which the+-- 'TargetInstancesList' request conforms to.+type TargetInstancesListResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "zones" :>+               Capture "zone" Text :>+                 "targetInstances" :>+                   QueryParam "filter" Text :>+                     QueryParam "pageToken" Text :>+                       QueryParam "maxResults" (Textual Word32) :>+                         QueryParam "alt" AltJSON :>+                           Get '[JSON] TargetInstanceList++-- | Retrieves the list of TargetInstance resources available to the+-- specified project and zone.+--+-- /See:/ 'targetInstancesList' smart constructor.+data TargetInstancesList = TargetInstancesList+    { _tilProject    :: !Text+    , _tilZone       :: !Text+    , _tilFilter     :: !(Maybe Text)+    , _tilPageToken  :: !(Maybe Text)+    , _tilMaxResults :: !(Textual Word32)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TargetInstancesList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tilProject'+--+-- * 'tilZone'+--+-- * 'tilFilter'+--+-- * 'tilPageToken'+--+-- * 'tilMaxResults'+targetInstancesList+    :: Text -- ^ 'tilProject'+    -> Text -- ^ 'tilZone'+    -> TargetInstancesList+targetInstancesList pTilProject_ pTilZone_ =+    TargetInstancesList+    { _tilProject = pTilProject_+    , _tilZone = pTilZone_+    , _tilFilter = Nothing+    , _tilPageToken = Nothing+    , _tilMaxResults = 500+    }++-- | Name of the project scoping this request.+tilProject :: Lens' TargetInstancesList Text+tilProject+  = lens _tilProject (\ s a -> s{_tilProject = a})++-- | Name of the zone scoping this request.+tilZone :: Lens' TargetInstancesList Text+tilZone = lens _tilZone (\ s a -> s{_tilZone = a})++-- | Sets a filter expression for filtering listed resources, in the form+-- filter={expression}. Your {expression} must be in the format: FIELD_NAME+-- COMPARISON_STRING LITERAL_STRING. The FIELD_NAME is the name of the+-- field you want to compare. Only atomic field types are supported+-- (string, number, boolean). The COMPARISON_STRING must be either eq+-- (equals) or ne (not equals). The LITERAL_STRING is the string value to+-- filter to. The literal value must be valid for the type of field+-- (string, number, boolean). For string fields, the literal value is+-- interpreted as a regular expression using RE2 syntax. The literal value+-- must match the entire field. For example, filter=name ne+-- example-instance.+tilFilter :: Lens' TargetInstancesList (Maybe Text)+tilFilter+  = lens _tilFilter (\ s a -> s{_tilFilter = a})++-- | Specifies a page token to use. Use this parameter if you want to list+-- the next page of results. Set pageToken to the nextPageToken returned by+-- a previous list request.+tilPageToken :: Lens' TargetInstancesList (Maybe Text)+tilPageToken+  = lens _tilPageToken (\ s a -> s{_tilPageToken = a})++-- | Maximum count of results to be returned.+tilMaxResults :: Lens' TargetInstancesList Word32+tilMaxResults+  = lens _tilMaxResults+      (\ s a -> s{_tilMaxResults = a})+      . _Coerce++instance GoogleRequest TargetInstancesList where+        type Rs TargetInstancesList = TargetInstanceList+        requestClient TargetInstancesList{..}+          = go _tilProject _tilZone _tilFilter _tilPageToken+              (Just _tilMaxResults)+              (Just AltJSON)+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy TargetInstancesListResource)+                      mempty
+ gen/Network/Google/Resource/Compute/TargetPools/AddHealthCheck.hs view
@@ -0,0 +1,128 @@+{-# 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.Compute.TargetPools.AddHealthCheck+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Adds health check URL to targetPool.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.targetPools.addHealthCheck@.+module Network.Google.Resource.Compute.TargetPools.AddHealthCheck+    (+    -- * REST Resource+      TargetPoolsAddHealthCheckResource++    -- * Creating a Request+    , targetPoolsAddHealthCheck+    , TargetPoolsAddHealthCheck++    -- * Request Lenses+    , tpahcProject+    , tpahcTargetPool+    , tpahcPayload+    , tpahcRegion+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.targetPools.addHealthCheck@ method which the+-- 'TargetPoolsAddHealthCheck' request conforms to.+type TargetPoolsAddHealthCheckResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "regions" :>+               Capture "region" Text :>+                 "targetPools" :>+                   Capture "targetPool" Text :>+                     "addHealthCheck" :>+                       QueryParam "alt" AltJSON :>+                         ReqBody '[JSON] TargetPoolsAddHealthCheckRequest :>+                           Post '[JSON] Operation++-- | Adds health check URL to targetPool.+--+-- /See:/ 'targetPoolsAddHealthCheck' smart constructor.+data TargetPoolsAddHealthCheck = TargetPoolsAddHealthCheck+    { _tpahcProject    :: !Text+    , _tpahcTargetPool :: !Text+    , _tpahcPayload    :: !TargetPoolsAddHealthCheckRequest+    , _tpahcRegion     :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TargetPoolsAddHealthCheck' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tpahcProject'+--+-- * 'tpahcTargetPool'+--+-- * 'tpahcPayload'+--+-- * 'tpahcRegion'+targetPoolsAddHealthCheck+    :: Text -- ^ 'tpahcProject'+    -> Text -- ^ 'tpahcTargetPool'+    -> TargetPoolsAddHealthCheckRequest -- ^ 'tpahcPayload'+    -> Text -- ^ 'tpahcRegion'+    -> TargetPoolsAddHealthCheck+targetPoolsAddHealthCheck pTpahcProject_ pTpahcTargetPool_ pTpahcPayload_ pTpahcRegion_ =+    TargetPoolsAddHealthCheck+    { _tpahcProject = pTpahcProject_+    , _tpahcTargetPool = pTpahcTargetPool_+    , _tpahcPayload = pTpahcPayload_+    , _tpahcRegion = pTpahcRegion_+    }++tpahcProject :: Lens' TargetPoolsAddHealthCheck Text+tpahcProject+  = lens _tpahcProject (\ s a -> s{_tpahcProject = a})++-- | Name of the TargetPool resource to which health_check_url is to be+-- added.+tpahcTargetPool :: Lens' TargetPoolsAddHealthCheck Text+tpahcTargetPool+  = lens _tpahcTargetPool+      (\ s a -> s{_tpahcTargetPool = a})++-- | Multipart request metadata.+tpahcPayload :: Lens' TargetPoolsAddHealthCheck TargetPoolsAddHealthCheckRequest+tpahcPayload+  = lens _tpahcPayload (\ s a -> s{_tpahcPayload = a})++-- | Name of the region scoping this request.+tpahcRegion :: Lens' TargetPoolsAddHealthCheck Text+tpahcRegion+  = lens _tpahcRegion (\ s a -> s{_tpahcRegion = a})++instance GoogleRequest TargetPoolsAddHealthCheck+         where+        type Rs TargetPoolsAddHealthCheck = Operation+        requestClient TargetPoolsAddHealthCheck{..}+          = go _tpahcProject _tpahcRegion _tpahcTargetPool+              (Just AltJSON)+              _tpahcPayload+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy TargetPoolsAddHealthCheckResource)+                      mempty
+ gen/Network/Google/Resource/Compute/TargetPools/AddInstance.hs view
@@ -0,0 +1,126 @@+{-# 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.Compute.TargetPools.AddInstance+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Adds instance url to targetPool.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.targetPools.addInstance@.+module Network.Google.Resource.Compute.TargetPools.AddInstance+    (+    -- * REST Resource+      TargetPoolsAddInstanceResource++    -- * Creating a Request+    , targetPoolsAddInstance+    , TargetPoolsAddInstance++    -- * Request Lenses+    , tpaiProject+    , tpaiTargetPool+    , tpaiPayload+    , tpaiRegion+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.targetPools.addInstance@ method which the+-- 'TargetPoolsAddInstance' request conforms to.+type TargetPoolsAddInstanceResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "regions" :>+               Capture "region" Text :>+                 "targetPools" :>+                   Capture "targetPool" Text :>+                     "addInstance" :>+                       QueryParam "alt" AltJSON :>+                         ReqBody '[JSON] TargetPoolsAddInstanceRequest :>+                           Post '[JSON] Operation++-- | Adds instance url to targetPool.+--+-- /See:/ 'targetPoolsAddInstance' smart constructor.+data TargetPoolsAddInstance = TargetPoolsAddInstance+    { _tpaiProject    :: !Text+    , _tpaiTargetPool :: !Text+    , _tpaiPayload    :: !TargetPoolsAddInstanceRequest+    , _tpaiRegion     :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TargetPoolsAddInstance' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tpaiProject'+--+-- * 'tpaiTargetPool'+--+-- * 'tpaiPayload'+--+-- * 'tpaiRegion'+targetPoolsAddInstance+    :: Text -- ^ 'tpaiProject'+    -> Text -- ^ 'tpaiTargetPool'+    -> TargetPoolsAddInstanceRequest -- ^ 'tpaiPayload'+    -> Text -- ^ 'tpaiRegion'+    -> TargetPoolsAddInstance+targetPoolsAddInstance pTpaiProject_ pTpaiTargetPool_ pTpaiPayload_ pTpaiRegion_ =+    TargetPoolsAddInstance+    { _tpaiProject = pTpaiProject_+    , _tpaiTargetPool = pTpaiTargetPool_+    , _tpaiPayload = pTpaiPayload_+    , _tpaiRegion = pTpaiRegion_+    }++tpaiProject :: Lens' TargetPoolsAddInstance Text+tpaiProject+  = lens _tpaiProject (\ s a -> s{_tpaiProject = a})++-- | Name of the TargetPool resource to which instance_url is to be added.+tpaiTargetPool :: Lens' TargetPoolsAddInstance Text+tpaiTargetPool+  = lens _tpaiTargetPool+      (\ s a -> s{_tpaiTargetPool = a})++-- | Multipart request metadata.+tpaiPayload :: Lens' TargetPoolsAddInstance TargetPoolsAddInstanceRequest+tpaiPayload+  = lens _tpaiPayload (\ s a -> s{_tpaiPayload = a})++-- | Name of the region scoping this request.+tpaiRegion :: Lens' TargetPoolsAddInstance Text+tpaiRegion+  = lens _tpaiRegion (\ s a -> s{_tpaiRegion = a})++instance GoogleRequest TargetPoolsAddInstance where+        type Rs TargetPoolsAddInstance = Operation+        requestClient TargetPoolsAddInstance{..}+          = go _tpaiProject _tpaiRegion _tpaiTargetPool+              (Just AltJSON)+              _tpaiPayload+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy TargetPoolsAddInstanceResource)+                      mempty
+ gen/Network/Google/Resource/Compute/TargetPools/AggregatedList.hs view
@@ -0,0 +1,139 @@+{-# 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.Compute.TargetPools.AggregatedList+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves the list of target pools grouped by scope.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.targetPools.aggregatedList@.+module Network.Google.Resource.Compute.TargetPools.AggregatedList+    (+    -- * REST Resource+      TargetPoolsAggregatedListResource++    -- * Creating a Request+    , targetPoolsAggregatedList+    , TargetPoolsAggregatedList++    -- * Request Lenses+    , tpalProject+    , tpalFilter+    , tpalPageToken+    , tpalMaxResults+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.targetPools.aggregatedList@ method which the+-- 'TargetPoolsAggregatedList' request conforms to.+type TargetPoolsAggregatedListResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "aggregated" :>+               "targetPools" :>+                 QueryParam "filter" Text :>+                   QueryParam "pageToken" Text :>+                     QueryParam "maxResults" (Textual Word32) :>+                       QueryParam "alt" AltJSON :>+                         Get '[JSON] TargetPoolAggregatedList++-- | Retrieves the list of target pools grouped by scope.+--+-- /See:/ 'targetPoolsAggregatedList' smart constructor.+data TargetPoolsAggregatedList = TargetPoolsAggregatedList+    { _tpalProject    :: !Text+    , _tpalFilter     :: !(Maybe Text)+    , _tpalPageToken  :: !(Maybe Text)+    , _tpalMaxResults :: !(Textual Word32)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TargetPoolsAggregatedList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tpalProject'+--+-- * 'tpalFilter'+--+-- * 'tpalPageToken'+--+-- * 'tpalMaxResults'+targetPoolsAggregatedList+    :: Text -- ^ 'tpalProject'+    -> TargetPoolsAggregatedList+targetPoolsAggregatedList pTpalProject_ =+    TargetPoolsAggregatedList+    { _tpalProject = pTpalProject_+    , _tpalFilter = Nothing+    , _tpalPageToken = Nothing+    , _tpalMaxResults = 500+    }++-- | Name of the project scoping this request.+tpalProject :: Lens' TargetPoolsAggregatedList Text+tpalProject+  = lens _tpalProject (\ s a -> s{_tpalProject = a})++-- | Sets a filter expression for filtering listed resources, in the form+-- filter={expression}. Your {expression} must be in the format: FIELD_NAME+-- COMPARISON_STRING LITERAL_STRING. The FIELD_NAME is the name of the+-- field you want to compare. Only atomic field types are supported+-- (string, number, boolean). The COMPARISON_STRING must be either eq+-- (equals) or ne (not equals). The LITERAL_STRING is the string value to+-- filter to. The literal value must be valid for the type of field+-- (string, number, boolean). For string fields, the literal value is+-- interpreted as a regular expression using RE2 syntax. The literal value+-- must match the entire field. For example, filter=name ne+-- example-instance.+tpalFilter :: Lens' TargetPoolsAggregatedList (Maybe Text)+tpalFilter+  = lens _tpalFilter (\ s a -> s{_tpalFilter = a})++-- | Specifies a page token to use. Use this parameter if you want to list+-- the next page of results. Set pageToken to the nextPageToken returned by+-- a previous list request.+tpalPageToken :: Lens' TargetPoolsAggregatedList (Maybe Text)+tpalPageToken+  = lens _tpalPageToken+      (\ s a -> s{_tpalPageToken = a})++-- | Maximum count of results to be returned.+tpalMaxResults :: Lens' TargetPoolsAggregatedList Word32+tpalMaxResults+  = lens _tpalMaxResults+      (\ s a -> s{_tpalMaxResults = a})+      . _Coerce++instance GoogleRequest TargetPoolsAggregatedList+         where+        type Rs TargetPoolsAggregatedList =+             TargetPoolAggregatedList+        requestClient TargetPoolsAggregatedList{..}+          = go _tpalProject _tpalFilter _tpalPageToken+              (Just _tpalMaxResults)+              (Just AltJSON)+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy TargetPoolsAggregatedListResource)+                      mempty
+ gen/Network/Google/Resource/Compute/TargetPools/Delete.hs view
@@ -0,0 +1,112 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Compute.TargetPools.Delete+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes the specified TargetPool resource.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.targetPools.delete@.+module Network.Google.Resource.Compute.TargetPools.Delete+    (+    -- * REST Resource+      TargetPoolsDeleteResource++    -- * Creating a Request+    , targetPoolsDelete+    , TargetPoolsDelete++    -- * Request Lenses+    , tpdProject+    , tpdTargetPool+    , tpdRegion+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.targetPools.delete@ method which the+-- 'TargetPoolsDelete' request conforms to.+type TargetPoolsDeleteResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "regions" :>+               Capture "region" Text :>+                 "targetPools" :>+                   Capture "targetPool" Text :>+                     QueryParam "alt" AltJSON :> Delete '[JSON] Operation++-- | Deletes the specified TargetPool resource.+--+-- /See:/ 'targetPoolsDelete' smart constructor.+data TargetPoolsDelete = TargetPoolsDelete+    { _tpdProject    :: !Text+    , _tpdTargetPool :: !Text+    , _tpdRegion     :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TargetPoolsDelete' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tpdProject'+--+-- * 'tpdTargetPool'+--+-- * 'tpdRegion'+targetPoolsDelete+    :: Text -- ^ 'tpdProject'+    -> Text -- ^ 'tpdTargetPool'+    -> Text -- ^ 'tpdRegion'+    -> TargetPoolsDelete+targetPoolsDelete pTpdProject_ pTpdTargetPool_ pTpdRegion_ =+    TargetPoolsDelete+    { _tpdProject = pTpdProject_+    , _tpdTargetPool = pTpdTargetPool_+    , _tpdRegion = pTpdRegion_+    }++-- | Name of the project scoping this request.+tpdProject :: Lens' TargetPoolsDelete Text+tpdProject+  = lens _tpdProject (\ s a -> s{_tpdProject = a})++-- | Name of the TargetPool resource to delete.+tpdTargetPool :: Lens' TargetPoolsDelete Text+tpdTargetPool+  = lens _tpdTargetPool+      (\ s a -> s{_tpdTargetPool = a})++-- | Name of the region scoping this request.+tpdRegion :: Lens' TargetPoolsDelete Text+tpdRegion+  = lens _tpdRegion (\ s a -> s{_tpdRegion = a})++instance GoogleRequest TargetPoolsDelete where+        type Rs TargetPoolsDelete = Operation+        requestClient TargetPoolsDelete{..}+          = go _tpdProject _tpdRegion _tpdTargetPool+              (Just AltJSON)+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy TargetPoolsDeleteResource)+                      mempty
+ gen/Network/Google/Resource/Compute/TargetPools/Get.hs view
@@ -0,0 +1,111 @@+{-# 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.Compute.TargetPools.Get+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns the specified TargetPool resource.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.targetPools.get@.+module Network.Google.Resource.Compute.TargetPools.Get+    (+    -- * REST Resource+      TargetPoolsGetResource++    -- * Creating a Request+    , targetPoolsGet+    , TargetPoolsGet++    -- * Request Lenses+    , tpgProject+    , tpgTargetPool+    , tpgRegion+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.targetPools.get@ method which the+-- 'TargetPoolsGet' request conforms to.+type TargetPoolsGetResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "regions" :>+               Capture "region" Text :>+                 "targetPools" :>+                   Capture "targetPool" Text :>+                     QueryParam "alt" AltJSON :> Get '[JSON] TargetPool++-- | Returns the specified TargetPool resource.+--+-- /See:/ 'targetPoolsGet' smart constructor.+data TargetPoolsGet = TargetPoolsGet+    { _tpgProject    :: !Text+    , _tpgTargetPool :: !Text+    , _tpgRegion     :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TargetPoolsGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tpgProject'+--+-- * 'tpgTargetPool'+--+-- * 'tpgRegion'+targetPoolsGet+    :: Text -- ^ 'tpgProject'+    -> Text -- ^ 'tpgTargetPool'+    -> Text -- ^ 'tpgRegion'+    -> TargetPoolsGet+targetPoolsGet pTpgProject_ pTpgTargetPool_ pTpgRegion_ =+    TargetPoolsGet+    { _tpgProject = pTpgProject_+    , _tpgTargetPool = pTpgTargetPool_+    , _tpgRegion = pTpgRegion_+    }++-- | Name of the project scoping this request.+tpgProject :: Lens' TargetPoolsGet Text+tpgProject+  = lens _tpgProject (\ s a -> s{_tpgProject = a})++-- | Name of the TargetPool resource to return.+tpgTargetPool :: Lens' TargetPoolsGet Text+tpgTargetPool+  = lens _tpgTargetPool+      (\ s a -> s{_tpgTargetPool = a})++-- | Name of the region scoping this request.+tpgRegion :: Lens' TargetPoolsGet Text+tpgRegion+  = lens _tpgRegion (\ s a -> s{_tpgRegion = a})++instance GoogleRequest TargetPoolsGet where+        type Rs TargetPoolsGet = TargetPool+        requestClient TargetPoolsGet{..}+          = go _tpgProject _tpgRegion _tpgTargetPool+              (Just AltJSON)+              computeService+          where go+                  = buildClient (Proxy :: Proxy TargetPoolsGetResource)+                      mempty
+ gen/Network/Google/Resource/Compute/TargetPools/GetHealth.hs view
@@ -0,0 +1,129 @@+{-# 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.Compute.TargetPools.GetHealth+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets the most recent health check results for each IP for the given+-- instance that is referenced by given TargetPool.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.targetPools.getHealth@.+module Network.Google.Resource.Compute.TargetPools.GetHealth+    (+    -- * REST Resource+      TargetPoolsGetHealthResource++    -- * Creating a Request+    , targetPoolsGetHealth+    , TargetPoolsGetHealth++    -- * Request Lenses+    , tpghProject+    , tpghTargetPool+    , tpghPayload+    , tpghRegion+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.targetPools.getHealth@ method which the+-- 'TargetPoolsGetHealth' request conforms to.+type TargetPoolsGetHealthResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "regions" :>+               Capture "region" Text :>+                 "targetPools" :>+                   Capture "targetPool" Text :>+                     "getHealth" :>+                       QueryParam "alt" AltJSON :>+                         ReqBody '[JSON] InstanceReference :>+                           Post '[JSON] TargetPoolInstanceHealth++-- | Gets the most recent health check results for each IP for the given+-- instance that is referenced by given TargetPool.+--+-- /See:/ 'targetPoolsGetHealth' smart constructor.+data TargetPoolsGetHealth = TargetPoolsGetHealth+    { _tpghProject    :: !Text+    , _tpghTargetPool :: !Text+    , _tpghPayload    :: !InstanceReference+    , _tpghRegion     :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TargetPoolsGetHealth' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tpghProject'+--+-- * 'tpghTargetPool'+--+-- * 'tpghPayload'+--+-- * 'tpghRegion'+targetPoolsGetHealth+    :: Text -- ^ 'tpghProject'+    -> Text -- ^ 'tpghTargetPool'+    -> InstanceReference -- ^ 'tpghPayload'+    -> Text -- ^ 'tpghRegion'+    -> TargetPoolsGetHealth+targetPoolsGetHealth pTpghProject_ pTpghTargetPool_ pTpghPayload_ pTpghRegion_ =+    TargetPoolsGetHealth+    { _tpghProject = pTpghProject_+    , _tpghTargetPool = pTpghTargetPool_+    , _tpghPayload = pTpghPayload_+    , _tpghRegion = pTpghRegion_+    }++tpghProject :: Lens' TargetPoolsGetHealth Text+tpghProject+  = lens _tpghProject (\ s a -> s{_tpghProject = a})++-- | Name of the TargetPool resource to which the queried instance belongs.+tpghTargetPool :: Lens' TargetPoolsGetHealth Text+tpghTargetPool+  = lens _tpghTargetPool+      (\ s a -> s{_tpghTargetPool = a})++-- | Multipart request metadata.+tpghPayload :: Lens' TargetPoolsGetHealth InstanceReference+tpghPayload+  = lens _tpghPayload (\ s a -> s{_tpghPayload = a})++-- | Name of the region scoping this request.+tpghRegion :: Lens' TargetPoolsGetHealth Text+tpghRegion+  = lens _tpghRegion (\ s a -> s{_tpghRegion = a})++instance GoogleRequest TargetPoolsGetHealth where+        type Rs TargetPoolsGetHealth =+             TargetPoolInstanceHealth+        requestClient TargetPoolsGetHealth{..}+          = go _tpghProject _tpghRegion _tpghTargetPool+              (Just AltJSON)+              _tpghPayload+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy TargetPoolsGetHealthResource)+                      mempty
+ gen/Network/Google/Resource/Compute/TargetPools/Insert.hs view
@@ -0,0 +1,113 @@+{-# 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.Compute.TargetPools.Insert+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a TargetPool resource in the specified project and region using+-- the data included in the request.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.targetPools.insert@.+module Network.Google.Resource.Compute.TargetPools.Insert+    (+    -- * REST Resource+      TargetPoolsInsertResource++    -- * Creating a Request+    , targetPoolsInsert+    , TargetPoolsInsert++    -- * Request Lenses+    , tpiProject+    , tpiPayload+    , tpiRegion+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.targetPools.insert@ method which the+-- 'TargetPoolsInsert' request conforms to.+type TargetPoolsInsertResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "regions" :>+               Capture "region" Text :>+                 "targetPools" :>+                   QueryParam "alt" AltJSON :>+                     ReqBody '[JSON] TargetPool :> Post '[JSON] Operation++-- | Creates a TargetPool resource in the specified project and region using+-- the data included in the request.+--+-- /See:/ 'targetPoolsInsert' smart constructor.+data TargetPoolsInsert = TargetPoolsInsert+    { _tpiProject :: !Text+    , _tpiPayload :: !TargetPool+    , _tpiRegion  :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TargetPoolsInsert' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tpiProject'+--+-- * 'tpiPayload'+--+-- * 'tpiRegion'+targetPoolsInsert+    :: Text -- ^ 'tpiProject'+    -> TargetPool -- ^ 'tpiPayload'+    -> Text -- ^ 'tpiRegion'+    -> TargetPoolsInsert+targetPoolsInsert pTpiProject_ pTpiPayload_ pTpiRegion_ =+    TargetPoolsInsert+    { _tpiProject = pTpiProject_+    , _tpiPayload = pTpiPayload_+    , _tpiRegion = pTpiRegion_+    }++-- | Name of the project scoping this request.+tpiProject :: Lens' TargetPoolsInsert Text+tpiProject+  = lens _tpiProject (\ s a -> s{_tpiProject = a})++-- | Multipart request metadata.+tpiPayload :: Lens' TargetPoolsInsert TargetPool+tpiPayload+  = lens _tpiPayload (\ s a -> s{_tpiPayload = a})++-- | Name of the region scoping this request.+tpiRegion :: Lens' TargetPoolsInsert Text+tpiRegion+  = lens _tpiRegion (\ s a -> s{_tpiRegion = a})++instance GoogleRequest TargetPoolsInsert where+        type Rs TargetPoolsInsert = Operation+        requestClient TargetPoolsInsert{..}+          = go _tpiProject _tpiRegion (Just AltJSON)+              _tpiPayload+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy TargetPoolsInsertResource)+                      mempty
+ gen/Network/Google/Resource/Compute/TargetPools/List.hs view
@@ -0,0 +1,150 @@+{-# 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.Compute.TargetPools.List+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves the list of TargetPool resources available to the specified+-- project and region.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.targetPools.list@.+module Network.Google.Resource.Compute.TargetPools.List+    (+    -- * REST Resource+      TargetPoolsListResource++    -- * Creating a Request+    , targetPoolsList+    , TargetPoolsList++    -- * Request Lenses+    , tplProject+    , tplFilter+    , tplRegion+    , tplPageToken+    , tplMaxResults+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.targetPools.list@ method which the+-- 'TargetPoolsList' request conforms to.+type TargetPoolsListResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "regions" :>+               Capture "region" Text :>+                 "targetPools" :>+                   QueryParam "filter" Text :>+                     QueryParam "pageToken" Text :>+                       QueryParam "maxResults" (Textual Word32) :>+                         QueryParam "alt" AltJSON :>+                           Get '[JSON] TargetPoolList++-- | Retrieves the list of TargetPool resources available to the specified+-- project and region.+--+-- /See:/ 'targetPoolsList' smart constructor.+data TargetPoolsList = TargetPoolsList+    { _tplProject    :: !Text+    , _tplFilter     :: !(Maybe Text)+    , _tplRegion     :: !Text+    , _tplPageToken  :: !(Maybe Text)+    , _tplMaxResults :: !(Textual Word32)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TargetPoolsList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tplProject'+--+-- * 'tplFilter'+--+-- * 'tplRegion'+--+-- * 'tplPageToken'+--+-- * 'tplMaxResults'+targetPoolsList+    :: Text -- ^ 'tplProject'+    -> Text -- ^ 'tplRegion'+    -> TargetPoolsList+targetPoolsList pTplProject_ pTplRegion_ =+    TargetPoolsList+    { _tplProject = pTplProject_+    , _tplFilter = Nothing+    , _tplRegion = pTplRegion_+    , _tplPageToken = Nothing+    , _tplMaxResults = 500+    }++-- | Name of the project scoping this request.+tplProject :: Lens' TargetPoolsList Text+tplProject+  = lens _tplProject (\ s a -> s{_tplProject = a})++-- | Sets a filter expression for filtering listed resources, in the form+-- filter={expression}. Your {expression} must be in the format: FIELD_NAME+-- COMPARISON_STRING LITERAL_STRING. The FIELD_NAME is the name of the+-- field you want to compare. Only atomic field types are supported+-- (string, number, boolean). The COMPARISON_STRING must be either eq+-- (equals) or ne (not equals). The LITERAL_STRING is the string value to+-- filter to. The literal value must be valid for the type of field+-- (string, number, boolean). For string fields, the literal value is+-- interpreted as a regular expression using RE2 syntax. The literal value+-- must match the entire field. For example, filter=name ne+-- example-instance.+tplFilter :: Lens' TargetPoolsList (Maybe Text)+tplFilter+  = lens _tplFilter (\ s a -> s{_tplFilter = a})++-- | Name of the region scoping this request.+tplRegion :: Lens' TargetPoolsList Text+tplRegion+  = lens _tplRegion (\ s a -> s{_tplRegion = a})++-- | Specifies a page token to use. Use this parameter if you want to list+-- the next page of results. Set pageToken to the nextPageToken returned by+-- a previous list request.+tplPageToken :: Lens' TargetPoolsList (Maybe Text)+tplPageToken+  = lens _tplPageToken (\ s a -> s{_tplPageToken = a})++-- | Maximum count of results to be returned.+tplMaxResults :: Lens' TargetPoolsList Word32+tplMaxResults+  = lens _tplMaxResults+      (\ s a -> s{_tplMaxResults = a})+      . _Coerce++instance GoogleRequest TargetPoolsList where+        type Rs TargetPoolsList = TargetPoolList+        requestClient TargetPoolsList{..}+          = go _tplProject _tplRegion _tplFilter _tplPageToken+              (Just _tplMaxResults)+              (Just AltJSON)+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy TargetPoolsListResource)+                      mempty
+ gen/Network/Google/Resource/Compute/TargetPools/RemoveHealthCheck.hs view
@@ -0,0 +1,128 @@+{-# 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.Compute.TargetPools.RemoveHealthCheck+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Removes health check URL from targetPool.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.targetPools.removeHealthCheck@.+module Network.Google.Resource.Compute.TargetPools.RemoveHealthCheck+    (+    -- * REST Resource+      TargetPoolsRemoveHealthCheckResource++    -- * Creating a Request+    , targetPoolsRemoveHealthCheck+    , TargetPoolsRemoveHealthCheck++    -- * Request Lenses+    , tprhcProject+    , tprhcTargetPool+    , tprhcPayload+    , tprhcRegion+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.targetPools.removeHealthCheck@ method which the+-- 'TargetPoolsRemoveHealthCheck' request conforms to.+type TargetPoolsRemoveHealthCheckResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "regions" :>+               Capture "region" Text :>+                 "targetPools" :>+                   Capture "targetPool" Text :>+                     "removeHealthCheck" :>+                       QueryParam "alt" AltJSON :>+                         ReqBody '[JSON] TargetPoolsRemoveHealthCheckRequest+                           :> Post '[JSON] Operation++-- | Removes health check URL from targetPool.+--+-- /See:/ 'targetPoolsRemoveHealthCheck' smart constructor.+data TargetPoolsRemoveHealthCheck = TargetPoolsRemoveHealthCheck+    { _tprhcProject    :: !Text+    , _tprhcTargetPool :: !Text+    , _tprhcPayload    :: !TargetPoolsRemoveHealthCheckRequest+    , _tprhcRegion     :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TargetPoolsRemoveHealthCheck' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tprhcProject'+--+-- * 'tprhcTargetPool'+--+-- * 'tprhcPayload'+--+-- * 'tprhcRegion'+targetPoolsRemoveHealthCheck+    :: Text -- ^ 'tprhcProject'+    -> Text -- ^ 'tprhcTargetPool'+    -> TargetPoolsRemoveHealthCheckRequest -- ^ 'tprhcPayload'+    -> Text -- ^ 'tprhcRegion'+    -> TargetPoolsRemoveHealthCheck+targetPoolsRemoveHealthCheck pTprhcProject_ pTprhcTargetPool_ pTprhcPayload_ pTprhcRegion_ =+    TargetPoolsRemoveHealthCheck+    { _tprhcProject = pTprhcProject_+    , _tprhcTargetPool = pTprhcTargetPool_+    , _tprhcPayload = pTprhcPayload_+    , _tprhcRegion = pTprhcRegion_+    }++tprhcProject :: Lens' TargetPoolsRemoveHealthCheck Text+tprhcProject+  = lens _tprhcProject (\ s a -> s{_tprhcProject = a})++-- | Name of the TargetPool resource to which health_check_url is to be+-- removed.+tprhcTargetPool :: Lens' TargetPoolsRemoveHealthCheck Text+tprhcTargetPool+  = lens _tprhcTargetPool+      (\ s a -> s{_tprhcTargetPool = a})++-- | Multipart request metadata.+tprhcPayload :: Lens' TargetPoolsRemoveHealthCheck TargetPoolsRemoveHealthCheckRequest+tprhcPayload+  = lens _tprhcPayload (\ s a -> s{_tprhcPayload = a})++-- | Name of the region scoping this request.+tprhcRegion :: Lens' TargetPoolsRemoveHealthCheck Text+tprhcRegion+  = lens _tprhcRegion (\ s a -> s{_tprhcRegion = a})++instance GoogleRequest TargetPoolsRemoveHealthCheck+         where+        type Rs TargetPoolsRemoveHealthCheck = Operation+        requestClient TargetPoolsRemoveHealthCheck{..}+          = go _tprhcProject _tprhcRegion _tprhcTargetPool+              (Just AltJSON)+              _tprhcPayload+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy TargetPoolsRemoveHealthCheckResource)+                      mempty
+ gen/Network/Google/Resource/Compute/TargetPools/RemoveInstance.hs view
@@ -0,0 +1,127 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Compute.TargetPools.RemoveInstance+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Removes instance URL from targetPool.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.targetPools.removeInstance@.+module Network.Google.Resource.Compute.TargetPools.RemoveInstance+    (+    -- * REST Resource+      TargetPoolsRemoveInstanceResource++    -- * Creating a Request+    , targetPoolsRemoveInstance+    , TargetPoolsRemoveInstance++    -- * Request Lenses+    , tpriProject+    , tpriTargetPool+    , tpriPayload+    , tpriRegion+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.targetPools.removeInstance@ method which the+-- 'TargetPoolsRemoveInstance' request conforms to.+type TargetPoolsRemoveInstanceResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "regions" :>+               Capture "region" Text :>+                 "targetPools" :>+                   Capture "targetPool" Text :>+                     "removeInstance" :>+                       QueryParam "alt" AltJSON :>+                         ReqBody '[JSON] TargetPoolsRemoveInstanceRequest :>+                           Post '[JSON] Operation++-- | Removes instance URL from targetPool.+--+-- /See:/ 'targetPoolsRemoveInstance' smart constructor.+data TargetPoolsRemoveInstance = TargetPoolsRemoveInstance+    { _tpriProject    :: !Text+    , _tpriTargetPool :: !Text+    , _tpriPayload    :: !TargetPoolsRemoveInstanceRequest+    , _tpriRegion     :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TargetPoolsRemoveInstance' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tpriProject'+--+-- * 'tpriTargetPool'+--+-- * 'tpriPayload'+--+-- * 'tpriRegion'+targetPoolsRemoveInstance+    :: Text -- ^ 'tpriProject'+    -> Text -- ^ 'tpriTargetPool'+    -> TargetPoolsRemoveInstanceRequest -- ^ 'tpriPayload'+    -> Text -- ^ 'tpriRegion'+    -> TargetPoolsRemoveInstance+targetPoolsRemoveInstance pTpriProject_ pTpriTargetPool_ pTpriPayload_ pTpriRegion_ =+    TargetPoolsRemoveInstance+    { _tpriProject = pTpriProject_+    , _tpriTargetPool = pTpriTargetPool_+    , _tpriPayload = pTpriPayload_+    , _tpriRegion = pTpriRegion_+    }++tpriProject :: Lens' TargetPoolsRemoveInstance Text+tpriProject+  = lens _tpriProject (\ s a -> s{_tpriProject = a})++-- | Name of the TargetPool resource to which instance_url is to be removed.+tpriTargetPool :: Lens' TargetPoolsRemoveInstance Text+tpriTargetPool+  = lens _tpriTargetPool+      (\ s a -> s{_tpriTargetPool = a})++-- | Multipart request metadata.+tpriPayload :: Lens' TargetPoolsRemoveInstance TargetPoolsRemoveInstanceRequest+tpriPayload+  = lens _tpriPayload (\ s a -> s{_tpriPayload = a})++-- | Name of the region scoping this request.+tpriRegion :: Lens' TargetPoolsRemoveInstance Text+tpriRegion+  = lens _tpriRegion (\ s a -> s{_tpriRegion = a})++instance GoogleRequest TargetPoolsRemoveInstance+         where+        type Rs TargetPoolsRemoveInstance = Operation+        requestClient TargetPoolsRemoveInstance{..}+          = go _tpriProject _tpriRegion _tpriTargetPool+              (Just AltJSON)+              _tpriPayload+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy TargetPoolsRemoveInstanceResource)+                      mempty
+ gen/Network/Google/Resource/Compute/TargetPools/SetBackup.hs view
@@ -0,0 +1,141 @@+{-# 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.Compute.TargetPools.SetBackup+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Changes backup pool configurations.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.targetPools.setBackup@.+module Network.Google.Resource.Compute.TargetPools.SetBackup+    (+    -- * REST Resource+      TargetPoolsSetBackupResource++    -- * Creating a Request+    , targetPoolsSetBackup+    , TargetPoolsSetBackup++    -- * Request Lenses+    , tpsbProject+    , tpsbTargetPool+    , tpsbPayload+    , tpsbFailoverRatio+    , tpsbRegion+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.targetPools.setBackup@ method which the+-- 'TargetPoolsSetBackup' request conforms to.+type TargetPoolsSetBackupResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "regions" :>+               Capture "region" Text :>+                 "targetPools" :>+                   Capture "targetPool" Text :>+                     "setBackup" :>+                       QueryParam "failoverRatio" (Textual Double) :>+                         QueryParam "alt" AltJSON :>+                           ReqBody '[JSON] TargetReference :>+                             Post '[JSON] Operation++-- | Changes backup pool configurations.+--+-- /See:/ 'targetPoolsSetBackup' smart constructor.+data TargetPoolsSetBackup = TargetPoolsSetBackup+    { _tpsbProject       :: !Text+    , _tpsbTargetPool    :: !Text+    , _tpsbPayload       :: !TargetReference+    , _tpsbFailoverRatio :: !(Maybe (Textual Double))+    , _tpsbRegion        :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TargetPoolsSetBackup' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tpsbProject'+--+-- * 'tpsbTargetPool'+--+-- * 'tpsbPayload'+--+-- * 'tpsbFailoverRatio'+--+-- * 'tpsbRegion'+targetPoolsSetBackup+    :: Text -- ^ 'tpsbProject'+    -> Text -- ^ 'tpsbTargetPool'+    -> TargetReference -- ^ 'tpsbPayload'+    -> Text -- ^ 'tpsbRegion'+    -> TargetPoolsSetBackup+targetPoolsSetBackup pTpsbProject_ pTpsbTargetPool_ pTpsbPayload_ pTpsbRegion_ =+    TargetPoolsSetBackup+    { _tpsbProject = pTpsbProject_+    , _tpsbTargetPool = pTpsbTargetPool_+    , _tpsbPayload = pTpsbPayload_+    , _tpsbFailoverRatio = Nothing+    , _tpsbRegion = pTpsbRegion_+    }++-- | Name of the project scoping this request.+tpsbProject :: Lens' TargetPoolsSetBackup Text+tpsbProject+  = lens _tpsbProject (\ s a -> s{_tpsbProject = a})++-- | Name of the TargetPool resource for which the backup is to be set.+tpsbTargetPool :: Lens' TargetPoolsSetBackup Text+tpsbTargetPool+  = lens _tpsbTargetPool+      (\ s a -> s{_tpsbTargetPool = a})++-- | Multipart request metadata.+tpsbPayload :: Lens' TargetPoolsSetBackup TargetReference+tpsbPayload+  = lens _tpsbPayload (\ s a -> s{_tpsbPayload = a})++-- | New failoverRatio value for the containing target pool.+tpsbFailoverRatio :: Lens' TargetPoolsSetBackup (Maybe Double)+tpsbFailoverRatio+  = lens _tpsbFailoverRatio+      (\ s a -> s{_tpsbFailoverRatio = a})+      . mapping _Coerce++-- | Name of the region scoping this request.+tpsbRegion :: Lens' TargetPoolsSetBackup Text+tpsbRegion+  = lens _tpsbRegion (\ s a -> s{_tpsbRegion = a})++instance GoogleRequest TargetPoolsSetBackup where+        type Rs TargetPoolsSetBackup = Operation+        requestClient TargetPoolsSetBackup{..}+          = go _tpsbProject _tpsbRegion _tpsbTargetPool+              _tpsbFailoverRatio+              (Just AltJSON)+              _tpsbPayload+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy TargetPoolsSetBackupResource)+                      mempty
+ gen/Network/Google/Resource/Compute/TargetVPNGateways/AggregatedList.hs view
@@ -0,0 +1,140 @@+{-# 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.Compute.TargetVPNGateways.AggregatedList+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves the list of target VPN gateways grouped by scope.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.targetVpnGateways.aggregatedList@.+module Network.Google.Resource.Compute.TargetVPNGateways.AggregatedList+    (+    -- * REST Resource+      TargetVPNGatewaysAggregatedListResource++    -- * Creating a Request+    , targetVPNGatewaysAggregatedList+    , TargetVPNGatewaysAggregatedList++    -- * Request Lenses+    , tvgalProject+    , tvgalFilter+    , tvgalPageToken+    , tvgalMaxResults+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.targetVpnGateways.aggregatedList@ method which the+-- 'TargetVPNGatewaysAggregatedList' request conforms to.+type TargetVPNGatewaysAggregatedListResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "aggregated" :>+               "targetVpnGateways" :>+                 QueryParam "filter" Text :>+                   QueryParam "pageToken" Text :>+                     QueryParam "maxResults" (Textual Word32) :>+                       QueryParam "alt" AltJSON :>+                         Get '[JSON] TargetVPNGatewayAggregatedList++-- | Retrieves the list of target VPN gateways grouped by scope.+--+-- /See:/ 'targetVPNGatewaysAggregatedList' smart constructor.+data TargetVPNGatewaysAggregatedList = TargetVPNGatewaysAggregatedList+    { _tvgalProject    :: !Text+    , _tvgalFilter     :: !(Maybe Text)+    , _tvgalPageToken  :: !(Maybe Text)+    , _tvgalMaxResults :: !(Textual Word32)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TargetVPNGatewaysAggregatedList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tvgalProject'+--+-- * 'tvgalFilter'+--+-- * 'tvgalPageToken'+--+-- * 'tvgalMaxResults'+targetVPNGatewaysAggregatedList+    :: Text -- ^ 'tvgalProject'+    -> TargetVPNGatewaysAggregatedList+targetVPNGatewaysAggregatedList pTvgalProject_ =+    TargetVPNGatewaysAggregatedList+    { _tvgalProject = pTvgalProject_+    , _tvgalFilter = Nothing+    , _tvgalPageToken = Nothing+    , _tvgalMaxResults = 500+    }++-- | Project ID for this request.+tvgalProject :: Lens' TargetVPNGatewaysAggregatedList Text+tvgalProject+  = lens _tvgalProject (\ s a -> s{_tvgalProject = a})++-- | Sets a filter expression for filtering listed resources, in the form+-- filter={expression}. Your {expression} must be in the format: FIELD_NAME+-- COMPARISON_STRING LITERAL_STRING. The FIELD_NAME is the name of the+-- field you want to compare. Only atomic field types are supported+-- (string, number, boolean). The COMPARISON_STRING must be either eq+-- (equals) or ne (not equals). The LITERAL_STRING is the string value to+-- filter to. The literal value must be valid for the type of field+-- (string, number, boolean). For string fields, the literal value is+-- interpreted as a regular expression using RE2 syntax. The literal value+-- must match the entire field. For example, filter=name ne+-- example-instance.+tvgalFilter :: Lens' TargetVPNGatewaysAggregatedList (Maybe Text)+tvgalFilter+  = lens _tvgalFilter (\ s a -> s{_tvgalFilter = a})++-- | Specifies a page token to use. Use this parameter if you want to list+-- the next page of results. Set pageToken to the nextPageToken returned by+-- a previous list request.+tvgalPageToken :: Lens' TargetVPNGatewaysAggregatedList (Maybe Text)+tvgalPageToken+  = lens _tvgalPageToken+      (\ s a -> s{_tvgalPageToken = a})++-- | Maximum count of results to be returned.+tvgalMaxResults :: Lens' TargetVPNGatewaysAggregatedList Word32+tvgalMaxResults+  = lens _tvgalMaxResults+      (\ s a -> s{_tvgalMaxResults = a})+      . _Coerce++instance GoogleRequest+         TargetVPNGatewaysAggregatedList where+        type Rs TargetVPNGatewaysAggregatedList =+             TargetVPNGatewayAggregatedList+        requestClient TargetVPNGatewaysAggregatedList{..}+          = go _tvgalProject _tvgalFilter _tvgalPageToken+              (Just _tvgalMaxResults)+              (Just AltJSON)+              computeService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy TargetVPNGatewaysAggregatedListResource)+                      mempty
+ gen/Network/Google/Resource/Compute/TargetVPNGateways/Delete.hs view
@@ -0,0 +1,112 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Compute.TargetVPNGateways.Delete+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes the specified TargetVpnGateway resource.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.targetVpnGateways.delete@.+module Network.Google.Resource.Compute.TargetVPNGateways.Delete+    (+    -- * REST Resource+      TargetVPNGatewaysDeleteResource++    -- * Creating a Request+    , targetVPNGatewaysDelete+    , TargetVPNGatewaysDelete++    -- * Request Lenses+    , tvgdProject+    , tvgdTargetVPNGateway+    , tvgdRegion+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.targetVpnGateways.delete@ method which the+-- 'TargetVPNGatewaysDelete' request conforms to.+type TargetVPNGatewaysDeleteResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "regions" :>+               Capture "region" Text :>+                 "targetVpnGateways" :>+                   Capture "targetVpnGateway" Text :>+                     QueryParam "alt" AltJSON :> Delete '[JSON] Operation++-- | Deletes the specified TargetVpnGateway resource.+--+-- /See:/ 'targetVPNGatewaysDelete' smart constructor.+data TargetVPNGatewaysDelete = TargetVPNGatewaysDelete+    { _tvgdProject          :: !Text+    , _tvgdTargetVPNGateway :: !Text+    , _tvgdRegion           :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TargetVPNGatewaysDelete' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tvgdProject'+--+-- * 'tvgdTargetVPNGateway'+--+-- * 'tvgdRegion'+targetVPNGatewaysDelete+    :: Text -- ^ 'tvgdProject'+    -> Text -- ^ 'tvgdTargetVPNGateway'+    -> Text -- ^ 'tvgdRegion'+    -> TargetVPNGatewaysDelete+targetVPNGatewaysDelete pTvgdProject_ pTvgdTargetVPNGateway_ pTvgdRegion_ =+    TargetVPNGatewaysDelete+    { _tvgdProject = pTvgdProject_+    , _tvgdTargetVPNGateway = pTvgdTargetVPNGateway_+    , _tvgdRegion = pTvgdRegion_+    }++-- | Project ID for this request.+tvgdProject :: Lens' TargetVPNGatewaysDelete Text+tvgdProject+  = lens _tvgdProject (\ s a -> s{_tvgdProject = a})++-- | Name of the TargetVpnGateway resource to delete.+tvgdTargetVPNGateway :: Lens' TargetVPNGatewaysDelete Text+tvgdTargetVPNGateway+  = lens _tvgdTargetVPNGateway+      (\ s a -> s{_tvgdTargetVPNGateway = a})++-- | The name of the region for this request.+tvgdRegion :: Lens' TargetVPNGatewaysDelete Text+tvgdRegion+  = lens _tvgdRegion (\ s a -> s{_tvgdRegion = a})++instance GoogleRequest TargetVPNGatewaysDelete where+        type Rs TargetVPNGatewaysDelete = Operation+        requestClient TargetVPNGatewaysDelete{..}+          = go _tvgdProject _tvgdRegion _tvgdTargetVPNGateway+              (Just AltJSON)+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy TargetVPNGatewaysDeleteResource)+                      mempty
+ gen/Network/Google/Resource/Compute/TargetVPNGateways/Get.hs view
@@ -0,0 +1,113 @@+{-# 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.Compute.TargetVPNGateways.Get+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns the specified TargetVpnGateway resource.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.targetVpnGateways.get@.+module Network.Google.Resource.Compute.TargetVPNGateways.Get+    (+    -- * REST Resource+      TargetVPNGatewaysGetResource++    -- * Creating a Request+    , targetVPNGatewaysGet+    , TargetVPNGatewaysGet++    -- * Request Lenses+    , tvggProject+    , tvggTargetVPNGateway+    , tvggRegion+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.targetVpnGateways.get@ method which the+-- 'TargetVPNGatewaysGet' request conforms to.+type TargetVPNGatewaysGetResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "regions" :>+               Capture "region" Text :>+                 "targetVpnGateways" :>+                   Capture "targetVpnGateway" Text :>+                     QueryParam "alt" AltJSON :>+                       Get '[JSON] TargetVPNGateway++-- | Returns the specified TargetVpnGateway resource.+--+-- /See:/ 'targetVPNGatewaysGet' smart constructor.+data TargetVPNGatewaysGet = TargetVPNGatewaysGet+    { _tvggProject          :: !Text+    , _tvggTargetVPNGateway :: !Text+    , _tvggRegion           :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TargetVPNGatewaysGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tvggProject'+--+-- * 'tvggTargetVPNGateway'+--+-- * 'tvggRegion'+targetVPNGatewaysGet+    :: Text -- ^ 'tvggProject'+    -> Text -- ^ 'tvggTargetVPNGateway'+    -> Text -- ^ 'tvggRegion'+    -> TargetVPNGatewaysGet+targetVPNGatewaysGet pTvggProject_ pTvggTargetVPNGateway_ pTvggRegion_ =+    TargetVPNGatewaysGet+    { _tvggProject = pTvggProject_+    , _tvggTargetVPNGateway = pTvggTargetVPNGateway_+    , _tvggRegion = pTvggRegion_+    }++-- | Project ID for this request.+tvggProject :: Lens' TargetVPNGatewaysGet Text+tvggProject+  = lens _tvggProject (\ s a -> s{_tvggProject = a})++-- | Name of the TargetVpnGateway resource to return.+tvggTargetVPNGateway :: Lens' TargetVPNGatewaysGet Text+tvggTargetVPNGateway+  = lens _tvggTargetVPNGateway+      (\ s a -> s{_tvggTargetVPNGateway = a})++-- | The name of the region for this request.+tvggRegion :: Lens' TargetVPNGatewaysGet Text+tvggRegion+  = lens _tvggRegion (\ s a -> s{_tvggRegion = a})++instance GoogleRequest TargetVPNGatewaysGet where+        type Rs TargetVPNGatewaysGet = TargetVPNGateway+        requestClient TargetVPNGatewaysGet{..}+          = go _tvggProject _tvggRegion _tvggTargetVPNGateway+              (Just AltJSON)+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy TargetVPNGatewaysGetResource)+                      mempty
+ gen/Network/Google/Resource/Compute/TargetVPNGateways/Insert.hs view
@@ -0,0 +1,114 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Compute.TargetVPNGateways.Insert+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a TargetVpnGateway resource in the specified project and region+-- using the data included in the request.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.targetVpnGateways.insert@.+module Network.Google.Resource.Compute.TargetVPNGateways.Insert+    (+    -- * REST Resource+      TargetVPNGatewaysInsertResource++    -- * Creating a Request+    , targetVPNGatewaysInsert+    , TargetVPNGatewaysInsert++    -- * Request Lenses+    , tvgiProject+    , tvgiPayload+    , tvgiRegion+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.targetVpnGateways.insert@ method which the+-- 'TargetVPNGatewaysInsert' request conforms to.+type TargetVPNGatewaysInsertResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "regions" :>+               Capture "region" Text :>+                 "targetVpnGateways" :>+                   QueryParam "alt" AltJSON :>+                     ReqBody '[JSON] TargetVPNGateway :>+                       Post '[JSON] Operation++-- | Creates a TargetVpnGateway resource in the specified project and region+-- using the data included in the request.+--+-- /See:/ 'targetVPNGatewaysInsert' smart constructor.+data TargetVPNGatewaysInsert = TargetVPNGatewaysInsert+    { _tvgiProject :: !Text+    , _tvgiPayload :: !TargetVPNGateway+    , _tvgiRegion  :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TargetVPNGatewaysInsert' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tvgiProject'+--+-- * 'tvgiPayload'+--+-- * 'tvgiRegion'+targetVPNGatewaysInsert+    :: Text -- ^ 'tvgiProject'+    -> TargetVPNGateway -- ^ 'tvgiPayload'+    -> Text -- ^ 'tvgiRegion'+    -> TargetVPNGatewaysInsert+targetVPNGatewaysInsert pTvgiProject_ pTvgiPayload_ pTvgiRegion_ =+    TargetVPNGatewaysInsert+    { _tvgiProject = pTvgiProject_+    , _tvgiPayload = pTvgiPayload_+    , _tvgiRegion = pTvgiRegion_+    }++-- | Project ID for this request.+tvgiProject :: Lens' TargetVPNGatewaysInsert Text+tvgiProject+  = lens _tvgiProject (\ s a -> s{_tvgiProject = a})++-- | Multipart request metadata.+tvgiPayload :: Lens' TargetVPNGatewaysInsert TargetVPNGateway+tvgiPayload+  = lens _tvgiPayload (\ s a -> s{_tvgiPayload = a})++-- | The name of the region for this request.+tvgiRegion :: Lens' TargetVPNGatewaysInsert Text+tvgiRegion+  = lens _tvgiRegion (\ s a -> s{_tvgiRegion = a})++instance GoogleRequest TargetVPNGatewaysInsert where+        type Rs TargetVPNGatewaysInsert = Operation+        requestClient TargetVPNGatewaysInsert{..}+          = go _tvgiProject _tvgiRegion (Just AltJSON)+              _tvgiPayload+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy TargetVPNGatewaysInsertResource)+                      mempty
+ gen/Network/Google/Resource/Compute/TargetVPNGateways/List.hs view
@@ -0,0 +1,152 @@+{-# 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.Compute.TargetVPNGateways.List+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves the list of TargetVpnGateway resources available to the+-- specified project and region.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.targetVpnGateways.list@.+module Network.Google.Resource.Compute.TargetVPNGateways.List+    (+    -- * REST Resource+      TargetVPNGatewaysListResource++    -- * Creating a Request+    , targetVPNGatewaysList+    , TargetVPNGatewaysList++    -- * Request Lenses+    , tvglProject+    , tvglFilter+    , tvglRegion+    , tvglPageToken+    , tvglMaxResults+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.targetVpnGateways.list@ method which the+-- 'TargetVPNGatewaysList' request conforms to.+type TargetVPNGatewaysListResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "regions" :>+               Capture "region" Text :>+                 "targetVpnGateways" :>+                   QueryParam "filter" Text :>+                     QueryParam "pageToken" Text :>+                       QueryParam "maxResults" (Textual Word32) :>+                         QueryParam "alt" AltJSON :>+                           Get '[JSON] TargetVPNGatewayList++-- | Retrieves the list of TargetVpnGateway resources available to the+-- specified project and region.+--+-- /See:/ 'targetVPNGatewaysList' smart constructor.+data TargetVPNGatewaysList = TargetVPNGatewaysList+    { _tvglProject    :: !Text+    , _tvglFilter     :: !(Maybe Text)+    , _tvglRegion     :: !Text+    , _tvglPageToken  :: !(Maybe Text)+    , _tvglMaxResults :: !(Textual Word32)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TargetVPNGatewaysList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tvglProject'+--+-- * 'tvglFilter'+--+-- * 'tvglRegion'+--+-- * 'tvglPageToken'+--+-- * 'tvglMaxResults'+targetVPNGatewaysList+    :: Text -- ^ 'tvglProject'+    -> Text -- ^ 'tvglRegion'+    -> TargetVPNGatewaysList+targetVPNGatewaysList pTvglProject_ pTvglRegion_ =+    TargetVPNGatewaysList+    { _tvglProject = pTvglProject_+    , _tvglFilter = Nothing+    , _tvglRegion = pTvglRegion_+    , _tvglPageToken = Nothing+    , _tvglMaxResults = 500+    }++-- | Project ID for this request.+tvglProject :: Lens' TargetVPNGatewaysList Text+tvglProject+  = lens _tvglProject (\ s a -> s{_tvglProject = a})++-- | Sets a filter expression for filtering listed resources, in the form+-- filter={expression}. Your {expression} must be in the format: FIELD_NAME+-- COMPARISON_STRING LITERAL_STRING. The FIELD_NAME is the name of the+-- field you want to compare. Only atomic field types are supported+-- (string, number, boolean). The COMPARISON_STRING must be either eq+-- (equals) or ne (not equals). The LITERAL_STRING is the string value to+-- filter to. The literal value must be valid for the type of field+-- (string, number, boolean). For string fields, the literal value is+-- interpreted as a regular expression using RE2 syntax. The literal value+-- must match the entire field. For example, filter=name ne+-- example-instance.+tvglFilter :: Lens' TargetVPNGatewaysList (Maybe Text)+tvglFilter+  = lens _tvglFilter (\ s a -> s{_tvglFilter = a})++-- | The name of the region for this request.+tvglRegion :: Lens' TargetVPNGatewaysList Text+tvglRegion+  = lens _tvglRegion (\ s a -> s{_tvglRegion = a})++-- | Specifies a page token to use. Use this parameter if you want to list+-- the next page of results. Set pageToken to the nextPageToken returned by+-- a previous list request.+tvglPageToken :: Lens' TargetVPNGatewaysList (Maybe Text)+tvglPageToken+  = lens _tvglPageToken+      (\ s a -> s{_tvglPageToken = a})++-- | Maximum count of results to be returned.+tvglMaxResults :: Lens' TargetVPNGatewaysList Word32+tvglMaxResults+  = lens _tvglMaxResults+      (\ s a -> s{_tvglMaxResults = a})+      . _Coerce++instance GoogleRequest TargetVPNGatewaysList where+        type Rs TargetVPNGatewaysList = TargetVPNGatewayList+        requestClient TargetVPNGatewaysList{..}+          = go _tvglProject _tvglRegion _tvglFilter+              _tvglPageToken+              (Just _tvglMaxResults)+              (Just AltJSON)+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy TargetVPNGatewaysListResource)+                      mempty
+ gen/Network/Google/Resource/Compute/URLMaps/Delete.hs view
@@ -0,0 +1,97 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Compute.URLMaps.Delete+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes the specified UrlMap resource.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.urlMaps.delete@.+module Network.Google.Resource.Compute.URLMaps.Delete+    (+    -- * REST Resource+      URLMapsDeleteResource++    -- * Creating a Request+    , urlMapsDelete+    , URLMapsDelete++    -- * Request Lenses+    , umdURLMap+    , umdProject+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.urlMaps.delete@ method which the+-- 'URLMapsDelete' request conforms to.+type URLMapsDeleteResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "global" :>+               "urlMaps" :>+                 Capture "urlMap" Text :>+                   QueryParam "alt" AltJSON :> Delete '[JSON] Operation++-- | Deletes the specified UrlMap resource.+--+-- /See:/ 'urlMapsDelete' smart constructor.+data URLMapsDelete = URLMapsDelete+    { _umdURLMap  :: !Text+    , _umdProject :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'URLMapsDelete' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'umdURLMap'+--+-- * 'umdProject'+urlMapsDelete+    :: Text -- ^ 'umdURLMap'+    -> Text -- ^ 'umdProject'+    -> URLMapsDelete+urlMapsDelete pUmdURLMap_ pUmdProject_ =+    URLMapsDelete+    { _umdURLMap = pUmdURLMap_+    , _umdProject = pUmdProject_+    }++-- | Name of the UrlMap resource to delete.+umdURLMap :: Lens' URLMapsDelete Text+umdURLMap+  = lens _umdURLMap (\ s a -> s{_umdURLMap = a})++-- | Name of the project scoping this request.+umdProject :: Lens' URLMapsDelete Text+umdProject+  = lens _umdProject (\ s a -> s{_umdProject = a})++instance GoogleRequest URLMapsDelete where+        type Rs URLMapsDelete = Operation+        requestClient URLMapsDelete{..}+          = go _umdProject _umdURLMap (Just AltJSON)+              computeService+          where go+                  = buildClient (Proxy :: Proxy URLMapsDeleteResource)+                      mempty
+ gen/Network/Google/Resource/Compute/URLMaps/Get.hs view
@@ -0,0 +1,97 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Compute.URLMaps.Get+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns the specified UrlMap resource.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.urlMaps.get@.+module Network.Google.Resource.Compute.URLMaps.Get+    (+    -- * REST Resource+      URLMapsGetResource++    -- * Creating a Request+    , urlMapsGet+    , URLMapsGet++    -- * Request Lenses+    , umgURLMap+    , umgProject+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.urlMaps.get@ method which the+-- 'URLMapsGet' request conforms to.+type URLMapsGetResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "global" :>+               "urlMaps" :>+                 Capture "urlMap" Text :>+                   QueryParam "alt" AltJSON :> Get '[JSON] URLMap++-- | Returns the specified UrlMap resource.+--+-- /See:/ 'urlMapsGet' smart constructor.+data URLMapsGet = URLMapsGet+    { _umgURLMap  :: !Text+    , _umgProject :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'URLMapsGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'umgURLMap'+--+-- * 'umgProject'+urlMapsGet+    :: Text -- ^ 'umgURLMap'+    -> Text -- ^ 'umgProject'+    -> URLMapsGet+urlMapsGet pUmgURLMap_ pUmgProject_ =+    URLMapsGet+    { _umgURLMap = pUmgURLMap_+    , _umgProject = pUmgProject_+    }++-- | Name of the UrlMap resource to return.+umgURLMap :: Lens' URLMapsGet Text+umgURLMap+  = lens _umgURLMap (\ s a -> s{_umgURLMap = a})++-- | Name of the project scoping this request.+umgProject :: Lens' URLMapsGet Text+umgProject+  = lens _umgProject (\ s a -> s{_umgProject = a})++instance GoogleRequest URLMapsGet where+        type Rs URLMapsGet = URLMap+        requestClient URLMapsGet{..}+          = go _umgProject _umgURLMap (Just AltJSON)+              computeService+          where go+                  = buildClient (Proxy :: Proxy URLMapsGetResource)+                      mempty
+ gen/Network/Google/Resource/Compute/URLMaps/Insert.hs view
@@ -0,0 +1,99 @@+{-# 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.Compute.URLMaps.Insert+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a UrlMap resource in the specified project using the data+-- included in the request.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.urlMaps.insert@.+module Network.Google.Resource.Compute.URLMaps.Insert+    (+    -- * REST Resource+      URLMapsInsertResource++    -- * Creating a Request+    , urlMapsInsert+    , URLMapsInsert++    -- * Request Lenses+    , umiProject+    , umiPayload+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.urlMaps.insert@ method which the+-- 'URLMapsInsert' request conforms to.+type URLMapsInsertResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "global" :>+               "urlMaps" :>+                 QueryParam "alt" AltJSON :>+                   ReqBody '[JSON] URLMap :> Post '[JSON] Operation++-- | Creates a UrlMap resource in the specified project using the data+-- included in the request.+--+-- /See:/ 'urlMapsInsert' smart constructor.+data URLMapsInsert = URLMapsInsert+    { _umiProject :: !Text+    , _umiPayload :: !URLMap+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'URLMapsInsert' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'umiProject'+--+-- * 'umiPayload'+urlMapsInsert+    :: Text -- ^ 'umiProject'+    -> URLMap -- ^ 'umiPayload'+    -> URLMapsInsert+urlMapsInsert pUmiProject_ pUmiPayload_ =+    URLMapsInsert+    { _umiProject = pUmiProject_+    , _umiPayload = pUmiPayload_+    }++-- | Name of the project scoping this request.+umiProject :: Lens' URLMapsInsert Text+umiProject+  = lens _umiProject (\ s a -> s{_umiProject = a})++-- | Multipart request metadata.+umiPayload :: Lens' URLMapsInsert URLMap+umiPayload+  = lens _umiPayload (\ s a -> s{_umiPayload = a})++instance GoogleRequest URLMapsInsert where+        type Rs URLMapsInsert = Operation+        requestClient URLMapsInsert{..}+          = go _umiProject (Just AltJSON) _umiPayload+              computeService+          where go+                  = buildClient (Proxy :: Proxy URLMapsInsertResource)+                      mempty
+ gen/Network/Google/Resource/Compute/URLMaps/List.hs view
@@ -0,0 +1,136 @@+{-# 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.Compute.URLMaps.List+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves the list of UrlMap resources available to the specified+-- project.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.urlMaps.list@.+module Network.Google.Resource.Compute.URLMaps.List+    (+    -- * REST Resource+      URLMapsListResource++    -- * Creating a Request+    , urlMapsList+    , URLMapsList++    -- * Request Lenses+    , umlProject+    , umlFilter+    , umlPageToken+    , umlMaxResults+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.urlMaps.list@ method which the+-- 'URLMapsList' request conforms to.+type URLMapsListResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "global" :>+               "urlMaps" :>+                 QueryParam "filter" Text :>+                   QueryParam "pageToken" Text :>+                     QueryParam "maxResults" (Textual Word32) :>+                       QueryParam "alt" AltJSON :> Get '[JSON] URLMapList++-- | Retrieves the list of UrlMap resources available to the specified+-- project.+--+-- /See:/ 'urlMapsList' smart constructor.+data URLMapsList = URLMapsList+    { _umlProject    :: !Text+    , _umlFilter     :: !(Maybe Text)+    , _umlPageToken  :: !(Maybe Text)+    , _umlMaxResults :: !(Textual Word32)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'URLMapsList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'umlProject'+--+-- * 'umlFilter'+--+-- * 'umlPageToken'+--+-- * 'umlMaxResults'+urlMapsList+    :: Text -- ^ 'umlProject'+    -> URLMapsList+urlMapsList pUmlProject_ =+    URLMapsList+    { _umlProject = pUmlProject_+    , _umlFilter = Nothing+    , _umlPageToken = Nothing+    , _umlMaxResults = 500+    }++-- | Name of the project scoping this request.+umlProject :: Lens' URLMapsList Text+umlProject+  = lens _umlProject (\ s a -> s{_umlProject = a})++-- | Sets a filter expression for filtering listed resources, in the form+-- filter={expression}. Your {expression} must be in the format: FIELD_NAME+-- COMPARISON_STRING LITERAL_STRING. The FIELD_NAME is the name of the+-- field you want to compare. Only atomic field types are supported+-- (string, number, boolean). The COMPARISON_STRING must be either eq+-- (equals) or ne (not equals). The LITERAL_STRING is the string value to+-- filter to. The literal value must be valid for the type of field+-- (string, number, boolean). For string fields, the literal value is+-- interpreted as a regular expression using RE2 syntax. The literal value+-- must match the entire field. For example, filter=name ne+-- example-instance.+umlFilter :: Lens' URLMapsList (Maybe Text)+umlFilter+  = lens _umlFilter (\ s a -> s{_umlFilter = a})++-- | Specifies a page token to use. Use this parameter if you want to list+-- the next page of results. Set pageToken to the nextPageToken returned by+-- a previous list request.+umlPageToken :: Lens' URLMapsList (Maybe Text)+umlPageToken+  = lens _umlPageToken (\ s a -> s{_umlPageToken = a})++-- | Maximum count of results to be returned.+umlMaxResults :: Lens' URLMapsList Word32+umlMaxResults+  = lens _umlMaxResults+      (\ s a -> s{_umlMaxResults = a})+      . _Coerce++instance GoogleRequest URLMapsList where+        type Rs URLMapsList = URLMapList+        requestClient URLMapsList{..}+          = go _umlProject _umlFilter _umlPageToken+              (Just _umlMaxResults)+              (Just AltJSON)+              computeService+          where go+                  = buildClient (Proxy :: Proxy URLMapsListResource)+                      mempty
+ gen/Network/Google/Resource/Compute/URLMaps/Patch.hs view
@@ -0,0 +1,112 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Compute.URLMaps.Patch+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Update the entire content of the UrlMap resource. This method supports+-- patch semantics.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.urlMaps.patch@.+module Network.Google.Resource.Compute.URLMaps.Patch+    (+    -- * REST Resource+      URLMapsPatchResource++    -- * Creating a Request+    , urlMapsPatch+    , URLMapsPatch++    -- * Request Lenses+    , umpURLMap+    , umpProject+    , umpPayload+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.urlMaps.patch@ method which the+-- 'URLMapsPatch' request conforms to.+type URLMapsPatchResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "global" :>+               "urlMaps" :>+                 Capture "urlMap" Text :>+                   QueryParam "alt" AltJSON :>+                     ReqBody '[JSON] URLMap :> Patch '[JSON] Operation++-- | Update the entire content of the UrlMap resource. This method supports+-- patch semantics.+--+-- /See:/ 'urlMapsPatch' smart constructor.+data URLMapsPatch = URLMapsPatch+    { _umpURLMap  :: !Text+    , _umpProject :: !Text+    , _umpPayload :: !URLMap+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'URLMapsPatch' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'umpURLMap'+--+-- * 'umpProject'+--+-- * 'umpPayload'+urlMapsPatch+    :: Text -- ^ 'umpURLMap'+    -> Text -- ^ 'umpProject'+    -> URLMap -- ^ 'umpPayload'+    -> URLMapsPatch+urlMapsPatch pUmpURLMap_ pUmpProject_ pUmpPayload_ =+    URLMapsPatch+    { _umpURLMap = pUmpURLMap_+    , _umpProject = pUmpProject_+    , _umpPayload = pUmpPayload_+    }++-- | Name of the UrlMap resource to update.+umpURLMap :: Lens' URLMapsPatch Text+umpURLMap+  = lens _umpURLMap (\ s a -> s{_umpURLMap = a})++-- | Name of the project scoping this request.+umpProject :: Lens' URLMapsPatch Text+umpProject+  = lens _umpProject (\ s a -> s{_umpProject = a})++-- | Multipart request metadata.+umpPayload :: Lens' URLMapsPatch URLMap+umpPayload+  = lens _umpPayload (\ s a -> s{_umpPayload = a})++instance GoogleRequest URLMapsPatch where+        type Rs URLMapsPatch = Operation+        requestClient URLMapsPatch{..}+          = go _umpProject _umpURLMap (Just AltJSON)+              _umpPayload+              computeService+          where go+                  = buildClient (Proxy :: Proxy URLMapsPatchResource)+                      mempty
+ gen/Network/Google/Resource/Compute/URLMaps/Update.hs view
@@ -0,0 +1,110 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Compute.URLMaps.Update+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Update the entire content of the UrlMap resource.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.urlMaps.update@.+module Network.Google.Resource.Compute.URLMaps.Update+    (+    -- * REST Resource+      URLMapsUpdateResource++    -- * Creating a Request+    , urlMapsUpdate+    , URLMapsUpdate++    -- * Request Lenses+    , umuURLMap+    , umuProject+    , umuPayload+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.urlMaps.update@ method which the+-- 'URLMapsUpdate' request conforms to.+type URLMapsUpdateResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "global" :>+               "urlMaps" :>+                 Capture "urlMap" Text :>+                   QueryParam "alt" AltJSON :>+                     ReqBody '[JSON] URLMap :> Put '[JSON] Operation++-- | Update the entire content of the UrlMap resource.+--+-- /See:/ 'urlMapsUpdate' smart constructor.+data URLMapsUpdate = URLMapsUpdate+    { _umuURLMap  :: !Text+    , _umuProject :: !Text+    , _umuPayload :: !URLMap+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'URLMapsUpdate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'umuURLMap'+--+-- * 'umuProject'+--+-- * 'umuPayload'+urlMapsUpdate+    :: Text -- ^ 'umuURLMap'+    -> Text -- ^ 'umuProject'+    -> URLMap -- ^ 'umuPayload'+    -> URLMapsUpdate+urlMapsUpdate pUmuURLMap_ pUmuProject_ pUmuPayload_ =+    URLMapsUpdate+    { _umuURLMap = pUmuURLMap_+    , _umuProject = pUmuProject_+    , _umuPayload = pUmuPayload_+    }++-- | Name of the UrlMap resource to update.+umuURLMap :: Lens' URLMapsUpdate Text+umuURLMap+  = lens _umuURLMap (\ s a -> s{_umuURLMap = a})++-- | Name of the project scoping this request.+umuProject :: Lens' URLMapsUpdate Text+umuProject+  = lens _umuProject (\ s a -> s{_umuProject = a})++-- | Multipart request metadata.+umuPayload :: Lens' URLMapsUpdate URLMap+umuPayload+  = lens _umuPayload (\ s a -> s{_umuPayload = a})++instance GoogleRequest URLMapsUpdate where+        type Rs URLMapsUpdate = Operation+        requestClient URLMapsUpdate{..}+          = go _umuProject _umuURLMap (Just AltJSON)+              _umuPayload+              computeService+          where go+                  = buildClient (Proxy :: Proxy URLMapsUpdateResource)+                      mempty
+ gen/Network/Google/Resource/Compute/URLMaps/Validate.hs view
@@ -0,0 +1,117 @@+{-# 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.Compute.URLMaps.Validate+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Run static validation for the UrlMap. In particular, the tests of the+-- provided UrlMap will be run. Calling this method does NOT create the+-- UrlMap.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.urlMaps.validate@.+module Network.Google.Resource.Compute.URLMaps.Validate+    (+    -- * REST Resource+      URLMapsValidateResource++    -- * Creating a Request+    , urlMapsValidate+    , URLMapsValidate++    -- * Request Lenses+    , umvURLMap+    , umvProject+    , umvPayload+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.urlMaps.validate@ method which the+-- 'URLMapsValidate' request conforms to.+type URLMapsValidateResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "global" :>+               "urlMaps" :>+                 Capture "urlMap" Text :>+                   "validate" :>+                     QueryParam "alt" AltJSON :>+                       ReqBody '[JSON] URLMapsValidateRequest :>+                         Post '[JSON] URLMapsValidateResponse++-- | Run static validation for the UrlMap. In particular, the tests of the+-- provided UrlMap will be run. Calling this method does NOT create the+-- UrlMap.+--+-- /See:/ 'urlMapsValidate' smart constructor.+data URLMapsValidate = URLMapsValidate+    { _umvURLMap  :: !Text+    , _umvProject :: !Text+    , _umvPayload :: !URLMapsValidateRequest+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'URLMapsValidate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'umvURLMap'+--+-- * 'umvProject'+--+-- * 'umvPayload'+urlMapsValidate+    :: Text -- ^ 'umvURLMap'+    -> Text -- ^ 'umvProject'+    -> URLMapsValidateRequest -- ^ 'umvPayload'+    -> URLMapsValidate+urlMapsValidate pUmvURLMap_ pUmvProject_ pUmvPayload_ =+    URLMapsValidate+    { _umvURLMap = pUmvURLMap_+    , _umvProject = pUmvProject_+    , _umvPayload = pUmvPayload_+    }++-- | Name of the UrlMap resource to be validated as.+umvURLMap :: Lens' URLMapsValidate Text+umvURLMap+  = lens _umvURLMap (\ s a -> s{_umvURLMap = a})++-- | Name of the project scoping this request.+umvProject :: Lens' URLMapsValidate Text+umvProject+  = lens _umvProject (\ s a -> s{_umvProject = a})++-- | Multipart request metadata.+umvPayload :: Lens' URLMapsValidate URLMapsValidateRequest+umvPayload+  = lens _umvPayload (\ s a -> s{_umvPayload = a})++instance GoogleRequest URLMapsValidate where+        type Rs URLMapsValidate = URLMapsValidateResponse+        requestClient URLMapsValidate{..}+          = go _umvProject _umvURLMap (Just AltJSON)+              _umvPayload+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy URLMapsValidateResource)+                      mempty
+ gen/Network/Google/Resource/Compute/VPNTunnels/AggregatedList.hs view
@@ -0,0 +1,138 @@+{-# 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.Compute.VPNTunnels.AggregatedList+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves the list of VPN tunnels grouped by scope.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.vpnTunnels.aggregatedList@.+module Network.Google.Resource.Compute.VPNTunnels.AggregatedList+    (+    -- * REST Resource+      VPNTunnelsAggregatedListResource++    -- * Creating a Request+    , vpnTunnelsAggregatedList+    , VPNTunnelsAggregatedList++    -- * Request Lenses+    , vtalProject+    , vtalFilter+    , vtalPageToken+    , vtalMaxResults+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.vpnTunnels.aggregatedList@ method which the+-- 'VPNTunnelsAggregatedList' request conforms to.+type VPNTunnelsAggregatedListResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "aggregated" :>+               "vpnTunnels" :>+                 QueryParam "filter" Text :>+                   QueryParam "pageToken" Text :>+                     QueryParam "maxResults" (Textual Word32) :>+                       QueryParam "alt" AltJSON :>+                         Get '[JSON] VPNTunnelAggregatedList++-- | Retrieves the list of VPN tunnels grouped by scope.+--+-- /See:/ 'vpnTunnelsAggregatedList' smart constructor.+data VPNTunnelsAggregatedList = VPNTunnelsAggregatedList+    { _vtalProject    :: !Text+    , _vtalFilter     :: !(Maybe Text)+    , _vtalPageToken  :: !(Maybe Text)+    , _vtalMaxResults :: !(Textual Word32)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'VPNTunnelsAggregatedList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vtalProject'+--+-- * 'vtalFilter'+--+-- * 'vtalPageToken'+--+-- * 'vtalMaxResults'+vpnTunnelsAggregatedList+    :: Text -- ^ 'vtalProject'+    -> VPNTunnelsAggregatedList+vpnTunnelsAggregatedList pVtalProject_ =+    VPNTunnelsAggregatedList+    { _vtalProject = pVtalProject_+    , _vtalFilter = Nothing+    , _vtalPageToken = Nothing+    , _vtalMaxResults = 500+    }++-- | Project ID for this request.+vtalProject :: Lens' VPNTunnelsAggregatedList Text+vtalProject+  = lens _vtalProject (\ s a -> s{_vtalProject = a})++-- | Sets a filter expression for filtering listed resources, in the form+-- filter={expression}. Your {expression} must be in the format: FIELD_NAME+-- COMPARISON_STRING LITERAL_STRING. The FIELD_NAME is the name of the+-- field you want to compare. Only atomic field types are supported+-- (string, number, boolean). The COMPARISON_STRING must be either eq+-- (equals) or ne (not equals). The LITERAL_STRING is the string value to+-- filter to. The literal value must be valid for the type of field+-- (string, number, boolean). For string fields, the literal value is+-- interpreted as a regular expression using RE2 syntax. The literal value+-- must match the entire field. For example, filter=name ne+-- example-instance.+vtalFilter :: Lens' VPNTunnelsAggregatedList (Maybe Text)+vtalFilter+  = lens _vtalFilter (\ s a -> s{_vtalFilter = a})++-- | Specifies a page token to use. Use this parameter if you want to list+-- the next page of results. Set pageToken to the nextPageToken returned by+-- a previous list request.+vtalPageToken :: Lens' VPNTunnelsAggregatedList (Maybe Text)+vtalPageToken+  = lens _vtalPageToken+      (\ s a -> s{_vtalPageToken = a})++-- | Maximum count of results to be returned.+vtalMaxResults :: Lens' VPNTunnelsAggregatedList Word32+vtalMaxResults+  = lens _vtalMaxResults+      (\ s a -> s{_vtalMaxResults = a})+      . _Coerce++instance GoogleRequest VPNTunnelsAggregatedList where+        type Rs VPNTunnelsAggregatedList =+             VPNTunnelAggregatedList+        requestClient VPNTunnelsAggregatedList{..}+          = go _vtalProject _vtalFilter _vtalPageToken+              (Just _vtalMaxResults)+              (Just AltJSON)+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy VPNTunnelsAggregatedListResource)+                      mempty
+ gen/Network/Google/Resource/Compute/VPNTunnels/Delete.hs view
@@ -0,0 +1,111 @@+{-# 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.Compute.VPNTunnels.Delete+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes the specified VpnTunnel resource.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.vpnTunnels.delete@.+module Network.Google.Resource.Compute.VPNTunnels.Delete+    (+    -- * REST Resource+      VPNTunnelsDeleteResource++    -- * Creating a Request+    , vpnTunnelsDelete+    , VPNTunnelsDelete++    -- * Request Lenses+    , vtdProject+    , vtdVPNTunnel+    , vtdRegion+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.vpnTunnels.delete@ method which the+-- 'VPNTunnelsDelete' request conforms to.+type VPNTunnelsDeleteResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "regions" :>+               Capture "region" Text :>+                 "vpnTunnels" :>+                   Capture "vpnTunnel" Text :>+                     QueryParam "alt" AltJSON :> Delete '[JSON] Operation++-- | Deletes the specified VpnTunnel resource.+--+-- /See:/ 'vpnTunnelsDelete' smart constructor.+data VPNTunnelsDelete = VPNTunnelsDelete+    { _vtdProject   :: !Text+    , _vtdVPNTunnel :: !Text+    , _vtdRegion    :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'VPNTunnelsDelete' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vtdProject'+--+-- * 'vtdVPNTunnel'+--+-- * 'vtdRegion'+vpnTunnelsDelete+    :: Text -- ^ 'vtdProject'+    -> Text -- ^ 'vtdVPNTunnel'+    -> Text -- ^ 'vtdRegion'+    -> VPNTunnelsDelete+vpnTunnelsDelete pVtdProject_ pVtdVPNTunnel_ pVtdRegion_ =+    VPNTunnelsDelete+    { _vtdProject = pVtdProject_+    , _vtdVPNTunnel = pVtdVPNTunnel_+    , _vtdRegion = pVtdRegion_+    }++-- | Project ID for this request.+vtdProject :: Lens' VPNTunnelsDelete Text+vtdProject+  = lens _vtdProject (\ s a -> s{_vtdProject = a})++-- | Name of the VpnTunnel resource to delete.+vtdVPNTunnel :: Lens' VPNTunnelsDelete Text+vtdVPNTunnel+  = lens _vtdVPNTunnel (\ s a -> s{_vtdVPNTunnel = a})++-- | The name of the region for this request.+vtdRegion :: Lens' VPNTunnelsDelete Text+vtdRegion+  = lens _vtdRegion (\ s a -> s{_vtdRegion = a})++instance GoogleRequest VPNTunnelsDelete where+        type Rs VPNTunnelsDelete = Operation+        requestClient VPNTunnelsDelete{..}+          = go _vtdProject _vtdRegion _vtdVPNTunnel+              (Just AltJSON)+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy VPNTunnelsDeleteResource)+                      mempty
+ gen/Network/Google/Resource/Compute/VPNTunnels/Get.hs view
@@ -0,0 +1,110 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Compute.VPNTunnels.Get+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns the specified VpnTunnel resource.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.vpnTunnels.get@.+module Network.Google.Resource.Compute.VPNTunnels.Get+    (+    -- * REST Resource+      VPNTunnelsGetResource++    -- * Creating a Request+    , vpnTunnelsGet+    , VPNTunnelsGet++    -- * Request Lenses+    , vtgProject+    , vtgVPNTunnel+    , vtgRegion+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.vpnTunnels.get@ method which the+-- 'VPNTunnelsGet' request conforms to.+type VPNTunnelsGetResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "regions" :>+               Capture "region" Text :>+                 "vpnTunnels" :>+                   Capture "vpnTunnel" Text :>+                     QueryParam "alt" AltJSON :> Get '[JSON] VPNTunnel++-- | Returns the specified VpnTunnel resource.+--+-- /See:/ 'vpnTunnelsGet' smart constructor.+data VPNTunnelsGet = VPNTunnelsGet+    { _vtgProject   :: !Text+    , _vtgVPNTunnel :: !Text+    , _vtgRegion    :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'VPNTunnelsGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vtgProject'+--+-- * 'vtgVPNTunnel'+--+-- * 'vtgRegion'+vpnTunnelsGet+    :: Text -- ^ 'vtgProject'+    -> Text -- ^ 'vtgVPNTunnel'+    -> Text -- ^ 'vtgRegion'+    -> VPNTunnelsGet+vpnTunnelsGet pVtgProject_ pVtgVPNTunnel_ pVtgRegion_ =+    VPNTunnelsGet+    { _vtgProject = pVtgProject_+    , _vtgVPNTunnel = pVtgVPNTunnel_+    , _vtgRegion = pVtgRegion_+    }++-- | Project ID for this request.+vtgProject :: Lens' VPNTunnelsGet Text+vtgProject+  = lens _vtgProject (\ s a -> s{_vtgProject = a})++-- | Name of the VpnTunnel resource to return.+vtgVPNTunnel :: Lens' VPNTunnelsGet Text+vtgVPNTunnel+  = lens _vtgVPNTunnel (\ s a -> s{_vtgVPNTunnel = a})++-- | The name of the region for this request.+vtgRegion :: Lens' VPNTunnelsGet Text+vtgRegion+  = lens _vtgRegion (\ s a -> s{_vtgRegion = a})++instance GoogleRequest VPNTunnelsGet where+        type Rs VPNTunnelsGet = VPNTunnel+        requestClient VPNTunnelsGet{..}+          = go _vtgProject _vtgRegion _vtgVPNTunnel+              (Just AltJSON)+              computeService+          where go+                  = buildClient (Proxy :: Proxy VPNTunnelsGetResource)+                      mempty
+ gen/Network/Google/Resource/Compute/VPNTunnels/Insert.hs view
@@ -0,0 +1,113 @@+{-# 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.Compute.VPNTunnels.Insert+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a VpnTunnel resource in the specified project and region using+-- the data included in the request.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.vpnTunnels.insert@.+module Network.Google.Resource.Compute.VPNTunnels.Insert+    (+    -- * REST Resource+      VPNTunnelsInsertResource++    -- * Creating a Request+    , vpnTunnelsInsert+    , VPNTunnelsInsert++    -- * Request Lenses+    , vtiProject+    , vtiPayload+    , vtiRegion+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.vpnTunnels.insert@ method which the+-- 'VPNTunnelsInsert' request conforms to.+type VPNTunnelsInsertResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "regions" :>+               Capture "region" Text :>+                 "vpnTunnels" :>+                   QueryParam "alt" AltJSON :>+                     ReqBody '[JSON] VPNTunnel :> Post '[JSON] Operation++-- | Creates a VpnTunnel resource in the specified project and region using+-- the data included in the request.+--+-- /See:/ 'vpnTunnelsInsert' smart constructor.+data VPNTunnelsInsert = VPNTunnelsInsert+    { _vtiProject :: !Text+    , _vtiPayload :: !VPNTunnel+    , _vtiRegion  :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'VPNTunnelsInsert' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vtiProject'+--+-- * 'vtiPayload'+--+-- * 'vtiRegion'+vpnTunnelsInsert+    :: Text -- ^ 'vtiProject'+    -> VPNTunnel -- ^ 'vtiPayload'+    -> Text -- ^ 'vtiRegion'+    -> VPNTunnelsInsert+vpnTunnelsInsert pVtiProject_ pVtiPayload_ pVtiRegion_ =+    VPNTunnelsInsert+    { _vtiProject = pVtiProject_+    , _vtiPayload = pVtiPayload_+    , _vtiRegion = pVtiRegion_+    }++-- | Project ID for this request.+vtiProject :: Lens' VPNTunnelsInsert Text+vtiProject+  = lens _vtiProject (\ s a -> s{_vtiProject = a})++-- | Multipart request metadata.+vtiPayload :: Lens' VPNTunnelsInsert VPNTunnel+vtiPayload+  = lens _vtiPayload (\ s a -> s{_vtiPayload = a})++-- | The name of the region for this request.+vtiRegion :: Lens' VPNTunnelsInsert Text+vtiRegion+  = lens _vtiRegion (\ s a -> s{_vtiRegion = a})++instance GoogleRequest VPNTunnelsInsert where+        type Rs VPNTunnelsInsert = Operation+        requestClient VPNTunnelsInsert{..}+          = go _vtiProject _vtiRegion (Just AltJSON)+              _vtiPayload+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy VPNTunnelsInsertResource)+                      mempty
+ gen/Network/Google/Resource/Compute/VPNTunnels/List.hs view
@@ -0,0 +1,148 @@+{-# 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.Compute.VPNTunnels.List+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves the list of VpnTunnel resources contained in the specified+-- project and region.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.vpnTunnels.list@.+module Network.Google.Resource.Compute.VPNTunnels.List+    (+    -- * REST Resource+      VPNTunnelsListResource++    -- * Creating a Request+    , vpnTunnelsList+    , VPNTunnelsList++    -- * Request Lenses+    , vtlProject+    , vtlFilter+    , vtlRegion+    , vtlPageToken+    , vtlMaxResults+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.vpnTunnels.list@ method which the+-- 'VPNTunnelsList' request conforms to.+type VPNTunnelsListResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "regions" :>+               Capture "region" Text :>+                 "vpnTunnels" :>+                   QueryParam "filter" Text :>+                     QueryParam "pageToken" Text :>+                       QueryParam "maxResults" (Textual Word32) :>+                         QueryParam "alt" AltJSON :> Get '[JSON] VPNTunnelList++-- | Retrieves the list of VpnTunnel resources contained in the specified+-- project and region.+--+-- /See:/ 'vpnTunnelsList' smart constructor.+data VPNTunnelsList = VPNTunnelsList+    { _vtlProject    :: !Text+    , _vtlFilter     :: !(Maybe Text)+    , _vtlRegion     :: !Text+    , _vtlPageToken  :: !(Maybe Text)+    , _vtlMaxResults :: !(Textual Word32)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'VPNTunnelsList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vtlProject'+--+-- * 'vtlFilter'+--+-- * 'vtlRegion'+--+-- * 'vtlPageToken'+--+-- * 'vtlMaxResults'+vpnTunnelsList+    :: Text -- ^ 'vtlProject'+    -> Text -- ^ 'vtlRegion'+    -> VPNTunnelsList+vpnTunnelsList pVtlProject_ pVtlRegion_ =+    VPNTunnelsList+    { _vtlProject = pVtlProject_+    , _vtlFilter = Nothing+    , _vtlRegion = pVtlRegion_+    , _vtlPageToken = Nothing+    , _vtlMaxResults = 500+    }++-- | Project ID for this request.+vtlProject :: Lens' VPNTunnelsList Text+vtlProject+  = lens _vtlProject (\ s a -> s{_vtlProject = a})++-- | Sets a filter expression for filtering listed resources, in the form+-- filter={expression}. Your {expression} must be in the format: FIELD_NAME+-- COMPARISON_STRING LITERAL_STRING. The FIELD_NAME is the name of the+-- field you want to compare. Only atomic field types are supported+-- (string, number, boolean). The COMPARISON_STRING must be either eq+-- (equals) or ne (not equals). The LITERAL_STRING is the string value to+-- filter to. The literal value must be valid for the type of field+-- (string, number, boolean). For string fields, the literal value is+-- interpreted as a regular expression using RE2 syntax. The literal value+-- must match the entire field. For example, filter=name ne+-- example-instance.+vtlFilter :: Lens' VPNTunnelsList (Maybe Text)+vtlFilter+  = lens _vtlFilter (\ s a -> s{_vtlFilter = a})++-- | The name of the region for this request.+vtlRegion :: Lens' VPNTunnelsList Text+vtlRegion+  = lens _vtlRegion (\ s a -> s{_vtlRegion = a})++-- | Specifies a page token to use. Use this parameter if you want to list+-- the next page of results. Set pageToken to the nextPageToken returned by+-- a previous list request.+vtlPageToken :: Lens' VPNTunnelsList (Maybe Text)+vtlPageToken+  = lens _vtlPageToken (\ s a -> s{_vtlPageToken = a})++-- | Maximum count of results to be returned.+vtlMaxResults :: Lens' VPNTunnelsList Word32+vtlMaxResults+  = lens _vtlMaxResults+      (\ s a -> s{_vtlMaxResults = a})+      . _Coerce++instance GoogleRequest VPNTunnelsList where+        type Rs VPNTunnelsList = VPNTunnelList+        requestClient VPNTunnelsList{..}+          = go _vtlProject _vtlRegion _vtlFilter _vtlPageToken+              (Just _vtlMaxResults)+              (Just AltJSON)+              computeService+          where go+                  = buildClient (Proxy :: Proxy VPNTunnelsListResource)+                      mempty
+ gen/Network/Google/Resource/Compute/ZoneOperations/Delete.hs view
@@ -0,0 +1,110 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Compute.ZoneOperations.Delete+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes the specified zone-specific Operations resource.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.zoneOperations.delete@.+module Network.Google.Resource.Compute.ZoneOperations.Delete+    (+    -- * REST Resource+      ZoneOperationsDeleteResource++    -- * Creating a Request+    , zoneOperationsDelete+    , ZoneOperationsDelete++    -- * Request Lenses+    , zodProject+    , zodOperation+    , zodZone+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.zoneOperations.delete@ method which the+-- 'ZoneOperationsDelete' request conforms to.+type ZoneOperationsDeleteResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "zones" :>+               Capture "zone" Text :>+                 "operations" :>+                   Capture "operation" Text :>+                     QueryParam "alt" AltJSON :> Delete '[JSON] ()++-- | Deletes the specified zone-specific Operations resource.+--+-- /See:/ 'zoneOperationsDelete' smart constructor.+data ZoneOperationsDelete = ZoneOperationsDelete+    { _zodProject   :: !Text+    , _zodOperation :: !Text+    , _zodZone      :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ZoneOperationsDelete' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'zodProject'+--+-- * 'zodOperation'+--+-- * 'zodZone'+zoneOperationsDelete+    :: Text -- ^ 'zodProject'+    -> Text -- ^ 'zodOperation'+    -> Text -- ^ 'zodZone'+    -> ZoneOperationsDelete+zoneOperationsDelete pZodProject_ pZodOperation_ pZodZone_ =+    ZoneOperationsDelete+    { _zodProject = pZodProject_+    , _zodOperation = pZodOperation_+    , _zodZone = pZodZone_+    }++-- | Project ID for this request.+zodProject :: Lens' ZoneOperationsDelete Text+zodProject+  = lens _zodProject (\ s a -> s{_zodProject = a})++-- | Name of the Operations resource to delete.+zodOperation :: Lens' ZoneOperationsDelete Text+zodOperation+  = lens _zodOperation (\ s a -> s{_zodOperation = a})++-- | Name of the zone scoping this request.+zodZone :: Lens' ZoneOperationsDelete Text+zodZone = lens _zodZone (\ s a -> s{_zodZone = a})++instance GoogleRequest ZoneOperationsDelete where+        type Rs ZoneOperationsDelete = ()+        requestClient ZoneOperationsDelete{..}+          = go _zodProject _zodZone _zodOperation+              (Just AltJSON)+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy ZoneOperationsDeleteResource)+                      mempty
+ gen/Network/Google/Resource/Compute/ZoneOperations/Get.hs view
@@ -0,0 +1,110 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.Compute.ZoneOperations.Get+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves the specified zone-specific Operations resource.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.zoneOperations.get@.+module Network.Google.Resource.Compute.ZoneOperations.Get+    (+    -- * REST Resource+      ZoneOperationsGetResource++    -- * Creating a Request+    , zoneOperationsGet+    , ZoneOperationsGet++    -- * Request Lenses+    , zogProject+    , zogOperation+    , zogZone+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.zoneOperations.get@ method which the+-- 'ZoneOperationsGet' request conforms to.+type ZoneOperationsGetResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "zones" :>+               Capture "zone" Text :>+                 "operations" :>+                   Capture "operation" Text :>+                     QueryParam "alt" AltJSON :> Get '[JSON] Operation++-- | Retrieves the specified zone-specific Operations resource.+--+-- /See:/ 'zoneOperationsGet' smart constructor.+data ZoneOperationsGet = ZoneOperationsGet+    { _zogProject   :: !Text+    , _zogOperation :: !Text+    , _zogZone      :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ZoneOperationsGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'zogProject'+--+-- * 'zogOperation'+--+-- * 'zogZone'+zoneOperationsGet+    :: Text -- ^ 'zogProject'+    -> Text -- ^ 'zogOperation'+    -> Text -- ^ 'zogZone'+    -> ZoneOperationsGet+zoneOperationsGet pZogProject_ pZogOperation_ pZogZone_ =+    ZoneOperationsGet+    { _zogProject = pZogProject_+    , _zogOperation = pZogOperation_+    , _zogZone = pZogZone_+    }++-- | Project ID for this request.+zogProject :: Lens' ZoneOperationsGet Text+zogProject+  = lens _zogProject (\ s a -> s{_zogProject = a})++-- | Name of the Operations resource to return.+zogOperation :: Lens' ZoneOperationsGet Text+zogOperation+  = lens _zogOperation (\ s a -> s{_zogOperation = a})++-- | Name of the zone scoping this request.+zogZone :: Lens' ZoneOperationsGet Text+zogZone = lens _zogZone (\ s a -> s{_zogZone = a})++instance GoogleRequest ZoneOperationsGet where+        type Rs ZoneOperationsGet = Operation+        requestClient ZoneOperationsGet{..}+          = go _zogProject _zogZone _zogOperation+              (Just AltJSON)+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy ZoneOperationsGetResource)+                      mempty
+ gen/Network/Google/Resource/Compute/ZoneOperations/List.hs view
@@ -0,0 +1,148 @@+{-# 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.Compute.ZoneOperations.List+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves the list of Operation resources contained within the specified+-- zone.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.zoneOperations.list@.+module Network.Google.Resource.Compute.ZoneOperations.List+    (+    -- * REST Resource+      ZoneOperationsListResource++    -- * Creating a Request+    , zoneOperationsList+    , ZoneOperationsList++    -- * Request Lenses+    , zolProject+    , zolZone+    , zolFilter+    , zolPageToken+    , zolMaxResults+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.zoneOperations.list@ method which the+-- 'ZoneOperationsList' request conforms to.+type ZoneOperationsListResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "zones" :>+               Capture "zone" Text :>+                 "operations" :>+                   QueryParam "filter" Text :>+                     QueryParam "pageToken" Text :>+                       QueryParam "maxResults" (Textual Word32) :>+                         QueryParam "alt" AltJSON :> Get '[JSON] OperationList++-- | Retrieves the list of Operation resources contained within the specified+-- zone.+--+-- /See:/ 'zoneOperationsList' smart constructor.+data ZoneOperationsList = ZoneOperationsList+    { _zolProject    :: !Text+    , _zolZone       :: !Text+    , _zolFilter     :: !(Maybe Text)+    , _zolPageToken  :: !(Maybe Text)+    , _zolMaxResults :: !(Textual Word32)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ZoneOperationsList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'zolProject'+--+-- * 'zolZone'+--+-- * 'zolFilter'+--+-- * 'zolPageToken'+--+-- * 'zolMaxResults'+zoneOperationsList+    :: Text -- ^ 'zolProject'+    -> Text -- ^ 'zolZone'+    -> ZoneOperationsList+zoneOperationsList pZolProject_ pZolZone_ =+    ZoneOperationsList+    { _zolProject = pZolProject_+    , _zolZone = pZolZone_+    , _zolFilter = Nothing+    , _zolPageToken = Nothing+    , _zolMaxResults = 500+    }++-- | Project ID for this request.+zolProject :: Lens' ZoneOperationsList Text+zolProject+  = lens _zolProject (\ s a -> s{_zolProject = a})++-- | Name of the zone scoping this request.+zolZone :: Lens' ZoneOperationsList Text+zolZone = lens _zolZone (\ s a -> s{_zolZone = a})++-- | Sets a filter expression for filtering listed resources, in the form+-- filter={expression}. Your {expression} must be in the format: FIELD_NAME+-- COMPARISON_STRING LITERAL_STRING. The FIELD_NAME is the name of the+-- field you want to compare. Only atomic field types are supported+-- (string, number, boolean). The COMPARISON_STRING must be either eq+-- (equals) or ne (not equals). The LITERAL_STRING is the string value to+-- filter to. The literal value must be valid for the type of field+-- (string, number, boolean). For string fields, the literal value is+-- interpreted as a regular expression using RE2 syntax. The literal value+-- must match the entire field. For example, filter=name ne+-- example-instance.+zolFilter :: Lens' ZoneOperationsList (Maybe Text)+zolFilter+  = lens _zolFilter (\ s a -> s{_zolFilter = a})++-- | Specifies a page token to use. Use this parameter if you want to list+-- the next page of results. Set pageToken to the nextPageToken returned by+-- a previous list request.+zolPageToken :: Lens' ZoneOperationsList (Maybe Text)+zolPageToken+  = lens _zolPageToken (\ s a -> s{_zolPageToken = a})++-- | Maximum count of results to be returned.+zolMaxResults :: Lens' ZoneOperationsList Word32+zolMaxResults+  = lens _zolMaxResults+      (\ s a -> s{_zolMaxResults = a})+      . _Coerce++instance GoogleRequest ZoneOperationsList where+        type Rs ZoneOperationsList = OperationList+        requestClient ZoneOperationsList{..}+          = go _zolProject _zolZone _zolFilter _zolPageToken+              (Just _zolMaxResults)+              (Just AltJSON)+              computeService+          where go+                  = buildClient+                      (Proxy :: Proxy ZoneOperationsListResource)+                      mempty
+ gen/Network/Google/Resource/Compute/Zones/Get.hs view
@@ -0,0 +1,94 @@+{-# 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.Compute.Zones.Get+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns the specified zone resource.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.zones.get@.+module Network.Google.Resource.Compute.Zones.Get+    (+    -- * REST Resource+      ZonesGetResource++    -- * Creating a Request+    , zonesGet+    , ZonesGet++    -- * Request Lenses+    , zgProject+    , zgZone+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.zones.get@ method which the+-- 'ZonesGet' request conforms to.+type ZonesGetResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "zones" :>+               Capture "zone" Text :>+                 QueryParam "alt" AltJSON :> Get '[JSON] Zone++-- | Returns the specified zone resource.+--+-- /See:/ 'zonesGet' smart constructor.+data ZonesGet = ZonesGet+    { _zgProject :: !Text+    , _zgZone    :: !Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ZonesGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'zgProject'+--+-- * 'zgZone'+zonesGet+    :: Text -- ^ 'zgProject'+    -> Text -- ^ 'zgZone'+    -> ZonesGet+zonesGet pZgProject_ pZgZone_ =+    ZonesGet+    { _zgProject = pZgProject_+    , _zgZone = pZgZone_+    }++-- | Project ID for this request.+zgProject :: Lens' ZonesGet Text+zgProject+  = lens _zgProject (\ s a -> s{_zgProject = a})++-- | Name of the zone resource to return.+zgZone :: Lens' ZonesGet Text+zgZone = lens _zgZone (\ s a -> s{_zgZone = a})++instance GoogleRequest ZonesGet where+        type Rs ZonesGet = Zone+        requestClient ZonesGet{..}+          = go _zgProject _zgZone (Just AltJSON) computeService+          where go+                  = buildClient (Proxy :: Proxy ZonesGetResource)+                      mempty
+ gen/Network/Google/Resource/Compute/Zones/List.hs view
@@ -0,0 +1,131 @@+{-# 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.Compute.Zones.List+-- Copyright   : (c) 2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves the list of zone resources available to the specified project.+--+-- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.zones.list@.+module Network.Google.Resource.Compute.Zones.List+    (+    -- * REST Resource+      ZonesListResource++    -- * Creating a Request+    , zonesList+    , ZonesList++    -- * Request Lenses+    , zlProject+    , zlFilter+    , zlPageToken+    , zlMaxResults+    ) where++import           Network.Google.Compute.Types+import           Network.Google.Prelude++-- | A resource alias for @compute.zones.list@ method which the+-- 'ZonesList' request conforms to.+type ZonesListResource =+     "compute" :>+       "v1" :>+         "projects" :>+           Capture "project" Text :>+             "zones" :>+               QueryParam "filter" Text :>+                 QueryParam "pageToken" Text :>+                   QueryParam "maxResults" (Textual Word32) :>+                     QueryParam "alt" AltJSON :> Get '[JSON] ZoneList++-- | Retrieves the list of zone resources available to the specified project.+--+-- /See:/ 'zonesList' smart constructor.+data ZonesList = ZonesList+    { _zlProject    :: !Text+    , _zlFilter     :: !(Maybe Text)+    , _zlPageToken  :: !(Maybe Text)+    , _zlMaxResults :: !(Textual Word32)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ZonesList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'zlProject'+--+-- * 'zlFilter'+--+-- * 'zlPageToken'+--+-- * 'zlMaxResults'+zonesList+    :: Text -- ^ 'zlProject'+    -> ZonesList+zonesList pZlProject_ =+    ZonesList+    { _zlProject = pZlProject_+    , _zlFilter = Nothing+    , _zlPageToken = Nothing+    , _zlMaxResults = 500+    }++-- | Project ID for this request.+zlProject :: Lens' ZonesList Text+zlProject+  = lens _zlProject (\ s a -> s{_zlProject = a})++-- | Sets a filter expression for filtering listed resources, in the form+-- filter={expression}. Your {expression} must be in the format: FIELD_NAME+-- COMPARISON_STRING LITERAL_STRING. The FIELD_NAME is the name of the+-- field you want to compare. Only atomic field types are supported+-- (string, number, boolean). The COMPARISON_STRING must be either eq+-- (equals) or ne (not equals). The LITERAL_STRING is the string value to+-- filter to. The literal value must be valid for the type of field+-- (string, number, boolean). For string fields, the literal value is+-- interpreted as a regular expression using RE2 syntax. The literal value+-- must match the entire field. For example, filter=name ne+-- example-instance.+zlFilter :: Lens' ZonesList (Maybe Text)+zlFilter = lens _zlFilter (\ s a -> s{_zlFilter = a})++-- | Specifies a page token to use. Use this parameter if you want to list+-- the next page of results. Set pageToken to the nextPageToken returned by+-- a previous list request.+zlPageToken :: Lens' ZonesList (Maybe Text)+zlPageToken+  = lens _zlPageToken (\ s a -> s{_zlPageToken = a})++-- | Maximum count of results to be returned.+zlMaxResults :: Lens' ZonesList Word32+zlMaxResults+  = lens _zlMaxResults (\ s a -> s{_zlMaxResults = a})+      . _Coerce++instance GoogleRequest ZonesList where+        type Rs ZonesList = ZoneList+        requestClient ZonesList{..}+          = go _zlProject _zlFilter _zlPageToken+              (Just _zlMaxResults)+              (Just AltJSON)+              computeService+          where go+                  = buildClient (Proxy :: Proxy ZonesListResource)+                      mempty
+ gogol-compute.cabal view
@@ -0,0 +1,235 @@+name:                  gogol-compute+version:               0.0.1+synopsis:              Google Compute Engine SDK.+homepage:              https://github.com/brendanhay/gogol+bug-reports:           https://github.com/brendanhay/gogol/issues+license:               OtherLicense+license-file:          LICENSE+author:                Brendan Hay+maintainer:            Brendan Hay <brendan.g.hay@gmail.com>+copyright:             Copyright (c) 2015 Brendan Hay+category:              Network, Google, Cloud+build-type:            Simple+cabal-version:         >= 1.10+extra-source-files:    README.md++description:+    API for the Google Compute Engine service.+    .+    /Warning:/ This is an experimental prototype/preview release which is still+    under exploratory development and not intended for public use, caveat emptor!+    .+    This library is compatible with version @v1@+    of the API.++source-repository head+    type:     git+    location: git://github.com/brendanhay/gogol.git++library+    default-language:  Haskell2010+    hs-source-dirs:    src gen++    ghc-options:       -Wall++    exposed-modules:+          Network.Google.Compute+        , Network.Google.Compute.Types+        , Network.Google.Resource.Compute.Addresses.AggregatedList+        , Network.Google.Resource.Compute.Addresses.Delete+        , Network.Google.Resource.Compute.Addresses.Get+        , Network.Google.Resource.Compute.Addresses.Insert+        , Network.Google.Resource.Compute.Addresses.List+        , Network.Google.Resource.Compute.Autoscalers.AggregatedList+        , Network.Google.Resource.Compute.Autoscalers.Delete+        , Network.Google.Resource.Compute.Autoscalers.Get+        , Network.Google.Resource.Compute.Autoscalers.Insert+        , Network.Google.Resource.Compute.Autoscalers.List+        , Network.Google.Resource.Compute.Autoscalers.Patch+        , Network.Google.Resource.Compute.Autoscalers.Update+        , Network.Google.Resource.Compute.BackendServices.Delete+        , Network.Google.Resource.Compute.BackendServices.Get+        , Network.Google.Resource.Compute.BackendServices.GetHealth+        , Network.Google.Resource.Compute.BackendServices.Insert+        , Network.Google.Resource.Compute.BackendServices.List+        , Network.Google.Resource.Compute.BackendServices.Patch+        , Network.Google.Resource.Compute.BackendServices.Update+        , Network.Google.Resource.Compute.DiskTypes.AggregatedList+        , Network.Google.Resource.Compute.DiskTypes.Get+        , Network.Google.Resource.Compute.DiskTypes.List+        , Network.Google.Resource.Compute.Disks.AggregatedList+        , Network.Google.Resource.Compute.Disks.CreateSnapshot+        , Network.Google.Resource.Compute.Disks.Delete+        , Network.Google.Resource.Compute.Disks.Get+        , Network.Google.Resource.Compute.Disks.Insert+        , Network.Google.Resource.Compute.Disks.List+        , Network.Google.Resource.Compute.Firewalls.Delete+        , Network.Google.Resource.Compute.Firewalls.Get+        , Network.Google.Resource.Compute.Firewalls.Insert+        , Network.Google.Resource.Compute.Firewalls.List+        , Network.Google.Resource.Compute.Firewalls.Patch+        , Network.Google.Resource.Compute.Firewalls.Update+        , Network.Google.Resource.Compute.ForwardingRules.AggregatedList+        , Network.Google.Resource.Compute.ForwardingRules.Delete+        , Network.Google.Resource.Compute.ForwardingRules.Get+        , Network.Google.Resource.Compute.ForwardingRules.Insert+        , Network.Google.Resource.Compute.ForwardingRules.List+        , Network.Google.Resource.Compute.ForwardingRules.SetTarget+        , Network.Google.Resource.Compute.GlobalAddresses.Delete+        , Network.Google.Resource.Compute.GlobalAddresses.Get+        , Network.Google.Resource.Compute.GlobalAddresses.Insert+        , Network.Google.Resource.Compute.GlobalAddresses.List+        , Network.Google.Resource.Compute.GlobalForwardingRules.Delete+        , Network.Google.Resource.Compute.GlobalForwardingRules.Get+        , Network.Google.Resource.Compute.GlobalForwardingRules.Insert+        , Network.Google.Resource.Compute.GlobalForwardingRules.List+        , Network.Google.Resource.Compute.GlobalForwardingRules.SetTarget+        , Network.Google.Resource.Compute.GlobalOperations.AggregatedList+        , Network.Google.Resource.Compute.GlobalOperations.Delete+        , Network.Google.Resource.Compute.GlobalOperations.Get+        , Network.Google.Resource.Compute.GlobalOperations.List+        , Network.Google.Resource.Compute.HTTPHealthChecks.Delete+        , Network.Google.Resource.Compute.HTTPHealthChecks.Get+        , Network.Google.Resource.Compute.HTTPHealthChecks.Insert+        , Network.Google.Resource.Compute.HTTPHealthChecks.List+        , Network.Google.Resource.Compute.HTTPHealthChecks.Patch+        , Network.Google.Resource.Compute.HTTPHealthChecks.Update+        , Network.Google.Resource.Compute.HTTPSHealthChecks.Delete+        , Network.Google.Resource.Compute.HTTPSHealthChecks.Get+        , Network.Google.Resource.Compute.HTTPSHealthChecks.Insert+        , Network.Google.Resource.Compute.HTTPSHealthChecks.List+        , Network.Google.Resource.Compute.HTTPSHealthChecks.Patch+        , Network.Google.Resource.Compute.HTTPSHealthChecks.Update+        , Network.Google.Resource.Compute.Images.Delete+        , Network.Google.Resource.Compute.Images.Deprecate+        , Network.Google.Resource.Compute.Images.Get+        , Network.Google.Resource.Compute.Images.Insert+        , Network.Google.Resource.Compute.Images.List+        , Network.Google.Resource.Compute.InstanceGroupManagers.AbandonInstances+        , Network.Google.Resource.Compute.InstanceGroupManagers.AggregatedList+        , Network.Google.Resource.Compute.InstanceGroupManagers.Delete+        , Network.Google.Resource.Compute.InstanceGroupManagers.DeleteInstances+        , Network.Google.Resource.Compute.InstanceGroupManagers.Get+        , Network.Google.Resource.Compute.InstanceGroupManagers.Insert+        , Network.Google.Resource.Compute.InstanceGroupManagers.List+        , Network.Google.Resource.Compute.InstanceGroupManagers.ListManagedInstances+        , Network.Google.Resource.Compute.InstanceGroupManagers.RecreateInstances+        , Network.Google.Resource.Compute.InstanceGroupManagers.Resize+        , Network.Google.Resource.Compute.InstanceGroupManagers.SetInstanceTemplate+        , Network.Google.Resource.Compute.InstanceGroupManagers.SetTargetPools+        , Network.Google.Resource.Compute.InstanceGroups.AddInstances+        , Network.Google.Resource.Compute.InstanceGroups.AggregatedList+        , Network.Google.Resource.Compute.InstanceGroups.Delete+        , Network.Google.Resource.Compute.InstanceGroups.Get+        , Network.Google.Resource.Compute.InstanceGroups.Insert+        , Network.Google.Resource.Compute.InstanceGroups.List+        , Network.Google.Resource.Compute.InstanceGroups.ListInstances+        , Network.Google.Resource.Compute.InstanceGroups.RemoveInstances+        , Network.Google.Resource.Compute.InstanceGroups.SetNamedPorts+        , Network.Google.Resource.Compute.InstanceTemplates.Delete+        , Network.Google.Resource.Compute.InstanceTemplates.Get+        , Network.Google.Resource.Compute.InstanceTemplates.Insert+        , Network.Google.Resource.Compute.InstanceTemplates.List+        , Network.Google.Resource.Compute.Instances.AddAccessConfig+        , Network.Google.Resource.Compute.Instances.AggregatedList+        , Network.Google.Resource.Compute.Instances.AttachDisk+        , Network.Google.Resource.Compute.Instances.Delete+        , Network.Google.Resource.Compute.Instances.DeleteAccessConfig+        , Network.Google.Resource.Compute.Instances.DetachDisk+        , Network.Google.Resource.Compute.Instances.Get+        , Network.Google.Resource.Compute.Instances.GetSerialPortOutput+        , Network.Google.Resource.Compute.Instances.Insert+        , Network.Google.Resource.Compute.Instances.List+        , Network.Google.Resource.Compute.Instances.Reset+        , Network.Google.Resource.Compute.Instances.SetDiskAutoDelete+        , Network.Google.Resource.Compute.Instances.SetMetadata+        , Network.Google.Resource.Compute.Instances.SetScheduling+        , Network.Google.Resource.Compute.Instances.SetTags+        , Network.Google.Resource.Compute.Instances.Start+        , Network.Google.Resource.Compute.Instances.Stop+        , Network.Google.Resource.Compute.Licenses.Get+        , Network.Google.Resource.Compute.MachineTypes.AggregatedList+        , Network.Google.Resource.Compute.MachineTypes.Get+        , Network.Google.Resource.Compute.MachineTypes.List+        , Network.Google.Resource.Compute.Networks.Delete+        , Network.Google.Resource.Compute.Networks.Get+        , Network.Google.Resource.Compute.Networks.Insert+        , Network.Google.Resource.Compute.Networks.List+        , Network.Google.Resource.Compute.Projects.Get+        , Network.Google.Resource.Compute.Projects.MoveDisk+        , Network.Google.Resource.Compute.Projects.MoveInstance+        , Network.Google.Resource.Compute.Projects.SetCommonInstanceMetadata+        , Network.Google.Resource.Compute.Projects.SetUsageExportBucket+        , Network.Google.Resource.Compute.RegionOperations.Delete+        , Network.Google.Resource.Compute.RegionOperations.Get+        , Network.Google.Resource.Compute.RegionOperations.List+        , Network.Google.Resource.Compute.Regions.Get+        , Network.Google.Resource.Compute.Regions.List+        , Network.Google.Resource.Compute.Routes.Delete+        , Network.Google.Resource.Compute.Routes.Get+        , Network.Google.Resource.Compute.Routes.Insert+        , Network.Google.Resource.Compute.Routes.List+        , Network.Google.Resource.Compute.SSLCertificates.Delete+        , Network.Google.Resource.Compute.SSLCertificates.Get+        , Network.Google.Resource.Compute.SSLCertificates.Insert+        , Network.Google.Resource.Compute.SSLCertificates.List+        , Network.Google.Resource.Compute.Snapshots.Delete+        , Network.Google.Resource.Compute.Snapshots.Get+        , Network.Google.Resource.Compute.Snapshots.List+        , Network.Google.Resource.Compute.TargetHTTPProxies.Delete+        , Network.Google.Resource.Compute.TargetHTTPProxies.Get+        , Network.Google.Resource.Compute.TargetHTTPProxies.Insert+        , Network.Google.Resource.Compute.TargetHTTPProxies.List+        , Network.Google.Resource.Compute.TargetHTTPProxies.SetURLMap+        , Network.Google.Resource.Compute.TargetHTTPSProxies.Delete+        , Network.Google.Resource.Compute.TargetHTTPSProxies.Get+        , Network.Google.Resource.Compute.TargetHTTPSProxies.Insert+        , Network.Google.Resource.Compute.TargetHTTPSProxies.List+        , Network.Google.Resource.Compute.TargetHTTPSProxies.SetSSLCertificates+        , Network.Google.Resource.Compute.TargetHTTPSProxies.SetURLMap+        , Network.Google.Resource.Compute.TargetInstances.AggregatedList+        , Network.Google.Resource.Compute.TargetInstances.Delete+        , Network.Google.Resource.Compute.TargetInstances.Get+        , Network.Google.Resource.Compute.TargetInstances.Insert+        , Network.Google.Resource.Compute.TargetInstances.List+        , Network.Google.Resource.Compute.TargetPools.AddHealthCheck+        , Network.Google.Resource.Compute.TargetPools.AddInstance+        , Network.Google.Resource.Compute.TargetPools.AggregatedList+        , Network.Google.Resource.Compute.TargetPools.Delete+        , Network.Google.Resource.Compute.TargetPools.Get+        , Network.Google.Resource.Compute.TargetPools.GetHealth+        , Network.Google.Resource.Compute.TargetPools.Insert+        , Network.Google.Resource.Compute.TargetPools.List+        , Network.Google.Resource.Compute.TargetPools.RemoveHealthCheck+        , Network.Google.Resource.Compute.TargetPools.RemoveInstance+        , Network.Google.Resource.Compute.TargetPools.SetBackup+        , Network.Google.Resource.Compute.TargetVPNGateways.AggregatedList+        , Network.Google.Resource.Compute.TargetVPNGateways.Delete+        , Network.Google.Resource.Compute.TargetVPNGateways.Get+        , Network.Google.Resource.Compute.TargetVPNGateways.Insert+        , Network.Google.Resource.Compute.TargetVPNGateways.List+        , Network.Google.Resource.Compute.URLMaps.Delete+        , Network.Google.Resource.Compute.URLMaps.Get+        , Network.Google.Resource.Compute.URLMaps.Insert+        , Network.Google.Resource.Compute.URLMaps.List+        , Network.Google.Resource.Compute.URLMaps.Patch+        , Network.Google.Resource.Compute.URLMaps.Update+        , Network.Google.Resource.Compute.URLMaps.Validate+        , Network.Google.Resource.Compute.VPNTunnels.AggregatedList+        , Network.Google.Resource.Compute.VPNTunnels.Delete+        , Network.Google.Resource.Compute.VPNTunnels.Get+        , Network.Google.Resource.Compute.VPNTunnels.Insert+        , Network.Google.Resource.Compute.VPNTunnels.List+        , Network.Google.Resource.Compute.ZoneOperations.Delete+        , Network.Google.Resource.Compute.ZoneOperations.Get+        , Network.Google.Resource.Compute.ZoneOperations.List+        , Network.Google.Resource.Compute.Zones.Get+        , Network.Google.Resource.Compute.Zones.List++    other-modules:+          Network.Google.Compute.Types.Product+        , Network.Google.Compute.Types.Sum++    build-depends:+          gogol-core == 0.0.1.*+        , base       >= 4.7 && < 5