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-file
+
+* [Version](#version)
+* [Description](#description)
+* [Contribute](#contribute)
+* [Licence](#licence)
+
+
+## Version
+
+`0.3.0`
+
+
+## Description
+
+A client library for the Google Cloud Filestore.
+
+
+## Contribute
+
+For any problems, comments, or feedback please create an issue [here on GitHub](https://github.com/brendanhay/gogol/issues).
+
+> _Note:_ this library is an auto-generated Haskell package. Please see `gogol-gen` for more information.
+
+
+## Licence
+
+`gogol-file` 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/File.hs b/gen/Network/Google/File.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/File.hs
@@ -0,0 +1,229 @@
+{-# LANGUAGE DataKinds         #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# LANGUAGE TypeOperators     #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+
+-- |
+-- Module      : Network.Google.File
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- The Cloud Filestore API is used for creating and managing cloud file
+-- servers.
+--
+-- /See:/ <https://cloud.google.com/filestore/ Cloud Filestore API Reference>
+module Network.Google.File
+    (
+    -- * Service Configuration
+      fileService
+
+    -- * OAuth Scopes
+    , cloudPlatformScope
+
+    -- * API Declaration
+    , FileAPI
+
+    -- * Resources
+
+    -- ** file.projects.locations.get
+    , module Network.Google.Resource.File.Projects.Locations.Get
+
+    -- ** file.projects.locations.instances.create
+    , module Network.Google.Resource.File.Projects.Locations.Instances.Create
+
+    -- ** file.projects.locations.instances.delete
+    , module Network.Google.Resource.File.Projects.Locations.Instances.Delete
+
+    -- ** file.projects.locations.instances.get
+    , module Network.Google.Resource.File.Projects.Locations.Instances.Get
+
+    -- ** file.projects.locations.instances.list
+    , module Network.Google.Resource.File.Projects.Locations.Instances.List
+
+    -- ** file.projects.locations.instances.patch
+    , module Network.Google.Resource.File.Projects.Locations.Instances.Patch
+
+    -- ** file.projects.locations.list
+    , module Network.Google.Resource.File.Projects.Locations.List
+
+    -- ** file.projects.locations.operations.cancel
+    , module Network.Google.Resource.File.Projects.Locations.Operations.Cancel
+
+    -- ** file.projects.locations.operations.delete
+    , module Network.Google.Resource.File.Projects.Locations.Operations.Delete
+
+    -- ** file.projects.locations.operations.get
+    , module Network.Google.Resource.File.Projects.Locations.Operations.Get
+
+    -- ** file.projects.locations.operations.list
+    , module Network.Google.Resource.File.Projects.Locations.Operations.List
+
+    -- * Types
+
+    -- ** InstanceLabels
+    , InstanceLabels
+    , instanceLabels
+    , ilAddtional
+
+    -- ** Status
+    , Status
+    , status
+    , sDetails
+    , sCode
+    , sMessage
+
+    -- ** OperationSchema
+    , OperationSchema
+    , operationSchema
+    , osAddtional
+
+    -- ** ListLocationsResponse
+    , ListLocationsResponse
+    , listLocationsResponse
+    , llrNextPageToken
+    , llrLocations
+
+    -- ** ListOperationsResponse
+    , ListOperationsResponse
+    , listOperationsResponse
+    , lorNextPageToken
+    , lorOperations
+
+    -- ** CancelOperationRequest
+    , CancelOperationRequest
+    , cancelOperationRequest
+
+    -- ** Location
+    , Location
+    , location
+    , lName
+    , lMetadata
+    , lDisplayName
+    , lLabels
+    , lLocationId
+
+    -- ** Operation
+    , Operation
+    , operation
+    , oDone
+    , oError
+    , oResponse
+    , oName
+    , oMetadata
+
+    -- ** Empty
+    , Empty
+    , empty
+
+    -- ** InstanceTier
+    , InstanceTier (..)
+
+    -- ** StatusDetailsItem
+    , StatusDetailsItem
+    , statusDetailsItem
+    , sdiAddtional
+
+    -- ** FileShareConfig
+    , FileShareConfig
+    , fileShareConfig
+    , fscName
+    , fscCapacityGb
+
+    -- ** NetworkConfig
+    , NetworkConfig
+    , networkConfig
+    , ncModes
+    , ncNetwork
+    , ncReservedIPRange
+    , ncIPAddresses
+
+    -- ** Xgafv
+    , Xgafv (..)
+
+    -- ** LocationLabels
+    , LocationLabels
+    , locationLabels
+    , llAddtional
+
+    -- ** LocationMetadata
+    , LocationMetadata
+    , locationMetadata
+    , lmAddtional
+
+    -- ** OperationMetadata
+    , OperationMetadata
+    , operationMetadata
+    , omAPIVersion
+    , omEndTime
+    , omStatusDetail
+    , omVerb
+    , omCancelRequested
+    , omTarget
+    , omCreateTime
+
+    -- ** ListInstancesResponse
+    , ListInstancesResponse
+    , listInstancesResponse
+    , lirNextPageToken
+    , lirUnreachable
+    , lirInstances
+
+    -- ** InstanceState
+    , InstanceState (..)
+
+    -- ** OperationResponse
+    , OperationResponse
+    , operationResponse
+    , orAddtional
+
+    -- ** Instance
+    , Instance
+    , instance'
+    , iEtag
+    , iState
+    , iNetworks
+    , iFileShares
+    , iName
+    , iStatusMessage
+    , iTier
+    , iLabels
+    , iDescription
+    , iCreateTime
+    ) where
+
+import           Network.Google.File.Types
+import           Network.Google.Prelude
+import           Network.Google.Resource.File.Projects.Locations.Get
+import           Network.Google.Resource.File.Projects.Locations.Instances.Create
+import           Network.Google.Resource.File.Projects.Locations.Instances.Delete
+import           Network.Google.Resource.File.Projects.Locations.Instances.Get
+import           Network.Google.Resource.File.Projects.Locations.Instances.List
+import           Network.Google.Resource.File.Projects.Locations.Instances.Patch
+import           Network.Google.Resource.File.Projects.Locations.List
+import           Network.Google.Resource.File.Projects.Locations.Operations.Cancel
+import           Network.Google.Resource.File.Projects.Locations.Operations.Delete
+import           Network.Google.Resource.File.Projects.Locations.Operations.Get
+import           Network.Google.Resource.File.Projects.Locations.Operations.List
+
+{- $resources
+TODO
+-}
+
+-- | Represents the entirety of the methods and resources available for the Cloud Filestore API service.
+type FileAPI =
+     ProjectsLocationsInstancesListResource :<|>
+       ProjectsLocationsInstancesPatchResource
+       :<|> ProjectsLocationsInstancesGetResource
+       :<|> ProjectsLocationsInstancesCreateResource
+       :<|> ProjectsLocationsInstancesDeleteResource
+       :<|> ProjectsLocationsOperationsListResource
+       :<|> ProjectsLocationsOperationsGetResource
+       :<|> ProjectsLocationsOperationsCancelResource
+       :<|> ProjectsLocationsOperationsDeleteResource
+       :<|> ProjectsLocationsListResource
+       :<|> ProjectsLocationsGetResource
diff --git a/gen/Network/Google/File/Types.hs b/gen/Network/Google/File/Types.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/File/Types.hs
@@ -0,0 +1,168 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- |
+-- Module      : Network.Google.File.Types
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+module Network.Google.File.Types
+    (
+    -- * Service Configuration
+      fileService
+
+    -- * OAuth Scopes
+    , cloudPlatformScope
+
+    -- * InstanceLabels
+    , InstanceLabels
+    , instanceLabels
+    , ilAddtional
+
+    -- * Status
+    , Status
+    , status
+    , sDetails
+    , sCode
+    , sMessage
+
+    -- * OperationSchema
+    , OperationSchema
+    , operationSchema
+    , osAddtional
+
+    -- * ListLocationsResponse
+    , ListLocationsResponse
+    , listLocationsResponse
+    , llrNextPageToken
+    , llrLocations
+
+    -- * ListOperationsResponse
+    , ListOperationsResponse
+    , listOperationsResponse
+    , lorNextPageToken
+    , lorOperations
+
+    -- * CancelOperationRequest
+    , CancelOperationRequest
+    , cancelOperationRequest
+
+    -- * Location
+    , Location
+    , location
+    , lName
+    , lMetadata
+    , lDisplayName
+    , lLabels
+    , lLocationId
+
+    -- * Operation
+    , Operation
+    , operation
+    , oDone
+    , oError
+    , oResponse
+    , oName
+    , oMetadata
+
+    -- * Empty
+    , Empty
+    , empty
+
+    -- * InstanceTier
+    , InstanceTier (..)
+
+    -- * StatusDetailsItem
+    , StatusDetailsItem
+    , statusDetailsItem
+    , sdiAddtional
+
+    -- * FileShareConfig
+    , FileShareConfig
+    , fileShareConfig
+    , fscName
+    , fscCapacityGb
+
+    -- * NetworkConfig
+    , NetworkConfig
+    , networkConfig
+    , ncModes
+    , ncNetwork
+    , ncReservedIPRange
+    , ncIPAddresses
+
+    -- * Xgafv
+    , Xgafv (..)
+
+    -- * LocationLabels
+    , LocationLabels
+    , locationLabels
+    , llAddtional
+
+    -- * LocationMetadata
+    , LocationMetadata
+    , locationMetadata
+    , lmAddtional
+
+    -- * OperationMetadata
+    , OperationMetadata
+    , operationMetadata
+    , omAPIVersion
+    , omEndTime
+    , omStatusDetail
+    , omVerb
+    , omCancelRequested
+    , omTarget
+    , omCreateTime
+
+    -- * ListInstancesResponse
+    , ListInstancesResponse
+    , listInstancesResponse
+    , lirNextPageToken
+    , lirUnreachable
+    , lirInstances
+
+    -- * InstanceState
+    , InstanceState (..)
+
+    -- * OperationResponse
+    , OperationResponse
+    , operationResponse
+    , orAddtional
+
+    -- * Instance
+    , Instance
+    , instance'
+    , iEtag
+    , iState
+    , iNetworks
+    , iFileShares
+    , iName
+    , iStatusMessage
+    , iTier
+    , iLabels
+    , iDescription
+    , iCreateTime
+    ) where
+
+import           Network.Google.File.Types.Product
+import           Network.Google.File.Types.Sum
+import           Network.Google.Prelude
+
+-- | Default request referring to version 'v1beta1' of the Cloud Filestore API. This contains the host and root path used as a starting point for constructing service requests.
+fileService :: ServiceConfig
+fileService
+  = defaultService (ServiceId "file:v1beta1")
+      "file.googleapis.com"
+
+-- | View and manage your data across Google Cloud Platform services
+cloudPlatformScope :: Proxy '["https://www.googleapis.com/auth/cloud-platform"]
+cloudPlatformScope = Proxy;
diff --git a/gen/Network/Google/File/Types/Product.hs b/gen/Network/Google/File/Types/Product.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/File/Types/Product.hs
@@ -0,0 +1,1102 @@
+{-# 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.File.Types.Product
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+module Network.Google.File.Types.Product where
+
+import           Network.Google.File.Types.Sum
+import           Network.Google.Prelude
+
+-- | Resource labels to represent user provided metadata.
+--
+-- /See:/ 'instanceLabels' smart constructor.
+newtype InstanceLabels = InstanceLabels'
+    { _ilAddtional :: HashMap Text Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'InstanceLabels' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ilAddtional'
+instanceLabels
+    :: HashMap Text Text -- ^ 'ilAddtional'
+    -> InstanceLabels
+instanceLabels pIlAddtional_ =
+    InstanceLabels'
+    { _ilAddtional = _Coerce # pIlAddtional_
+    }
+
+ilAddtional :: Lens' InstanceLabels (HashMap Text Text)
+ilAddtional
+  = lens _ilAddtional (\ s a -> s{_ilAddtional = a}) .
+      _Coerce
+
+instance FromJSON InstanceLabels where
+        parseJSON
+          = withObject "InstanceLabels"
+              (\ o -> InstanceLabels' <$> (parseJSONObject o))
+
+instance ToJSON InstanceLabels where
+        toJSON = toJSON . _ilAddtional
+
+-- | The \`Status\` type defines a logical error model that is suitable for
+-- different programming environments, including REST APIs and RPC APIs. It
+-- is used by [gRPC](https:\/\/github.com\/grpc). The error model is
+-- designed to be: - Simple to use and understand for most users - Flexible
+-- enough to meet unexpected needs # Overview The \`Status\` message
+-- contains three pieces of data: error code, error message, and error
+-- details. The error code should be an enum value of google.rpc.Code, but
+-- it may accept additional error codes if needed. The error message should
+-- be a developer-facing English message that helps developers *understand*
+-- and *resolve* the error. If a localized user-facing error message is
+-- needed, put the localized message in the error details or localize it in
+-- the client. The optional error details may contain arbitrary information
+-- about the error. There is a predefined set of error detail types in the
+-- package \`google.rpc\` that can be used for common error conditions. #
+-- Language mapping The \`Status\` message is the logical representation of
+-- the error model, but it is not necessarily the actual wire format. When
+-- the \`Status\` message is exposed in different client libraries and
+-- different wire protocols, it can be mapped differently. For example, it
+-- will likely be mapped to some exceptions in Java, but more likely mapped
+-- to some error codes in C. # Other uses The error model and the
+-- \`Status\` message can be used in a variety of environments, either with
+-- or without APIs, to provide a consistent developer experience across
+-- different environments. Example uses of this error model include: -
+-- Partial errors. If a service needs to return partial errors to the
+-- client, it may embed the \`Status\` in the normal response to indicate
+-- the partial errors. - Workflow errors. A typical workflow has multiple
+-- steps. Each step may have a \`Status\` message for error reporting. -
+-- Batch operations. If a client uses batch request and batch response, the
+-- \`Status\` message should be used directly inside batch response, one
+-- for each error sub-response. - Asynchronous operations. If an API call
+-- embeds asynchronous operation results in its response, the status of
+-- those operations should be represented directly using the \`Status\`
+-- message. - Logging. If some API errors are stored in logs, the message
+-- \`Status\` could be used directly after any stripping needed for
+-- security\/privacy reasons.
+--
+-- /See:/ 'status' smart constructor.
+data Status = Status'
+    { _sDetails :: !(Maybe [StatusDetailsItem])
+    , _sCode    :: !(Maybe (Textual Int32))
+    , _sMessage :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Status' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'sDetails'
+--
+-- * 'sCode'
+--
+-- * 'sMessage'
+status
+    :: Status
+status =
+    Status'
+    { _sDetails = Nothing
+    , _sCode = Nothing
+    , _sMessage = Nothing
+    }
+
+-- | A list of messages that carry the error details. There is a common set
+-- of message types for APIs to use.
+sDetails :: Lens' Status [StatusDetailsItem]
+sDetails
+  = lens _sDetails (\ s a -> s{_sDetails = a}) .
+      _Default
+      . _Coerce
+
+-- | The status code, which should be an enum value of google.rpc.Code.
+sCode :: Lens' Status (Maybe Int32)
+sCode
+  = lens _sCode (\ s a -> s{_sCode = a}) .
+      mapping _Coerce
+
+-- | A developer-facing error message, which should be in English. Any
+-- user-facing error message should be localized and sent in the
+-- google.rpc.Status.details field, or localized by the client.
+sMessage :: Lens' Status (Maybe Text)
+sMessage = lens _sMessage (\ s a -> s{_sMessage = a})
+
+instance FromJSON Status where
+        parseJSON
+          = withObject "Status"
+              (\ o ->
+                 Status' <$>
+                   (o .:? "details" .!= mempty) <*> (o .:? "code") <*>
+                     (o .:? "message"))
+
+instance ToJSON Status where
+        toJSON Status'{..}
+          = object
+              (catMaybes
+                 [("details" .=) <$> _sDetails,
+                  ("code" .=) <$> _sCode,
+                  ("message" .=) <$> _sMessage])
+
+-- | Service-specific metadata associated with the operation. It typically
+-- contains progress information and common metadata such as create time.
+-- Some services might not provide such metadata. Any method that returns a
+-- long-running operation should document the metadata type, if any.
+--
+-- /See:/ 'operationSchema' smart constructor.
+newtype OperationSchema = OperationSchema'
+    { _osAddtional :: HashMap Text JSONValue
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'OperationSchema' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'osAddtional'
+operationSchema
+    :: HashMap Text JSONValue -- ^ 'osAddtional'
+    -> OperationSchema
+operationSchema pOsAddtional_ =
+    OperationSchema'
+    { _osAddtional = _Coerce # pOsAddtional_
+    }
+
+-- | Properties of the object. Contains field \'type with type URL.
+osAddtional :: Lens' OperationSchema (HashMap Text JSONValue)
+osAddtional
+  = lens _osAddtional (\ s a -> s{_osAddtional = a}) .
+      _Coerce
+
+instance FromJSON OperationSchema where
+        parseJSON
+          = withObject "OperationSchema"
+              (\ o -> OperationSchema' <$> (parseJSONObject o))
+
+instance ToJSON OperationSchema where
+        toJSON = toJSON . _osAddtional
+
+-- | The response message for Locations.ListLocations.
+--
+-- /See:/ 'listLocationsResponse' smart constructor.
+data ListLocationsResponse = ListLocationsResponse'
+    { _llrNextPageToken :: !(Maybe Text)
+    , _llrLocations     :: !(Maybe [Location])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ListLocationsResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'llrNextPageToken'
+--
+-- * 'llrLocations'
+listLocationsResponse
+    :: ListLocationsResponse
+listLocationsResponse =
+    ListLocationsResponse'
+    { _llrNextPageToken = Nothing
+    , _llrLocations = Nothing
+    }
+
+-- | The standard List next-page token.
+llrNextPageToken :: Lens' ListLocationsResponse (Maybe Text)
+llrNextPageToken
+  = lens _llrNextPageToken
+      (\ s a -> s{_llrNextPageToken = a})
+
+-- | A list of locations that matches the specified filter in the request.
+llrLocations :: Lens' ListLocationsResponse [Location]
+llrLocations
+  = lens _llrLocations (\ s a -> s{_llrLocations = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON ListLocationsResponse where
+        parseJSON
+          = withObject "ListLocationsResponse"
+              (\ o ->
+                 ListLocationsResponse' <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "locations" .!= mempty))
+
+instance ToJSON ListLocationsResponse where
+        toJSON ListLocationsResponse'{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _llrNextPageToken,
+                  ("locations" .=) <$> _llrLocations])
+
+-- | The response message for Operations.ListOperations.
+--
+-- /See:/ 'listOperationsResponse' smart constructor.
+data ListOperationsResponse = ListOperationsResponse'
+    { _lorNextPageToken :: !(Maybe Text)
+    , _lorOperations    :: !(Maybe [Operation])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ListOperationsResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lorNextPageToken'
+--
+-- * 'lorOperations'
+listOperationsResponse
+    :: ListOperationsResponse
+listOperationsResponse =
+    ListOperationsResponse'
+    { _lorNextPageToken = Nothing
+    , _lorOperations = Nothing
+    }
+
+-- | The standard List next-page token.
+lorNextPageToken :: Lens' ListOperationsResponse (Maybe Text)
+lorNextPageToken
+  = lens _lorNextPageToken
+      (\ s a -> s{_lorNextPageToken = a})
+
+-- | A list of operations that matches the specified filter in the request.
+lorOperations :: Lens' ListOperationsResponse [Operation]
+lorOperations
+  = lens _lorOperations
+      (\ s a -> s{_lorOperations = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON ListOperationsResponse where
+        parseJSON
+          = withObject "ListOperationsResponse"
+              (\ o ->
+                 ListOperationsResponse' <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "operations" .!= mempty))
+
+instance ToJSON ListOperationsResponse where
+        toJSON ListOperationsResponse'{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _lorNextPageToken,
+                  ("operations" .=) <$> _lorOperations])
+
+-- | The request message for Operations.CancelOperation.
+--
+-- /See:/ 'cancelOperationRequest' smart constructor.
+data CancelOperationRequest =
+    CancelOperationRequest'
+    deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CancelOperationRequest' with the minimum fields required to make a request.
+--
+cancelOperationRequest
+    :: CancelOperationRequest
+cancelOperationRequest = CancelOperationRequest'
+
+instance FromJSON CancelOperationRequest where
+        parseJSON
+          = withObject "CancelOperationRequest"
+              (\ o -> pure CancelOperationRequest')
+
+instance ToJSON CancelOperationRequest where
+        toJSON = const emptyObject
+
+-- | A resource that represents Google Cloud Platform location.
+--
+-- /See:/ 'location' smart constructor.
+data Location = Location'
+    { _lName        :: !(Maybe Text)
+    , _lMetadata    :: !(Maybe LocationMetadata)
+    , _lDisplayName :: !(Maybe Text)
+    , _lLabels      :: !(Maybe LocationLabels)
+    , _lLocationId  :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Location' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lName'
+--
+-- * 'lMetadata'
+--
+-- * 'lDisplayName'
+--
+-- * 'lLabels'
+--
+-- * 'lLocationId'
+location
+    :: Location
+location =
+    Location'
+    { _lName = Nothing
+    , _lMetadata = Nothing
+    , _lDisplayName = Nothing
+    , _lLabels = Nothing
+    , _lLocationId = Nothing
+    }
+
+-- | Resource name for the location, which may vary between implementations.
+-- For example: \`\"projects\/example-project\/locations\/us-east1\"\`
+lName :: Lens' Location (Maybe Text)
+lName = lens _lName (\ s a -> s{_lName = a})
+
+-- | Service-specific metadata. For example the available capacity at the
+-- given location.
+lMetadata :: Lens' Location (Maybe LocationMetadata)
+lMetadata
+  = lens _lMetadata (\ s a -> s{_lMetadata = a})
+
+-- | The friendly name for this location, typically a nearby city name. For
+-- example, \"Tokyo\".
+lDisplayName :: Lens' Location (Maybe Text)
+lDisplayName
+  = lens _lDisplayName (\ s a -> s{_lDisplayName = a})
+
+-- | Cross-service attributes for the location. For example
+-- {\"cloud.googleapis.com\/region\": \"us-east1\"}
+lLabels :: Lens' Location (Maybe LocationLabels)
+lLabels = lens _lLabels (\ s a -> s{_lLabels = a})
+
+-- | The canonical id for this location. For example: \`\"us-east1\"\`.
+lLocationId :: Lens' Location (Maybe Text)
+lLocationId
+  = lens _lLocationId (\ s a -> s{_lLocationId = a})
+
+instance FromJSON Location where
+        parseJSON
+          = withObject "Location"
+              (\ o ->
+                 Location' <$>
+                   (o .:? "name") <*> (o .:? "metadata") <*>
+                     (o .:? "displayName")
+                     <*> (o .:? "labels")
+                     <*> (o .:? "locationId"))
+
+instance ToJSON Location where
+        toJSON Location'{..}
+          = object
+              (catMaybes
+                 [("name" .=) <$> _lName,
+                  ("metadata" .=) <$> _lMetadata,
+                  ("displayName" .=) <$> _lDisplayName,
+                  ("labels" .=) <$> _lLabels,
+                  ("locationId" .=) <$> _lLocationId])
+
+-- | This resource represents a long-running operation that is the result of
+-- a network API call.
+--
+-- /See:/ 'operation' smart constructor.
+data Operation = Operation'
+    { _oDone     :: !(Maybe Bool)
+    , _oError    :: !(Maybe Status)
+    , _oResponse :: !(Maybe OperationResponse)
+    , _oName     :: !(Maybe Text)
+    , _oMetadata :: !(Maybe OperationSchema)
+    } 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:
+--
+-- * 'oDone'
+--
+-- * 'oError'
+--
+-- * 'oResponse'
+--
+-- * 'oName'
+--
+-- * 'oMetadata'
+operation
+    :: Operation
+operation =
+    Operation'
+    { _oDone = Nothing
+    , _oError = Nothing
+    , _oResponse = Nothing
+    , _oName = Nothing
+    , _oMetadata = Nothing
+    }
+
+-- | If the value is \`false\`, it means the operation is still in progress.
+-- If \`true\`, the operation is completed, and either \`error\` or
+-- \`response\` is available.
+oDone :: Lens' Operation (Maybe Bool)
+oDone = lens _oDone (\ s a -> s{_oDone = a})
+
+-- | The error result of the operation in case of failure or cancellation.
+oError :: Lens' Operation (Maybe Status)
+oError = lens _oError (\ s a -> s{_oError = a})
+
+-- | The normal response of the operation in case of success. If the original
+-- method returns no data on success, such as \`Delete\`, the response is
+-- \`google.protobuf.Empty\`. If the original method is standard
+-- \`Get\`\/\`Create\`\/\`Update\`, the response should be the resource.
+-- For other methods, the response should have the type \`XxxResponse\`,
+-- where \`Xxx\` is the original method name. For example, if the original
+-- method name is \`TakeSnapshot()\`, the inferred response type is
+-- \`TakeSnapshotResponse\`.
+oResponse :: Lens' Operation (Maybe OperationResponse)
+oResponse
+  = lens _oResponse (\ s a -> s{_oResponse = a})
+
+-- | The server-assigned name, which is only unique within the same service
+-- that originally returns it. If you use the default HTTP mapping, the
+-- \`name\` should have the format of \`operations\/some\/unique\/name\`.
+oName :: Lens' Operation (Maybe Text)
+oName = lens _oName (\ s a -> s{_oName = a})
+
+-- | Service-specific metadata associated with the operation. It typically
+-- contains progress information and common metadata such as create time.
+-- Some services might not provide such metadata. Any method that returns a
+-- long-running operation should document the metadata type, if any.
+oMetadata :: Lens' Operation (Maybe OperationSchema)
+oMetadata
+  = lens _oMetadata (\ s a -> s{_oMetadata = a})
+
+instance FromJSON Operation where
+        parseJSON
+          = withObject "Operation"
+              (\ o ->
+                 Operation' <$>
+                   (o .:? "done") <*> (o .:? "error") <*>
+                     (o .:? "response")
+                     <*> (o .:? "name")
+                     <*> (o .:? "metadata"))
+
+instance ToJSON Operation where
+        toJSON Operation'{..}
+          = object
+              (catMaybes
+                 [("done" .=) <$> _oDone, ("error" .=) <$> _oError,
+                  ("response" .=) <$> _oResponse,
+                  ("name" .=) <$> _oName,
+                  ("metadata" .=) <$> _oMetadata])
+
+-- | A generic empty message that you can re-use to avoid defining duplicated
+-- empty messages in your APIs. A typical example is to use it as the
+-- request or the response type of an API method. For instance: service Foo
+-- { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The
+-- JSON representation for \`Empty\` is empty JSON object \`{}\`.
+--
+-- /See:/ 'empty' smart constructor.
+data Empty =
+    Empty'
+    deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Empty' with the minimum fields required to make a request.
+--
+empty
+    :: Empty
+empty = Empty'
+
+instance FromJSON Empty where
+        parseJSON = withObject "Empty" (\ o -> pure Empty')
+
+instance ToJSON Empty where
+        toJSON = const emptyObject
+
+--
+-- /See:/ 'statusDetailsItem' smart constructor.
+newtype StatusDetailsItem = StatusDetailsItem'
+    { _sdiAddtional :: HashMap Text JSONValue
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'StatusDetailsItem' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'sdiAddtional'
+statusDetailsItem
+    :: HashMap Text JSONValue -- ^ 'sdiAddtional'
+    -> StatusDetailsItem
+statusDetailsItem pSdiAddtional_ =
+    StatusDetailsItem'
+    { _sdiAddtional = _Coerce # pSdiAddtional_
+    }
+
+-- | Properties of the object. Contains field \'type with type URL.
+sdiAddtional :: Lens' StatusDetailsItem (HashMap Text JSONValue)
+sdiAddtional
+  = lens _sdiAddtional (\ s a -> s{_sdiAddtional = a})
+      . _Coerce
+
+instance FromJSON StatusDetailsItem where
+        parseJSON
+          = withObject "StatusDetailsItem"
+              (\ o -> StatusDetailsItem' <$> (parseJSONObject o))
+
+instance ToJSON StatusDetailsItem where
+        toJSON = toJSON . _sdiAddtional
+
+-- | File share configuration for the instance.
+--
+-- /See:/ 'fileShareConfig' smart constructor.
+data FileShareConfig = FileShareConfig'
+    { _fscName       :: !(Maybe Text)
+    , _fscCapacityGb :: !(Maybe (Textual Int64))
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'FileShareConfig' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'fscName'
+--
+-- * 'fscCapacityGb'
+fileShareConfig
+    :: FileShareConfig
+fileShareConfig =
+    FileShareConfig'
+    { _fscName = Nothing
+    , _fscCapacityGb = Nothing
+    }
+
+-- | The name of the file share (must be 16 characters or less).
+fscName :: Lens' FileShareConfig (Maybe Text)
+fscName = lens _fscName (\ s a -> s{_fscName = a})
+
+-- | File share capacity in gigabytes (GB). Cloud Filestore defines 1 GB as
+-- 1024^3 bytes.
+fscCapacityGb :: Lens' FileShareConfig (Maybe Int64)
+fscCapacityGb
+  = lens _fscCapacityGb
+      (\ s a -> s{_fscCapacityGb = a})
+      . mapping _Coerce
+
+instance FromJSON FileShareConfig where
+        parseJSON
+          = withObject "FileShareConfig"
+              (\ o ->
+                 FileShareConfig' <$>
+                   (o .:? "name") <*> (o .:? "capacityGb"))
+
+instance ToJSON FileShareConfig where
+        toJSON FileShareConfig'{..}
+          = object
+              (catMaybes
+                 [("name" .=) <$> _fscName,
+                  ("capacityGb" .=) <$> _fscCapacityGb])
+
+-- | Network configuration for the instance.
+--
+-- /See:/ 'networkConfig' smart constructor.
+data NetworkConfig = NetworkConfig'
+    { _ncModes           :: !(Maybe [Text])
+    , _ncNetwork         :: !(Maybe Text)
+    , _ncReservedIPRange :: !(Maybe Text)
+    , _ncIPAddresses     :: !(Maybe [Text])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'NetworkConfig' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ncModes'
+--
+-- * 'ncNetwork'
+--
+-- * 'ncReservedIPRange'
+--
+-- * 'ncIPAddresses'
+networkConfig
+    :: NetworkConfig
+networkConfig =
+    NetworkConfig'
+    { _ncModes = Nothing
+    , _ncNetwork = Nothing
+    , _ncReservedIPRange = Nothing
+    , _ncIPAddresses = Nothing
+    }
+
+-- | Internet protocol versions for which the instance has IP addresses
+-- assigned. For this version, only MODE_IPV4 is supported.
+ncModes :: Lens' NetworkConfig [Text]
+ncModes
+  = lens _ncModes (\ s a -> s{_ncModes = a}) . _Default
+      . _Coerce
+
+-- | The name of the Google Compute Engine [VPC
+-- network](\/compute\/docs\/networks-and-firewalls#networks) to which the
+-- instance is connected.
+ncNetwork :: Lens' NetworkConfig (Maybe Text)
+ncNetwork
+  = lens _ncNetwork (\ s a -> s{_ncNetwork = a})
+
+-- | A \/29 CIDR block in one of the [internal IP address
+-- ranges](https:\/\/www.arin.net\/knowledge\/address_filters.html) that
+-- identifies the range of IP addresses reserved for this instance. For
+-- example, 10.0.0.0\/29 or 192.168.0.0\/29. The range you specify can\'t
+-- overlap with either existing subnets or assigned IP address ranges for
+-- other Cloud Filestore instances in the selected VPC network.
+ncReservedIPRange :: Lens' NetworkConfig (Maybe Text)
+ncReservedIPRange
+  = lens _ncReservedIPRange
+      (\ s a -> s{_ncReservedIPRange = a})
+
+-- | Output only. IPv4 addresses in the format {octet 1}.{octet 2}.{octet
+-- 3}.{octet 4} or IPv6 addresses in the format {block 1}:{block 2}:{block
+-- 3}:{block 4}:{block 5}:{block 6}:{block 7}:{block 8}.
+ncIPAddresses :: Lens' NetworkConfig [Text]
+ncIPAddresses
+  = lens _ncIPAddresses
+      (\ s a -> s{_ncIPAddresses = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON NetworkConfig where
+        parseJSON
+          = withObject "NetworkConfig"
+              (\ o ->
+                 NetworkConfig' <$>
+                   (o .:? "modes" .!= mempty) <*> (o .:? "network") <*>
+                     (o .:? "reservedIpRange")
+                     <*> (o .:? "ipAddresses" .!= mempty))
+
+instance ToJSON NetworkConfig where
+        toJSON NetworkConfig'{..}
+          = object
+              (catMaybes
+                 [("modes" .=) <$> _ncModes,
+                  ("network" .=) <$> _ncNetwork,
+                  ("reservedIpRange" .=) <$> _ncReservedIPRange,
+                  ("ipAddresses" .=) <$> _ncIPAddresses])
+
+-- | Cross-service attributes for the location. For example
+-- {\"cloud.googleapis.com\/region\": \"us-east1\"}
+--
+-- /See:/ 'locationLabels' smart constructor.
+newtype LocationLabels = LocationLabels'
+    { _llAddtional :: HashMap Text Text
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'LocationLabels' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'llAddtional'
+locationLabels
+    :: HashMap Text Text -- ^ 'llAddtional'
+    -> LocationLabels
+locationLabels pLlAddtional_ =
+    LocationLabels'
+    { _llAddtional = _Coerce # pLlAddtional_
+    }
+
+llAddtional :: Lens' LocationLabels (HashMap Text Text)
+llAddtional
+  = lens _llAddtional (\ s a -> s{_llAddtional = a}) .
+      _Coerce
+
+instance FromJSON LocationLabels where
+        parseJSON
+          = withObject "LocationLabels"
+              (\ o -> LocationLabels' <$> (parseJSONObject o))
+
+instance ToJSON LocationLabels where
+        toJSON = toJSON . _llAddtional
+
+-- | Service-specific metadata. For example the available capacity at the
+-- given location.
+--
+-- /See:/ 'locationMetadata' smart constructor.
+newtype LocationMetadata = LocationMetadata'
+    { _lmAddtional :: HashMap Text JSONValue
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'LocationMetadata' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lmAddtional'
+locationMetadata
+    :: HashMap Text JSONValue -- ^ 'lmAddtional'
+    -> LocationMetadata
+locationMetadata pLmAddtional_ =
+    LocationMetadata'
+    { _lmAddtional = _Coerce # pLmAddtional_
+    }
+
+-- | Properties of the object. Contains field \'type with type URL.
+lmAddtional :: Lens' LocationMetadata (HashMap Text JSONValue)
+lmAddtional
+  = lens _lmAddtional (\ s a -> s{_lmAddtional = a}) .
+      _Coerce
+
+instance FromJSON LocationMetadata where
+        parseJSON
+          = withObject "LocationMetadata"
+              (\ o -> LocationMetadata' <$> (parseJSONObject o))
+
+instance ToJSON LocationMetadata where
+        toJSON = toJSON . _lmAddtional
+
+-- | Represents the metadata of the long-running operation.
+--
+-- /See:/ 'operationMetadata' smart constructor.
+data OperationMetadata = OperationMetadata'
+    { _omAPIVersion      :: !(Maybe Text)
+    , _omEndTime         :: !(Maybe DateTime')
+    , _omStatusDetail    :: !(Maybe Text)
+    , _omVerb            :: !(Maybe Text)
+    , _omCancelRequested :: !(Maybe Bool)
+    , _omTarget          :: !(Maybe Text)
+    , _omCreateTime      :: !(Maybe DateTime')
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'OperationMetadata' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'omAPIVersion'
+--
+-- * 'omEndTime'
+--
+-- * 'omStatusDetail'
+--
+-- * 'omVerb'
+--
+-- * 'omCancelRequested'
+--
+-- * 'omTarget'
+--
+-- * 'omCreateTime'
+operationMetadata
+    :: OperationMetadata
+operationMetadata =
+    OperationMetadata'
+    { _omAPIVersion = Nothing
+    , _omEndTime = Nothing
+    , _omStatusDetail = Nothing
+    , _omVerb = Nothing
+    , _omCancelRequested = Nothing
+    , _omTarget = Nothing
+    , _omCreateTime = Nothing
+    }
+
+-- | [Output only] API version used to start the operation.
+omAPIVersion :: Lens' OperationMetadata (Maybe Text)
+omAPIVersion
+  = lens _omAPIVersion (\ s a -> s{_omAPIVersion = a})
+
+-- | [Output only] The time the operation finished running.
+omEndTime :: Lens' OperationMetadata (Maybe UTCTime)
+omEndTime
+  = lens _omEndTime (\ s a -> s{_omEndTime = a}) .
+      mapping _DateTime
+
+-- | [Output only] Human-readable status of the operation, if any.
+omStatusDetail :: Lens' OperationMetadata (Maybe Text)
+omStatusDetail
+  = lens _omStatusDetail
+      (\ s a -> s{_omStatusDetail = a})
+
+-- | [Output only] Name of the verb executed by the operation.
+omVerb :: Lens' OperationMetadata (Maybe Text)
+omVerb = lens _omVerb (\ s a -> s{_omVerb = a})
+
+-- | [Output only] Identifies whether the user has requested cancellation of
+-- the operation. Operations that have successfully been cancelled have
+-- Operation.error value with a google.rpc.Status.code of 1, corresponding
+-- to \`Code.CANCELLED\`.
+omCancelRequested :: Lens' OperationMetadata (Maybe Bool)
+omCancelRequested
+  = lens _omCancelRequested
+      (\ s a -> s{_omCancelRequested = a})
+
+-- | [Output only] Server-defined resource path for the target of the
+-- operation.
+omTarget :: Lens' OperationMetadata (Maybe Text)
+omTarget = lens _omTarget (\ s a -> s{_omTarget = a})
+
+-- | [Output only] The time the operation was created.
+omCreateTime :: Lens' OperationMetadata (Maybe UTCTime)
+omCreateTime
+  = lens _omCreateTime (\ s a -> s{_omCreateTime = a})
+      . mapping _DateTime
+
+instance FromJSON OperationMetadata where
+        parseJSON
+          = withObject "OperationMetadata"
+              (\ o ->
+                 OperationMetadata' <$>
+                   (o .:? "apiVersion") <*> (o .:? "endTime") <*>
+                     (o .:? "statusDetail")
+                     <*> (o .:? "verb")
+                     <*> (o .:? "cancelRequested")
+                     <*> (o .:? "target")
+                     <*> (o .:? "createTime"))
+
+instance ToJSON OperationMetadata where
+        toJSON OperationMetadata'{..}
+          = object
+              (catMaybes
+                 [("apiVersion" .=) <$> _omAPIVersion,
+                  ("endTime" .=) <$> _omEndTime,
+                  ("statusDetail" .=) <$> _omStatusDetail,
+                  ("verb" .=) <$> _omVerb,
+                  ("cancelRequested" .=) <$> _omCancelRequested,
+                  ("target" .=) <$> _omTarget,
+                  ("createTime" .=) <$> _omCreateTime])
+
+-- | ListInstancesResponse is the result of ListInstancesRequest.
+--
+-- /See:/ 'listInstancesResponse' smart constructor.
+data ListInstancesResponse = ListInstancesResponse'
+    { _lirNextPageToken :: !(Maybe Text)
+    , _lirUnreachable   :: !(Maybe [Text])
+    , _lirInstances     :: !(Maybe [Instance])
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ListInstancesResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lirNextPageToken'
+--
+-- * 'lirUnreachable'
+--
+-- * 'lirInstances'
+listInstancesResponse
+    :: ListInstancesResponse
+listInstancesResponse =
+    ListInstancesResponse'
+    { _lirNextPageToken = Nothing
+    , _lirUnreachable = Nothing
+    , _lirInstances = Nothing
+    }
+
+-- | The token you can use to retrieve the next page of results. Not returned
+-- if there are no more results in the list.
+lirNextPageToken :: Lens' ListInstancesResponse (Maybe Text)
+lirNextPageToken
+  = lens _lirNextPageToken
+      (\ s a -> s{_lirNextPageToken = a})
+
+-- | Locations that could not be reached.
+lirUnreachable :: Lens' ListInstancesResponse [Text]
+lirUnreachable
+  = lens _lirUnreachable
+      (\ s a -> s{_lirUnreachable = a})
+      . _Default
+      . _Coerce
+
+-- | A list of instances in the project for the specified location. If the
+-- {location} value in the request is \"-\", the response contains a list
+-- of instances from all locations. If any location is unreachable, the
+-- response will only return instances in reachable locations and the
+-- \"unreachable\" field will be populated with a list of unreachable
+-- locations.
+lirInstances :: Lens' ListInstancesResponse [Instance]
+lirInstances
+  = lens _lirInstances (\ s a -> s{_lirInstances = a})
+      . _Default
+      . _Coerce
+
+instance FromJSON ListInstancesResponse where
+        parseJSON
+          = withObject "ListInstancesResponse"
+              (\ o ->
+                 ListInstancesResponse' <$>
+                   (o .:? "nextPageToken") <*>
+                     (o .:? "unreachable" .!= mempty)
+                     <*> (o .:? "instances" .!= mempty))
+
+instance ToJSON ListInstancesResponse where
+        toJSON ListInstancesResponse'{..}
+          = object
+              (catMaybes
+                 [("nextPageToken" .=) <$> _lirNextPageToken,
+                  ("unreachable" .=) <$> _lirUnreachable,
+                  ("instances" .=) <$> _lirInstances])
+
+-- | The normal response of the operation in case of success. If the original
+-- method returns no data on success, such as \`Delete\`, the response is
+-- \`google.protobuf.Empty\`. If the original method is standard
+-- \`Get\`\/\`Create\`\/\`Update\`, the response should be the resource.
+-- For other methods, the response should have the type \`XxxResponse\`,
+-- where \`Xxx\` is the original method name. For example, if the original
+-- method name is \`TakeSnapshot()\`, the inferred response type is
+-- \`TakeSnapshotResponse\`.
+--
+-- /See:/ 'operationResponse' smart constructor.
+newtype OperationResponse = OperationResponse'
+    { _orAddtional :: HashMap Text JSONValue
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'OperationResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'orAddtional'
+operationResponse
+    :: HashMap Text JSONValue -- ^ 'orAddtional'
+    -> OperationResponse
+operationResponse pOrAddtional_ =
+    OperationResponse'
+    { _orAddtional = _Coerce # pOrAddtional_
+    }
+
+-- | Properties of the object. Contains field \'type with type URL.
+orAddtional :: Lens' OperationResponse (HashMap Text JSONValue)
+orAddtional
+  = lens _orAddtional (\ s a -> s{_orAddtional = a}) .
+      _Coerce
+
+instance FromJSON OperationResponse where
+        parseJSON
+          = withObject "OperationResponse"
+              (\ o -> OperationResponse' <$> (parseJSONObject o))
+
+instance ToJSON OperationResponse where
+        toJSON = toJSON . _orAddtional
+
+-- | A Cloud Filestore instance.
+--
+-- /See:/ 'instance'' smart constructor.
+data Instance = Instance'
+    { _iEtag          :: !(Maybe Text)
+    , _iState         :: !(Maybe InstanceState)
+    , _iNetworks      :: !(Maybe [NetworkConfig])
+    , _iFileShares    :: !(Maybe [FileShareConfig])
+    , _iName          :: !(Maybe Text)
+    , _iStatusMessage :: !(Maybe Text)
+    , _iTier          :: !(Maybe InstanceTier)
+    , _iLabels        :: !(Maybe InstanceLabels)
+    , _iDescription   :: !(Maybe Text)
+    , _iCreateTime    :: !(Maybe DateTime')
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Instance' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'iEtag'
+--
+-- * 'iState'
+--
+-- * 'iNetworks'
+--
+-- * 'iFileShares'
+--
+-- * 'iName'
+--
+-- * 'iStatusMessage'
+--
+-- * 'iTier'
+--
+-- * 'iLabels'
+--
+-- * 'iDescription'
+--
+-- * 'iCreateTime'
+instance'
+    :: Instance
+instance' =
+    Instance'
+    { _iEtag = Nothing
+    , _iState = Nothing
+    , _iNetworks = Nothing
+    , _iFileShares = Nothing
+    , _iName = Nothing
+    , _iStatusMessage = Nothing
+    , _iTier = Nothing
+    , _iLabels = Nothing
+    , _iDescription = Nothing
+    , _iCreateTime = Nothing
+    }
+
+-- | Server-specified ETag for the instance resource to prevent simultaneous
+-- updates from overwriting each other.
+iEtag :: Lens' Instance (Maybe Text)
+iEtag = lens _iEtag (\ s a -> s{_iEtag = a})
+
+-- | Output only. The instance state.
+iState :: Lens' Instance (Maybe InstanceState)
+iState = lens _iState (\ s a -> s{_iState = a})
+
+-- | VPC networks to which the instance is connected. For this version, only
+-- a single network is supported.
+iNetworks :: Lens' Instance [NetworkConfig]
+iNetworks
+  = lens _iNetworks (\ s a -> s{_iNetworks = a}) .
+      _Default
+      . _Coerce
+
+-- | File system shares on the instance. For this version, only a single file
+-- share is supported.
+iFileShares :: Lens' Instance [FileShareConfig]
+iFileShares
+  = lens _iFileShares (\ s a -> s{_iFileShares = a}) .
+      _Default
+      . _Coerce
+
+-- | Output only. The resource name of the instance, in the format
+-- projects\/{project_id}\/locations\/{location_id}\/instances\/{instance_id}.
+iName :: Lens' Instance (Maybe Text)
+iName = lens _iName (\ s a -> s{_iName = a})
+
+-- | Output only. Additional information about the instance state, if
+-- available.
+iStatusMessage :: Lens' Instance (Maybe Text)
+iStatusMessage
+  = lens _iStatusMessage
+      (\ s a -> s{_iStatusMessage = a})
+
+-- | The service tier of the instance.
+iTier :: Lens' Instance (Maybe InstanceTier)
+iTier = lens _iTier (\ s a -> s{_iTier = a})
+
+-- | Resource labels to represent user provided metadata.
+iLabels :: Lens' Instance (Maybe InstanceLabels)
+iLabels = lens _iLabels (\ s a -> s{_iLabels = a})
+
+-- | Optional. A description of the instance (2048 characters or less).
+iDescription :: Lens' Instance (Maybe Text)
+iDescription
+  = lens _iDescription (\ s a -> s{_iDescription = a})
+
+-- | Output only. The time when the instance was created.
+iCreateTime :: Lens' Instance (Maybe UTCTime)
+iCreateTime
+  = lens _iCreateTime (\ s a -> s{_iCreateTime = a}) .
+      mapping _DateTime
+
+instance FromJSON Instance where
+        parseJSON
+          = withObject "Instance"
+              (\ o ->
+                 Instance' <$>
+                   (o .:? "etag") <*> (o .:? "state") <*>
+                     (o .:? "networks" .!= mempty)
+                     <*> (o .:? "fileShares" .!= mempty)
+                     <*> (o .:? "name")
+                     <*> (o .:? "statusMessage")
+                     <*> (o .:? "tier")
+                     <*> (o .:? "labels")
+                     <*> (o .:? "description")
+                     <*> (o .:? "createTime"))
+
+instance ToJSON Instance where
+        toJSON Instance'{..}
+          = object
+              (catMaybes
+                 [("etag" .=) <$> _iEtag, ("state" .=) <$> _iState,
+                  ("networks" .=) <$> _iNetworks,
+                  ("fileShares" .=) <$> _iFileShares,
+                  ("name" .=) <$> _iName,
+                  ("statusMessage" .=) <$> _iStatusMessage,
+                  ("tier" .=) <$> _iTier, ("labels" .=) <$> _iLabels,
+                  ("description" .=) <$> _iDescription,
+                  ("createTime" .=) <$> _iCreateTime])
diff --git a/gen/Network/Google/File/Types/Sum.hs b/gen/Network/Google/File/Types/Sum.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/File/Types/Sum.hs
@@ -0,0 +1,134 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE LambdaCase         #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- |
+-- Module      : Network.Google.File.Types.Sum
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+module Network.Google.File.Types.Sum where
+
+import           Network.Google.Prelude hiding (Bytes)
+
+-- | The service tier of the instance.
+data InstanceTier
+    = TierUnspecified
+      -- ^ @TIER_UNSPECIFIED@
+      -- Not set.
+    | Standard
+      -- ^ @STANDARD@
+      -- STANDARD tier.
+    | Premium
+      -- ^ @PREMIUM@
+      -- PREMIUM tier.
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable InstanceTier
+
+instance FromHttpApiData InstanceTier where
+    parseQueryParam = \case
+        "TIER_UNSPECIFIED" -> Right TierUnspecified
+        "STANDARD" -> Right Standard
+        "PREMIUM" -> Right Premium
+        x -> Left ("Unable to parse InstanceTier from: " <> x)
+
+instance ToHttpApiData InstanceTier where
+    toQueryParam = \case
+        TierUnspecified -> "TIER_UNSPECIFIED"
+        Standard -> "STANDARD"
+        Premium -> "PREMIUM"
+
+instance FromJSON InstanceTier where
+    parseJSON = parseJSONText "InstanceTier"
+
+instance ToJSON InstanceTier where
+    toJSON = toJSONText
+
+-- | V1 error format.
+data Xgafv
+    = X1
+      -- ^ @1@
+      -- v1 error format
+    | X2
+      -- ^ @2@
+      -- v2 error format
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable Xgafv
+
+instance FromHttpApiData Xgafv where
+    parseQueryParam = \case
+        "1" -> Right X1
+        "2" -> Right X2
+        x -> Left ("Unable to parse Xgafv from: " <> x)
+
+instance ToHttpApiData Xgafv where
+    toQueryParam = \case
+        X1 -> "1"
+        X2 -> "2"
+
+instance FromJSON Xgafv where
+    parseJSON = parseJSONText "Xgafv"
+
+instance ToJSON Xgafv where
+    toJSON = toJSONText
+
+-- | Output only. The instance state.
+data InstanceState
+    = StateUnspecified
+      -- ^ @STATE_UNSPECIFIED@
+      -- State not set.
+    | Creating
+      -- ^ @CREATING@
+      -- The instance is being created.
+    | Ready
+      -- ^ @READY@
+      -- The instance is available for use.
+    | Repairing
+      -- ^ @REPAIRING@
+      -- Work is being done on the instance. You can get further details from the
+      -- \`statusMessage\` field of the \`Instance\` resource.
+    | Deleting
+      -- ^ @DELETING@
+      -- The instance is shutting down.
+    | Error'
+      -- ^ @ERROR@
+      -- The instance is experiencing an issue and might be unusable. You can get
+      -- further details from the \`statusMessage\` field of the \`Instance\`
+      -- resource.
+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
+
+instance Hashable InstanceState
+
+instance FromHttpApiData InstanceState where
+    parseQueryParam = \case
+        "STATE_UNSPECIFIED" -> Right StateUnspecified
+        "CREATING" -> Right Creating
+        "READY" -> Right Ready
+        "REPAIRING" -> Right Repairing
+        "DELETING" -> Right Deleting
+        "ERROR" -> Right Error'
+        x -> Left ("Unable to parse InstanceState from: " <> x)
+
+instance ToHttpApiData InstanceState where
+    toQueryParam = \case
+        StateUnspecified -> "STATE_UNSPECIFIED"
+        Creating -> "CREATING"
+        Ready -> "READY"
+        Repairing -> "REPAIRING"
+        Deleting -> "DELETING"
+        Error' -> "ERROR"
+
+instance FromJSON InstanceState where
+    parseJSON = parseJSONText "InstanceState"
+
+instance ToJSON InstanceState where
+    toJSON = toJSONText
diff --git a/gen/Network/Google/Resource/File/Projects/Locations/Get.hs b/gen/Network/Google/Resource/File/Projects/Locations/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/File/Projects/Locations/Get.hs
@@ -0,0 +1,144 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.File.Projects.Locations.Get
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets information about a location.
+--
+-- /See:/ <https://cloud.google.com/filestore/ Cloud Filestore API Reference> for @file.projects.locations.get@.
+module Network.Google.Resource.File.Projects.Locations.Get
+    (
+    -- * REST Resource
+      ProjectsLocationsGetResource
+
+    -- * Creating a Request
+    , projectsLocationsGet
+    , ProjectsLocationsGet
+
+    -- * Request Lenses
+    , plgXgafv
+    , plgUploadProtocol
+    , plgAccessToken
+    , plgUploadType
+    , plgName
+    , plgCallback
+    ) where
+
+import           Network.Google.File.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @file.projects.locations.get@ method which the
+-- 'ProjectsLocationsGet' request conforms to.
+type ProjectsLocationsGetResource =
+     "v1beta1" :>
+       Capture "name" Text :>
+         QueryParam "$.xgafv" Xgafv :>
+           QueryParam "upload_protocol" Text :>
+             QueryParam "access_token" Text :>
+               QueryParam "uploadType" Text :>
+                 QueryParam "callback" Text :>
+                   QueryParam "alt" AltJSON :> Get '[JSON] Location
+
+-- | Gets information about a location.
+--
+-- /See:/ 'projectsLocationsGet' smart constructor.
+data ProjectsLocationsGet = ProjectsLocationsGet'
+    { _plgXgafv          :: !(Maybe Xgafv)
+    , _plgUploadProtocol :: !(Maybe Text)
+    , _plgAccessToken    :: !(Maybe Text)
+    , _plgUploadType     :: !(Maybe Text)
+    , _plgName           :: !Text
+    , _plgCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ProjectsLocationsGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'plgXgafv'
+--
+-- * 'plgUploadProtocol'
+--
+-- * 'plgAccessToken'
+--
+-- * 'plgUploadType'
+--
+-- * 'plgName'
+--
+-- * 'plgCallback'
+projectsLocationsGet
+    :: Text -- ^ 'plgName'
+    -> ProjectsLocationsGet
+projectsLocationsGet pPlgName_ =
+    ProjectsLocationsGet'
+    { _plgXgafv = Nothing
+    , _plgUploadProtocol = Nothing
+    , _plgAccessToken = Nothing
+    , _plgUploadType = Nothing
+    , _plgName = pPlgName_
+    , _plgCallback = Nothing
+    }
+
+-- | V1 error format.
+plgXgafv :: Lens' ProjectsLocationsGet (Maybe Xgafv)
+plgXgafv = lens _plgXgafv (\ s a -> s{_plgXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+plgUploadProtocol :: Lens' ProjectsLocationsGet (Maybe Text)
+plgUploadProtocol
+  = lens _plgUploadProtocol
+      (\ s a -> s{_plgUploadProtocol = a})
+
+-- | OAuth access token.
+plgAccessToken :: Lens' ProjectsLocationsGet (Maybe Text)
+plgAccessToken
+  = lens _plgAccessToken
+      (\ s a -> s{_plgAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+plgUploadType :: Lens' ProjectsLocationsGet (Maybe Text)
+plgUploadType
+  = lens _plgUploadType
+      (\ s a -> s{_plgUploadType = a})
+
+-- | Resource name for the location.
+plgName :: Lens' ProjectsLocationsGet Text
+plgName = lens _plgName (\ s a -> s{_plgName = a})
+
+-- | JSONP
+plgCallback :: Lens' ProjectsLocationsGet (Maybe Text)
+plgCallback
+  = lens _plgCallback (\ s a -> s{_plgCallback = a})
+
+instance GoogleRequest ProjectsLocationsGet where
+        type Rs ProjectsLocationsGet = Location
+        type Scopes ProjectsLocationsGet =
+             '["https://www.googleapis.com/auth/cloud-platform"]
+        requestClient ProjectsLocationsGet'{..}
+          = go _plgName _plgXgafv _plgUploadProtocol
+              _plgAccessToken
+              _plgUploadType
+              _plgCallback
+              (Just AltJSON)
+              fileService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy ProjectsLocationsGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/File/Projects/Locations/Instances/Create.hs b/gen/Network/Google/Resource/File/Projects/Locations/Instances/Create.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/File/Projects/Locations/Instances/Create.hs
@@ -0,0 +1,178 @@
+{-# 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.File.Projects.Locations.Instances.Create
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates an instance.
+--
+-- /See:/ <https://cloud.google.com/filestore/ Cloud Filestore API Reference> for @file.projects.locations.instances.create@.
+module Network.Google.Resource.File.Projects.Locations.Instances.Create
+    (
+    -- * REST Resource
+      ProjectsLocationsInstancesCreateResource
+
+    -- * Creating a Request
+    , projectsLocationsInstancesCreate
+    , ProjectsLocationsInstancesCreate
+
+    -- * Request Lenses
+    , plicParent
+    , plicInstanceId
+    , plicXgafv
+    , plicUploadProtocol
+    , plicAccessToken
+    , plicUploadType
+    , plicPayload
+    , plicCallback
+    ) where
+
+import           Network.Google.File.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @file.projects.locations.instances.create@ method which the
+-- 'ProjectsLocationsInstancesCreate' request conforms to.
+type ProjectsLocationsInstancesCreateResource =
+     "v1beta1" :>
+       Capture "parent" Text :>
+         "instances" :>
+           QueryParam "instanceId" Text :>
+             QueryParam "$.xgafv" Xgafv :>
+               QueryParam "upload_protocol" Text :>
+                 QueryParam "access_token" Text :>
+                   QueryParam "uploadType" Text :>
+                     QueryParam "callback" Text :>
+                       QueryParam "alt" AltJSON :>
+                         ReqBody '[JSON] Instance :> Post '[JSON] Operation
+
+-- | Creates an instance.
+--
+-- /See:/ 'projectsLocationsInstancesCreate' smart constructor.
+data ProjectsLocationsInstancesCreate = ProjectsLocationsInstancesCreate'
+    { _plicParent         :: !Text
+    , _plicInstanceId     :: !(Maybe Text)
+    , _plicXgafv          :: !(Maybe Xgafv)
+    , _plicUploadProtocol :: !(Maybe Text)
+    , _plicAccessToken    :: !(Maybe Text)
+    , _plicUploadType     :: !(Maybe Text)
+    , _plicPayload        :: !Instance
+    , _plicCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ProjectsLocationsInstancesCreate' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'plicParent'
+--
+-- * 'plicInstanceId'
+--
+-- * 'plicXgafv'
+--
+-- * 'plicUploadProtocol'
+--
+-- * 'plicAccessToken'
+--
+-- * 'plicUploadType'
+--
+-- * 'plicPayload'
+--
+-- * 'plicCallback'
+projectsLocationsInstancesCreate
+    :: Text -- ^ 'plicParent'
+    -> Instance -- ^ 'plicPayload'
+    -> ProjectsLocationsInstancesCreate
+projectsLocationsInstancesCreate pPlicParent_ pPlicPayload_ =
+    ProjectsLocationsInstancesCreate'
+    { _plicParent = pPlicParent_
+    , _plicInstanceId = Nothing
+    , _plicXgafv = Nothing
+    , _plicUploadProtocol = Nothing
+    , _plicAccessToken = Nothing
+    , _plicUploadType = Nothing
+    , _plicPayload = pPlicPayload_
+    , _plicCallback = Nothing
+    }
+
+-- | The instance\'s project and location, in the format
+-- projects\/{project_id}\/locations\/{location}. In Cloud Filestore,
+-- locations map to GCP zones, for example **us-west1-b**.
+plicParent :: Lens' ProjectsLocationsInstancesCreate Text
+plicParent
+  = lens _plicParent (\ s a -> s{_plicParent = a})
+
+-- | The name of the instance to create. The name must be unique for the
+-- specified project and location.
+plicInstanceId :: Lens' ProjectsLocationsInstancesCreate (Maybe Text)
+plicInstanceId
+  = lens _plicInstanceId
+      (\ s a -> s{_plicInstanceId = a})
+
+-- | V1 error format.
+plicXgafv :: Lens' ProjectsLocationsInstancesCreate (Maybe Xgafv)
+plicXgafv
+  = lens _plicXgafv (\ s a -> s{_plicXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+plicUploadProtocol :: Lens' ProjectsLocationsInstancesCreate (Maybe Text)
+plicUploadProtocol
+  = lens _plicUploadProtocol
+      (\ s a -> s{_plicUploadProtocol = a})
+
+-- | OAuth access token.
+plicAccessToken :: Lens' ProjectsLocationsInstancesCreate (Maybe Text)
+plicAccessToken
+  = lens _plicAccessToken
+      (\ s a -> s{_plicAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+plicUploadType :: Lens' ProjectsLocationsInstancesCreate (Maybe Text)
+plicUploadType
+  = lens _plicUploadType
+      (\ s a -> s{_plicUploadType = a})
+
+-- | Multipart request metadata.
+plicPayload :: Lens' ProjectsLocationsInstancesCreate Instance
+plicPayload
+  = lens _plicPayload (\ s a -> s{_plicPayload = a})
+
+-- | JSONP
+plicCallback :: Lens' ProjectsLocationsInstancesCreate (Maybe Text)
+plicCallback
+  = lens _plicCallback (\ s a -> s{_plicCallback = a})
+
+instance GoogleRequest
+         ProjectsLocationsInstancesCreate where
+        type Rs ProjectsLocationsInstancesCreate = Operation
+        type Scopes ProjectsLocationsInstancesCreate =
+             '["https://www.googleapis.com/auth/cloud-platform"]
+        requestClient ProjectsLocationsInstancesCreate'{..}
+          = go _plicParent _plicInstanceId _plicXgafv
+              _plicUploadProtocol
+              _plicAccessToken
+              _plicUploadType
+              _plicCallback
+              (Just AltJSON)
+              _plicPayload
+              fileService
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy ProjectsLocationsInstancesCreateResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/File/Projects/Locations/Instances/Delete.hs b/gen/Network/Google/Resource/File/Projects/Locations/Instances/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/File/Projects/Locations/Instances/Delete.hs
@@ -0,0 +1,148 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.File.Projects.Locations.Instances.Delete
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes an instance.
+--
+-- /See:/ <https://cloud.google.com/filestore/ Cloud Filestore API Reference> for @file.projects.locations.instances.delete@.
+module Network.Google.Resource.File.Projects.Locations.Instances.Delete
+    (
+    -- * REST Resource
+      ProjectsLocationsInstancesDeleteResource
+
+    -- * Creating a Request
+    , projectsLocationsInstancesDelete
+    , ProjectsLocationsInstancesDelete
+
+    -- * Request Lenses
+    , plidXgafv
+    , plidUploadProtocol
+    , plidAccessToken
+    , plidUploadType
+    , plidName
+    , plidCallback
+    ) where
+
+import           Network.Google.File.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @file.projects.locations.instances.delete@ method which the
+-- 'ProjectsLocationsInstancesDelete' request conforms to.
+type ProjectsLocationsInstancesDeleteResource =
+     "v1beta1" :>
+       Capture "name" Text :>
+         QueryParam "$.xgafv" Xgafv :>
+           QueryParam "upload_protocol" Text :>
+             QueryParam "access_token" Text :>
+               QueryParam "uploadType" Text :>
+                 QueryParam "callback" Text :>
+                   QueryParam "alt" AltJSON :> Delete '[JSON] Operation
+
+-- | Deletes an instance.
+--
+-- /See:/ 'projectsLocationsInstancesDelete' smart constructor.
+data ProjectsLocationsInstancesDelete = ProjectsLocationsInstancesDelete'
+    { _plidXgafv          :: !(Maybe Xgafv)
+    , _plidUploadProtocol :: !(Maybe Text)
+    , _plidAccessToken    :: !(Maybe Text)
+    , _plidUploadType     :: !(Maybe Text)
+    , _plidName           :: !Text
+    , _plidCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ProjectsLocationsInstancesDelete' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'plidXgafv'
+--
+-- * 'plidUploadProtocol'
+--
+-- * 'plidAccessToken'
+--
+-- * 'plidUploadType'
+--
+-- * 'plidName'
+--
+-- * 'plidCallback'
+projectsLocationsInstancesDelete
+    :: Text -- ^ 'plidName'
+    -> ProjectsLocationsInstancesDelete
+projectsLocationsInstancesDelete pPlidName_ =
+    ProjectsLocationsInstancesDelete'
+    { _plidXgafv = Nothing
+    , _plidUploadProtocol = Nothing
+    , _plidAccessToken = Nothing
+    , _plidUploadType = Nothing
+    , _plidName = pPlidName_
+    , _plidCallback = Nothing
+    }
+
+-- | V1 error format.
+plidXgafv :: Lens' ProjectsLocationsInstancesDelete (Maybe Xgafv)
+plidXgafv
+  = lens _plidXgafv (\ s a -> s{_plidXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+plidUploadProtocol :: Lens' ProjectsLocationsInstancesDelete (Maybe Text)
+plidUploadProtocol
+  = lens _plidUploadProtocol
+      (\ s a -> s{_plidUploadProtocol = a})
+
+-- | OAuth access token.
+plidAccessToken :: Lens' ProjectsLocationsInstancesDelete (Maybe Text)
+plidAccessToken
+  = lens _plidAccessToken
+      (\ s a -> s{_plidAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+plidUploadType :: Lens' ProjectsLocationsInstancesDelete (Maybe Text)
+plidUploadType
+  = lens _plidUploadType
+      (\ s a -> s{_plidUploadType = a})
+
+-- | The instance resource name, in the format
+-- projects\/{project_id}\/locations\/{location}\/instances\/{instance_id}
+plidName :: Lens' ProjectsLocationsInstancesDelete Text
+plidName = lens _plidName (\ s a -> s{_plidName = a})
+
+-- | JSONP
+plidCallback :: Lens' ProjectsLocationsInstancesDelete (Maybe Text)
+plidCallback
+  = lens _plidCallback (\ s a -> s{_plidCallback = a})
+
+instance GoogleRequest
+         ProjectsLocationsInstancesDelete where
+        type Rs ProjectsLocationsInstancesDelete = Operation
+        type Scopes ProjectsLocationsInstancesDelete =
+             '["https://www.googleapis.com/auth/cloud-platform"]
+        requestClient ProjectsLocationsInstancesDelete'{..}
+          = go _plidName _plidXgafv _plidUploadProtocol
+              _plidAccessToken
+              _plidUploadType
+              _plidCallback
+              (Just AltJSON)
+              fileService
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy ProjectsLocationsInstancesDeleteResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/File/Projects/Locations/Instances/Get.hs b/gen/Network/Google/Resource/File/Projects/Locations/Instances/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/File/Projects/Locations/Instances/Get.hs
@@ -0,0 +1,148 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.File.Projects.Locations.Instances.Get
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets the details of a specific instance.
+--
+-- /See:/ <https://cloud.google.com/filestore/ Cloud Filestore API Reference> for @file.projects.locations.instances.get@.
+module Network.Google.Resource.File.Projects.Locations.Instances.Get
+    (
+    -- * REST Resource
+      ProjectsLocationsInstancesGetResource
+
+    -- * Creating a Request
+    , projectsLocationsInstancesGet
+    , ProjectsLocationsInstancesGet
+
+    -- * Request Lenses
+    , pligXgafv
+    , pligUploadProtocol
+    , pligAccessToken
+    , pligUploadType
+    , pligName
+    , pligCallback
+    ) where
+
+import           Network.Google.File.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @file.projects.locations.instances.get@ method which the
+-- 'ProjectsLocationsInstancesGet' request conforms to.
+type ProjectsLocationsInstancesGetResource =
+     "v1beta1" :>
+       Capture "name" Text :>
+         QueryParam "$.xgafv" Xgafv :>
+           QueryParam "upload_protocol" Text :>
+             QueryParam "access_token" Text :>
+               QueryParam "uploadType" Text :>
+                 QueryParam "callback" Text :>
+                   QueryParam "alt" AltJSON :> Get '[JSON] Instance
+
+-- | Gets the details of a specific instance.
+--
+-- /See:/ 'projectsLocationsInstancesGet' smart constructor.
+data ProjectsLocationsInstancesGet = ProjectsLocationsInstancesGet'
+    { _pligXgafv          :: !(Maybe Xgafv)
+    , _pligUploadProtocol :: !(Maybe Text)
+    , _pligAccessToken    :: !(Maybe Text)
+    , _pligUploadType     :: !(Maybe Text)
+    , _pligName           :: !Text
+    , _pligCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ProjectsLocationsInstancesGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'pligXgafv'
+--
+-- * 'pligUploadProtocol'
+--
+-- * 'pligAccessToken'
+--
+-- * 'pligUploadType'
+--
+-- * 'pligName'
+--
+-- * 'pligCallback'
+projectsLocationsInstancesGet
+    :: Text -- ^ 'pligName'
+    -> ProjectsLocationsInstancesGet
+projectsLocationsInstancesGet pPligName_ =
+    ProjectsLocationsInstancesGet'
+    { _pligXgafv = Nothing
+    , _pligUploadProtocol = Nothing
+    , _pligAccessToken = Nothing
+    , _pligUploadType = Nothing
+    , _pligName = pPligName_
+    , _pligCallback = Nothing
+    }
+
+-- | V1 error format.
+pligXgafv :: Lens' ProjectsLocationsInstancesGet (Maybe Xgafv)
+pligXgafv
+  = lens _pligXgafv (\ s a -> s{_pligXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+pligUploadProtocol :: Lens' ProjectsLocationsInstancesGet (Maybe Text)
+pligUploadProtocol
+  = lens _pligUploadProtocol
+      (\ s a -> s{_pligUploadProtocol = a})
+
+-- | OAuth access token.
+pligAccessToken :: Lens' ProjectsLocationsInstancesGet (Maybe Text)
+pligAccessToken
+  = lens _pligAccessToken
+      (\ s a -> s{_pligAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+pligUploadType :: Lens' ProjectsLocationsInstancesGet (Maybe Text)
+pligUploadType
+  = lens _pligUploadType
+      (\ s a -> s{_pligUploadType = a})
+
+-- | The instance resource name, in the format
+-- projects\/{project_id}\/locations\/{location}\/instances\/{instance_id}.
+pligName :: Lens' ProjectsLocationsInstancesGet Text
+pligName = lens _pligName (\ s a -> s{_pligName = a})
+
+-- | JSONP
+pligCallback :: Lens' ProjectsLocationsInstancesGet (Maybe Text)
+pligCallback
+  = lens _pligCallback (\ s a -> s{_pligCallback = a})
+
+instance GoogleRequest ProjectsLocationsInstancesGet
+         where
+        type Rs ProjectsLocationsInstancesGet = Instance
+        type Scopes ProjectsLocationsInstancesGet =
+             '["https://www.googleapis.com/auth/cloud-platform"]
+        requestClient ProjectsLocationsInstancesGet'{..}
+          = go _pligName _pligXgafv _pligUploadProtocol
+              _pligAccessToken
+              _pligUploadType
+              _pligCallback
+              (Just AltJSON)
+              fileService
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy ProjectsLocationsInstancesGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/File/Projects/Locations/Instances/List.hs b/gen/Network/Google/Resource/File/Projects/Locations/Instances/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/File/Projects/Locations/Instances/List.hs
@@ -0,0 +1,209 @@
+{-# 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.File.Projects.Locations.Instances.List
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Lists all instances in a project for either a specified location or for
+-- all locations.
+--
+-- /See:/ <https://cloud.google.com/filestore/ Cloud Filestore API Reference> for @file.projects.locations.instances.list@.
+module Network.Google.Resource.File.Projects.Locations.Instances.List
+    (
+    -- * REST Resource
+      ProjectsLocationsInstancesListResource
+
+    -- * Creating a Request
+    , projectsLocationsInstancesList
+    , ProjectsLocationsInstancesList
+
+    -- * Request Lenses
+    , plilParent
+    , plilXgafv
+    , plilUploadProtocol
+    , plilOrderBy
+    , plilAccessToken
+    , plilUploadType
+    , plilFilter
+    , plilPageToken
+    , plilPageSize
+    , plilCallback
+    ) where
+
+import           Network.Google.File.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @file.projects.locations.instances.list@ method which the
+-- 'ProjectsLocationsInstancesList' request conforms to.
+type ProjectsLocationsInstancesListResource =
+     "v1beta1" :>
+       Capture "parent" Text :>
+         "instances" :>
+           QueryParam "$.xgafv" Xgafv :>
+             QueryParam "upload_protocol" Text :>
+               QueryParam "orderBy" Text :>
+                 QueryParam "access_token" Text :>
+                   QueryParam "uploadType" Text :>
+                     QueryParam "filter" Text :>
+                       QueryParam "pageToken" Text :>
+                         QueryParam "pageSize" (Textual Int32) :>
+                           QueryParam "callback" Text :>
+                             QueryParam "alt" AltJSON :>
+                               Get '[JSON] ListInstancesResponse
+
+-- | Lists all instances in a project for either a specified location or for
+-- all locations.
+--
+-- /See:/ 'projectsLocationsInstancesList' smart constructor.
+data ProjectsLocationsInstancesList = ProjectsLocationsInstancesList'
+    { _plilParent         :: !Text
+    , _plilXgafv          :: !(Maybe Xgafv)
+    , _plilUploadProtocol :: !(Maybe Text)
+    , _plilOrderBy        :: !(Maybe Text)
+    , _plilAccessToken    :: !(Maybe Text)
+    , _plilUploadType     :: !(Maybe Text)
+    , _plilFilter         :: !(Maybe Text)
+    , _plilPageToken      :: !(Maybe Text)
+    , _plilPageSize       :: !(Maybe (Textual Int32))
+    , _plilCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ProjectsLocationsInstancesList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'plilParent'
+--
+-- * 'plilXgafv'
+--
+-- * 'plilUploadProtocol'
+--
+-- * 'plilOrderBy'
+--
+-- * 'plilAccessToken'
+--
+-- * 'plilUploadType'
+--
+-- * 'plilFilter'
+--
+-- * 'plilPageToken'
+--
+-- * 'plilPageSize'
+--
+-- * 'plilCallback'
+projectsLocationsInstancesList
+    :: Text -- ^ 'plilParent'
+    -> ProjectsLocationsInstancesList
+projectsLocationsInstancesList pPlilParent_ =
+    ProjectsLocationsInstancesList'
+    { _plilParent = pPlilParent_
+    , _plilXgafv = Nothing
+    , _plilUploadProtocol = Nothing
+    , _plilOrderBy = Nothing
+    , _plilAccessToken = Nothing
+    , _plilUploadType = Nothing
+    , _plilFilter = Nothing
+    , _plilPageToken = Nothing
+    , _plilPageSize = Nothing
+    , _plilCallback = Nothing
+    }
+
+-- | The project and location for which to retrieve instance information, in
+-- the format projects\/{project_id}\/locations\/{location}. In Cloud
+-- Filestore, locations map to GCP zones, for example **us-west1-b**. To
+-- retrieve instance information for all locations, use \"-\" for the
+-- {location} value.
+plilParent :: Lens' ProjectsLocationsInstancesList Text
+plilParent
+  = lens _plilParent (\ s a -> s{_plilParent = a})
+
+-- | V1 error format.
+plilXgafv :: Lens' ProjectsLocationsInstancesList (Maybe Xgafv)
+plilXgafv
+  = lens _plilXgafv (\ s a -> s{_plilXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+plilUploadProtocol :: Lens' ProjectsLocationsInstancesList (Maybe Text)
+plilUploadProtocol
+  = lens _plilUploadProtocol
+      (\ s a -> s{_plilUploadProtocol = a})
+
+-- | Sort results. Supported values are \"name\", \"name desc\" or \"\"
+-- (unsorted).
+plilOrderBy :: Lens' ProjectsLocationsInstancesList (Maybe Text)
+plilOrderBy
+  = lens _plilOrderBy (\ s a -> s{_plilOrderBy = a})
+
+-- | OAuth access token.
+plilAccessToken :: Lens' ProjectsLocationsInstancesList (Maybe Text)
+plilAccessToken
+  = lens _plilAccessToken
+      (\ s a -> s{_plilAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+plilUploadType :: Lens' ProjectsLocationsInstancesList (Maybe Text)
+plilUploadType
+  = lens _plilUploadType
+      (\ s a -> s{_plilUploadType = a})
+
+-- | List filter.
+plilFilter :: Lens' ProjectsLocationsInstancesList (Maybe Text)
+plilFilter
+  = lens _plilFilter (\ s a -> s{_plilFilter = a})
+
+-- | The next_page_token value to use if there are additional results to
+-- retrieve for this list request.
+plilPageToken :: Lens' ProjectsLocationsInstancesList (Maybe Text)
+plilPageToken
+  = lens _plilPageToken
+      (\ s a -> s{_plilPageToken = a})
+
+-- | The maximum number of items to return.
+plilPageSize :: Lens' ProjectsLocationsInstancesList (Maybe Int32)
+plilPageSize
+  = lens _plilPageSize (\ s a -> s{_plilPageSize = a})
+      . mapping _Coerce
+
+-- | JSONP
+plilCallback :: Lens' ProjectsLocationsInstancesList (Maybe Text)
+plilCallback
+  = lens _plilCallback (\ s a -> s{_plilCallback = a})
+
+instance GoogleRequest ProjectsLocationsInstancesList
+         where
+        type Rs ProjectsLocationsInstancesList =
+             ListInstancesResponse
+        type Scopes ProjectsLocationsInstancesList =
+             '["https://www.googleapis.com/auth/cloud-platform"]
+        requestClient ProjectsLocationsInstancesList'{..}
+          = go _plilParent _plilXgafv _plilUploadProtocol
+              _plilOrderBy
+              _plilAccessToken
+              _plilUploadType
+              _plilFilter
+              _plilPageToken
+              _plilPageSize
+              _plilCallback
+              (Just AltJSON)
+              fileService
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy ProjectsLocationsInstancesListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/File/Projects/Locations/Instances/Patch.hs b/gen/Network/Google/Resource/File/Projects/Locations/Instances/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/File/Projects/Locations/Instances/Patch.hs
@@ -0,0 +1,176 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.File.Projects.Locations.Instances.Patch
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates the settings of a specific instance.
+--
+-- /See:/ <https://cloud.google.com/filestore/ Cloud Filestore API Reference> for @file.projects.locations.instances.patch@.
+module Network.Google.Resource.File.Projects.Locations.Instances.Patch
+    (
+    -- * REST Resource
+      ProjectsLocationsInstancesPatchResource
+
+    -- * Creating a Request
+    , projectsLocationsInstancesPatch
+    , ProjectsLocationsInstancesPatch
+
+    -- * Request Lenses
+    , plipXgafv
+    , plipUploadProtocol
+    , plipUpdateMask
+    , plipAccessToken
+    , plipUploadType
+    , plipPayload
+    , plipName
+    , plipCallback
+    ) where
+
+import           Network.Google.File.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @file.projects.locations.instances.patch@ method which the
+-- 'ProjectsLocationsInstancesPatch' request conforms to.
+type ProjectsLocationsInstancesPatchResource =
+     "v1beta1" :>
+       Capture "name" Text :>
+         QueryParam "$.xgafv" Xgafv :>
+           QueryParam "upload_protocol" Text :>
+             QueryParam "updateMask" GFieldMask :>
+               QueryParam "access_token" Text :>
+                 QueryParam "uploadType" Text :>
+                   QueryParam "callback" Text :>
+                     QueryParam "alt" AltJSON :>
+                       ReqBody '[JSON] Instance :> Patch '[JSON] Operation
+
+-- | Updates the settings of a specific instance.
+--
+-- /See:/ 'projectsLocationsInstancesPatch' smart constructor.
+data ProjectsLocationsInstancesPatch = ProjectsLocationsInstancesPatch'
+    { _plipXgafv          :: !(Maybe Xgafv)
+    , _plipUploadProtocol :: !(Maybe Text)
+    , _plipUpdateMask     :: !(Maybe GFieldMask)
+    , _plipAccessToken    :: !(Maybe Text)
+    , _plipUploadType     :: !(Maybe Text)
+    , _plipPayload        :: !Instance
+    , _plipName           :: !Text
+    , _plipCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ProjectsLocationsInstancesPatch' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'plipXgafv'
+--
+-- * 'plipUploadProtocol'
+--
+-- * 'plipUpdateMask'
+--
+-- * 'plipAccessToken'
+--
+-- * 'plipUploadType'
+--
+-- * 'plipPayload'
+--
+-- * 'plipName'
+--
+-- * 'plipCallback'
+projectsLocationsInstancesPatch
+    :: Instance -- ^ 'plipPayload'
+    -> Text -- ^ 'plipName'
+    -> ProjectsLocationsInstancesPatch
+projectsLocationsInstancesPatch pPlipPayload_ pPlipName_ =
+    ProjectsLocationsInstancesPatch'
+    { _plipXgafv = Nothing
+    , _plipUploadProtocol = Nothing
+    , _plipUpdateMask = Nothing
+    , _plipAccessToken = Nothing
+    , _plipUploadType = Nothing
+    , _plipPayload = pPlipPayload_
+    , _plipName = pPlipName_
+    , _plipCallback = Nothing
+    }
+
+-- | V1 error format.
+plipXgafv :: Lens' ProjectsLocationsInstancesPatch (Maybe Xgafv)
+plipXgafv
+  = lens _plipXgafv (\ s a -> s{_plipXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+plipUploadProtocol :: Lens' ProjectsLocationsInstancesPatch (Maybe Text)
+plipUploadProtocol
+  = lens _plipUploadProtocol
+      (\ s a -> s{_plipUploadProtocol = a})
+
+-- | Mask of fields to update. At least one path must be supplied in this
+-- field. The elements of the repeated paths field may only include these
+-- fields: \"description\"
+plipUpdateMask :: Lens' ProjectsLocationsInstancesPatch (Maybe GFieldMask)
+plipUpdateMask
+  = lens _plipUpdateMask
+      (\ s a -> s{_plipUpdateMask = a})
+
+-- | OAuth access token.
+plipAccessToken :: Lens' ProjectsLocationsInstancesPatch (Maybe Text)
+plipAccessToken
+  = lens _plipAccessToken
+      (\ s a -> s{_plipAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+plipUploadType :: Lens' ProjectsLocationsInstancesPatch (Maybe Text)
+plipUploadType
+  = lens _plipUploadType
+      (\ s a -> s{_plipUploadType = a})
+
+-- | Multipart request metadata.
+plipPayload :: Lens' ProjectsLocationsInstancesPatch Instance
+plipPayload
+  = lens _plipPayload (\ s a -> s{_plipPayload = a})
+
+-- | Output only. The resource name of the instance, in the format
+-- projects\/{project_id}\/locations\/{location_id}\/instances\/{instance_id}.
+plipName :: Lens' ProjectsLocationsInstancesPatch Text
+plipName = lens _plipName (\ s a -> s{_plipName = a})
+
+-- | JSONP
+plipCallback :: Lens' ProjectsLocationsInstancesPatch (Maybe Text)
+plipCallback
+  = lens _plipCallback (\ s a -> s{_plipCallback = a})
+
+instance GoogleRequest
+         ProjectsLocationsInstancesPatch where
+        type Rs ProjectsLocationsInstancesPatch = Operation
+        type Scopes ProjectsLocationsInstancesPatch =
+             '["https://www.googleapis.com/auth/cloud-platform"]
+        requestClient ProjectsLocationsInstancesPatch'{..}
+          = go _plipName _plipXgafv _plipUploadProtocol
+              _plipUpdateMask
+              _plipAccessToken
+              _plipUploadType
+              _plipCallback
+              (Just AltJSON)
+              _plipPayload
+              fileService
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy ProjectsLocationsInstancesPatchResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/File/Projects/Locations/List.hs b/gen/Network/Google/Resource/File/Projects/Locations/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/File/Projects/Locations/List.hs
@@ -0,0 +1,183 @@
+{-# 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.File.Projects.Locations.List
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Lists information about the supported locations for this service.
+--
+-- /See:/ <https://cloud.google.com/filestore/ Cloud Filestore API Reference> for @file.projects.locations.list@.
+module Network.Google.Resource.File.Projects.Locations.List
+    (
+    -- * REST Resource
+      ProjectsLocationsListResource
+
+    -- * Creating a Request
+    , projectsLocationsList
+    , ProjectsLocationsList
+
+    -- * Request Lenses
+    , pllXgafv
+    , pllUploadProtocol
+    , pllAccessToken
+    , pllUploadType
+    , pllName
+    , pllFilter
+    , pllPageToken
+    , pllPageSize
+    , pllCallback
+    ) where
+
+import           Network.Google.File.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @file.projects.locations.list@ method which the
+-- 'ProjectsLocationsList' request conforms to.
+type ProjectsLocationsListResource =
+     "v1beta1" :>
+       Capture "name" Text :>
+         "locations" :>
+           QueryParam "$.xgafv" Xgafv :>
+             QueryParam "upload_protocol" Text :>
+               QueryParam "access_token" Text :>
+                 QueryParam "uploadType" Text :>
+                   QueryParam "filter" Text :>
+                     QueryParam "pageToken" Text :>
+                       QueryParam "pageSize" (Textual Int32) :>
+                         QueryParam "callback" Text :>
+                           QueryParam "alt" AltJSON :>
+                             Get '[JSON] ListLocationsResponse
+
+-- | Lists information about the supported locations for this service.
+--
+-- /See:/ 'projectsLocationsList' smart constructor.
+data ProjectsLocationsList = ProjectsLocationsList'
+    { _pllXgafv          :: !(Maybe Xgafv)
+    , _pllUploadProtocol :: !(Maybe Text)
+    , _pllAccessToken    :: !(Maybe Text)
+    , _pllUploadType     :: !(Maybe Text)
+    , _pllName           :: !Text
+    , _pllFilter         :: !(Maybe Text)
+    , _pllPageToken      :: !(Maybe Text)
+    , _pllPageSize       :: !(Maybe (Textual Int32))
+    , _pllCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ProjectsLocationsList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'pllXgafv'
+--
+-- * 'pllUploadProtocol'
+--
+-- * 'pllAccessToken'
+--
+-- * 'pllUploadType'
+--
+-- * 'pllName'
+--
+-- * 'pllFilter'
+--
+-- * 'pllPageToken'
+--
+-- * 'pllPageSize'
+--
+-- * 'pllCallback'
+projectsLocationsList
+    :: Text -- ^ 'pllName'
+    -> ProjectsLocationsList
+projectsLocationsList pPllName_ =
+    ProjectsLocationsList'
+    { _pllXgafv = Nothing
+    , _pllUploadProtocol = Nothing
+    , _pllAccessToken = Nothing
+    , _pllUploadType = Nothing
+    , _pllName = pPllName_
+    , _pllFilter = Nothing
+    , _pllPageToken = Nothing
+    , _pllPageSize = Nothing
+    , _pllCallback = Nothing
+    }
+
+-- | V1 error format.
+pllXgafv :: Lens' ProjectsLocationsList (Maybe Xgafv)
+pllXgafv = lens _pllXgafv (\ s a -> s{_pllXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+pllUploadProtocol :: Lens' ProjectsLocationsList (Maybe Text)
+pllUploadProtocol
+  = lens _pllUploadProtocol
+      (\ s a -> s{_pllUploadProtocol = a})
+
+-- | OAuth access token.
+pllAccessToken :: Lens' ProjectsLocationsList (Maybe Text)
+pllAccessToken
+  = lens _pllAccessToken
+      (\ s a -> s{_pllAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+pllUploadType :: Lens' ProjectsLocationsList (Maybe Text)
+pllUploadType
+  = lens _pllUploadType
+      (\ s a -> s{_pllUploadType = a})
+
+-- | The resource that owns the locations collection, if applicable.
+pllName :: Lens' ProjectsLocationsList Text
+pllName = lens _pllName (\ s a -> s{_pllName = a})
+
+-- | The standard list filter.
+pllFilter :: Lens' ProjectsLocationsList (Maybe Text)
+pllFilter
+  = lens _pllFilter (\ s a -> s{_pllFilter = a})
+
+-- | The standard list page token.
+pllPageToken :: Lens' ProjectsLocationsList (Maybe Text)
+pllPageToken
+  = lens _pllPageToken (\ s a -> s{_pllPageToken = a})
+
+-- | The standard list page size.
+pllPageSize :: Lens' ProjectsLocationsList (Maybe Int32)
+pllPageSize
+  = lens _pllPageSize (\ s a -> s{_pllPageSize = a}) .
+      mapping _Coerce
+
+-- | JSONP
+pllCallback :: Lens' ProjectsLocationsList (Maybe Text)
+pllCallback
+  = lens _pllCallback (\ s a -> s{_pllCallback = a})
+
+instance GoogleRequest ProjectsLocationsList where
+        type Rs ProjectsLocationsList = ListLocationsResponse
+        type Scopes ProjectsLocationsList =
+             '["https://www.googleapis.com/auth/cloud-platform"]
+        requestClient ProjectsLocationsList'{..}
+          = go _pllName _pllXgafv _pllUploadProtocol
+              _pllAccessToken
+              _pllUploadType
+              _pllFilter
+              _pllPageToken
+              _pllPageSize
+              _pllCallback
+              (Just AltJSON)
+              fileService
+          where go
+                  = buildClient
+                      (Proxy :: Proxy ProjectsLocationsListResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/File/Projects/Locations/Operations/Cancel.hs b/gen/Network/Google/Resource/File/Projects/Locations/Operations/Cancel.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/File/Projects/Locations/Operations/Cancel.hs
@@ -0,0 +1,177 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.File.Projects.Locations.Operations.Cancel
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Starts asynchronous cancellation on a long-running operation. The server
+-- makes a best effort to cancel the operation, but success is not
+-- guaranteed. If the server doesn\'t support this method, it returns
+-- \`google.rpc.Code.UNIMPLEMENTED\`. Clients can use
+-- Operations.GetOperation or other methods to check whether the
+-- cancellation succeeded or whether the operation completed despite
+-- cancellation. On successful cancellation, the operation is not deleted;
+-- instead, it becomes an operation with an Operation.error value with a
+-- google.rpc.Status.code of 1, corresponding to \`Code.CANCELLED\`.
+--
+-- /See:/ <https://cloud.google.com/filestore/ Cloud Filestore API Reference> for @file.projects.locations.operations.cancel@.
+module Network.Google.Resource.File.Projects.Locations.Operations.Cancel
+    (
+    -- * REST Resource
+      ProjectsLocationsOperationsCancelResource
+
+    -- * Creating a Request
+    , projectsLocationsOperationsCancel
+    , ProjectsLocationsOperationsCancel
+
+    -- * Request Lenses
+    , plocXgafv
+    , plocUploadProtocol
+    , plocAccessToken
+    , plocUploadType
+    , plocPayload
+    , plocName
+    , plocCallback
+    ) where
+
+import           Network.Google.File.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @file.projects.locations.operations.cancel@ method which the
+-- 'ProjectsLocationsOperationsCancel' request conforms to.
+type ProjectsLocationsOperationsCancelResource =
+     "v1beta1" :>
+       CaptureMode "name" "cancel" Text :>
+         QueryParam "$.xgafv" Xgafv :>
+           QueryParam "upload_protocol" Text :>
+             QueryParam "access_token" Text :>
+               QueryParam "uploadType" Text :>
+                 QueryParam "callback" Text :>
+                   QueryParam "alt" AltJSON :>
+                     ReqBody '[JSON] CancelOperationRequest :>
+                       Post '[JSON] Empty
+
+-- | Starts asynchronous cancellation on a long-running operation. The server
+-- makes a best effort to cancel the operation, but success is not
+-- guaranteed. If the server doesn\'t support this method, it returns
+-- \`google.rpc.Code.UNIMPLEMENTED\`. Clients can use
+-- Operations.GetOperation or other methods to check whether the
+-- cancellation succeeded or whether the operation completed despite
+-- cancellation. On successful cancellation, the operation is not deleted;
+-- instead, it becomes an operation with an Operation.error value with a
+-- google.rpc.Status.code of 1, corresponding to \`Code.CANCELLED\`.
+--
+-- /See:/ 'projectsLocationsOperationsCancel' smart constructor.
+data ProjectsLocationsOperationsCancel = ProjectsLocationsOperationsCancel'
+    { _plocXgafv          :: !(Maybe Xgafv)
+    , _plocUploadProtocol :: !(Maybe Text)
+    , _plocAccessToken    :: !(Maybe Text)
+    , _plocUploadType     :: !(Maybe Text)
+    , _plocPayload        :: !CancelOperationRequest
+    , _plocName           :: !Text
+    , _plocCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ProjectsLocationsOperationsCancel' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'plocXgafv'
+--
+-- * 'plocUploadProtocol'
+--
+-- * 'plocAccessToken'
+--
+-- * 'plocUploadType'
+--
+-- * 'plocPayload'
+--
+-- * 'plocName'
+--
+-- * 'plocCallback'
+projectsLocationsOperationsCancel
+    :: CancelOperationRequest -- ^ 'plocPayload'
+    -> Text -- ^ 'plocName'
+    -> ProjectsLocationsOperationsCancel
+projectsLocationsOperationsCancel pPlocPayload_ pPlocName_ =
+    ProjectsLocationsOperationsCancel'
+    { _plocXgafv = Nothing
+    , _plocUploadProtocol = Nothing
+    , _plocAccessToken = Nothing
+    , _plocUploadType = Nothing
+    , _plocPayload = pPlocPayload_
+    , _plocName = pPlocName_
+    , _plocCallback = Nothing
+    }
+
+-- | V1 error format.
+plocXgafv :: Lens' ProjectsLocationsOperationsCancel (Maybe Xgafv)
+plocXgafv
+  = lens _plocXgafv (\ s a -> s{_plocXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+plocUploadProtocol :: Lens' ProjectsLocationsOperationsCancel (Maybe Text)
+plocUploadProtocol
+  = lens _plocUploadProtocol
+      (\ s a -> s{_plocUploadProtocol = a})
+
+-- | OAuth access token.
+plocAccessToken :: Lens' ProjectsLocationsOperationsCancel (Maybe Text)
+plocAccessToken
+  = lens _plocAccessToken
+      (\ s a -> s{_plocAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+plocUploadType :: Lens' ProjectsLocationsOperationsCancel (Maybe Text)
+plocUploadType
+  = lens _plocUploadType
+      (\ s a -> s{_plocUploadType = a})
+
+-- | Multipart request metadata.
+plocPayload :: Lens' ProjectsLocationsOperationsCancel CancelOperationRequest
+plocPayload
+  = lens _plocPayload (\ s a -> s{_plocPayload = a})
+
+-- | The name of the operation resource to be cancelled.
+plocName :: Lens' ProjectsLocationsOperationsCancel Text
+plocName = lens _plocName (\ s a -> s{_plocName = a})
+
+-- | JSONP
+plocCallback :: Lens' ProjectsLocationsOperationsCancel (Maybe Text)
+plocCallback
+  = lens _plocCallback (\ s a -> s{_plocCallback = a})
+
+instance GoogleRequest
+         ProjectsLocationsOperationsCancel where
+        type Rs ProjectsLocationsOperationsCancel = Empty
+        type Scopes ProjectsLocationsOperationsCancel =
+             '["https://www.googleapis.com/auth/cloud-platform"]
+        requestClient ProjectsLocationsOperationsCancel'{..}
+          = go _plocName _plocXgafv _plocUploadProtocol
+              _plocAccessToken
+              _plocUploadType
+              _plocCallback
+              (Just AltJSON)
+              _plocPayload
+              fileService
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy ProjectsLocationsOperationsCancelResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/File/Projects/Locations/Operations/Delete.hs b/gen/Network/Google/Resource/File/Projects/Locations/Operations/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/File/Projects/Locations/Operations/Delete.hs
@@ -0,0 +1,153 @@
+{-# LANGUAGE DataKinds          #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE NoImplicitPrelude  #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+{-# LANGUAGE TypeOperators      #-}
+
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
+
+-- |
+-- Module      : Network.Google.Resource.File.Projects.Locations.Operations.Delete
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes a long-running operation. This method indicates that the client
+-- is no longer interested in the operation result. It does not cancel the
+-- operation. If the server doesn\'t support this method, it returns
+-- \`google.rpc.Code.UNIMPLEMENTED\`.
+--
+-- /See:/ <https://cloud.google.com/filestore/ Cloud Filestore API Reference> for @file.projects.locations.operations.delete@.
+module Network.Google.Resource.File.Projects.Locations.Operations.Delete
+    (
+    -- * REST Resource
+      ProjectsLocationsOperationsDeleteResource
+
+    -- * Creating a Request
+    , projectsLocationsOperationsDelete
+    , ProjectsLocationsOperationsDelete
+
+    -- * Request Lenses
+    , plodXgafv
+    , plodUploadProtocol
+    , plodAccessToken
+    , plodUploadType
+    , plodName
+    , plodCallback
+    ) where
+
+import           Network.Google.File.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @file.projects.locations.operations.delete@ method which the
+-- 'ProjectsLocationsOperationsDelete' request conforms to.
+type ProjectsLocationsOperationsDeleteResource =
+     "v1beta1" :>
+       Capture "name" Text :>
+         QueryParam "$.xgafv" Xgafv :>
+           QueryParam "upload_protocol" Text :>
+             QueryParam "access_token" Text :>
+               QueryParam "uploadType" Text :>
+                 QueryParam "callback" Text :>
+                   QueryParam "alt" AltJSON :> Delete '[JSON] Empty
+
+-- | Deletes a long-running operation. This method indicates that the client
+-- is no longer interested in the operation result. It does not cancel the
+-- operation. If the server doesn\'t support this method, it returns
+-- \`google.rpc.Code.UNIMPLEMENTED\`.
+--
+-- /See:/ 'projectsLocationsOperationsDelete' smart constructor.
+data ProjectsLocationsOperationsDelete = ProjectsLocationsOperationsDelete'
+    { _plodXgafv          :: !(Maybe Xgafv)
+    , _plodUploadProtocol :: !(Maybe Text)
+    , _plodAccessToken    :: !(Maybe Text)
+    , _plodUploadType     :: !(Maybe Text)
+    , _plodName           :: !Text
+    , _plodCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ProjectsLocationsOperationsDelete' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'plodXgafv'
+--
+-- * 'plodUploadProtocol'
+--
+-- * 'plodAccessToken'
+--
+-- * 'plodUploadType'
+--
+-- * 'plodName'
+--
+-- * 'plodCallback'
+projectsLocationsOperationsDelete
+    :: Text -- ^ 'plodName'
+    -> ProjectsLocationsOperationsDelete
+projectsLocationsOperationsDelete pPlodName_ =
+    ProjectsLocationsOperationsDelete'
+    { _plodXgafv = Nothing
+    , _plodUploadProtocol = Nothing
+    , _plodAccessToken = Nothing
+    , _plodUploadType = Nothing
+    , _plodName = pPlodName_
+    , _plodCallback = Nothing
+    }
+
+-- | V1 error format.
+plodXgafv :: Lens' ProjectsLocationsOperationsDelete (Maybe Xgafv)
+plodXgafv
+  = lens _plodXgafv (\ s a -> s{_plodXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+plodUploadProtocol :: Lens' ProjectsLocationsOperationsDelete (Maybe Text)
+plodUploadProtocol
+  = lens _plodUploadProtocol
+      (\ s a -> s{_plodUploadProtocol = a})
+
+-- | OAuth access token.
+plodAccessToken :: Lens' ProjectsLocationsOperationsDelete (Maybe Text)
+plodAccessToken
+  = lens _plodAccessToken
+      (\ s a -> s{_plodAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+plodUploadType :: Lens' ProjectsLocationsOperationsDelete (Maybe Text)
+plodUploadType
+  = lens _plodUploadType
+      (\ s a -> s{_plodUploadType = a})
+
+-- | The name of the operation resource to be deleted.
+plodName :: Lens' ProjectsLocationsOperationsDelete Text
+plodName = lens _plodName (\ s a -> s{_plodName = a})
+
+-- | JSONP
+plodCallback :: Lens' ProjectsLocationsOperationsDelete (Maybe Text)
+plodCallback
+  = lens _plodCallback (\ s a -> s{_plodCallback = a})
+
+instance GoogleRequest
+         ProjectsLocationsOperationsDelete where
+        type Rs ProjectsLocationsOperationsDelete = Empty
+        type Scopes ProjectsLocationsOperationsDelete =
+             '["https://www.googleapis.com/auth/cloud-platform"]
+        requestClient ProjectsLocationsOperationsDelete'{..}
+          = go _plodName _plodXgafv _plodUploadProtocol
+              _plodAccessToken
+              _plodUploadType
+              _plodCallback
+              (Just AltJSON)
+              fileService
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy ProjectsLocationsOperationsDeleteResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/File/Projects/Locations/Operations/Get.hs b/gen/Network/Google/Resource/File/Projects/Locations/Operations/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/File/Projects/Locations/Operations/Get.hs
@@ -0,0 +1,151 @@
+{-# 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.File.Projects.Locations.Operations.Get
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets the latest state of a long-running operation. Clients can use this
+-- method to poll the operation result at intervals as recommended by the
+-- API service.
+--
+-- /See:/ <https://cloud.google.com/filestore/ Cloud Filestore API Reference> for @file.projects.locations.operations.get@.
+module Network.Google.Resource.File.Projects.Locations.Operations.Get
+    (
+    -- * REST Resource
+      ProjectsLocationsOperationsGetResource
+
+    -- * Creating a Request
+    , projectsLocationsOperationsGet
+    , ProjectsLocationsOperationsGet
+
+    -- * Request Lenses
+    , plogXgafv
+    , plogUploadProtocol
+    , plogAccessToken
+    , plogUploadType
+    , plogName
+    , plogCallback
+    ) where
+
+import           Network.Google.File.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @file.projects.locations.operations.get@ method which the
+-- 'ProjectsLocationsOperationsGet' request conforms to.
+type ProjectsLocationsOperationsGetResource =
+     "v1beta1" :>
+       Capture "name" Text :>
+         QueryParam "$.xgafv" Xgafv :>
+           QueryParam "upload_protocol" Text :>
+             QueryParam "access_token" Text :>
+               QueryParam "uploadType" Text :>
+                 QueryParam "callback" Text :>
+                   QueryParam "alt" AltJSON :> Get '[JSON] Operation
+
+-- | Gets the latest state of a long-running operation. Clients can use this
+-- method to poll the operation result at intervals as recommended by the
+-- API service.
+--
+-- /See:/ 'projectsLocationsOperationsGet' smart constructor.
+data ProjectsLocationsOperationsGet = ProjectsLocationsOperationsGet'
+    { _plogXgafv          :: !(Maybe Xgafv)
+    , _plogUploadProtocol :: !(Maybe Text)
+    , _plogAccessToken    :: !(Maybe Text)
+    , _plogUploadType     :: !(Maybe Text)
+    , _plogName           :: !Text
+    , _plogCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ProjectsLocationsOperationsGet' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'plogXgafv'
+--
+-- * 'plogUploadProtocol'
+--
+-- * 'plogAccessToken'
+--
+-- * 'plogUploadType'
+--
+-- * 'plogName'
+--
+-- * 'plogCallback'
+projectsLocationsOperationsGet
+    :: Text -- ^ 'plogName'
+    -> ProjectsLocationsOperationsGet
+projectsLocationsOperationsGet pPlogName_ =
+    ProjectsLocationsOperationsGet'
+    { _plogXgafv = Nothing
+    , _plogUploadProtocol = Nothing
+    , _plogAccessToken = Nothing
+    , _plogUploadType = Nothing
+    , _plogName = pPlogName_
+    , _plogCallback = Nothing
+    }
+
+-- | V1 error format.
+plogXgafv :: Lens' ProjectsLocationsOperationsGet (Maybe Xgafv)
+plogXgafv
+  = lens _plogXgafv (\ s a -> s{_plogXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+plogUploadProtocol :: Lens' ProjectsLocationsOperationsGet (Maybe Text)
+plogUploadProtocol
+  = lens _plogUploadProtocol
+      (\ s a -> s{_plogUploadProtocol = a})
+
+-- | OAuth access token.
+plogAccessToken :: Lens' ProjectsLocationsOperationsGet (Maybe Text)
+plogAccessToken
+  = lens _plogAccessToken
+      (\ s a -> s{_plogAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+plogUploadType :: Lens' ProjectsLocationsOperationsGet (Maybe Text)
+plogUploadType
+  = lens _plogUploadType
+      (\ s a -> s{_plogUploadType = a})
+
+-- | The name of the operation resource.
+plogName :: Lens' ProjectsLocationsOperationsGet Text
+plogName = lens _plogName (\ s a -> s{_plogName = a})
+
+-- | JSONP
+plogCallback :: Lens' ProjectsLocationsOperationsGet (Maybe Text)
+plogCallback
+  = lens _plogCallback (\ s a -> s{_plogCallback = a})
+
+instance GoogleRequest ProjectsLocationsOperationsGet
+         where
+        type Rs ProjectsLocationsOperationsGet = Operation
+        type Scopes ProjectsLocationsOperationsGet =
+             '["https://www.googleapis.com/auth/cloud-platform"]
+        requestClient ProjectsLocationsOperationsGet'{..}
+          = go _plogName _plogXgafv _plogUploadProtocol
+              _plogAccessToken
+              _plogUploadType
+              _plogCallback
+              (Just AltJSON)
+              fileService
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy ProjectsLocationsOperationsGetResource)
+                      mempty
diff --git a/gen/Network/Google/Resource/File/Projects/Locations/Operations/List.hs b/gen/Network/Google/Resource/File/Projects/Locations/Operations/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/Google/Resource/File/Projects/Locations/Operations/List.hs
@@ -0,0 +1,206 @@
+{-# 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.File.Projects.Locations.Operations.List
+-- Copyright   : (c) 2015-2016 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Lists operations that match the specified filter in the request. If the
+-- server doesn\'t support this method, it returns \`UNIMPLEMENTED\`. NOTE:
+-- the \`name\` binding allows API services to override the binding to use
+-- different resource name schemes, such as \`users\/*\/operations\`. To
+-- override the binding, API services can add a binding such as
+-- \`\"\/v1\/{name=users\/*}\/operations\"\` to their service
+-- configuration. For backwards compatibility, the default name includes
+-- the operations collection id, however overriding users must ensure the
+-- name binding is the parent resource, without the operations collection
+-- id.
+--
+-- /See:/ <https://cloud.google.com/filestore/ Cloud Filestore API Reference> for @file.projects.locations.operations.list@.
+module Network.Google.Resource.File.Projects.Locations.Operations.List
+    (
+    -- * REST Resource
+      ProjectsLocationsOperationsListResource
+
+    -- * Creating a Request
+    , projectsLocationsOperationsList
+    , ProjectsLocationsOperationsList
+
+    -- * Request Lenses
+    , plolXgafv
+    , plolUploadProtocol
+    , plolAccessToken
+    , plolUploadType
+    , plolName
+    , plolFilter
+    , plolPageToken
+    , plolPageSize
+    , plolCallback
+    ) where
+
+import           Network.Google.File.Types
+import           Network.Google.Prelude
+
+-- | A resource alias for @file.projects.locations.operations.list@ method which the
+-- 'ProjectsLocationsOperationsList' request conforms to.
+type ProjectsLocationsOperationsListResource =
+     "v1beta1" :>
+       Capture "name" Text :>
+         "operations" :>
+           QueryParam "$.xgafv" Xgafv :>
+             QueryParam "upload_protocol" Text :>
+               QueryParam "access_token" Text :>
+                 QueryParam "uploadType" Text :>
+                   QueryParam "filter" Text :>
+                     QueryParam "pageToken" Text :>
+                       QueryParam "pageSize" (Textual Int32) :>
+                         QueryParam "callback" Text :>
+                           QueryParam "alt" AltJSON :>
+                             Get '[JSON] ListOperationsResponse
+
+-- | Lists operations that match the specified filter in the request. If the
+-- server doesn\'t support this method, it returns \`UNIMPLEMENTED\`. NOTE:
+-- the \`name\` binding allows API services to override the binding to use
+-- different resource name schemes, such as \`users\/*\/operations\`. To
+-- override the binding, API services can add a binding such as
+-- \`\"\/v1\/{name=users\/*}\/operations\"\` to their service
+-- configuration. For backwards compatibility, the default name includes
+-- the operations collection id, however overriding users must ensure the
+-- name binding is the parent resource, without the operations collection
+-- id.
+--
+-- /See:/ 'projectsLocationsOperationsList' smart constructor.
+data ProjectsLocationsOperationsList = ProjectsLocationsOperationsList'
+    { _plolXgafv          :: !(Maybe Xgafv)
+    , _plolUploadProtocol :: !(Maybe Text)
+    , _plolAccessToken    :: !(Maybe Text)
+    , _plolUploadType     :: !(Maybe Text)
+    , _plolName           :: !Text
+    , _plolFilter         :: !(Maybe Text)
+    , _plolPageToken      :: !(Maybe Text)
+    , _plolPageSize       :: !(Maybe (Textual Int32))
+    , _plolCallback       :: !(Maybe Text)
+    } deriving (Eq,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ProjectsLocationsOperationsList' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'plolXgafv'
+--
+-- * 'plolUploadProtocol'
+--
+-- * 'plolAccessToken'
+--
+-- * 'plolUploadType'
+--
+-- * 'plolName'
+--
+-- * 'plolFilter'
+--
+-- * 'plolPageToken'
+--
+-- * 'plolPageSize'
+--
+-- * 'plolCallback'
+projectsLocationsOperationsList
+    :: Text -- ^ 'plolName'
+    -> ProjectsLocationsOperationsList
+projectsLocationsOperationsList pPlolName_ =
+    ProjectsLocationsOperationsList'
+    { _plolXgafv = Nothing
+    , _plolUploadProtocol = Nothing
+    , _plolAccessToken = Nothing
+    , _plolUploadType = Nothing
+    , _plolName = pPlolName_
+    , _plolFilter = Nothing
+    , _plolPageToken = Nothing
+    , _plolPageSize = Nothing
+    , _plolCallback = Nothing
+    }
+
+-- | V1 error format.
+plolXgafv :: Lens' ProjectsLocationsOperationsList (Maybe Xgafv)
+plolXgafv
+  = lens _plolXgafv (\ s a -> s{_plolXgafv = a})
+
+-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+plolUploadProtocol :: Lens' ProjectsLocationsOperationsList (Maybe Text)
+plolUploadProtocol
+  = lens _plolUploadProtocol
+      (\ s a -> s{_plolUploadProtocol = a})
+
+-- | OAuth access token.
+plolAccessToken :: Lens' ProjectsLocationsOperationsList (Maybe Text)
+plolAccessToken
+  = lens _plolAccessToken
+      (\ s a -> s{_plolAccessToken = a})
+
+-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+plolUploadType :: Lens' ProjectsLocationsOperationsList (Maybe Text)
+plolUploadType
+  = lens _plolUploadType
+      (\ s a -> s{_plolUploadType = a})
+
+-- | The name of the operation\'s parent resource.
+plolName :: Lens' ProjectsLocationsOperationsList Text
+plolName = lens _plolName (\ s a -> s{_plolName = a})
+
+-- | The standard list filter.
+plolFilter :: Lens' ProjectsLocationsOperationsList (Maybe Text)
+plolFilter
+  = lens _plolFilter (\ s a -> s{_plolFilter = a})
+
+-- | The standard list page token.
+plolPageToken :: Lens' ProjectsLocationsOperationsList (Maybe Text)
+plolPageToken
+  = lens _plolPageToken
+      (\ s a -> s{_plolPageToken = a})
+
+-- | The standard list page size.
+plolPageSize :: Lens' ProjectsLocationsOperationsList (Maybe Int32)
+plolPageSize
+  = lens _plolPageSize (\ s a -> s{_plolPageSize = a})
+      . mapping _Coerce
+
+-- | JSONP
+plolCallback :: Lens' ProjectsLocationsOperationsList (Maybe Text)
+plolCallback
+  = lens _plolCallback (\ s a -> s{_plolCallback = a})
+
+instance GoogleRequest
+         ProjectsLocationsOperationsList where
+        type Rs ProjectsLocationsOperationsList =
+             ListOperationsResponse
+        type Scopes ProjectsLocationsOperationsList =
+             '["https://www.googleapis.com/auth/cloud-platform"]
+        requestClient ProjectsLocationsOperationsList'{..}
+          = go _plolName _plolXgafv _plolUploadProtocol
+              _plolAccessToken
+              _plolUploadType
+              _plolFilter
+              _plolPageToken
+              _plolPageSize
+              _plolCallback
+              (Just AltJSON)
+              fileService
+          where go
+                  = buildClient
+                      (Proxy ::
+                         Proxy ProjectsLocationsOperationsListResource)
+                      mempty
diff --git a/gogol-file.cabal b/gogol-file.cabal
new file mode 100644
--- /dev/null
+++ b/gogol-file.cabal
@@ -0,0 +1,57 @@
+name:                  gogol-file
+version:               0.4.0
+synopsis:              Google Cloud Filestore SDK.
+homepage:              https://github.com/brendanhay/gogol
+bug-reports:           https://github.com/brendanhay/gogol/issues
+license:               OtherLicense
+license-file:          LICENSE
+author:                Brendan Hay
+maintainer:            Brendan Hay <brendan.g.hay@gmail.com>
+copyright:             Copyright (c) 2015-2016 Brendan Hay
+category:              Network, Google, Cloud
+build-type:            Simple
+cabal-version:         >= 1.10
+extra-source-files:    README.md src/.gitkeep
+
+description:
+    The Cloud Filestore API is used for creating and managing cloud file
+    servers.
+    .
+    /Warning:/ This is an experimental prototype/preview release which is still
+    under exploratory development and not intended for public use, caveat emptor!
+    .
+    This library is compatible with version @v1beta1@
+    of the API.
+
+source-repository head
+    type:     git
+    location: git://github.com/brendanhay/gogol.git
+
+library
+    default-language:  Haskell2010
+    hs-source-dirs:    src gen
+
+    ghc-options:       -Wall
+
+    exposed-modules:
+          Network.Google.File
+        , Network.Google.File.Types
+        , Network.Google.Resource.File.Projects.Locations.Get
+        , Network.Google.Resource.File.Projects.Locations.Instances.Create
+        , Network.Google.Resource.File.Projects.Locations.Instances.Delete
+        , Network.Google.Resource.File.Projects.Locations.Instances.Get
+        , Network.Google.Resource.File.Projects.Locations.Instances.List
+        , Network.Google.Resource.File.Projects.Locations.Instances.Patch
+        , Network.Google.Resource.File.Projects.Locations.List
+        , Network.Google.Resource.File.Projects.Locations.Operations.Cancel
+        , Network.Google.Resource.File.Projects.Locations.Operations.Delete
+        , Network.Google.Resource.File.Projects.Locations.Operations.Get
+        , Network.Google.Resource.File.Projects.Locations.Operations.List
+
+    other-modules:
+          Network.Google.File.Types.Product
+        , Network.Google.File.Types.Sum
+
+    build-depends:
+          gogol-core == 0.4.0.*
+        , base       >= 4.7 && < 5
diff --git a/src/.gitkeep b/src/.gitkeep
new file mode 100644
--- /dev/null
+++ b/src/.gitkeep
