diff --git a/LICENSE b/LICENSE
new file mode 100644
--- /dev/null
+++ b/LICENSE
@@ -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.
diff --git a/README.md b/README.md
new file mode 100644
--- /dev/null
+++ b/README.md
@@ -0,0 +1,28 @@
+# gogol-resourceviews
+
+* [Version](#version)
+* [Description](#description)
+* [Contribute](#contribute)
+* [Licence](#licence)
+
+
+## Version
+
+`0.0.1`
+
+
+## Description
+
+A client library for the Google Compute Engine Instance Groups.
+
+
+## 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-resourceviews` is released under the [Mozilla Public License Version 2.0](http://www.mozilla.org/MPL/).
diff --git a/Setup.hs b/Setup.hs
new file mode 100644
--- /dev/null
+++ b/Setup.hs
@@ -0,0 +1,2 @@
+import           Distribution.Simple
+main = defaultMain
diff --git a/gen/Network/Google/Resource/ResourceViews/ZoneOperations/Get.hs b/gen/Network/Google/Resource/ResourceViews/ZoneOperations/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/ResourceViews/ZoneOperations/Get.hs
@@ -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.ResourceViews.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 operation resource.
+--
+-- /See:/ <https://developers.google.com/compute/ Google Compute Engine Instance Groups API Reference> for @resourceviews.zoneOperations.get@.
+module Network.Google.Resource.ResourceViews.ZoneOperations.Get
+    (
+    -- * REST Resource
+      ZoneOperationsGetResource
+
+    -- * Creating a Request
+    , zoneOperationsGet
+    , ZoneOperationsGet
+
+    -- * Request Lenses
+    , zogProject
+    , zogOperation
+    , zogZone
+    ) where
+
+import           Network.Google.Prelude
+import           Network.Google.ResourceViews.Types
+
+-- | A resource alias for @resourceviews.zoneOperations.get@ method which the
+-- 'ZoneOperationsGet' request conforms to.
+type ZoneOperationsGetResource =
+     "resourceviews" :>
+       "v1beta2" :>
+         "projects" :>
+           Capture "project" Text :>
+             "zones" :>
+               Capture "zone" Text :>
+                 "operations" :>
+                   Capture "operation" Text :>
+                     QueryParam "alt" AltJSON :> Get '[JSON] Operation
+
+-- | Retrieves the specified zone-specific operation 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_
+    }
+
+-- | Name of the project scoping this request.
+zogProject :: Lens' ZoneOperationsGet Text
+zogProject
+  = lens _zogProject (\ s a -> s{_zogProject = a})
+
+-- | Name of the operation 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)
+              resourceViewsService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy ZoneOperationsGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/ResourceViews/ZoneOperations/List.hs b/gen/Network/Google/Resource/ResourceViews/ZoneOperations/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/ResourceViews/ZoneOperations/List.hs
@@ -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.ResourceViews.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/ Google Compute Engine Instance Groups API Reference> for @resourceviews.zoneOperations.list@.
+module Network.Google.Resource.ResourceViews.ZoneOperations.List
+    (
+    -- * REST Resource
+      ZoneOperationsListResource
+
+    -- * Creating a Request
+    , zoneOperationsList
+    , ZoneOperationsList
+
+    -- * Request Lenses
+    , zolProject
+    , zolZone
+    , zolFilter
+    , zolPageToken
+    , zolMaxResults
+    ) where
+
+import           Network.Google.Prelude
+import           Network.Google.ResourceViews.Types
+
+-- | A resource alias for @resourceviews.zoneOperations.list@ method which the
+-- 'ZoneOperationsList' request conforms to.
+type ZoneOperationsListResource =
+     "resourceviews" :>
+       "v1beta2" :>
+         "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
+    }
+
+-- | Name of the project scoping 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})
+
+-- | Optional. Filter expression for filtering listed resources.
+zolFilter :: Lens' ZoneOperationsList (Maybe Text)
+zolFilter
+  = lens _zolFilter (\ s a -> s{_zolFilter = a})
+
+-- | Optional. Tag returned by a previous list request truncated by
+-- maxResults. Used to continue a previous list request.
+zolPageToken :: Lens' ZoneOperationsList (Maybe Text)
+zolPageToken
+  = lens _zolPageToken (\ s a -> s{_zolPageToken = a})
+
+-- | Optional. Maximum count of results to be returned. Maximum value is 500
+-- and default value is 500.
+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)
+              resourceViewsService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy ZoneOperationsListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/ResourceViews/ZoneViews/AddResources.hs b/gen/Network/Google/Resource/ResourceViews/ZoneViews/AddResources.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/ResourceViews/ZoneViews/AddResources.hs
@@ -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.ResourceViews.ZoneViews.AddResources
+-- 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)
+--
+-- Add resources to the view.
+--
+-- /See:/ <https://developers.google.com/compute/ Google Compute Engine Instance Groups API Reference> for @resourceviews.zoneViews.addResources@.
+module Network.Google.Resource.ResourceViews.ZoneViews.AddResources
+    (
+    -- * REST Resource
+      ZoneViewsAddResourcesResource
+
+    -- * Creating a Request
+    , zoneViewsAddResources
+    , ZoneViewsAddResources
+
+    -- * Request Lenses
+    , zvarResourceView
+    , zvarProject
+    , zvarZone
+    , zvarPayload
+    ) where
+
+import           Network.Google.Prelude
+import           Network.Google.ResourceViews.Types
+
+-- | A resource alias for @resourceviews.zoneViews.addResources@ method which the
+-- 'ZoneViewsAddResources' request conforms to.
+type ZoneViewsAddResourcesResource =
+     "resourceviews" :>
+       "v1beta2" :>
+         "projects" :>
+           Capture "project" Text :>
+             "zones" :>
+               Capture "zone" Text :>
+                 "resourceViews" :>
+                   Capture "resourceView" Text :>
+                     "addResources" :>
+                       QueryParam "alt" AltJSON :>
+                         ReqBody '[JSON] ZoneViewsAddResourcesRequest :>
+                           Post '[JSON] Operation
+
+-- | Add resources to the view.
+--
+-- /See:/ 'zoneViewsAddResources' smart constructor.
+data ZoneViewsAddResources = ZoneViewsAddResources
+    { _zvarResourceView :: !Text
+    , _zvarProject      :: !Text
+    , _zvarZone         :: !Text
+    , _zvarPayload      :: !ZoneViewsAddResourcesRequest
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ZoneViewsAddResources' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'zvarResourceView'
+--
+-- * 'zvarProject'
+--
+-- * 'zvarZone'
+--
+-- * 'zvarPayload'
+zoneViewsAddResources
+    :: Text -- ^ 'zvarResourceView'
+    -> Text -- ^ 'zvarProject'
+    -> Text -- ^ 'zvarZone'
+    -> ZoneViewsAddResourcesRequest -- ^ 'zvarPayload'
+    -> ZoneViewsAddResources
+zoneViewsAddResources pZvarResourceView_ pZvarProject_ pZvarZone_ pZvarPayload_ =
+    ZoneViewsAddResources
+    { _zvarResourceView = pZvarResourceView_
+    , _zvarProject = pZvarProject_
+    , _zvarZone = pZvarZone_
+    , _zvarPayload = pZvarPayload_
+    }
+
+-- | The name of the resource view.
+zvarResourceView :: Lens' ZoneViewsAddResources Text
+zvarResourceView
+  = lens _zvarResourceView
+      (\ s a -> s{_zvarResourceView = a})
+
+-- | The project name of the resource view.
+zvarProject :: Lens' ZoneViewsAddResources Text
+zvarProject
+  = lens _zvarProject (\ s a -> s{_zvarProject = a})
+
+-- | The zone name of the resource view.
+zvarZone :: Lens' ZoneViewsAddResources Text
+zvarZone = lens _zvarZone (\ s a -> s{_zvarZone = a})
+
+-- | Multipart request metadata.
+zvarPayload :: Lens' ZoneViewsAddResources ZoneViewsAddResourcesRequest
+zvarPayload
+  = lens _zvarPayload (\ s a -> s{_zvarPayload = a})
+
+instance GoogleRequest ZoneViewsAddResources where
+        type Rs ZoneViewsAddResources = Operation
+        requestClient ZoneViewsAddResources{..}
+          = go _zvarProject _zvarZone _zvarResourceView
+              (Just AltJSON)
+              _zvarPayload
+              resourceViewsService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy ZoneViewsAddResourcesResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/ResourceViews/ZoneViews/Delete.hs b/gen/Network/Google/Resource/ResourceViews/ZoneViews/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/ResourceViews/ZoneViews/Delete.hs
@@ -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.ResourceViews.ZoneViews.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)
+--
+-- Delete a resource view.
+--
+-- /See:/ <https://developers.google.com/compute/ Google Compute Engine Instance Groups API Reference> for @resourceviews.zoneViews.delete@.
+module Network.Google.Resource.ResourceViews.ZoneViews.Delete
+    (
+    -- * REST Resource
+      ZoneViewsDeleteResource
+
+    -- * Creating a Request
+    , zoneViewsDelete
+    , ZoneViewsDelete
+
+    -- * Request Lenses
+    , zvdResourceView
+    , zvdProject
+    , zvdZone
+    ) where
+
+import           Network.Google.Prelude
+import           Network.Google.ResourceViews.Types
+
+-- | A resource alias for @resourceviews.zoneViews.delete@ method which the
+-- 'ZoneViewsDelete' request conforms to.
+type ZoneViewsDeleteResource =
+     "resourceviews" :>
+       "v1beta2" :>
+         "projects" :>
+           Capture "project" Text :>
+             "zones" :>
+               Capture "zone" Text :>
+                 "resourceViews" :>
+                   Capture "resourceView" Text :>
+                     QueryParam "alt" AltJSON :> Delete '[JSON] Operation
+
+-- | Delete a resource view.
+--
+-- /See:/ 'zoneViewsDelete' smart constructor.
+data ZoneViewsDelete = ZoneViewsDelete
+    { _zvdResourceView :: !Text
+    , _zvdProject      :: !Text
+    , _zvdZone         :: !Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ZoneViewsDelete' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'zvdResourceView'
+--
+-- * 'zvdProject'
+--
+-- * 'zvdZone'
+zoneViewsDelete
+    :: Text -- ^ 'zvdResourceView'
+    -> Text -- ^ 'zvdProject'
+    -> Text -- ^ 'zvdZone'
+    -> ZoneViewsDelete
+zoneViewsDelete pZvdResourceView_ pZvdProject_ pZvdZone_ =
+    ZoneViewsDelete
+    { _zvdResourceView = pZvdResourceView_
+    , _zvdProject = pZvdProject_
+    , _zvdZone = pZvdZone_
+    }
+
+-- | The name of the resource view.
+zvdResourceView :: Lens' ZoneViewsDelete Text
+zvdResourceView
+  = lens _zvdResourceView
+      (\ s a -> s{_zvdResourceView = a})
+
+-- | The project name of the resource view.
+zvdProject :: Lens' ZoneViewsDelete Text
+zvdProject
+  = lens _zvdProject (\ s a -> s{_zvdProject = a})
+
+-- | The zone name of the resource view.
+zvdZone :: Lens' ZoneViewsDelete Text
+zvdZone = lens _zvdZone (\ s a -> s{_zvdZone = a})
+
+instance GoogleRequest ZoneViewsDelete where
+        type Rs ZoneViewsDelete = Operation
+        requestClient ZoneViewsDelete{..}
+          = go _zvdProject _zvdZone _zvdResourceView
+              (Just AltJSON)
+              resourceViewsService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy ZoneViewsDeleteResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/ResourceViews/ZoneViews/Get.hs b/gen/Network/Google/Resource/ResourceViews/ZoneViews/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/ResourceViews/ZoneViews/Get.hs
@@ -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.ResourceViews.ZoneViews.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)
+--
+-- Get the information of a zonal resource view.
+--
+-- /See:/ <https://developers.google.com/compute/ Google Compute Engine Instance Groups API Reference> for @resourceviews.zoneViews.get@.
+module Network.Google.Resource.ResourceViews.ZoneViews.Get
+    (
+    -- * REST Resource
+      ZoneViewsGetResource
+
+    -- * Creating a Request
+    , zoneViewsGet
+    , ZoneViewsGet
+
+    -- * Request Lenses
+    , zvgResourceView
+    , zvgProject
+    , zvgZone
+    ) where
+
+import           Network.Google.Prelude
+import           Network.Google.ResourceViews.Types
+
+-- | A resource alias for @resourceviews.zoneViews.get@ method which the
+-- 'ZoneViewsGet' request conforms to.
+type ZoneViewsGetResource =
+     "resourceviews" :>
+       "v1beta2" :>
+         "projects" :>
+           Capture "project" Text :>
+             "zones" :>
+               Capture "zone" Text :>
+                 "resourceViews" :>
+                   Capture "resourceView" Text :>
+                     QueryParam "alt" AltJSON :> Get '[JSON] ResourceView
+
+-- | Get the information of a zonal resource view.
+--
+-- /See:/ 'zoneViewsGet' smart constructor.
+data ZoneViewsGet = ZoneViewsGet
+    { _zvgResourceView :: !Text
+    , _zvgProject      :: !Text
+    , _zvgZone         :: !Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ZoneViewsGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'zvgResourceView'
+--
+-- * 'zvgProject'
+--
+-- * 'zvgZone'
+zoneViewsGet
+    :: Text -- ^ 'zvgResourceView'
+    -> Text -- ^ 'zvgProject'
+    -> Text -- ^ 'zvgZone'
+    -> ZoneViewsGet
+zoneViewsGet pZvgResourceView_ pZvgProject_ pZvgZone_ =
+    ZoneViewsGet
+    { _zvgResourceView = pZvgResourceView_
+    , _zvgProject = pZvgProject_
+    , _zvgZone = pZvgZone_
+    }
+
+-- | The name of the resource view.
+zvgResourceView :: Lens' ZoneViewsGet Text
+zvgResourceView
+  = lens _zvgResourceView
+      (\ s a -> s{_zvgResourceView = a})
+
+-- | The project name of the resource view.
+zvgProject :: Lens' ZoneViewsGet Text
+zvgProject
+  = lens _zvgProject (\ s a -> s{_zvgProject = a})
+
+-- | The zone name of the resource view.
+zvgZone :: Lens' ZoneViewsGet Text
+zvgZone = lens _zvgZone (\ s a -> s{_zvgZone = a})
+
+instance GoogleRequest ZoneViewsGet where
+        type Rs ZoneViewsGet = ResourceView
+        requestClient ZoneViewsGet{..}
+          = go _zvgProject _zvgZone _zvgResourceView
+              (Just AltJSON)
+              resourceViewsService
+          where go
+                  = buildClient (Proxy :: Proxy ZoneViewsGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/ResourceViews/ZoneViews/GetService.hs b/gen/Network/Google/Resource/ResourceViews/ZoneViews/GetService.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/ResourceViews/ZoneViews/GetService.hs
@@ -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.ResourceViews.ZoneViews.GetService
+-- 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)
+--
+-- Get the service information of a resource view or a resource.
+--
+-- /See:/ <https://developers.google.com/compute/ Google Compute Engine Instance Groups API Reference> for @resourceviews.zoneViews.getService@.
+module Network.Google.Resource.ResourceViews.ZoneViews.GetService
+    (
+    -- * REST Resource
+      ZoneViewsGetServiceResource
+
+    -- * Creating a Request
+    , zoneViewsGetService
+    , ZoneViewsGetService
+
+    -- * Request Lenses
+    , zvgsResourceView
+    , zvgsResourceName
+    , zvgsProject
+    , zvgsZone
+    ) where
+
+import           Network.Google.Prelude
+import           Network.Google.ResourceViews.Types
+
+-- | A resource alias for @resourceviews.zoneViews.getService@ method which the
+-- 'ZoneViewsGetService' request conforms to.
+type ZoneViewsGetServiceResource =
+     "resourceviews" :>
+       "v1beta2" :>
+         "projects" :>
+           Capture "project" Text :>
+             "zones" :>
+               Capture "zone" Text :>
+                 "resourceViews" :>
+                   Capture "resourceView" Text :>
+                     "getService" :>
+                       QueryParam "resourceName" Text :>
+                         QueryParam "alt" AltJSON :>
+                           Post '[JSON] ZoneViewsGetServiceResponse
+
+-- | Get the service information of a resource view or a resource.
+--
+-- /See:/ 'zoneViewsGetService' smart constructor.
+data ZoneViewsGetService = ZoneViewsGetService
+    { _zvgsResourceView :: !Text
+    , _zvgsResourceName :: !(Maybe Text)
+    , _zvgsProject      :: !Text
+    , _zvgsZone         :: !Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ZoneViewsGetService' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'zvgsResourceView'
+--
+-- * 'zvgsResourceName'
+--
+-- * 'zvgsProject'
+--
+-- * 'zvgsZone'
+zoneViewsGetService
+    :: Text -- ^ 'zvgsResourceView'
+    -> Text -- ^ 'zvgsProject'
+    -> Text -- ^ 'zvgsZone'
+    -> ZoneViewsGetService
+zoneViewsGetService pZvgsResourceView_ pZvgsProject_ pZvgsZone_ =
+    ZoneViewsGetService
+    { _zvgsResourceView = pZvgsResourceView_
+    , _zvgsResourceName = Nothing
+    , _zvgsProject = pZvgsProject_
+    , _zvgsZone = pZvgsZone_
+    }
+
+-- | The name of the resource view.
+zvgsResourceView :: Lens' ZoneViewsGetService Text
+zvgsResourceView
+  = lens _zvgsResourceView
+      (\ s a -> s{_zvgsResourceView = a})
+
+-- | The name of the resource if user wants to get the service information of
+-- the resource.
+zvgsResourceName :: Lens' ZoneViewsGetService (Maybe Text)
+zvgsResourceName
+  = lens _zvgsResourceName
+      (\ s a -> s{_zvgsResourceName = a})
+
+-- | The project name of the resource view.
+zvgsProject :: Lens' ZoneViewsGetService Text
+zvgsProject
+  = lens _zvgsProject (\ s a -> s{_zvgsProject = a})
+
+-- | The zone name of the resource view.
+zvgsZone :: Lens' ZoneViewsGetService Text
+zvgsZone = lens _zvgsZone (\ s a -> s{_zvgsZone = a})
+
+instance GoogleRequest ZoneViewsGetService where
+        type Rs ZoneViewsGetService =
+             ZoneViewsGetServiceResponse
+        requestClient ZoneViewsGetService{..}
+          = go _zvgsProject _zvgsZone _zvgsResourceView
+              _zvgsResourceName
+              (Just AltJSON)
+              resourceViewsService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy ZoneViewsGetServiceResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/ResourceViews/ZoneViews/Insert.hs b/gen/Network/Google/Resource/ResourceViews/ZoneViews/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/ResourceViews/ZoneViews/Insert.hs
@@ -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.ResourceViews.ZoneViews.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)
+--
+-- Create a resource view.
+--
+-- /See:/ <https://developers.google.com/compute/ Google Compute Engine Instance Groups API Reference> for @resourceviews.zoneViews.insert@.
+module Network.Google.Resource.ResourceViews.ZoneViews.Insert
+    (
+    -- * REST Resource
+      ZoneViewsInsertResource
+
+    -- * Creating a Request
+    , zoneViewsInsert
+    , ZoneViewsInsert
+
+    -- * Request Lenses
+    , zviProject
+    , zviZone
+    , zviPayload
+    ) where
+
+import           Network.Google.Prelude
+import           Network.Google.ResourceViews.Types
+
+-- | A resource alias for @resourceviews.zoneViews.insert@ method which the
+-- 'ZoneViewsInsert' request conforms to.
+type ZoneViewsInsertResource =
+     "resourceviews" :>
+       "v1beta2" :>
+         "projects" :>
+           Capture "project" Text :>
+             "zones" :>
+               Capture "zone" Text :>
+                 "resourceViews" :>
+                   QueryParam "alt" AltJSON :>
+                     ReqBody '[JSON] ResourceView :>
+                       Post '[JSON] Operation
+
+-- | Create a resource view.
+--
+-- /See:/ 'zoneViewsInsert' smart constructor.
+data ZoneViewsInsert = ZoneViewsInsert
+    { _zviProject :: !Text
+    , _zviZone    :: !Text
+    , _zviPayload :: !ResourceView
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ZoneViewsInsert' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'zviProject'
+--
+-- * 'zviZone'
+--
+-- * 'zviPayload'
+zoneViewsInsert
+    :: Text -- ^ 'zviProject'
+    -> Text -- ^ 'zviZone'
+    -> ResourceView -- ^ 'zviPayload'
+    -> ZoneViewsInsert
+zoneViewsInsert pZviProject_ pZviZone_ pZviPayload_ =
+    ZoneViewsInsert
+    { _zviProject = pZviProject_
+    , _zviZone = pZviZone_
+    , _zviPayload = pZviPayload_
+    }
+
+-- | The project name of the resource view.
+zviProject :: Lens' ZoneViewsInsert Text
+zviProject
+  = lens _zviProject (\ s a -> s{_zviProject = a})
+
+-- | The zone name of the resource view.
+zviZone :: Lens' ZoneViewsInsert Text
+zviZone = lens _zviZone (\ s a -> s{_zviZone = a})
+
+-- | Multipart request metadata.
+zviPayload :: Lens' ZoneViewsInsert ResourceView
+zviPayload
+  = lens _zviPayload (\ s a -> s{_zviPayload = a})
+
+instance GoogleRequest ZoneViewsInsert where
+        type Rs ZoneViewsInsert = Operation
+        requestClient ZoneViewsInsert{..}
+          = go _zviProject _zviZone (Just AltJSON) _zviPayload
+              resourceViewsService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy ZoneViewsInsertResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/ResourceViews/ZoneViews/List.hs b/gen/Network/Google/Resource/ResourceViews/ZoneViews/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/ResourceViews/ZoneViews/List.hs
@@ -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.ResourceViews.ZoneViews.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)
+--
+-- List resource views.
+--
+-- /See:/ <https://developers.google.com/compute/ Google Compute Engine Instance Groups API Reference> for @resourceviews.zoneViews.list@.
+module Network.Google.Resource.ResourceViews.ZoneViews.List
+    (
+    -- * REST Resource
+      ZoneViewsListResource
+
+    -- * Creating a Request
+    , zoneViewsList'
+    , ZoneViewsList'
+
+    -- * Request Lenses
+    , zvlProject
+    , zvlZone
+    , zvlPageToken
+    , zvlMaxResults
+    ) where
+
+import           Network.Google.Prelude
+import           Network.Google.ResourceViews.Types
+
+-- | A resource alias for @resourceviews.zoneViews.list@ method which the
+-- 'ZoneViewsList'' request conforms to.
+type ZoneViewsListResource =
+     "resourceviews" :>
+       "v1beta2" :>
+         "projects" :>
+           Capture "project" Text :>
+             "zones" :>
+               Capture "zone" Text :>
+                 "resourceViews" :>
+                   QueryParam "pageToken" Text :>
+                     QueryParam "maxResults" (Textual Int32) :>
+                       QueryParam "alt" AltJSON :> Get '[JSON] ZoneViewsList
+
+-- | List resource views.
+--
+-- /See:/ 'zoneViewsList'' smart constructor.
+data ZoneViewsList' = ZoneViewsList'
+    { _zvlProject    :: !Text
+    , _zvlZone       :: !Text
+    , _zvlPageToken  :: !(Maybe Text)
+    , _zvlMaxResults :: !(Textual Int32)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ZoneViewsList'' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'zvlProject'
+--
+-- * 'zvlZone'
+--
+-- * 'zvlPageToken'
+--
+-- * 'zvlMaxResults'
+zoneViewsList'
+    :: Text -- ^ 'zvlProject'
+    -> Text -- ^ 'zvlZone'
+    -> ZoneViewsList'
+zoneViewsList' pZvlProject_ pZvlZone_ =
+    ZoneViewsList'
+    { _zvlProject = pZvlProject_
+    , _zvlZone = pZvlZone_
+    , _zvlPageToken = Nothing
+    , _zvlMaxResults = 5000
+    }
+
+-- | The project name of the resource view.
+zvlProject :: Lens' ZoneViewsList' Text
+zvlProject
+  = lens _zvlProject (\ s a -> s{_zvlProject = a})
+
+-- | The zone name of the resource view.
+zvlZone :: Lens' ZoneViewsList' Text
+zvlZone = lens _zvlZone (\ s a -> s{_zvlZone = a})
+
+-- | Specifies a nextPageToken returned by a previous list request. This
+-- token can be used to request the next page of results from a previous
+-- list request.
+zvlPageToken :: Lens' ZoneViewsList' (Maybe Text)
+zvlPageToken
+  = lens _zvlPageToken (\ s a -> s{_zvlPageToken = a})
+
+-- | Maximum count of results to be returned. Acceptable values are 0 to
+-- 5000, inclusive. (Default: 5000)
+zvlMaxResults :: Lens' ZoneViewsList' Int32
+zvlMaxResults
+  = lens _zvlMaxResults
+      (\ s a -> s{_zvlMaxResults = a})
+      . _Coerce
+
+instance GoogleRequest ZoneViewsList' where
+        type Rs ZoneViewsList' = ZoneViewsList
+        requestClient ZoneViewsList'{..}
+          = go _zvlProject _zvlZone _zvlPageToken
+              (Just _zvlMaxResults)
+              (Just AltJSON)
+              resourceViewsService
+          where go
+                  = buildClient (Proxy :: Proxy ZoneViewsListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/ResourceViews/ZoneViews/ListResources.hs b/gen/Network/Google/Resource/ResourceViews/ZoneViews/ListResources.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/ResourceViews/ZoneViews/ListResources.hs
@@ -0,0 +1,187 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.ResourceViews.ZoneViews.ListResources
+-- 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)
+--
+-- List the resources of the resource view.
+--
+-- /See:/ <https://developers.google.com/compute/ Google Compute Engine Instance Groups API Reference> for @resourceviews.zoneViews.listResources@.
+module Network.Google.Resource.ResourceViews.ZoneViews.ListResources
+    (
+    -- * REST Resource
+      ZoneViewsListResourcesResource
+
+    -- * Creating a Request
+    , zoneViewsListResources
+    , ZoneViewsListResources
+
+    -- * Request Lenses
+    , zvlrResourceView
+    , zvlrListState
+    , zvlrProject
+    , zvlrFormat
+    , zvlrZone
+    , zvlrServiceName
+    , zvlrPageToken
+    , zvlrMaxResults
+    ) where
+
+import           Network.Google.Prelude
+import           Network.Google.ResourceViews.Types
+
+-- | A resource alias for @resourceviews.zoneViews.listResources@ method which the
+-- 'ZoneViewsListResources' request conforms to.
+type ZoneViewsListResourcesResource =
+     "resourceviews" :>
+       "v1beta2" :>
+         "projects" :>
+           Capture "project" Text :>
+             "zones" :>
+               Capture "zone" Text :>
+                 "resourceViews" :>
+                   Capture "resourceView" Text :>
+                     "resources" :>
+                       QueryParam "listState"
+                         ZoneViewsListResourcesListState
+                         :>
+                         QueryParam "format" ZoneViewsListResourcesFormat :>
+                           QueryParam "serviceName" Text :>
+                             QueryParam "pageToken" Text :>
+                               QueryParam "maxResults" (Textual Int32) :>
+                                 QueryParam "alt" AltJSON :>
+                                   Get '[JSON] ZoneViewsListResourcesResponse
+
+-- | List the resources of the resource view.
+--
+-- /See:/ 'zoneViewsListResources' smart constructor.
+data ZoneViewsListResources = ZoneViewsListResources
+    { _zvlrResourceView :: !Text
+    , _zvlrListState    :: !ZoneViewsListResourcesListState
+    , _zvlrProject      :: !Text
+    , _zvlrFormat       :: !(Maybe ZoneViewsListResourcesFormat)
+    , _zvlrZone         :: !Text
+    , _zvlrServiceName  :: !(Maybe Text)
+    , _zvlrPageToken    :: !(Maybe Text)
+    , _zvlrMaxResults   :: !(Textual Int32)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ZoneViewsListResources' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'zvlrResourceView'
+--
+-- * 'zvlrListState'
+--
+-- * 'zvlrProject'
+--
+-- * 'zvlrFormat'
+--
+-- * 'zvlrZone'
+--
+-- * 'zvlrServiceName'
+--
+-- * 'zvlrPageToken'
+--
+-- * 'zvlrMaxResults'
+zoneViewsListResources
+    :: Text -- ^ 'zvlrResourceView'
+    -> Text -- ^ 'zvlrProject'
+    -> Text -- ^ 'zvlrZone'
+    -> ZoneViewsListResources
+zoneViewsListResources pZvlrResourceView_ pZvlrProject_ pZvlrZone_ =
+    ZoneViewsListResources
+    { _zvlrResourceView = pZvlrResourceView_
+    , _zvlrListState = All
+    , _zvlrProject = pZvlrProject_
+    , _zvlrFormat = Nothing
+    , _zvlrZone = pZvlrZone_
+    , _zvlrServiceName = Nothing
+    , _zvlrPageToken = Nothing
+    , _zvlrMaxResults = 5000
+    }
+
+-- | The name of the resource view.
+zvlrResourceView :: Lens' ZoneViewsListResources Text
+zvlrResourceView
+  = lens _zvlrResourceView
+      (\ s a -> s{_zvlrResourceView = a})
+
+-- | The state of the instance to list. By default, it lists all instances.
+zvlrListState :: Lens' ZoneViewsListResources ZoneViewsListResourcesListState
+zvlrListState
+  = lens _zvlrListState
+      (\ s a -> s{_zvlrListState = a})
+
+-- | The project name of the resource view.
+zvlrProject :: Lens' ZoneViewsListResources Text
+zvlrProject
+  = lens _zvlrProject (\ s a -> s{_zvlrProject = a})
+
+-- | The requested format of the return value. It can be URL or URL_PORT. A
+-- JSON object will be included in the response based on the format. The
+-- default format is NONE, which results in no JSON in the response.
+zvlrFormat :: Lens' ZoneViewsListResources (Maybe ZoneViewsListResourcesFormat)
+zvlrFormat
+  = lens _zvlrFormat (\ s a -> s{_zvlrFormat = a})
+
+-- | The zone name of the resource view.
+zvlrZone :: Lens' ZoneViewsListResources Text
+zvlrZone = lens _zvlrZone (\ s a -> s{_zvlrZone = a})
+
+-- | The service name to return in the response. It is optional and if it is
+-- not set, all the service end points will be returned.
+zvlrServiceName :: Lens' ZoneViewsListResources (Maybe Text)
+zvlrServiceName
+  = lens _zvlrServiceName
+      (\ s a -> s{_zvlrServiceName = a})
+
+-- | Specifies a nextPageToken returned by a previous list request. This
+-- token can be used to request the next page of results from a previous
+-- list request.
+zvlrPageToken :: Lens' ZoneViewsListResources (Maybe Text)
+zvlrPageToken
+  = lens _zvlrPageToken
+      (\ s a -> s{_zvlrPageToken = a})
+
+-- | Maximum count of results to be returned. Acceptable values are 0 to
+-- 5000, inclusive. (Default: 5000)
+zvlrMaxResults :: Lens' ZoneViewsListResources Int32
+zvlrMaxResults
+  = lens _zvlrMaxResults
+      (\ s a -> s{_zvlrMaxResults = a})
+      . _Coerce
+
+instance GoogleRequest ZoneViewsListResources where
+        type Rs ZoneViewsListResources =
+             ZoneViewsListResourcesResponse
+        requestClient ZoneViewsListResources{..}
+          = go _zvlrProject _zvlrZone _zvlrResourceView
+              (Just _zvlrListState)
+              _zvlrFormat
+              _zvlrServiceName
+              _zvlrPageToken
+              (Just _zvlrMaxResults)
+              (Just AltJSON)
+              resourceViewsService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy ZoneViewsListResourcesResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/ResourceViews/ZoneViews/RemoveResources.hs b/gen/Network/Google/Resource/ResourceViews/ZoneViews/RemoveResources.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/ResourceViews/ZoneViews/RemoveResources.hs
@@ -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.ResourceViews.ZoneViews.RemoveResources
+-- 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)
+--
+-- Remove resources from the view.
+--
+-- /See:/ <https://developers.google.com/compute/ Google Compute Engine Instance Groups API Reference> for @resourceviews.zoneViews.removeResources@.
+module Network.Google.Resource.ResourceViews.ZoneViews.RemoveResources
+    (
+    -- * REST Resource
+      ZoneViewsRemoveResourcesResource
+
+    -- * Creating a Request
+    , zoneViewsRemoveResources
+    , ZoneViewsRemoveResources
+
+    -- * Request Lenses
+    , zvrrResourceView
+    , zvrrProject
+    , zvrrZone
+    , zvrrPayload
+    ) where
+
+import           Network.Google.Prelude
+import           Network.Google.ResourceViews.Types
+
+-- | A resource alias for @resourceviews.zoneViews.removeResources@ method which the
+-- 'ZoneViewsRemoveResources' request conforms to.
+type ZoneViewsRemoveResourcesResource =
+     "resourceviews" :>
+       "v1beta2" :>
+         "projects" :>
+           Capture "project" Text :>
+             "zones" :>
+               Capture "zone" Text :>
+                 "resourceViews" :>
+                   Capture "resourceView" Text :>
+                     "removeResources" :>
+                       QueryParam "alt" AltJSON :>
+                         ReqBody '[JSON] ZoneViewsRemoveResourcesRequest :>
+                           Post '[JSON] Operation
+
+-- | Remove resources from the view.
+--
+-- /See:/ 'zoneViewsRemoveResources' smart constructor.
+data ZoneViewsRemoveResources = ZoneViewsRemoveResources
+    { _zvrrResourceView :: !Text
+    , _zvrrProject      :: !Text
+    , _zvrrZone         :: !Text
+    , _zvrrPayload      :: !ZoneViewsRemoveResourcesRequest
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ZoneViewsRemoveResources' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'zvrrResourceView'
+--
+-- * 'zvrrProject'
+--
+-- * 'zvrrZone'
+--
+-- * 'zvrrPayload'
+zoneViewsRemoveResources
+    :: Text -- ^ 'zvrrResourceView'
+    -> Text -- ^ 'zvrrProject'
+    -> Text -- ^ 'zvrrZone'
+    -> ZoneViewsRemoveResourcesRequest -- ^ 'zvrrPayload'
+    -> ZoneViewsRemoveResources
+zoneViewsRemoveResources pZvrrResourceView_ pZvrrProject_ pZvrrZone_ pZvrrPayload_ =
+    ZoneViewsRemoveResources
+    { _zvrrResourceView = pZvrrResourceView_
+    , _zvrrProject = pZvrrProject_
+    , _zvrrZone = pZvrrZone_
+    , _zvrrPayload = pZvrrPayload_
+    }
+
+-- | The name of the resource view.
+zvrrResourceView :: Lens' ZoneViewsRemoveResources Text
+zvrrResourceView
+  = lens _zvrrResourceView
+      (\ s a -> s{_zvrrResourceView = a})
+
+-- | The project name of the resource view.
+zvrrProject :: Lens' ZoneViewsRemoveResources Text
+zvrrProject
+  = lens _zvrrProject (\ s a -> s{_zvrrProject = a})
+
+-- | The zone name of the resource view.
+zvrrZone :: Lens' ZoneViewsRemoveResources Text
+zvrrZone = lens _zvrrZone (\ s a -> s{_zvrrZone = a})
+
+-- | Multipart request metadata.
+zvrrPayload :: Lens' ZoneViewsRemoveResources ZoneViewsRemoveResourcesRequest
+zvrrPayload
+  = lens _zvrrPayload (\ s a -> s{_zvrrPayload = a})
+
+instance GoogleRequest ZoneViewsRemoveResources where
+        type Rs ZoneViewsRemoveResources = Operation
+        requestClient ZoneViewsRemoveResources{..}
+          = go _zvrrProject _zvrrZone _zvrrResourceView
+              (Just AltJSON)
+              _zvrrPayload
+              resourceViewsService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy ZoneViewsRemoveResourcesResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/ResourceViews/ZoneViews/SetService.hs b/gen/Network/Google/Resource/ResourceViews/ZoneViews/SetService.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/ResourceViews/ZoneViews/SetService.hs
@@ -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.ResourceViews.ZoneViews.SetService
+-- 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 service information of a resource view or a resource.
+--
+-- /See:/ <https://developers.google.com/compute/ Google Compute Engine Instance Groups API Reference> for @resourceviews.zoneViews.setService@.
+module Network.Google.Resource.ResourceViews.ZoneViews.SetService
+    (
+    -- * REST Resource
+      ZoneViewsSetServiceResource
+
+    -- * Creating a Request
+    , zoneViewsSetService
+    , ZoneViewsSetService
+
+    -- * Request Lenses
+    , zvssResourceView
+    , zvssProject
+    , zvssZone
+    , zvssPayload
+    ) where
+
+import           Network.Google.Prelude
+import           Network.Google.ResourceViews.Types
+
+-- | A resource alias for @resourceviews.zoneViews.setService@ method which the
+-- 'ZoneViewsSetService' request conforms to.
+type ZoneViewsSetServiceResource =
+     "resourceviews" :>
+       "v1beta2" :>
+         "projects" :>
+           Capture "project" Text :>
+             "zones" :>
+               Capture "zone" Text :>
+                 "resourceViews" :>
+                   Capture "resourceView" Text :>
+                     "setService" :>
+                       QueryParam "alt" AltJSON :>
+                         ReqBody '[JSON] ZoneViewsSetServiceRequest :>
+                           Post '[JSON] Operation
+
+-- | Update the service information of a resource view or a resource.
+--
+-- /See:/ 'zoneViewsSetService' smart constructor.
+data ZoneViewsSetService = ZoneViewsSetService
+    { _zvssResourceView :: !Text
+    , _zvssProject      :: !Text
+    , _zvssZone         :: !Text
+    , _zvssPayload      :: !ZoneViewsSetServiceRequest
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ZoneViewsSetService' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'zvssResourceView'
+--
+-- * 'zvssProject'
+--
+-- * 'zvssZone'
+--
+-- * 'zvssPayload'
+zoneViewsSetService
+    :: Text -- ^ 'zvssResourceView'
+    -> Text -- ^ 'zvssProject'
+    -> Text -- ^ 'zvssZone'
+    -> ZoneViewsSetServiceRequest -- ^ 'zvssPayload'
+    -> ZoneViewsSetService
+zoneViewsSetService pZvssResourceView_ pZvssProject_ pZvssZone_ pZvssPayload_ =
+    ZoneViewsSetService
+    { _zvssResourceView = pZvssResourceView_
+    , _zvssProject = pZvssProject_
+    , _zvssZone = pZvssZone_
+    , _zvssPayload = pZvssPayload_
+    }
+
+-- | The name of the resource view.
+zvssResourceView :: Lens' ZoneViewsSetService Text
+zvssResourceView
+  = lens _zvssResourceView
+      (\ s a -> s{_zvssResourceView = a})
+
+-- | The project name of the resource view.
+zvssProject :: Lens' ZoneViewsSetService Text
+zvssProject
+  = lens _zvssProject (\ s a -> s{_zvssProject = a})
+
+-- | The zone name of the resource view.
+zvssZone :: Lens' ZoneViewsSetService Text
+zvssZone = lens _zvssZone (\ s a -> s{_zvssZone = a})
+
+-- | Multipart request metadata.
+zvssPayload :: Lens' ZoneViewsSetService ZoneViewsSetServiceRequest
+zvssPayload
+  = lens _zvssPayload (\ s a -> s{_zvssPayload = a})
+
+instance GoogleRequest ZoneViewsSetService where
+        type Rs ZoneViewsSetService = Operation
+        requestClient ZoneViewsSetService{..}
+          = go _zvssProject _zvssZone _zvssResourceView
+              (Just AltJSON)
+              _zvssPayload
+              resourceViewsService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy ZoneViewsSetServiceResource)
+                      mempty
diff --git a/gen/Network/Google/ResourceViews.hs b/gen/Network/Google/ResourceViews.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/ResourceViews.hs
@@ -0,0 +1,239 @@
+{-# LANGUAGE DataKinds         #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# LANGUAGE TypeOperators     #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+
+-- |
+-- Module      : Network.Google.ResourceViews
+-- 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)
+--
+-- The Resource View API allows users to create and manage logical sets of
+-- Google Compute Engine instances.
+--
+-- /See:/ <https://developers.google.com/compute/ Google Compute Engine Instance Groups API Reference>
+module Network.Google.ResourceViews
+    (
+    -- * Service Configuration
+      resourceViewsService
+
+    -- * API Declaration
+    , ResourceViewsAPI
+
+    -- * Resources
+
+    -- ** resourceviews.zoneOperations.get
+    , module Network.Google.Resource.ResourceViews.ZoneOperations.Get
+
+    -- ** resourceviews.zoneOperations.list
+    , module Network.Google.Resource.ResourceViews.ZoneOperations.List
+
+    -- ** resourceviews.zoneViews.addResources
+    , module Network.Google.Resource.ResourceViews.ZoneViews.AddResources
+
+    -- ** resourceviews.zoneViews.delete
+    , module Network.Google.Resource.ResourceViews.ZoneViews.Delete
+
+    -- ** resourceviews.zoneViews.get
+    , module Network.Google.Resource.ResourceViews.ZoneViews.Get
+
+    -- ** resourceviews.zoneViews.getService
+    , module Network.Google.Resource.ResourceViews.ZoneViews.GetService
+
+    -- ** resourceviews.zoneViews.insert
+    , module Network.Google.Resource.ResourceViews.ZoneViews.Insert
+
+    -- ** resourceviews.zoneViews.list
+    , module Network.Google.Resource.ResourceViews.ZoneViews.List
+
+    -- ** resourceviews.zoneViews.listResources
+    , module Network.Google.Resource.ResourceViews.ZoneViews.ListResources
+
+    -- ** resourceviews.zoneViews.removeResources
+    , module Network.Google.Resource.ResourceViews.ZoneViews.RemoveResources
+
+    -- ** resourceviews.zoneViews.setService
+    , module Network.Google.Resource.ResourceViews.ZoneViews.SetService
+
+    -- * Types
+
+    -- ** OperationWarningsItemDataItem
+    , OperationWarningsItemDataItem
+    , operationWarningsItemDataItem
+    , owidiValue
+    , owidiKey
+
+    -- ** OperationList
+    , OperationList
+    , operationList
+    , olNextPageToken
+    , olKind
+    , olItems
+    , olSelfLink
+    , olId
+
+    -- ** ResourceView
+    , ResourceView
+    , resourceView
+    , rvSize
+    , rvKind
+    , rvFingerprint
+    , rvNetwork
+    , rvResources
+    , rvSelfLink
+    , rvName
+    , rvCreationTimestamp
+    , rvId
+    , rvLabels
+    , rvEndpoints
+    , rvDescription
+
+    -- ** ZoneViewsList
+    , ZoneViewsList
+    , zoneViewsList
+    , zvlNextPageToken
+    , zvlKind
+    , zvlItems
+    , zvlSelfLink
+
+    -- ** 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
+
+    -- ** ZoneViewsListResourcesFormat
+    , ZoneViewsListResourcesFormat (..)
+
+    -- ** ZoneViewsListResourcesResponse
+    , ZoneViewsListResourcesResponse
+    , zoneViewsListResourcesResponse
+    , zvlrrNextPageToken
+    , zvlrrItems
+    , zvlrrNetwork
+
+    -- ** ServiceEndpoint
+    , ServiceEndpoint
+    , serviceEndpoint
+    , seName
+    , sePort
+
+    -- ** ZoneViewsListResourcesListState
+    , ZoneViewsListResourcesListState (..)
+
+    -- ** ZoneViewsRemoveResourcesRequest
+    , ZoneViewsRemoveResourcesRequest
+    , zoneViewsRemoveResourcesRequest
+    , zvrrrResources
+
+    -- ** ListResourceResponseItemEndpoints
+    , ListResourceResponseItemEndpoints
+    , listResourceResponseItemEndpoints
+    , lrrieAddtional
+
+    -- ** ZoneViewsAddResourcesRequest
+    , ZoneViewsAddResourcesRequest
+    , zoneViewsAddResourcesRequest
+    , zvarrResources
+
+    -- ** OperationError
+    , OperationError
+    , operationError
+    , oeErrors
+
+    -- ** ZoneViewsGetServiceResponse
+    , ZoneViewsGetServiceResponse
+    , zoneViewsGetServiceResponse
+    , zvgsrFingerprint
+    , zvgsrEndpoints
+
+    -- ** OperationErrorErrorsItem
+    , OperationErrorErrorsItem
+    , operationErrorErrorsItem
+    , oeeiLocation
+    , oeeiCode
+    , oeeiMessage
+
+    -- ** ZoneViewsSetServiceRequest
+    , ZoneViewsSetServiceRequest
+    , zoneViewsSetServiceRequest
+    , zvssrResourceName
+    , zvssrFingerprint
+    , zvssrEndpoints
+
+    -- ** ListResourceResponseItem
+    , ListResourceResponseItem
+    , listResourceResponseItem
+    , lrriResource
+    , lrriEndpoints
+
+    -- ** Label
+    , Label
+    , label
+    , lValue
+    , lKey
+
+    -- ** OperationWarningsItem
+    , OperationWarningsItem
+    , operationWarningsItem
+    , owiData
+    , owiCode
+    , owiMessage
+    ) where
+
+import           Network.Google.Prelude
+import           Network.Google.Resource.ResourceViews.ZoneOperations.Get
+import           Network.Google.Resource.ResourceViews.ZoneOperations.List
+import           Network.Google.Resource.ResourceViews.ZoneViews.AddResources
+import           Network.Google.Resource.ResourceViews.ZoneViews.Delete
+import           Network.Google.Resource.ResourceViews.ZoneViews.Get
+import           Network.Google.Resource.ResourceViews.ZoneViews.GetService
+import           Network.Google.Resource.ResourceViews.ZoneViews.Insert
+import           Network.Google.Resource.ResourceViews.ZoneViews.List
+import           Network.Google.Resource.ResourceViews.ZoneViews.ListResources
+import           Network.Google.Resource.ResourceViews.ZoneViews.RemoveResources
+import           Network.Google.Resource.ResourceViews.ZoneViews.SetService
+import           Network.Google.ResourceViews.Types
+
+{- $resources
+TODO
+-}
+
+-- | Represents the entirety of the methods and resources available for the Google Compute Engine Instance Groups API service.
+type ResourceViewsAPI =
+     ZoneViewsSetServiceResource :<|>
+       ZoneViewsInsertResource
+       :<|> ZoneViewsListResource
+       :<|> ZoneViewsListResourcesResource
+       :<|> ZoneViewsGetResource
+       :<|> ZoneViewsRemoveResourcesResource
+       :<|> ZoneViewsAddResourcesResource
+       :<|> ZoneViewsGetServiceResource
+       :<|> ZoneViewsDeleteResource
+       :<|> ZoneOperationsListResource
+       :<|> ZoneOperationsGetResource
diff --git a/gen/Network/Google/ResourceViews/Types.hs b/gen/Network/Google/ResourceViews/Types.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/ResourceViews/Types.hs
@@ -0,0 +1,207 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- |
+-- Module      : Network.Google.ResourceViews.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.ResourceViews.Types
+    (
+    -- * Service Configuration
+      resourceViewsService
+
+    -- * OAuth Scopes
+    , computeScope
+    , cloudPlatformReadOnlyScope
+    , cloudPlatformScope
+    , ndevCloudmanScope
+    , ndevCloudmanReadonlyScope
+    , computeReadonlyScope
+
+    -- * OperationWarningsItemDataItem
+    , OperationWarningsItemDataItem
+    , operationWarningsItemDataItem
+    , owidiValue
+    , owidiKey
+
+    -- * OperationList
+    , OperationList
+    , operationList
+    , olNextPageToken
+    , olKind
+    , olItems
+    , olSelfLink
+    , olId
+
+    -- * ResourceView
+    , ResourceView
+    , resourceView
+    , rvSize
+    , rvKind
+    , rvFingerprint
+    , rvNetwork
+    , rvResources
+    , rvSelfLink
+    , rvName
+    , rvCreationTimestamp
+    , rvId
+    , rvLabels
+    , rvEndpoints
+    , rvDescription
+
+    -- * ZoneViewsList
+    , ZoneViewsList
+    , zoneViewsList
+    , zvlNextPageToken
+    , zvlKind
+    , zvlItems
+    , zvlSelfLink
+
+    -- * 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
+
+    -- * ZoneViewsListResourcesFormat
+    , ZoneViewsListResourcesFormat (..)
+
+    -- * ZoneViewsListResourcesResponse
+    , ZoneViewsListResourcesResponse
+    , zoneViewsListResourcesResponse
+    , zvlrrNextPageToken
+    , zvlrrItems
+    , zvlrrNetwork
+
+    -- * ServiceEndpoint
+    , ServiceEndpoint
+    , serviceEndpoint
+    , seName
+    , sePort
+
+    -- * ZoneViewsListResourcesListState
+    , ZoneViewsListResourcesListState (..)
+
+    -- * ZoneViewsRemoveResourcesRequest
+    , ZoneViewsRemoveResourcesRequest
+    , zoneViewsRemoveResourcesRequest
+    , zvrrrResources
+
+    -- * ListResourceResponseItemEndpoints
+    , ListResourceResponseItemEndpoints
+    , listResourceResponseItemEndpoints
+    , lrrieAddtional
+
+    -- * ZoneViewsAddResourcesRequest
+    , ZoneViewsAddResourcesRequest
+    , zoneViewsAddResourcesRequest
+    , zvarrResources
+
+    -- * OperationError
+    , OperationError
+    , operationError
+    , oeErrors
+
+    -- * ZoneViewsGetServiceResponse
+    , ZoneViewsGetServiceResponse
+    , zoneViewsGetServiceResponse
+    , zvgsrFingerprint
+    , zvgsrEndpoints
+
+    -- * OperationErrorErrorsItem
+    , OperationErrorErrorsItem
+    , operationErrorErrorsItem
+    , oeeiLocation
+    , oeeiCode
+    , oeeiMessage
+
+    -- * ZoneViewsSetServiceRequest
+    , ZoneViewsSetServiceRequest
+    , zoneViewsSetServiceRequest
+    , zvssrResourceName
+    , zvssrFingerprint
+    , zvssrEndpoints
+
+    -- * ListResourceResponseItem
+    , ListResourceResponseItem
+    , listResourceResponseItem
+    , lrriResource
+    , lrriEndpoints
+
+    -- * Label
+    , Label
+    , label
+    , lValue
+    , lKey
+
+    -- * OperationWarningsItem
+    , OperationWarningsItem
+    , operationWarningsItem
+    , owiData
+    , owiCode
+    , owiMessage
+    ) where
+
+import           Network.Google.Prelude
+import           Network.Google.ResourceViews.Types.Product
+import           Network.Google.ResourceViews.Types.Sum
+
+-- | Default request referring to version 'v1beta2' of the Google Compute Engine Instance Groups API. This contains the host and root path used as a starting point for constructing service requests.
+resourceViewsService :: Service
+resourceViewsService
+  = defaultService (ServiceId "resourceviews:v1beta2")
+      "www.googleapis.com"
+
+-- | View and manage your Google Compute Engine resources
+computeScope :: OAuthScope
+computeScope = "https://www.googleapis.com/auth/compute";
+
+-- | View your data across Google Cloud Platform services
+cloudPlatformReadOnlyScope :: OAuthScope
+cloudPlatformReadOnlyScope = "https://www.googleapis.com/auth/cloud-platform.read-only";
+
+-- | View and manage your data across Google Cloud Platform services
+cloudPlatformScope :: OAuthScope
+cloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform";
+
+-- | View and manage your Google Cloud Platform management resources and
+-- deployment status information
+ndevCloudmanScope :: OAuthScope
+ndevCloudmanScope = "https://www.googleapis.com/auth/ndev.cloudman";
+
+-- | View your Google Cloud Platform management resources and deployment
+-- status information
+ndevCloudmanReadonlyScope :: OAuthScope
+ndevCloudmanReadonlyScope = "https://www.googleapis.com/auth/ndev.cloudman.readonly";
+
+-- | View your Google Compute Engine resources
+computeReadonlyScope :: OAuthScope
+computeReadonlyScope = "https://www.googleapis.com/auth/compute.readonly";
diff --git a/gen/Network/Google/ResourceViews/Types/Product.hs b/gen/Network/Google/ResourceViews/Types/Product.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/ResourceViews/Types/Product.hs
@@ -0,0 +1,1253 @@
+{-# 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.ResourceViews.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.ResourceViews.Types.Product where
+
+import           Network.Google.Prelude
+import           Network.Google.ResourceViews.Types.Sum
+
+--
+-- /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] Metadata value for this warning.
+owidiValue :: Lens' OperationWarningsItemDataItem (Maybe Text)
+owidiValue
+  = lens _owidiValue (\ s a -> s{_owidiValue = a})
+
+-- | [Output Only] Metadata key for this warning.
+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:/ '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 = "resourceviews#operationList"
+    , _olItems = Nothing
+    , _olSelfLink = Nothing
+    , _olId = Nothing
+    }
+
+-- | A token used to continue a truncated list request (output only).
+olNextPageToken :: Lens' OperationList (Maybe Text)
+olNextPageToken
+  = lens _olNextPageToken
+      (\ s a -> s{_olNextPageToken = a})
+
+-- | Type of resource.
+olKind :: Lens' OperationList Text
+olKind = lens _olKind (\ s a -> s{_olKind = a})
+
+-- | The operation resources.
+olItems :: Lens' OperationList [Operation]
+olItems
+  = lens _olItems (\ s a -> s{_olItems = a}) . _Default
+      . _Coerce
+
+-- | Server defined URL for this resource (output only).
+olSelfLink :: Lens' OperationList (Maybe Text)
+olSelfLink
+  = lens _olSelfLink (\ s a -> s{_olSelfLink = a})
+
+-- | Unique identifier for the resource; defined by the server (output only).
+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" .!= "resourceviews#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])
+
+-- | The resource view object.
+--
+-- /See:/ 'resourceView' smart constructor.
+data ResourceView = ResourceView
+    { _rvSize              :: !(Maybe (Textual Word32))
+    , _rvKind              :: !Text
+    , _rvFingerprint       :: !(Maybe Text)
+    , _rvNetwork           :: !(Maybe Text)
+    , _rvResources         :: !(Maybe [Text])
+    , _rvSelfLink          :: !(Maybe Text)
+    , _rvName              :: !(Maybe Text)
+    , _rvCreationTimestamp :: !(Maybe Text)
+    , _rvId                :: !(Maybe Text)
+    , _rvLabels            :: !(Maybe [Label])
+    , _rvEndpoints         :: !(Maybe [ServiceEndpoint])
+    , _rvDescription       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ResourceView' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rvSize'
+--
+-- * 'rvKind'
+--
+-- * 'rvFingerprint'
+--
+-- * 'rvNetwork'
+--
+-- * 'rvResources'
+--
+-- * 'rvSelfLink'
+--
+-- * 'rvName'
+--
+-- * 'rvCreationTimestamp'
+--
+-- * 'rvId'
+--
+-- * 'rvLabels'
+--
+-- * 'rvEndpoints'
+--
+-- * 'rvDescription'
+resourceView
+    :: ResourceView
+resourceView =
+    ResourceView
+    { _rvSize = Nothing
+    , _rvKind = "resourceviews#resourceView"
+    , _rvFingerprint = Nothing
+    , _rvNetwork = Nothing
+    , _rvResources = Nothing
+    , _rvSelfLink = Nothing
+    , _rvName = Nothing
+    , _rvCreationTimestamp = Nothing
+    , _rvId = Nothing
+    , _rvLabels = Nothing
+    , _rvEndpoints = Nothing
+    , _rvDescription = Nothing
+    }
+
+-- | The total number of resources in the resource view.
+rvSize :: Lens' ResourceView (Maybe Word32)
+rvSize
+  = lens _rvSize (\ s a -> s{_rvSize = a}) .
+      mapping _Coerce
+
+-- | Type of the resource.
+rvKind :: Lens' ResourceView Text
+rvKind = lens _rvKind (\ s a -> s{_rvKind = a})
+
+-- | The fingerprint of the service endpoint information.
+rvFingerprint :: Lens' ResourceView (Maybe Text)
+rvFingerprint
+  = lens _rvFingerprint
+      (\ s a -> s{_rvFingerprint = a})
+
+-- | The URL of a Compute Engine network to which the resources in the view
+-- belong.
+rvNetwork :: Lens' ResourceView (Maybe Text)
+rvNetwork
+  = lens _rvNetwork (\ s a -> s{_rvNetwork = a})
+
+-- | A list of all resources in the resource view.
+rvResources :: Lens' ResourceView [Text]
+rvResources
+  = lens _rvResources (\ s a -> s{_rvResources = a}) .
+      _Default
+      . _Coerce
+
+-- | [Output Only] A self-link to the resource view.
+rvSelfLink :: Lens' ResourceView (Maybe Text)
+rvSelfLink
+  = lens _rvSelfLink (\ s a -> s{_rvSelfLink = a})
+
+-- | The name of the resource view.
+rvName :: Lens' ResourceView (Maybe Text)
+rvName = lens _rvName (\ s a -> s{_rvName = a})
+
+-- | The creation time of the resource view.
+rvCreationTimestamp :: Lens' ResourceView (Maybe Text)
+rvCreationTimestamp
+  = lens _rvCreationTimestamp
+      (\ s a -> s{_rvCreationTimestamp = a})
+
+-- | [Output Only] The ID of the resource view.
+rvId :: Lens' ResourceView (Maybe Text)
+rvId = lens _rvId (\ s a -> s{_rvId = a})
+
+-- | The labels for events.
+rvLabels :: Lens' ResourceView [Label]
+rvLabels
+  = lens _rvLabels (\ s a -> s{_rvLabels = a}) .
+      _Default
+      . _Coerce
+
+-- | Services endpoint information.
+rvEndpoints :: Lens' ResourceView [ServiceEndpoint]
+rvEndpoints
+  = lens _rvEndpoints (\ s a -> s{_rvEndpoints = a}) .
+      _Default
+      . _Coerce
+
+-- | The detailed description of the resource view.
+rvDescription :: Lens' ResourceView (Maybe Text)
+rvDescription
+  = lens _rvDescription
+      (\ s a -> s{_rvDescription = a})
+
+instance FromJSON ResourceView where
+        parseJSON
+          = withObject "ResourceView"
+              (\ o ->
+                 ResourceView <$>
+                   (o .:? "size") <*>
+                     (o .:? "kind" .!= "resourceviews#resourceView")
+                     <*> (o .:? "fingerprint")
+                     <*> (o .:? "network")
+                     <*> (o .:? "resources" .!= mempty)
+                     <*> (o .:? "selfLink")
+                     <*> (o .:? "name")
+                     <*> (o .:? "creationTimestamp")
+                     <*> (o .:? "id")
+                     <*> (o .:? "labels" .!= mempty)
+                     <*> (o .:? "endpoints" .!= mempty)
+                     <*> (o .:? "description"))
+
+instance ToJSON ResourceView where
+        toJSON ResourceView{..}
+          = object
+              (catMaybes
+                 [("size" .=) <$> _rvSize, Just ("kind" .= _rvKind),
+                  ("fingerprint" .=) <$> _rvFingerprint,
+                  ("network" .=) <$> _rvNetwork,
+                  ("resources" .=) <$> _rvResources,
+                  ("selfLink" .=) <$> _rvSelfLink,
+                  ("name" .=) <$> _rvName,
+                  ("creationTimestamp" .=) <$> _rvCreationTimestamp,
+                  ("id" .=) <$> _rvId, ("labels" .=) <$> _rvLabels,
+                  ("endpoints" .=) <$> _rvEndpoints,
+                  ("description" .=) <$> _rvDescription])
+
+-- | The response to a list request.
+--
+-- /See:/ 'zoneViewsList' smart constructor.
+data ZoneViewsList = ZoneViewsList
+    { _zvlNextPageToken :: !(Maybe Text)
+    , _zvlKind          :: !Text
+    , _zvlItems         :: !(Maybe [ResourceView])
+    , _zvlSelfLink      :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ZoneViewsList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'zvlNextPageToken'
+--
+-- * 'zvlKind'
+--
+-- * 'zvlItems'
+--
+-- * 'zvlSelfLink'
+zoneViewsList
+    :: ZoneViewsList
+zoneViewsList =
+    ZoneViewsList
+    { _zvlNextPageToken = Nothing
+    , _zvlKind = "resourceviews#zoneViewsList"
+    , _zvlItems = Nothing
+    , _zvlSelfLink = Nothing
+    }
+
+-- | A token used for pagination.
+zvlNextPageToken :: Lens' ZoneViewsList (Maybe Text)
+zvlNextPageToken
+  = lens _zvlNextPageToken
+      (\ s a -> s{_zvlNextPageToken = a})
+
+-- | Type of resource.
+zvlKind :: Lens' ZoneViewsList Text
+zvlKind = lens _zvlKind (\ s a -> s{_zvlKind = a})
+
+-- | The result that contains all resource views that meet the criteria.
+zvlItems :: Lens' ZoneViewsList [ResourceView]
+zvlItems
+  = lens _zvlItems (\ s a -> s{_zvlItems = a}) .
+      _Default
+      . _Coerce
+
+-- | Server defined URL for this resource (output only).
+zvlSelfLink :: Lens' ZoneViewsList (Maybe Text)
+zvlSelfLink
+  = lens _zvlSelfLink (\ s a -> s{_zvlSelfLink = a})
+
+instance FromJSON ZoneViewsList where
+        parseJSON
+          = withObject "ZoneViewsList"
+              (\ o ->
+                 ZoneViewsList <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "kind" .!= "resourceviews#zoneViewsList")
+                     <*> (o .:? "items" .!= mempty)
+                     <*> (o .:? "selfLink"))
+
+instance ToJSON ZoneViewsList where
+        toJSON ZoneViewsList{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _zvlNextPageToken,
+                  Just ("kind" .= _zvlKind),
+                  ("items" .=) <$> _zvlItems,
+                  ("selfLink" .=) <$> _zvlSelfLink])
+
+-- | An operation resource, used to manage asynchronous API requests.
+--
+-- /See:/ 'operation' smart constructor.
+data Operation = Operation
+    { _oTargetId            :: !(Maybe (Textual Word64))
+    , _oStatus              :: !(Maybe Text)
+    , _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 = "resourceviews#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.
+oStatus :: Lens' Operation (Maybe Text)
+oStatus = lens _oStatus (\ s a -> s{_oStatus = a})
+
+-- | [Output Only] The time that this operation was requested, 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 be monotonically increasing 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, in
+-- RFC3339 text format.
+oStartTime :: Lens' Operation (Maybe Text)
+oStartTime
+  = lens _oStartTime (\ s a -> s{_oStartTime = a})
+
+-- | [Output only] Type of the resource.
+oKind :: Lens' Operation Text
+oKind = lens _oKind (\ s a -> s{_oKind = a})
+
+-- | [Output Only] If errors occurred during processing of this operation,
+-- this field will be populated.
+oError :: Lens' Operation (Maybe OperationError)
+oError = lens _oError (\ s a -> s{_oError = a})
+
+-- | [Output only] If operation fails, the HTTP error message returned.
+oHTTPErrorMessage :: Lens' Operation (Maybe Text)
+oHTTPErrorMessage
+  = lens _oHTTPErrorMessage
+      (\ s a -> s{_oHTTPErrorMessage = a})
+
+-- | [Output Only] URL of the zone where the operation resides. Only
+-- available when performing per-zone operations.
+oZone :: Lens' Operation (Maybe Text)
+oZone = lens _oZone (\ s a -> s{_oZone = a})
+
+-- | [Output Only] If there are issues with this operation, a warning is
+-- returned.
+oWarnings :: Lens' Operation [OperationWarningsItem]
+oWarnings
+  = lens _oWarnings (\ s a -> s{_oWarnings = a}) .
+      _Default
+      . _Coerce
+
+-- | [Output only] If operation fails, the HTTP error status code returned.
+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 fully-qualified URL for this 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] The time that this operation was requested, 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, in RFC3339
+-- text format.
+oEndTime :: Lens' Operation (Maybe Text)
+oEndTime = lens _oEndTime (\ s a -> s{_oEndTime = a})
+
+-- | [Output Only] Unique identifier for the resource, generated by the
+-- server.
+oId :: Lens' Operation (Maybe Word64)
+oId
+  = lens _oId (\ s a -> s{_oId = a}) . mapping _Coerce
+
+-- | [Output only] Type of the operation. Operations include insert, update,
+-- and 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
+-- available when performing regional operations.
+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" .!= "resourceviews#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])
+
+-- | The response to a list resource request.
+--
+-- /See:/ 'zoneViewsListResourcesResponse' smart constructor.
+data ZoneViewsListResourcesResponse = ZoneViewsListResourcesResponse
+    { _zvlrrNextPageToken :: !(Maybe Text)
+    , _zvlrrItems         :: !(Maybe [ListResourceResponseItem])
+    , _zvlrrNetwork       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ZoneViewsListResourcesResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'zvlrrNextPageToken'
+--
+-- * 'zvlrrItems'
+--
+-- * 'zvlrrNetwork'
+zoneViewsListResourcesResponse
+    :: ZoneViewsListResourcesResponse
+zoneViewsListResourcesResponse =
+    ZoneViewsListResourcesResponse
+    { _zvlrrNextPageToken = Nothing
+    , _zvlrrItems = Nothing
+    , _zvlrrNetwork = Nothing
+    }
+
+-- | A token used for pagination.
+zvlrrNextPageToken :: Lens' ZoneViewsListResourcesResponse (Maybe Text)
+zvlrrNextPageToken
+  = lens _zvlrrNextPageToken
+      (\ s a -> s{_zvlrrNextPageToken = a})
+
+-- | The formatted JSON that is requested by the user.
+zvlrrItems :: Lens' ZoneViewsListResourcesResponse [ListResourceResponseItem]
+zvlrrItems
+  = lens _zvlrrItems (\ s a -> s{_zvlrrItems = a}) .
+      _Default
+      . _Coerce
+
+-- | The URL of a Compute Engine network to which the resources in the view
+-- belong.
+zvlrrNetwork :: Lens' ZoneViewsListResourcesResponse (Maybe Text)
+zvlrrNetwork
+  = lens _zvlrrNetwork (\ s a -> s{_zvlrrNetwork = a})
+
+instance FromJSON ZoneViewsListResourcesResponse
+         where
+        parseJSON
+          = withObject "ZoneViewsListResourcesResponse"
+              (\ o ->
+                 ZoneViewsListResourcesResponse <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "items" .!= mempty)
+                     <*> (o .:? "network"))
+
+instance ToJSON ZoneViewsListResourcesResponse where
+        toJSON ZoneViewsListResourcesResponse{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _zvlrrNextPageToken,
+                  ("items" .=) <$> _zvlrrItems,
+                  ("network" .=) <$> _zvlrrNetwork])
+
+-- | The service endpoint that may be started in a VM.
+--
+-- /See:/ 'serviceEndpoint' smart constructor.
+data ServiceEndpoint = ServiceEndpoint
+    { _seName :: !(Maybe Text)
+    , _sePort :: !(Maybe (Textual Int32))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ServiceEndpoint' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'seName'
+--
+-- * 'sePort'
+serviceEndpoint
+    :: ServiceEndpoint
+serviceEndpoint =
+    ServiceEndpoint
+    { _seName = Nothing
+    , _sePort = Nothing
+    }
+
+-- | The name of the service endpoint.
+seName :: Lens' ServiceEndpoint (Maybe Text)
+seName = lens _seName (\ s a -> s{_seName = a})
+
+-- | The port of the service endpoint.
+sePort :: Lens' ServiceEndpoint (Maybe Int32)
+sePort
+  = lens _sePort (\ s a -> s{_sePort = a}) .
+      mapping _Coerce
+
+instance FromJSON ServiceEndpoint where
+        parseJSON
+          = withObject "ServiceEndpoint"
+              (\ o ->
+                 ServiceEndpoint <$>
+                   (o .:? "name") <*> (o .:? "port"))
+
+instance ToJSON ServiceEndpoint where
+        toJSON ServiceEndpoint{..}
+          = object
+              (catMaybes
+                 [("name" .=) <$> _seName, ("port" .=) <$> _sePort])
+
+-- | The request to remove resources from the resource view.
+--
+-- /See:/ 'zoneViewsRemoveResourcesRequest' smart constructor.
+newtype ZoneViewsRemoveResourcesRequest = ZoneViewsRemoveResourcesRequest
+    { _zvrrrResources :: Maybe [Text]
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ZoneViewsRemoveResourcesRequest' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'zvrrrResources'
+zoneViewsRemoveResourcesRequest
+    :: ZoneViewsRemoveResourcesRequest
+zoneViewsRemoveResourcesRequest =
+    ZoneViewsRemoveResourcesRequest
+    { _zvrrrResources = Nothing
+    }
+
+-- | The list of resources to be removed.
+zvrrrResources :: Lens' ZoneViewsRemoveResourcesRequest [Text]
+zvrrrResources
+  = lens _zvrrrResources
+      (\ s a -> s{_zvrrrResources = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON ZoneViewsRemoveResourcesRequest
+         where
+        parseJSON
+          = withObject "ZoneViewsRemoveResourcesRequest"
+              (\ o ->
+                 ZoneViewsRemoveResourcesRequest <$>
+                   (o .:? "resources" .!= mempty))
+
+instance ToJSON ZoneViewsRemoveResourcesRequest where
+        toJSON ZoneViewsRemoveResourcesRequest{..}
+          = object
+              (catMaybes [("resources" .=) <$> _zvrrrResources])
+
+-- | The list of service end points on the resource.
+--
+-- /See:/ 'listResourceResponseItemEndpoints' smart constructor.
+newtype ListResourceResponseItemEndpoints = ListResourceResponseItemEndpoints
+    { _lrrieAddtional :: HashMap Text [Textual Int32]
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ListResourceResponseItemEndpoints' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lrrieAddtional'
+listResourceResponseItemEndpoints
+    :: HashMap Text [Int32] -- ^ 'lrrieAddtional'
+    -> ListResourceResponseItemEndpoints
+listResourceResponseItemEndpoints pLrrieAddtional_ =
+    ListResourceResponseItemEndpoints
+    { _lrrieAddtional = _Coerce # pLrrieAddtional_
+    }
+
+-- | The name of the service end point.
+lrrieAddtional :: Lens' ListResourceResponseItemEndpoints (HashMap Text [Int32])
+lrrieAddtional
+  = lens _lrrieAddtional
+      (\ s a -> s{_lrrieAddtional = a})
+      . _Coerce
+
+instance FromJSON ListResourceResponseItemEndpoints
+         where
+        parseJSON
+          = withObject "ListResourceResponseItemEndpoints"
+              (\ o ->
+                 ListResourceResponseItemEndpoints <$>
+                   (parseJSONObject o))
+
+instance ToJSON ListResourceResponseItemEndpoints
+         where
+        toJSON = toJSON . _lrrieAddtional
+
+-- | The request to add resources to the resource view.
+--
+-- /See:/ 'zoneViewsAddResourcesRequest' smart constructor.
+newtype ZoneViewsAddResourcesRequest = ZoneViewsAddResourcesRequest
+    { _zvarrResources :: Maybe [Text]
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ZoneViewsAddResourcesRequest' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'zvarrResources'
+zoneViewsAddResourcesRequest
+    :: ZoneViewsAddResourcesRequest
+zoneViewsAddResourcesRequest =
+    ZoneViewsAddResourcesRequest
+    { _zvarrResources = Nothing
+    }
+
+-- | The list of resources to be added.
+zvarrResources :: Lens' ZoneViewsAddResourcesRequest [Text]
+zvarrResources
+  = lens _zvarrResources
+      (\ s a -> s{_zvarrResources = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON ZoneViewsAddResourcesRequest where
+        parseJSON
+          = withObject "ZoneViewsAddResourcesRequest"
+              (\ o ->
+                 ZoneViewsAddResourcesRequest <$>
+                   (o .:? "resources" .!= mempty))
+
+instance ToJSON ZoneViewsAddResourcesRequest where
+        toJSON ZoneViewsAddResourcesRequest{..}
+          = object
+              (catMaybes [("resources" .=) <$> _zvarrResources])
+
+-- | [Output Only] If errors occurred during processing of this 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])
+
+--
+-- /See:/ 'zoneViewsGetServiceResponse' smart constructor.
+data ZoneViewsGetServiceResponse = ZoneViewsGetServiceResponse
+    { _zvgsrFingerprint :: !(Maybe Text)
+    , _zvgsrEndpoints   :: !(Maybe [ServiceEndpoint])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ZoneViewsGetServiceResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'zvgsrFingerprint'
+--
+-- * 'zvgsrEndpoints'
+zoneViewsGetServiceResponse
+    :: ZoneViewsGetServiceResponse
+zoneViewsGetServiceResponse =
+    ZoneViewsGetServiceResponse
+    { _zvgsrFingerprint = Nothing
+    , _zvgsrEndpoints = Nothing
+    }
+
+-- | The fingerprint of the service information.
+zvgsrFingerprint :: Lens' ZoneViewsGetServiceResponse (Maybe Text)
+zvgsrFingerprint
+  = lens _zvgsrFingerprint
+      (\ s a -> s{_zvgsrFingerprint = a})
+
+-- | The service information.
+zvgsrEndpoints :: Lens' ZoneViewsGetServiceResponse [ServiceEndpoint]
+zvgsrEndpoints
+  = lens _zvgsrEndpoints
+      (\ s a -> s{_zvgsrEndpoints = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON ZoneViewsGetServiceResponse where
+        parseJSON
+          = withObject "ZoneViewsGetServiceResponse"
+              (\ o ->
+                 ZoneViewsGetServiceResponse <$>
+                   (o .:? "fingerprint") <*>
+                     (o .:? "endpoints" .!= mempty))
+
+instance ToJSON ZoneViewsGetServiceResponse where
+        toJSON ZoneViewsGetServiceResponse{..}
+          = object
+              (catMaybes
+                 [("fingerprint" .=) <$> _zvgsrFingerprint,
+                  ("endpoints" .=) <$> _zvgsrEndpoints])
+
+--
+-- /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])
+
+--
+-- /See:/ 'zoneViewsSetServiceRequest' smart constructor.
+data ZoneViewsSetServiceRequest = ZoneViewsSetServiceRequest
+    { _zvssrResourceName :: !(Maybe Text)
+    , _zvssrFingerprint  :: !(Maybe Text)
+    , _zvssrEndpoints    :: !(Maybe [ServiceEndpoint])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ZoneViewsSetServiceRequest' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'zvssrResourceName'
+--
+-- * 'zvssrFingerprint'
+--
+-- * 'zvssrEndpoints'
+zoneViewsSetServiceRequest
+    :: ZoneViewsSetServiceRequest
+zoneViewsSetServiceRequest =
+    ZoneViewsSetServiceRequest
+    { _zvssrResourceName = Nothing
+    , _zvssrFingerprint = Nothing
+    , _zvssrEndpoints = Nothing
+    }
+
+-- | The name of the resource if user wants to update the service information
+-- of the resource.
+zvssrResourceName :: Lens' ZoneViewsSetServiceRequest (Maybe Text)
+zvssrResourceName
+  = lens _zvssrResourceName
+      (\ s a -> s{_zvssrResourceName = a})
+
+-- | Fingerprint of the service information; a hash of the contents. This
+-- field is used for optimistic locking when updating the service entries.
+zvssrFingerprint :: Lens' ZoneViewsSetServiceRequest (Maybe Text)
+zvssrFingerprint
+  = lens _zvssrFingerprint
+      (\ s a -> s{_zvssrFingerprint = a})
+
+-- | The service information to be updated.
+zvssrEndpoints :: Lens' ZoneViewsSetServiceRequest [ServiceEndpoint]
+zvssrEndpoints
+  = lens _zvssrEndpoints
+      (\ s a -> s{_zvssrEndpoints = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON ZoneViewsSetServiceRequest where
+        parseJSON
+          = withObject "ZoneViewsSetServiceRequest"
+              (\ o ->
+                 ZoneViewsSetServiceRequest <$>
+                   (o .:? "resourceName") <*> (o .:? "fingerprint") <*>
+                     (o .:? "endpoints" .!= mempty))
+
+instance ToJSON ZoneViewsSetServiceRequest where
+        toJSON ZoneViewsSetServiceRequest{..}
+          = object
+              (catMaybes
+                 [("resourceName" .=) <$> _zvssrResourceName,
+                  ("fingerprint" .=) <$> _zvssrFingerprint,
+                  ("endpoints" .=) <$> _zvssrEndpoints])
+
+-- | The list response item that contains the resource and end points
+-- information.
+--
+-- /See:/ 'listResourceResponseItem' smart constructor.
+data ListResourceResponseItem = ListResourceResponseItem
+    { _lrriResource  :: !(Maybe Text)
+    , _lrriEndpoints :: !(Maybe ListResourceResponseItemEndpoints)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ListResourceResponseItem' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lrriResource'
+--
+-- * 'lrriEndpoints'
+listResourceResponseItem
+    :: ListResourceResponseItem
+listResourceResponseItem =
+    ListResourceResponseItem
+    { _lrriResource = Nothing
+    , _lrriEndpoints = Nothing
+    }
+
+-- | The full URL of the resource.
+lrriResource :: Lens' ListResourceResponseItem (Maybe Text)
+lrriResource
+  = lens _lrriResource (\ s a -> s{_lrriResource = a})
+
+-- | The list of service end points on the resource.
+lrriEndpoints :: Lens' ListResourceResponseItem (Maybe ListResourceResponseItemEndpoints)
+lrriEndpoints
+  = lens _lrriEndpoints
+      (\ s a -> s{_lrriEndpoints = a})
+
+instance FromJSON ListResourceResponseItem where
+        parseJSON
+          = withObject "ListResourceResponseItem"
+              (\ o ->
+                 ListResourceResponseItem <$>
+                   (o .:? "resource") <*> (o .:? "endpoints"))
+
+instance ToJSON ListResourceResponseItem where
+        toJSON ListResourceResponseItem{..}
+          = object
+              (catMaybes
+                 [("resource" .=) <$> _lrriResource,
+                  ("endpoints" .=) <$> _lrriEndpoints])
+
+-- | The Label to be applied to the resource views.
+--
+-- /See:/ 'label' smart constructor.
+data Label = Label
+    { _lValue :: !(Maybe Text)
+    , _lKey   :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Label' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lValue'
+--
+-- * 'lKey'
+label
+    :: Label
+label =
+    Label
+    { _lValue = Nothing
+    , _lKey = Nothing
+    }
+
+-- | Value of the label.
+lValue :: Lens' Label (Maybe Text)
+lValue = lens _lValue (\ s a -> s{_lValue = a})
+
+-- | Key of the label.
+lKey :: Lens' Label (Maybe Text)
+lKey = lens _lKey (\ s a -> s{_lKey = a})
+
+instance FromJSON Label where
+        parseJSON
+          = withObject "Label"
+              (\ o -> Label <$> (o .:? "value") <*> (o .:? "key"))
+
+instance ToJSON Label where
+        toJSON Label{..}
+          = object
+              (catMaybes
+                 [("value" .=) <$> _lValue, ("key" .=) <$> _lKey])
+
+--
+-- /See:/ 'operationWarningsItem' smart constructor.
+data OperationWarningsItem = OperationWarningsItem
+    { _owiData    :: !(Maybe [OperationWarningsItemDataItem])
+    , _owiCode    :: !(Maybe Text)
+    , _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 Text)
+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])
diff --git a/gen/Network/Google/ResourceViews/Types/Sum.hs b/gen/Network/Google/ResourceViews/Types/Sum.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/ResourceViews/Types/Sum.hs
@@ -0,0 +1,79 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE LambdaCase         #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- |
+-- Module      : Network.Google.ResourceViews.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.ResourceViews.Types.Sum where
+
+import           Network.Google.Prelude
+
+-- | The requested format of the return value. It can be URL or URL_PORT. A
+-- JSON object will be included in the response based on the format. The
+-- default format is NONE, which results in no JSON in the response.
+data ZoneViewsListResourcesFormat
+    = None
+      -- ^ @NONE@
+    | URL
+      -- ^ @URL@
+    | URLPort
+      -- ^ @URL_PORT@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable ZoneViewsListResourcesFormat
+
+instance FromText ZoneViewsListResourcesFormat where
+    fromText = \case
+        "NONE" -> Just None
+        "URL" -> Just URL
+        "URL_PORT" -> Just URLPort
+        _ -> Nothing
+
+instance ToText ZoneViewsListResourcesFormat where
+    toText = \case
+        None -> "NONE"
+        URL -> "URL"
+        URLPort -> "URL_PORT"
+
+instance FromJSON ZoneViewsListResourcesFormat where
+    parseJSON = parseJSONText "ZoneViewsListResourcesFormat"
+
+instance ToJSON ZoneViewsListResourcesFormat where
+    toJSON = toJSONText
+
+-- | The state of the instance to list. By default, it lists all instances.
+data ZoneViewsListResourcesListState
+    = All
+      -- ^ @ALL@
+    | Running
+      -- ^ @RUNNING@
+      deriving (Eq,Ord,Enum,Read,Show,Data,Typeable,Generic)
+
+instance Hashable ZoneViewsListResourcesListState
+
+instance FromText ZoneViewsListResourcesListState where
+    fromText = \case
+        "ALL" -> Just All
+        "RUNNING" -> Just Running
+        _ -> Nothing
+
+instance ToText ZoneViewsListResourcesListState where
+    toText = \case
+        All -> "ALL"
+        Running -> "RUNNING"
+
+instance FromJSON ZoneViewsListResourcesListState where
+    parseJSON = parseJSONText "ZoneViewsListResourcesListState"
+
+instance ToJSON ZoneViewsListResourcesListState where
+    toJSON = toJSONText
diff --git a/gogol-resourceviews.cabal b/gogol-resourceviews.cabal
new file mode 100644
--- /dev/null
+++ b/gogol-resourceviews.cabal
@@ -0,0 +1,61 @@
+name:                  gogol-resourceviews
+version:               0.0.1
+synopsis:              Google Compute Engine Instance Groups 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:
+    The Resource View API allows users to create and manage logical sets of
+    Google Compute Engine instances.
+    .
+    /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 @v1beta2@
+    of the API.
+    .
+    Labels:
+    .
+    * Limited Availability
+
+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.Resource.ResourceViews.ZoneOperations.Get
+        , Network.Google.Resource.ResourceViews.ZoneOperations.List
+        , Network.Google.Resource.ResourceViews.ZoneViews.AddResources
+        , Network.Google.Resource.ResourceViews.ZoneViews.Delete
+        , Network.Google.Resource.ResourceViews.ZoneViews.Get
+        , Network.Google.Resource.ResourceViews.ZoneViews.GetService
+        , Network.Google.Resource.ResourceViews.ZoneViews.Insert
+        , Network.Google.Resource.ResourceViews.ZoneViews.List
+        , Network.Google.Resource.ResourceViews.ZoneViews.ListResources
+        , Network.Google.Resource.ResourceViews.ZoneViews.RemoveResources
+        , Network.Google.Resource.ResourceViews.ZoneViews.SetService
+        , Network.Google.ResourceViews
+        , Network.Google.ResourceViews.Types
+
+    other-modules:
+          Network.Google.ResourceViews.Types.Product
+        , Network.Google.ResourceViews.Types.Sum
+
+    build-depends:
+          gogol-core == 0.0.1.*
+        , base       >= 4.7 && < 5
