packages feed

gogol-cloudiot (empty) → 0.4.0

raw patch · 40 files changed

+9524/−0 lines, 40 filesdep +basedep +gogol-coresetup-changed

Dependencies added: base, gogol-core

Files

+ LICENSE view
@@ -0,0 +1,367 @@+Mozilla Public License Version 2.0+==================================++1. Definitions+--------------++1.1. "Contributor"+    means each individual or legal entity that creates, contributes to+    the creation of, or owns Covered Software.++1.2. "Contributor Version"+    means the combination of the Contributions of others (if any) used+    by a Contributor and that particular Contributor's Contribution.++1.3. "Contribution"+    means Covered Software of a particular Contributor.++1.4. "Covered Software"+    means Source Code Form to which the initial Contributor has attached+    the notice in Exhibit A, the Executable Form of such Source Code+    Form, and Modifications of such Source Code Form, in each case+    including portions thereof.++1.5. "Incompatible With Secondary Licenses"+    means++    (a) that the initial Contributor has attached the notice described+        in Exhibit B to the Covered Software; or++    (b) that the Covered Software was made available under the terms of+        version 1.1 or earlier of the License, but not also under the+        terms of a Secondary License.++1.6. "Executable Form"+    means any form of the work other than Source Code Form.++1.7. "Larger Work"+    means a work that combines Covered Software with other material, in+    a separate file or files, that is not Covered Software.++1.8. "License"+    means this document.++1.9. "Licensable"+    means having the right to grant, to the maximum extent possible,+    whether at the time of the initial grant or subsequently, any and+    all of the rights conveyed by this License.++1.10. "Modifications"+    means any of the following:++    (a) any file in Source Code Form that results from an addition to,+        deletion from, or modification of the contents of Covered+        Software; or++    (b) any new file in Source Code Form that contains any Covered+        Software.++1.11. "Patent Claims" of a Contributor+    means any patent claim(s), including without limitation, method,+    process, and apparatus claims, in any patent Licensable by such+    Contributor that would be infringed, but for the grant of the+    License, by the making, using, selling, offering for sale, having+    made, import, or transfer of either its Contributions or its+    Contributor Version.++1.12. "Secondary License"+    means either the GNU General Public License, Version 2.0, the GNU+    Lesser General Public License, Version 2.1, the GNU Affero General+    Public License, Version 3.0, or any later versions of those+    licenses.++1.13. "Source Code Form"+    means the form of the work preferred for making modifications.++1.14. "You" (or "Your")+    means an individual or a legal entity exercising rights under this+    License. For legal entities, "You" includes any entity that+    controls, is controlled by, or is under common control with You. For+    purposes of this definition, "control" means (a) the power, direct+    or indirect, to cause the direction or management of such entity,+    whether by contract or otherwise, or (b) ownership of more than+    fifty percent (50%) of the outstanding shares or beneficial+    ownership of such entity.++2. License Grants and Conditions+--------------------------------++2.1. Grants++Each Contributor hereby grants You a world-wide, royalty-free,+non-exclusive license:++(a) under intellectual property rights (other than patent or trademark)+    Licensable by such Contributor to use, reproduce, make available,+    modify, display, perform, distribute, and otherwise exploit its+    Contributions, either on an unmodified basis, with Modifications, or+    as part of a Larger Work; and++(b) under Patent Claims of such Contributor to make, use, sell, offer+    for sale, have made, import, and otherwise transfer either its+    Contributions or its Contributor Version.++2.2. Effective Date++The licenses granted in Section 2.1 with respect to any Contribution+become effective for each Contribution on the date the Contributor first+distributes such Contribution.++2.3. Limitations on Grant Scope++The licenses granted in this Section 2 are the only rights granted under+this License. No additional rights or licenses will be implied from the+distribution or licensing of Covered Software under this License.+Notwithstanding Section 2.1(b) above, no patent license is granted by a+Contributor:++(a) for any code that a Contributor has removed from Covered Software;+    or++(b) for infringements caused by: (i) Your and any other third party's+    modifications of Covered Software, or (ii) the combination of its+    Contributions with other software (except as part of its Contributor+    Version); or++(c) under Patent Claims infringed by Covered Software in the absence of+    its Contributions.++This License does not grant any rights in the trademarks, service marks,+or logos of any Contributor (except as may be necessary to comply with+the notice requirements in Section 3.4).++2.4. Subsequent Licenses++No Contributor makes additional grants as a result of Your choice to+distribute the Covered Software under a subsequent version of this+License (see Section 10.2) or under the terms of a Secondary License (if+permitted under the terms of Section 3.3).++2.5. Representation++Each Contributor represents that the Contributor believes its+Contributions are its original creation(s) or it has sufficient rights+to grant the rights to its Contributions conveyed by this License.++2.6. Fair Use++This License is not intended to limit any rights You have under+applicable copyright doctrines of fair use, fair dealing, or other+equivalents.++2.7. Conditions++Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted+in Section 2.1.++3. Responsibilities+-------------------++3.1. Distribution of Source Form++All distribution of Covered Software in Source Code Form, including any+Modifications that You create or to which You contribute, must be under+the terms of this License. You must inform recipients that the Source+Code Form of the Covered Software is governed by the terms of this+License, and how they can obtain a copy of this License. You may not+attempt to alter or restrict the recipients' rights in the Source Code+Form.++3.2. Distribution of Executable Form++If You distribute Covered Software in Executable Form then:++(a) such Covered Software must also be made available in Source Code+    Form, as described in Section 3.1, and You must inform recipients of+    the Executable Form how they can obtain a copy of such Source Code+    Form by reasonable means in a timely manner, at a charge no more+    than the cost of distribution to the recipient; and++(b) You may distribute such Executable Form under the terms of this+    License, or sublicense it under different terms, provided that the+    license for the Executable Form does not attempt to limit or alter+    the recipients' rights in the Source Code Form under this License.++3.3. Distribution of a Larger Work++You may create and distribute a Larger Work under terms of Your choice,+provided that You also comply with the requirements of this License for+the Covered Software. If the Larger Work is a combination of Covered+Software with a work governed by one or more Secondary Licenses, and the+Covered Software is not Incompatible With Secondary Licenses, this+License permits You to additionally distribute such Covered Software+under the terms of such Secondary License(s), so that the recipient of+the Larger Work may, at their option, further distribute the Covered+Software under the terms of either this License or such Secondary+License(s).++3.4. Notices++You may not remove or alter the substance of any license notices+(including copyright notices, patent notices, disclaimers of warranty,+or limitations of liability) contained within the Source Code Form of+the Covered Software, except that You may alter any license notices to+the extent required to remedy known factual inaccuracies.++3.5. Application of Additional Terms++You may choose to offer, and to charge a fee for, warranty, support,+indemnity or liability obligations to one or more recipients of Covered+Software. However, You may do so only on Your own behalf, and not on+behalf of any Contributor. You must make it absolutely clear that any+such warranty, support, indemnity, or liability obligation is offered by+You alone, and You hereby agree to indemnify every Contributor for any+liability incurred by such Contributor as a result of warranty, support,+indemnity or liability terms You offer. You may include additional+disclaimers of warranty and limitations of liability specific to any+jurisdiction.++4. Inability to Comply Due to Statute or Regulation+---------------------------------------------------++If it is impossible for You to comply with any of the terms of this+License with respect to some or all of the Covered Software due to+statute, judicial order, or regulation then You must: (a) comply with+the terms of this License to the maximum extent possible; and (b)+describe the limitations and the code they affect. Such description must+be placed in a text file included with all distributions of the Covered+Software under this License. Except to the extent prohibited by statute+or regulation, such description must be sufficiently detailed for a+recipient of ordinary skill to be able to understand it.++5. Termination+--------------++5.1. The rights granted under this License will terminate automatically+if You fail to comply with any of its terms. However, if You become+compliant, then the rights granted under this License from a particular+Contributor are reinstated (a) provisionally, unless and until such+Contributor explicitly and finally terminates Your grants, and (b) on an+ongoing basis, if such Contributor fails to notify You of the+non-compliance by some reasonable means prior to 60 days after You have+come back into compliance. Moreover, Your grants from a particular+Contributor are reinstated on an ongoing basis if such Contributor+notifies You of the non-compliance by some reasonable means, this is the+first time You have received notice of non-compliance with this License+from such Contributor, and You become compliant prior to 30 days after+Your receipt of the notice.++5.2. If You initiate litigation against any entity by asserting a patent+infringement claim (excluding declaratory judgment actions,+counter-claims, and cross-claims) alleging that a Contributor Version+directly or indirectly infringes any patent, then the rights granted to+You by any and all Contributors for the Covered Software under Section+2.1 of this License shall terminate.++5.3. In the event of termination under Sections 5.1 or 5.2 above, all+end user license agreements (excluding distributors and resellers) which+have been validly granted by You or Your distributors under this License+prior to termination shall survive termination.++************************************************************************+*                                                                      *+*  6. Disclaimer of Warranty                                           *+*  -------------------------                                           *+*                                                                      *+*  Covered Software is provided under this License on an "as is"       *+*  basis, without warranty of any kind, either expressed, implied, or  *+*  statutory, including, without limitation, warranties that the       *+*  Covered Software is free of defects, merchantable, fit for a        *+*  particular purpose or non-infringing. The entire risk as to the     *+*  quality and performance of the Covered Software is with You.        *+*  Should any Covered Software prove defective in any respect, You     *+*  (not any Contributor) assume the cost of any necessary servicing,   *+*  repair, or correction. This disclaimer of warranty constitutes an   *+*  essential part of this License. No use of any Covered Software is   *+*  authorized under this License except under this disclaimer.         *+*                                                                      *+************************************************************************++************************************************************************+*                                                                      *+*  7. Limitation of Liability                                          *+*  --------------------------                                          *+*                                                                      *+*  Under no circumstances and under no legal theory, whether tort      *+*  (including negligence), contract, or otherwise, shall any           *+*  Contributor, or anyone who distributes Covered Software as          *+*  permitted above, be liable to You for any direct, indirect,         *+*  special, incidental, or consequential damages of any character      *+*  including, without limitation, damages for lost profits, loss of    *+*  goodwill, work stoppage, computer failure or malfunction, or any    *+*  and all other commercial damages or losses, even if such party      *+*  shall have been informed of the possibility of such damages. This   *+*  limitation of liability shall not apply to liability for death or   *+*  personal injury resulting from such party's negligence to the       *+*  extent applicable law prohibits such limitation. Some               *+*  jurisdictions do not allow the exclusion or limitation of           *+*  incidental or consequential damages, so this exclusion and          *+*  limitation may not apply to You.                                    *+*                                                                      *+************************************************************************++8. Litigation+-------------++Any litigation relating to this License may be brought only in the+courts of a jurisdiction where the defendant maintains its principal+place of business and such litigation shall be governed by laws of that+jurisdiction, without reference to its conflict-of-law provisions.+Nothing in this Section shall prevent a party's ability to bring+cross-claims or counter-claims.++9. Miscellaneous+----------------++This License represents the complete agreement concerning the subject+matter hereof. If any provision of this License is held to be+unenforceable, such provision shall be reformed only to the extent+necessary to make it enforceable. Any law or regulation which provides+that the language of a contract shall be construed against the drafter+shall not be used to construe this License against a Contributor.++10. Versions of the License+---------------------------++10.1. New Versions++Mozilla Foundation is the license steward. Except as provided in Section+10.3, no one other than the license steward has the right to modify or+publish new versions of this License. Each version will be given a+distinguishing version number.++10.2. Effect of New Versions++You may distribute the Covered Software under the terms of the version+of the License under which You originally received the Covered Software,+or under the terms of any subsequent version published by the license+steward.++10.3. Modified Versions++If you create software not governed by this License, and you want to+create a new license for such software, you may create and use a+modified version of this License if you rename the license and remove+any references to the name of the license steward (except to note that+such modified license differs from this License).++10.4. Distributing Source Code Form that is Incompatible With Secondary+Licenses++If You choose to distribute Source Code Form that is Incompatible With+Secondary Licenses under the terms of this version of the License, the+notice described in Exhibit B of this License must be attached.++Exhibit A - Source Code Form License Notice+-------------------------------------------++  This Source Code Form is subject to the terms of the Mozilla Public+  License, v. 2.0. If a copy of the MPL was not distributed with this+  file, You can obtain one at http://mozilla.org/MPL/2.0/.++If it is not possible or desirable to put the notice in a particular+file, then You may include the notice in a location (such as a LICENSE+file in a relevant directory) where a recipient would be likely to look+for such a notice.++You may add additional accurate notices of copyright ownership.
+ README.md view
@@ -0,0 +1,28 @@+# gogol-cloudiot++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version++`0.3.0`+++## Description++A client library for the Google Cloud IoT.+++## 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-cloudiot` is released under the [Mozilla Public License Version 2.0](http://www.mozilla.org/MPL/).
+ Setup.hs view
@@ -0,0 +1,2 @@+import           Distribution.Simple+main = defaultMain
+ gen/Network/Google/CloudIOT.hs view
@@ -0,0 +1,475 @@+{-# LANGUAGE DataKinds         #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE TypeOperators     #-}++{-# OPTIONS_GHC -fno-warn-unused-imports    #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}++-- |+-- Module      : Network.Google.CloudIOT+-- 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)+--+-- Registers and manages IoT (Internet of Things) devices that connect to+-- the Google Cloud Platform.+--+-- /See:/ <https://cloud.google.com/iot Cloud IoT API Reference>+module Network.Google.CloudIOT+    (+    -- * Service Configuration+      cloudIOTService++    -- * OAuth Scopes+    , cloudIOTScope+    , cloudPlatformScope++    -- * API Declaration+    , CloudIOTAPI++    -- * Resources++    -- ** cloudiot.projects.locations.registries.bindDeviceToGateway+    , module Network.Google.Resource.CloudIOT.Projects.Locations.Registries.BindDeviceToGateway++    -- ** cloudiot.projects.locations.registries.create+    , module Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Create++    -- ** cloudiot.projects.locations.registries.delete+    , module Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Delete++    -- ** cloudiot.projects.locations.registries.devices.configVersions.list+    , module Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Devices.ConfigVersions.List++    -- ** cloudiot.projects.locations.registries.devices.create+    , module Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Devices.Create++    -- ** cloudiot.projects.locations.registries.devices.delete+    , module Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Devices.Delete++    -- ** cloudiot.projects.locations.registries.devices.get+    , module Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Devices.Get++    -- ** cloudiot.projects.locations.registries.devices.list+    , module Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Devices.List++    -- ** cloudiot.projects.locations.registries.devices.modifyCloudToDeviceConfig+    , module Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Devices.ModifyCloudToDeviceConfig++    -- ** cloudiot.projects.locations.registries.devices.patch+    , module Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Devices.Patch++    -- ** cloudiot.projects.locations.registries.devices.sendCommandToDevice+    , module Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Devices.SendCommandToDevice++    -- ** cloudiot.projects.locations.registries.devices.states.list+    , module Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Devices.States.List++    -- ** cloudiot.projects.locations.registries.get+    , module Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Get++    -- ** cloudiot.projects.locations.registries.getIamPolicy+    , module Network.Google.Resource.CloudIOT.Projects.Locations.Registries.GetIAMPolicy++    -- ** cloudiot.projects.locations.registries.groups.bindDeviceToGateway+    , module Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Groups.BindDeviceToGateway++    -- ** cloudiot.projects.locations.registries.groups.devices.configVersions.list+    , module Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Groups.Devices.ConfigVersions.List++    -- ** cloudiot.projects.locations.registries.groups.devices.get+    , module Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Groups.Devices.Get++    -- ** cloudiot.projects.locations.registries.groups.devices.list+    , module Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Groups.Devices.List++    -- ** cloudiot.projects.locations.registries.groups.devices.modifyCloudToDeviceConfig+    , module Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Groups.Devices.ModifyCloudToDeviceConfig++    -- ** cloudiot.projects.locations.registries.groups.devices.patch+    , module Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Groups.Devices.Patch++    -- ** cloudiot.projects.locations.registries.groups.devices.sendCommandToDevice+    , module Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Groups.Devices.SendCommandToDevice++    -- ** cloudiot.projects.locations.registries.groups.devices.states.list+    , module Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Groups.Devices.States.List++    -- ** cloudiot.projects.locations.registries.groups.getIamPolicy+    , module Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Groups.GetIAMPolicy++    -- ** cloudiot.projects.locations.registries.groups.setIamPolicy+    , module Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Groups.SetIAMPolicy++    -- ** cloudiot.projects.locations.registries.groups.testIamPermissions+    , module Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Groups.TestIAMPermissions++    -- ** cloudiot.projects.locations.registries.groups.unbindDeviceFromGateway+    , module Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Groups.UnbindDeviceFromGateway++    -- ** cloudiot.projects.locations.registries.list+    , module Network.Google.Resource.CloudIOT.Projects.Locations.Registries.List++    -- ** cloudiot.projects.locations.registries.patch+    , module Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Patch++    -- ** cloudiot.projects.locations.registries.setIamPolicy+    , module Network.Google.Resource.CloudIOT.Projects.Locations.Registries.SetIAMPolicy++    -- ** cloudiot.projects.locations.registries.testIamPermissions+    , module Network.Google.Resource.CloudIOT.Projects.Locations.Registries.TestIAMPermissions++    -- ** cloudiot.projects.locations.registries.unbindDeviceFromGateway+    , module Network.Google.Resource.CloudIOT.Projects.Locations.Registries.UnbindDeviceFromGateway++    -- * Types++    -- ** Status+    , Status+    , status+    , sDetails+    , sCode+    , sMessage++    -- ** UnbindDeviceFromGatewayResponse+    , UnbindDeviceFromGatewayResponse+    , unbindDeviceFromGatewayResponse++    -- ** DeviceState+    , DeviceState+    , deviceState+    , dsUpdateTime+    , dsBinaryData++    -- ** Expr+    , Expr+    , expr+    , eLocation+    , eExpression+    , eTitle+    , eDescription++    -- ** GetIAMPolicyRequest+    , GetIAMPolicyRequest+    , getIAMPolicyRequest++    -- ** ListDeviceRegistriesResponse+    , ListDeviceRegistriesResponse+    , listDeviceRegistriesResponse+    , ldrrNextPageToken+    , ldrrDeviceRegistries++    -- ** DeviceConfig+    , DeviceConfig+    , deviceConfig+    , dcDeviceAckTime+    , dcCloudUpdateTime+    , dcBinaryData+    , dcVersion++    -- ** ListDeviceConfigVersionsResponse+    , ListDeviceConfigVersionsResponse+    , listDeviceConfigVersionsResponse+    , ldcvrDeviceConfigs++    -- ** DeviceLogLevel+    , DeviceLogLevel (..)++    -- ** GatewayConfig+    , GatewayConfig+    , gatewayConfig+    , gcLastAccessedGatewayId+    , gcGatewayAuthMethod+    , gcLastAccessedGatewayTime+    , gcGatewayType++    -- ** ListDeviceStatesResponse+    , ListDeviceStatesResponse+    , listDeviceStatesResponse+    , ldsrDeviceStates++    -- ** Empty+    , Empty+    , empty++    -- ** StateNotificationConfig+    , StateNotificationConfig+    , stateNotificationConfig+    , sncPubsubTopicName++    -- ** PublicKeyCertificateFormat+    , PublicKeyCertificateFormat (..)++    -- ** Device+    , Device+    , device+    , dState+    , dLastHeartbeatTime+    , dGatewayConfig+    , dLogLevel+    , dConfig+    , dCredentials+    , dNumId+    , dLastErrorStatus+    , dLastConfigSendTime+    , dLastConfigAckTime+    , dName+    , dLastErrorTime+    , dMetadata+    , dId+    , dLastStateTime+    , dBlocked+    , dLastEventTime++    -- ** DeviceCredential+    , DeviceCredential+    , deviceCredential+    , dcPublicKey+    , dcExpirationTime++    -- ** EventNotificationConfig+    , EventNotificationConfig+    , eventNotificationConfig+    , encPubsubTopicName+    , encSubfolderMatches++    -- ** X509CertificateDetails+    , X509CertificateDetails+    , x509CertificateDetails+    , xcdSubject+    , xcdExpiryTime+    , xcdStartTime+    , xcdSignatureAlgorithm+    , xcdIssuer+    , xcdPublicKeyType++    -- ** PublicKeyCertificate+    , PublicKeyCertificate+    , publicKeyCertificate+    , pkcFormat+    , pkcCertificate+    , pkcX509Details++    -- ** StatusDetailsItem+    , StatusDetailsItem+    , statusDetailsItem+    , sdiAddtional++    -- ** PublicKeyCredentialFormat+    , PublicKeyCredentialFormat (..)++    -- ** MqttConfig+    , MqttConfig+    , mqttConfig+    , mcMqttEnabledState++    -- ** SetIAMPolicyRequest+    , SetIAMPolicyRequest+    , setIAMPolicyRequest+    , siprPolicy++    -- ** RegistryCredential+    , RegistryCredential+    , registryCredential+    , rcPublicKeyCertificate++    -- ** SendCommandToDeviceRequest+    , SendCommandToDeviceRequest+    , sendCommandToDeviceRequest+    , sctdrBinaryData+    , sctdrSubfolder++    -- ** BindDeviceToGatewayResponse+    , BindDeviceToGatewayResponse+    , bindDeviceToGatewayResponse++    -- ** DeviceRegistryLogLevel+    , DeviceRegistryLogLevel (..)++    -- ** HTTPConfig+    , HTTPConfig+    , hTTPConfig+    , httpcHTTPEnabledState++    -- ** Xgafv+    , Xgafv (..)++    -- ** TestIAMPermissionsRequest+    , TestIAMPermissionsRequest+    , testIAMPermissionsRequest+    , tiprPermissions++    -- ** GatewayConfigGatewayType+    , GatewayConfigGatewayType (..)++    -- ** ListDevicesResponse+    , ListDevicesResponse+    , listDevicesResponse+    , ldrNextPageToken+    , ldrDevices++    -- ** DeviceMetadata+    , DeviceMetadata+    , deviceMetadata+    , dmAddtional++    -- ** GatewayConfigGatewayAuthMethod+    , GatewayConfigGatewayAuthMethod (..)++    -- ** DeviceRegistry+    , DeviceRegistry+    , deviceRegistry+    , drLogLevel+    , drCredentials+    , drStateNotificationConfig+    , drEventNotificationConfigs+    , drMqttConfig+    , drName+    , drHTTPConfig+    , drId++    -- ** PublicKeyCredential+    , PublicKeyCredential+    , publicKeyCredential+    , pFormat+    , pKey++    -- ** UnbindDeviceFromGatewayRequest+    , UnbindDeviceFromGatewayRequest+    , unbindDeviceFromGatewayRequest+    , udfgrDeviceId+    , udfgrGatewayId++    -- ** MqttConfigMqttEnabledState+    , MqttConfigMqttEnabledState (..)++    -- ** TestIAMPermissionsResponse+    , TestIAMPermissionsResponse+    , testIAMPermissionsResponse+    , tiamprPermissions++    -- ** Policy+    , Policy+    , policy+    , pEtag+    , pVersion+    , pBindings++    -- ** HTTPConfigHTTPEnabledState+    , HTTPConfigHTTPEnabledState (..)++    -- ** SendCommandToDeviceResponse+    , SendCommandToDeviceResponse+    , sendCommandToDeviceResponse++    -- ** BindDeviceToGatewayRequest+    , BindDeviceToGatewayRequest+    , bindDeviceToGatewayRequest+    , bdtgrDeviceId+    , bdtgrGatewayId++    -- ** ModifyCloudToDeviceConfigRequest+    , ModifyCloudToDeviceConfigRequest+    , modifyCloudToDeviceConfigRequest+    , mctdcrVersionToUpdate+    , mctdcrBinaryData++    -- ** Binding+    , Binding+    , binding+    , bMembers+    , bRole+    , bCondition+    ) where++import           Network.Google.CloudIOT.Types+import           Network.Google.Prelude+import           Network.Google.Resource.CloudIOT.Projects.Locations.Registries.BindDeviceToGateway+import           Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Create+import           Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Delete+import           Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Devices.ConfigVersions.List+import           Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Devices.Create+import           Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Devices.Delete+import           Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Devices.Get+import           Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Devices.List+import           Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Devices.ModifyCloudToDeviceConfig+import           Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Devices.Patch+import           Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Devices.SendCommandToDevice+import           Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Devices.States.List+import           Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Get+import           Network.Google.Resource.CloudIOT.Projects.Locations.Registries.GetIAMPolicy+import           Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Groups.BindDeviceToGateway+import           Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Groups.Devices.ConfigVersions.List+import           Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Groups.Devices.Get+import           Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Groups.Devices.List+import           Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Groups.Devices.ModifyCloudToDeviceConfig+import           Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Groups.Devices.Patch+import           Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Groups.Devices.SendCommandToDevice+import           Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Groups.Devices.States.List+import           Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Groups.GetIAMPolicy+import           Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Groups.SetIAMPolicy+import           Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Groups.TestIAMPermissions+import           Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Groups.UnbindDeviceFromGateway+import           Network.Google.Resource.CloudIOT.Projects.Locations.Registries.List+import           Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Patch+import           Network.Google.Resource.CloudIOT.Projects.Locations.Registries.SetIAMPolicy+import           Network.Google.Resource.CloudIOT.Projects.Locations.Registries.TestIAMPermissions+import           Network.Google.Resource.CloudIOT.Projects.Locations.Registries.UnbindDeviceFromGateway++{- $resources+TODO+-}++-- | Represents the entirety of the methods and resources available for the Cloud IoT API service.+type CloudIOTAPI =+     ProjectsLocationsRegistriesGroupsDevicesStatesListResource+       :<|>+       ProjectsLocationsRegistriesGroupsDevicesConfigVersionsListResource+       :<|>+       ProjectsLocationsRegistriesGroupsDevicesListResource+       :<|>+       ProjectsLocationsRegistriesGroupsDevicesModifyCloudToDeviceConfigResource+       :<|>+       ProjectsLocationsRegistriesGroupsDevicesPatchResource+       :<|>+       ProjectsLocationsRegistriesGroupsDevicesGetResource+       :<|>+       ProjectsLocationsRegistriesGroupsDevicesSendCommandToDeviceResource+       :<|>+       ProjectsLocationsRegistriesGroupsUnbindDeviceFromGatewayResource+       :<|>+       ProjectsLocationsRegistriesGroupsBindDeviceToGatewayResource+       :<|>+       ProjectsLocationsRegistriesGroupsGetIAMPolicyResource+       :<|>+       ProjectsLocationsRegistriesGroupsSetIAMPolicyResource+       :<|>+       ProjectsLocationsRegistriesGroupsTestIAMPermissionsResource+       :<|>+       ProjectsLocationsRegistriesDevicesStatesListResource+       :<|>+       ProjectsLocationsRegistriesDevicesConfigVersionsListResource+       :<|> ProjectsLocationsRegistriesDevicesListResource+       :<|>+       ProjectsLocationsRegistriesDevicesModifyCloudToDeviceConfigResource+       :<|> ProjectsLocationsRegistriesDevicesPatchResource+       :<|> ProjectsLocationsRegistriesDevicesGetResource+       :<|> ProjectsLocationsRegistriesDevicesCreateResource+       :<|>+       ProjectsLocationsRegistriesDevicesSendCommandToDeviceResource+       :<|> ProjectsLocationsRegistriesDevicesDeleteResource+       :<|>+       ProjectsLocationsRegistriesUnbindDeviceFromGatewayResource+       :<|> ProjectsLocationsRegistriesListResource+       :<|>+       ProjectsLocationsRegistriesBindDeviceToGatewayResource+       :<|> ProjectsLocationsRegistriesGetIAMPolicyResource+       :<|> ProjectsLocationsRegistriesPatchResource+       :<|> ProjectsLocationsRegistriesGetResource+       :<|> ProjectsLocationsRegistriesCreateResource+       :<|> ProjectsLocationsRegistriesSetIAMPolicyResource+       :<|>+       ProjectsLocationsRegistriesTestIAMPermissionsResource+       :<|> ProjectsLocationsRegistriesDeleteResource
+ gen/Network/Google/CloudIOT/Types.hs view
@@ -0,0 +1,300 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Network.Google.CloudIOT.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.CloudIOT.Types+    (+    -- * Service Configuration+      cloudIOTService++    -- * OAuth Scopes+    , cloudIOTScope+    , cloudPlatformScope++    -- * Status+    , Status+    , status+    , sDetails+    , sCode+    , sMessage++    -- * UnbindDeviceFromGatewayResponse+    , UnbindDeviceFromGatewayResponse+    , unbindDeviceFromGatewayResponse++    -- * DeviceState+    , DeviceState+    , deviceState+    , dsUpdateTime+    , dsBinaryData++    -- * Expr+    , Expr+    , expr+    , eLocation+    , eExpression+    , eTitle+    , eDescription++    -- * GetIAMPolicyRequest+    , GetIAMPolicyRequest+    , getIAMPolicyRequest++    -- * ListDeviceRegistriesResponse+    , ListDeviceRegistriesResponse+    , listDeviceRegistriesResponse+    , ldrrNextPageToken+    , ldrrDeviceRegistries++    -- * DeviceConfig+    , DeviceConfig+    , deviceConfig+    , dcDeviceAckTime+    , dcCloudUpdateTime+    , dcBinaryData+    , dcVersion++    -- * ListDeviceConfigVersionsResponse+    , ListDeviceConfigVersionsResponse+    , listDeviceConfigVersionsResponse+    , ldcvrDeviceConfigs++    -- * DeviceLogLevel+    , DeviceLogLevel (..)++    -- * GatewayConfig+    , GatewayConfig+    , gatewayConfig+    , gcLastAccessedGatewayId+    , gcGatewayAuthMethod+    , gcLastAccessedGatewayTime+    , gcGatewayType++    -- * ListDeviceStatesResponse+    , ListDeviceStatesResponse+    , listDeviceStatesResponse+    , ldsrDeviceStates++    -- * Empty+    , Empty+    , empty++    -- * StateNotificationConfig+    , StateNotificationConfig+    , stateNotificationConfig+    , sncPubsubTopicName++    -- * PublicKeyCertificateFormat+    , PublicKeyCertificateFormat (..)++    -- * Device+    , Device+    , device+    , dState+    , dLastHeartbeatTime+    , dGatewayConfig+    , dLogLevel+    , dConfig+    , dCredentials+    , dNumId+    , dLastErrorStatus+    , dLastConfigSendTime+    , dLastConfigAckTime+    , dName+    , dLastErrorTime+    , dMetadata+    , dId+    , dLastStateTime+    , dBlocked+    , dLastEventTime++    -- * DeviceCredential+    , DeviceCredential+    , deviceCredential+    , dcPublicKey+    , dcExpirationTime++    -- * EventNotificationConfig+    , EventNotificationConfig+    , eventNotificationConfig+    , encPubsubTopicName+    , encSubfolderMatches++    -- * X509CertificateDetails+    , X509CertificateDetails+    , x509CertificateDetails+    , xcdSubject+    , xcdExpiryTime+    , xcdStartTime+    , xcdSignatureAlgorithm+    , xcdIssuer+    , xcdPublicKeyType++    -- * PublicKeyCertificate+    , PublicKeyCertificate+    , publicKeyCertificate+    , pkcFormat+    , pkcCertificate+    , pkcX509Details++    -- * StatusDetailsItem+    , StatusDetailsItem+    , statusDetailsItem+    , sdiAddtional++    -- * PublicKeyCredentialFormat+    , PublicKeyCredentialFormat (..)++    -- * MqttConfig+    , MqttConfig+    , mqttConfig+    , mcMqttEnabledState++    -- * SetIAMPolicyRequest+    , SetIAMPolicyRequest+    , setIAMPolicyRequest+    , siprPolicy++    -- * RegistryCredential+    , RegistryCredential+    , registryCredential+    , rcPublicKeyCertificate++    -- * SendCommandToDeviceRequest+    , SendCommandToDeviceRequest+    , sendCommandToDeviceRequest+    , sctdrBinaryData+    , sctdrSubfolder++    -- * BindDeviceToGatewayResponse+    , BindDeviceToGatewayResponse+    , bindDeviceToGatewayResponse++    -- * DeviceRegistryLogLevel+    , DeviceRegistryLogLevel (..)++    -- * HTTPConfig+    , HTTPConfig+    , hTTPConfig+    , httpcHTTPEnabledState++    -- * Xgafv+    , Xgafv (..)++    -- * TestIAMPermissionsRequest+    , TestIAMPermissionsRequest+    , testIAMPermissionsRequest+    , tiprPermissions++    -- * GatewayConfigGatewayType+    , GatewayConfigGatewayType (..)++    -- * ListDevicesResponse+    , ListDevicesResponse+    , listDevicesResponse+    , ldrNextPageToken+    , ldrDevices++    -- * DeviceMetadata+    , DeviceMetadata+    , deviceMetadata+    , dmAddtional++    -- * GatewayConfigGatewayAuthMethod+    , GatewayConfigGatewayAuthMethod (..)++    -- * DeviceRegistry+    , DeviceRegistry+    , deviceRegistry+    , drLogLevel+    , drCredentials+    , drStateNotificationConfig+    , drEventNotificationConfigs+    , drMqttConfig+    , drName+    , drHTTPConfig+    , drId++    -- * PublicKeyCredential+    , PublicKeyCredential+    , publicKeyCredential+    , pFormat+    , pKey++    -- * UnbindDeviceFromGatewayRequest+    , UnbindDeviceFromGatewayRequest+    , unbindDeviceFromGatewayRequest+    , udfgrDeviceId+    , udfgrGatewayId++    -- * MqttConfigMqttEnabledState+    , MqttConfigMqttEnabledState (..)++    -- * TestIAMPermissionsResponse+    , TestIAMPermissionsResponse+    , testIAMPermissionsResponse+    , tiamprPermissions++    -- * Policy+    , Policy+    , policy+    , pEtag+    , pVersion+    , pBindings++    -- * HTTPConfigHTTPEnabledState+    , HTTPConfigHTTPEnabledState (..)++    -- * SendCommandToDeviceResponse+    , SendCommandToDeviceResponse+    , sendCommandToDeviceResponse++    -- * BindDeviceToGatewayRequest+    , BindDeviceToGatewayRequest+    , bindDeviceToGatewayRequest+    , bdtgrDeviceId+    , bdtgrGatewayId++    -- * ModifyCloudToDeviceConfigRequest+    , ModifyCloudToDeviceConfigRequest+    , modifyCloudToDeviceConfigRequest+    , mctdcrVersionToUpdate+    , mctdcrBinaryData++    -- * Binding+    , Binding+    , binding+    , bMembers+    , bRole+    , bCondition+    ) where++import           Network.Google.CloudIOT.Types.Product+import           Network.Google.CloudIOT.Types.Sum+import           Network.Google.Prelude++-- | Default request referring to version 'v1' of the Cloud IoT API. This contains the host and root path used as a starting point for constructing service requests.+cloudIOTService :: ServiceConfig+cloudIOTService+  = defaultService (ServiceId "cloudiot:v1")+      "cloudiot.googleapis.com"++-- | Register and manage devices in the Google Cloud IoT service+cloudIOTScope :: Proxy '["https://www.googleapis.com/auth/cloudiot"]+cloudIOTScope = Proxy;++-- | View and manage your data across Google Cloud Platform services+cloudPlatformScope :: Proxy '["https://www.googleapis.com/auth/cloud-platform"]+cloudPlatformScope = Proxy;
+ gen/Network/Google/CloudIOT/Types/Product.hs view
@@ -0,0 +1,2160 @@+{-# 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.CloudIOT.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.CloudIOT.Types.Product where++import           Network.Google.CloudIOT.Types.Sum+import           Network.Google.Prelude++-- | 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])++-- | Response for \`UnbindDeviceFromGateway\`.+--+-- /See:/ 'unbindDeviceFromGatewayResponse' smart constructor.+data UnbindDeviceFromGatewayResponse =+    UnbindDeviceFromGatewayResponse'+    deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'UnbindDeviceFromGatewayResponse' with the minimum fields required to make a request.+--+unbindDeviceFromGatewayResponse+    :: UnbindDeviceFromGatewayResponse+unbindDeviceFromGatewayResponse = UnbindDeviceFromGatewayResponse'++instance FromJSON UnbindDeviceFromGatewayResponse+         where+        parseJSON+          = withObject "UnbindDeviceFromGatewayResponse"+              (\ o -> pure UnbindDeviceFromGatewayResponse')++instance ToJSON UnbindDeviceFromGatewayResponse where+        toJSON = const emptyObject++-- | The device state, as reported by the device.+--+-- /See:/ 'deviceState' smart constructor.+data DeviceState = DeviceState'+    { _dsUpdateTime :: !(Maybe DateTime')+    , _dsBinaryData :: !(Maybe Bytes)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DeviceState' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dsUpdateTime'+--+-- * 'dsBinaryData'+deviceState+    :: DeviceState+deviceState =+    DeviceState'+    { _dsUpdateTime = Nothing+    , _dsBinaryData = Nothing+    }++-- | [Output only] The time at which this state version was updated in Cloud+-- IoT Core.+dsUpdateTime :: Lens' DeviceState (Maybe UTCTime)+dsUpdateTime+  = lens _dsUpdateTime (\ s a -> s{_dsUpdateTime = a})+      . mapping _DateTime++-- | The device state data.+dsBinaryData :: Lens' DeviceState (Maybe ByteString)+dsBinaryData+  = lens _dsBinaryData (\ s a -> s{_dsBinaryData = a})+      . mapping _Bytes++instance FromJSON DeviceState where+        parseJSON+          = withObject "DeviceState"+              (\ o ->+                 DeviceState' <$>+                   (o .:? "updateTime") <*> (o .:? "binaryData"))++instance ToJSON DeviceState where+        toJSON DeviceState'{..}+          = object+              (catMaybes+                 [("updateTime" .=) <$> _dsUpdateTime,+                  ("binaryData" .=) <$> _dsBinaryData])++-- | Represents an expression text. Example: title: \"User account presence\"+-- description: \"Determines whether the request has a user account\"+-- expression: \"size(request.user) > 0\"+--+-- /See:/ 'expr' smart constructor.+data Expr = Expr'+    { _eLocation    :: !(Maybe Text)+    , _eExpression  :: !(Maybe Text)+    , _eTitle       :: !(Maybe Text)+    , _eDescription :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Expr' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'eLocation'+--+-- * 'eExpression'+--+-- * 'eTitle'+--+-- * 'eDescription'+expr+    :: Expr+expr =+    Expr'+    { _eLocation = Nothing+    , _eExpression = Nothing+    , _eTitle = Nothing+    , _eDescription = Nothing+    }++-- | An optional string indicating the location of the expression for error+-- reporting, e.g. a file name and a position in the file.+eLocation :: Lens' Expr (Maybe Text)+eLocation+  = lens _eLocation (\ s a -> s{_eLocation = a})++-- | Textual representation of an expression in Common Expression Language+-- syntax. The application context of the containing message determines+-- which well-known feature set of CEL is supported.+eExpression :: Lens' Expr (Maybe Text)+eExpression+  = lens _eExpression (\ s a -> s{_eExpression = a})++-- | An optional title for the expression, i.e. a short string describing its+-- purpose. This can be used e.g. in UIs which allow to enter the+-- expression.+eTitle :: Lens' Expr (Maybe Text)+eTitle = lens _eTitle (\ s a -> s{_eTitle = a})++-- | An optional description of the expression. This is a longer text which+-- describes the expression, e.g. when hovered over it in a UI.+eDescription :: Lens' Expr (Maybe Text)+eDescription+  = lens _eDescription (\ s a -> s{_eDescription = a})++instance FromJSON Expr where+        parseJSON+          = withObject "Expr"+              (\ o ->+                 Expr' <$>+                   (o .:? "location") <*> (o .:? "expression") <*>+                     (o .:? "title")+                     <*> (o .:? "description"))++instance ToJSON Expr where+        toJSON Expr'{..}+          = object+              (catMaybes+                 [("location" .=) <$> _eLocation,+                  ("expression" .=) <$> _eExpression,+                  ("title" .=) <$> _eTitle,+                  ("description" .=) <$> _eDescription])++-- | Request message for \`GetIamPolicy\` method.+--+-- /See:/ 'getIAMPolicyRequest' smart constructor.+data GetIAMPolicyRequest =+    GetIAMPolicyRequest'+    deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'GetIAMPolicyRequest' with the minimum fields required to make a request.+--+getIAMPolicyRequest+    :: GetIAMPolicyRequest+getIAMPolicyRequest = GetIAMPolicyRequest'++instance FromJSON GetIAMPolicyRequest where+        parseJSON+          = withObject "GetIAMPolicyRequest"+              (\ o -> pure GetIAMPolicyRequest')++instance ToJSON GetIAMPolicyRequest where+        toJSON = const emptyObject++-- | Response for \`ListDeviceRegistries\`.+--+-- /See:/ 'listDeviceRegistriesResponse' smart constructor.+data ListDeviceRegistriesResponse = ListDeviceRegistriesResponse'+    { _ldrrNextPageToken    :: !(Maybe Text)+    , _ldrrDeviceRegistries :: !(Maybe [DeviceRegistry])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ListDeviceRegistriesResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ldrrNextPageToken'+--+-- * 'ldrrDeviceRegistries'+listDeviceRegistriesResponse+    :: ListDeviceRegistriesResponse+listDeviceRegistriesResponse =+    ListDeviceRegistriesResponse'+    { _ldrrNextPageToken = Nothing+    , _ldrrDeviceRegistries = Nothing+    }++-- | If not empty, indicates that there may be more registries that match the+-- request; this value should be passed in a new+-- \`ListDeviceRegistriesRequest\`.+ldrrNextPageToken :: Lens' ListDeviceRegistriesResponse (Maybe Text)+ldrrNextPageToken+  = lens _ldrrNextPageToken+      (\ s a -> s{_ldrrNextPageToken = a})++-- | The registries that matched the query.+ldrrDeviceRegistries :: Lens' ListDeviceRegistriesResponse [DeviceRegistry]+ldrrDeviceRegistries+  = lens _ldrrDeviceRegistries+      (\ s a -> s{_ldrrDeviceRegistries = a})+      . _Default+      . _Coerce++instance FromJSON ListDeviceRegistriesResponse where+        parseJSON+          = withObject "ListDeviceRegistriesResponse"+              (\ o ->+                 ListDeviceRegistriesResponse' <$>+                   (o .:? "nextPageToken") <*>+                     (o .:? "deviceRegistries" .!= mempty))++instance ToJSON ListDeviceRegistriesResponse where+        toJSON ListDeviceRegistriesResponse'{..}+          = object+              (catMaybes+                 [("nextPageToken" .=) <$> _ldrrNextPageToken,+                  ("deviceRegistries" .=) <$> _ldrrDeviceRegistries])++-- | The device configuration. Eventually delivered to devices.+--+-- /See:/ 'deviceConfig' smart constructor.+data DeviceConfig = DeviceConfig'+    { _dcDeviceAckTime   :: !(Maybe DateTime')+    , _dcCloudUpdateTime :: !(Maybe DateTime')+    , _dcBinaryData      :: !(Maybe Bytes)+    , _dcVersion         :: !(Maybe (Textual Int64))+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DeviceConfig' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dcDeviceAckTime'+--+-- * 'dcCloudUpdateTime'+--+-- * 'dcBinaryData'+--+-- * 'dcVersion'+deviceConfig+    :: DeviceConfig+deviceConfig =+    DeviceConfig'+    { _dcDeviceAckTime = Nothing+    , _dcCloudUpdateTime = Nothing+    , _dcBinaryData = Nothing+    , _dcVersion = Nothing+    }++-- | [Output only] The time at which Cloud IoT Core received the+-- acknowledgment from the device, indicating that the device has received+-- this configuration version. If this field is not present, the device has+-- not yet acknowledged that it received this version. Note that when the+-- config was sent to the device, many config versions may have been+-- available in Cloud IoT Core while the device was disconnected, and on+-- connection, only the latest version is sent to the device. Some versions+-- may never be sent to the device, and therefore are never acknowledged.+-- This timestamp is set by Cloud IoT Core.+dcDeviceAckTime :: Lens' DeviceConfig (Maybe UTCTime)+dcDeviceAckTime+  = lens _dcDeviceAckTime+      (\ s a -> s{_dcDeviceAckTime = a})+      . mapping _DateTime++-- | [Output only] The time at which this configuration version was updated+-- in Cloud IoT Core. This timestamp is set by the server.+dcCloudUpdateTime :: Lens' DeviceConfig (Maybe UTCTime)+dcCloudUpdateTime+  = lens _dcCloudUpdateTime+      (\ s a -> s{_dcCloudUpdateTime = a})+      . mapping _DateTime++-- | The device configuration data.+dcBinaryData :: Lens' DeviceConfig (Maybe ByteString)+dcBinaryData+  = lens _dcBinaryData (\ s a -> s{_dcBinaryData = a})+      . mapping _Bytes++-- | [Output only] The version of this update. The version number is assigned+-- by the server, and is always greater than 0 after device creation. The+-- version must be 0 on the \`CreateDevice\` request if a \`config\` is+-- specified; the response of \`CreateDevice\` will always have a value of+-- 1.+dcVersion :: Lens' DeviceConfig (Maybe Int64)+dcVersion+  = lens _dcVersion (\ s a -> s{_dcVersion = a}) .+      mapping _Coerce++instance FromJSON DeviceConfig where+        parseJSON+          = withObject "DeviceConfig"+              (\ o ->+                 DeviceConfig' <$>+                   (o .:? "deviceAckTime") <*> (o .:? "cloudUpdateTime")+                     <*> (o .:? "binaryData")+                     <*> (o .:? "version"))++instance ToJSON DeviceConfig where+        toJSON DeviceConfig'{..}+          = object+              (catMaybes+                 [("deviceAckTime" .=) <$> _dcDeviceAckTime,+                  ("cloudUpdateTime" .=) <$> _dcCloudUpdateTime,+                  ("binaryData" .=) <$> _dcBinaryData,+                  ("version" .=) <$> _dcVersion])++-- | Response for \`ListDeviceConfigVersions\`.+--+-- /See:/ 'listDeviceConfigVersionsResponse' smart constructor.+newtype ListDeviceConfigVersionsResponse = ListDeviceConfigVersionsResponse'+    { _ldcvrDeviceConfigs :: Maybe [DeviceConfig]+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ListDeviceConfigVersionsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ldcvrDeviceConfigs'+listDeviceConfigVersionsResponse+    :: ListDeviceConfigVersionsResponse+listDeviceConfigVersionsResponse =+    ListDeviceConfigVersionsResponse'+    { _ldcvrDeviceConfigs = Nothing+    }++-- | The device configuration for the last few versions. Versions are listed+-- in decreasing order, starting from the most recent one.+ldcvrDeviceConfigs :: Lens' ListDeviceConfigVersionsResponse [DeviceConfig]+ldcvrDeviceConfigs+  = lens _ldcvrDeviceConfigs+      (\ s a -> s{_ldcvrDeviceConfigs = a})+      . _Default+      . _Coerce++instance FromJSON ListDeviceConfigVersionsResponse+         where+        parseJSON+          = withObject "ListDeviceConfigVersionsResponse"+              (\ o ->+                 ListDeviceConfigVersionsResponse' <$>+                   (o .:? "deviceConfigs" .!= mempty))++instance ToJSON ListDeviceConfigVersionsResponse+         where+        toJSON ListDeviceConfigVersionsResponse'{..}+          = object+              (catMaybes+                 [("deviceConfigs" .=) <$> _ldcvrDeviceConfigs])++-- | Gateway-related configuration and state.+--+-- /See:/ 'gatewayConfig' smart constructor.+data GatewayConfig = GatewayConfig'+    { _gcLastAccessedGatewayId   :: !(Maybe Text)+    , _gcGatewayAuthMethod       :: !(Maybe GatewayConfigGatewayAuthMethod)+    , _gcLastAccessedGatewayTime :: !(Maybe DateTime')+    , _gcGatewayType             :: !(Maybe GatewayConfigGatewayType)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'GatewayConfig' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gcLastAccessedGatewayId'+--+-- * 'gcGatewayAuthMethod'+--+-- * 'gcLastAccessedGatewayTime'+--+-- * 'gcGatewayType'+gatewayConfig+    :: GatewayConfig+gatewayConfig =+    GatewayConfig'+    { _gcLastAccessedGatewayId = Nothing+    , _gcGatewayAuthMethod = Nothing+    , _gcLastAccessedGatewayTime = Nothing+    , _gcGatewayType = Nothing+    }++-- | [Output only] The ID of the gateway the device accessed most recently.+gcLastAccessedGatewayId :: Lens' GatewayConfig (Maybe Text)+gcLastAccessedGatewayId+  = lens _gcLastAccessedGatewayId+      (\ s a -> s{_gcLastAccessedGatewayId = a})++-- | Indicates how to authorize and\/or authenticate devices to access the+-- gateway.+gcGatewayAuthMethod :: Lens' GatewayConfig (Maybe GatewayConfigGatewayAuthMethod)+gcGatewayAuthMethod+  = lens _gcGatewayAuthMethod+      (\ s a -> s{_gcGatewayAuthMethod = a})++-- | [Output only] The most recent time at which the device accessed the+-- gateway specified in \`last_accessed_gateway\`.+gcLastAccessedGatewayTime :: Lens' GatewayConfig (Maybe UTCTime)+gcLastAccessedGatewayTime+  = lens _gcLastAccessedGatewayTime+      (\ s a -> s{_gcLastAccessedGatewayTime = a})+      . mapping _DateTime++-- | Indicates whether the device is a gateway.+gcGatewayType :: Lens' GatewayConfig (Maybe GatewayConfigGatewayType)+gcGatewayType+  = lens _gcGatewayType+      (\ s a -> s{_gcGatewayType = a})++instance FromJSON GatewayConfig where+        parseJSON+          = withObject "GatewayConfig"+              (\ o ->+                 GatewayConfig' <$>+                   (o .:? "lastAccessedGatewayId") <*>+                     (o .:? "gatewayAuthMethod")+                     <*> (o .:? "lastAccessedGatewayTime")+                     <*> (o .:? "gatewayType"))++instance ToJSON GatewayConfig where+        toJSON GatewayConfig'{..}+          = object+              (catMaybes+                 [("lastAccessedGatewayId" .=) <$>+                    _gcLastAccessedGatewayId,+                  ("gatewayAuthMethod" .=) <$> _gcGatewayAuthMethod,+                  ("lastAccessedGatewayTime" .=) <$>+                    _gcLastAccessedGatewayTime,+                  ("gatewayType" .=) <$> _gcGatewayType])++-- | Response for \`ListDeviceStates\`.+--+-- /See:/ 'listDeviceStatesResponse' smart constructor.+newtype ListDeviceStatesResponse = ListDeviceStatesResponse'+    { _ldsrDeviceStates :: Maybe [DeviceState]+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ListDeviceStatesResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ldsrDeviceStates'+listDeviceStatesResponse+    :: ListDeviceStatesResponse+listDeviceStatesResponse =+    ListDeviceStatesResponse'+    { _ldsrDeviceStates = Nothing+    }++-- | The last few device states. States are listed in descending order of+-- server update time, starting from the most recent one.+ldsrDeviceStates :: Lens' ListDeviceStatesResponse [DeviceState]+ldsrDeviceStates+  = lens _ldsrDeviceStates+      (\ s a -> s{_ldsrDeviceStates = a})+      . _Default+      . _Coerce++instance FromJSON ListDeviceStatesResponse where+        parseJSON+          = withObject "ListDeviceStatesResponse"+              (\ o ->+                 ListDeviceStatesResponse' <$>+                   (o .:? "deviceStates" .!= mempty))++instance ToJSON ListDeviceStatesResponse where+        toJSON ListDeviceStatesResponse'{..}+          = object+              (catMaybes+                 [("deviceStates" .=) <$> _ldsrDeviceStates])++-- | 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++-- | The configuration for notification of new states received from the+-- device.+--+-- /See:/ 'stateNotificationConfig' smart constructor.+newtype StateNotificationConfig = StateNotificationConfig'+    { _sncPubsubTopicName :: Maybe Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'StateNotificationConfig' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sncPubsubTopicName'+stateNotificationConfig+    :: StateNotificationConfig+stateNotificationConfig =+    StateNotificationConfig'+    { _sncPubsubTopicName = Nothing+    }++-- | A Cloud Pub\/Sub topic name. For example,+-- \`projects\/myProject\/topics\/deviceEvents\`.+sncPubsubTopicName :: Lens' StateNotificationConfig (Maybe Text)+sncPubsubTopicName+  = lens _sncPubsubTopicName+      (\ s a -> s{_sncPubsubTopicName = a})++instance FromJSON StateNotificationConfig where+        parseJSON+          = withObject "StateNotificationConfig"+              (\ o ->+                 StateNotificationConfig' <$>+                   (o .:? "pubsubTopicName"))++instance ToJSON StateNotificationConfig where+        toJSON StateNotificationConfig'{..}+          = object+              (catMaybes+                 [("pubsubTopicName" .=) <$> _sncPubsubTopicName])++-- | The device resource.+--+-- /See:/ 'device' smart constructor.+data Device = Device'+    { _dState              :: !(Maybe DeviceState)+    , _dLastHeartbeatTime  :: !(Maybe DateTime')+    , _dGatewayConfig      :: !(Maybe GatewayConfig)+    , _dLogLevel           :: !(Maybe DeviceLogLevel)+    , _dConfig             :: !(Maybe DeviceConfig)+    , _dCredentials        :: !(Maybe [DeviceCredential])+    , _dNumId              :: !(Maybe (Textual Word64))+    , _dLastErrorStatus    :: !(Maybe Status)+    , _dLastConfigSendTime :: !(Maybe DateTime')+    , _dLastConfigAckTime  :: !(Maybe DateTime')+    , _dName               :: !(Maybe Text)+    , _dLastErrorTime      :: !(Maybe DateTime')+    , _dMetadata           :: !(Maybe DeviceMetadata)+    , _dId                 :: !(Maybe Text)+    , _dLastStateTime      :: !(Maybe DateTime')+    , _dBlocked            :: !(Maybe Bool)+    , _dLastEventTime      :: !(Maybe DateTime')+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Device' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dState'+--+-- * 'dLastHeartbeatTime'+--+-- * 'dGatewayConfig'+--+-- * 'dLogLevel'+--+-- * 'dConfig'+--+-- * 'dCredentials'+--+-- * 'dNumId'+--+-- * 'dLastErrorStatus'+--+-- * 'dLastConfigSendTime'+--+-- * 'dLastConfigAckTime'+--+-- * 'dName'+--+-- * 'dLastErrorTime'+--+-- * 'dMetadata'+--+-- * 'dId'+--+-- * 'dLastStateTime'+--+-- * 'dBlocked'+--+-- * 'dLastEventTime'+device+    :: Device+device =+    Device'+    { _dState = Nothing+    , _dLastHeartbeatTime = Nothing+    , _dGatewayConfig = Nothing+    , _dLogLevel = Nothing+    , _dConfig = Nothing+    , _dCredentials = Nothing+    , _dNumId = Nothing+    , _dLastErrorStatus = Nothing+    , _dLastConfigSendTime = Nothing+    , _dLastConfigAckTime = Nothing+    , _dName = Nothing+    , _dLastErrorTime = Nothing+    , _dMetadata = Nothing+    , _dId = Nothing+    , _dLastStateTime = Nothing+    , _dBlocked = Nothing+    , _dLastEventTime = Nothing+    }++-- | [Output only] The state most recently received from the device. If no+-- state has been reported, this field is not present.+dState :: Lens' Device (Maybe DeviceState)+dState = lens _dState (\ s a -> s{_dState = a})++-- | [Output only] The last time an MQTT \`PINGREQ\` was received. This field+-- applies only to devices connecting through MQTT. MQTT clients usually+-- only send \`PINGREQ\` messages if the connection is idle, and no other+-- messages have been sent. Timestamps are periodically collected and+-- written to storage; they may be stale by a few minutes.+dLastHeartbeatTime :: Lens' Device (Maybe UTCTime)+dLastHeartbeatTime+  = lens _dLastHeartbeatTime+      (\ s a -> s{_dLastHeartbeatTime = a})+      . mapping _DateTime++-- | Gateway-related configuration and state.+dGatewayConfig :: Lens' Device (Maybe GatewayConfig)+dGatewayConfig+  = lens _dGatewayConfig+      (\ s a -> s{_dGatewayConfig = a})++-- | **Beta Feature** The logging verbosity for device activity. If+-- unspecified, DeviceRegistry.log_level will be used.+dLogLevel :: Lens' Device (Maybe DeviceLogLevel)+dLogLevel+  = lens _dLogLevel (\ s a -> s{_dLogLevel = a})++-- | The most recent device configuration, which is eventually sent from+-- Cloud IoT Core to the device. If not present on creation, the+-- configuration will be initialized with an empty payload and version+-- value of \`1\`. To update this field after creation, use the+-- \`DeviceManager.ModifyCloudToDeviceConfig\` method.+dConfig :: Lens' Device (Maybe DeviceConfig)+dConfig = lens _dConfig (\ s a -> s{_dConfig = a})++-- | The credentials used to authenticate this device. To allow credential+-- rotation without interruption, multiple device credentials can be bound+-- to this device. No more than 3 credentials can be bound to a single+-- device at a time. When new credentials are added to a device, they are+-- verified against the registry credentials. For details, see the+-- description of the \`DeviceRegistry.credentials\` field.+dCredentials :: Lens' Device [DeviceCredential]+dCredentials+  = lens _dCredentials (\ s a -> s{_dCredentials = a})+      . _Default+      . _Coerce++-- | [Output only] A server-defined unique numeric ID for the device. This is+-- a more compact way to identify devices, and it is globally unique.+dNumId :: Lens' Device (Maybe Word64)+dNumId+  = lens _dNumId (\ s a -> s{_dNumId = a}) .+      mapping _Coerce++-- | [Output only] The error message of the most recent error, such as a+-- failure to publish to Cloud Pub\/Sub. \'last_error_time\' is the+-- timestamp of this field. If no errors have occurred, this field has an+-- empty message and the status code 0 == OK. Otherwise, this field is+-- expected to have a status code other than OK.+dLastErrorStatus :: Lens' Device (Maybe Status)+dLastErrorStatus+  = lens _dLastErrorStatus+      (\ s a -> s{_dLastErrorStatus = a})++-- | [Output only] The last time a cloud-to-device config version was sent to+-- the device.+dLastConfigSendTime :: Lens' Device (Maybe UTCTime)+dLastConfigSendTime+  = lens _dLastConfigSendTime+      (\ s a -> s{_dLastConfigSendTime = a})+      . mapping _DateTime++-- | [Output only] The last time a cloud-to-device config version+-- acknowledgment was received from the device. This field is only for+-- configurations sent through MQTT.+dLastConfigAckTime :: Lens' Device (Maybe UTCTime)+dLastConfigAckTime+  = lens _dLastConfigAckTime+      (\ s a -> s{_dLastConfigAckTime = a})+      . mapping _DateTime++-- | The resource path name. For example,+-- \`projects\/p1\/locations\/us-central1\/registries\/registry0\/devices\/dev0\`+-- or+-- \`projects\/p1\/locations\/us-central1\/registries\/registry0\/devices\/{num_id}\`.+-- When \`name\` is populated as a response from the service, it always+-- ends in the device numeric ID.+dName :: Lens' Device (Maybe Text)+dName = lens _dName (\ s a -> s{_dName = a})++-- | [Output only] The time the most recent error occurred, such as a failure+-- to publish to Cloud Pub\/Sub. This field is the timestamp of+-- \'last_error_status\'.+dLastErrorTime :: Lens' Device (Maybe UTCTime)+dLastErrorTime+  = lens _dLastErrorTime+      (\ s a -> s{_dLastErrorTime = a})+      . mapping _DateTime++-- | The metadata key-value pairs assigned to the device. This metadata is+-- not interpreted or indexed by Cloud IoT Core. It can be used to add+-- contextual information for the device. Keys must conform to the regular+-- expression a-zA-Z+ and be less than 128 bytes in length. Values are+-- free-form strings. Each value must be less than or equal to 32 KB in+-- size. The total size of all keys and values must be less than 256 KB,+-- and the maximum number of key-value pairs is 500.+dMetadata :: Lens' Device (Maybe DeviceMetadata)+dMetadata+  = lens _dMetadata (\ s a -> s{_dMetadata = a})++-- | The user-defined device identifier. The device ID must be unique within+-- a device registry.+dId :: Lens' Device (Maybe Text)+dId = lens _dId (\ s a -> s{_dId = a})++-- | [Output only] The last time a state event was received. Timestamps are+-- periodically collected and written to storage; they may be stale by a+-- few minutes.+dLastStateTime :: Lens' Device (Maybe UTCTime)+dLastStateTime+  = lens _dLastStateTime+      (\ s a -> s{_dLastStateTime = a})+      . mapping _DateTime++-- | If a device is blocked, connections or requests from this device will+-- fail. Can be used to temporarily prevent the device from connecting if,+-- for example, the sensor is generating bad data and needs maintenance.+dBlocked :: Lens' Device (Maybe Bool)+dBlocked = lens _dBlocked (\ s a -> s{_dBlocked = a})++-- | [Output only] The last time a telemetry event was received. Timestamps+-- are periodically collected and written to storage; they may be stale by+-- a few minutes.+dLastEventTime :: Lens' Device (Maybe UTCTime)+dLastEventTime+  = lens _dLastEventTime+      (\ s a -> s{_dLastEventTime = a})+      . mapping _DateTime++instance FromJSON Device where+        parseJSON+          = withObject "Device"+              (\ o ->+                 Device' <$>+                   (o .:? "state") <*> (o .:? "lastHeartbeatTime") <*>+                     (o .:? "gatewayConfig")+                     <*> (o .:? "logLevel")+                     <*> (o .:? "config")+                     <*> (o .:? "credentials" .!= mempty)+                     <*> (o .:? "numId")+                     <*> (o .:? "lastErrorStatus")+                     <*> (o .:? "lastConfigSendTime")+                     <*> (o .:? "lastConfigAckTime")+                     <*> (o .:? "name")+                     <*> (o .:? "lastErrorTime")+                     <*> (o .:? "metadata")+                     <*> (o .:? "id")+                     <*> (o .:? "lastStateTime")+                     <*> (o .:? "blocked")+                     <*> (o .:? "lastEventTime"))++instance ToJSON Device where+        toJSON Device'{..}+          = object+              (catMaybes+                 [("state" .=) <$> _dState,+                  ("lastHeartbeatTime" .=) <$> _dLastHeartbeatTime,+                  ("gatewayConfig" .=) <$> _dGatewayConfig,+                  ("logLevel" .=) <$> _dLogLevel,+                  ("config" .=) <$> _dConfig,+                  ("credentials" .=) <$> _dCredentials,+                  ("numId" .=) <$> _dNumId,+                  ("lastErrorStatus" .=) <$> _dLastErrorStatus,+                  ("lastConfigSendTime" .=) <$> _dLastConfigSendTime,+                  ("lastConfigAckTime" .=) <$> _dLastConfigAckTime,+                  ("name" .=) <$> _dName,+                  ("lastErrorTime" .=) <$> _dLastErrorTime,+                  ("metadata" .=) <$> _dMetadata, ("id" .=) <$> _dId,+                  ("lastStateTime" .=) <$> _dLastStateTime,+                  ("blocked" .=) <$> _dBlocked,+                  ("lastEventTime" .=) <$> _dLastEventTime])++-- | A server-stored device credential used for authentication.+--+-- /See:/ 'deviceCredential' smart constructor.+data DeviceCredential = DeviceCredential'+    { _dcPublicKey      :: !(Maybe PublicKeyCredential)+    , _dcExpirationTime :: !(Maybe DateTime')+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DeviceCredential' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dcPublicKey'+--+-- * 'dcExpirationTime'+deviceCredential+    :: DeviceCredential+deviceCredential =+    DeviceCredential'+    { _dcPublicKey = Nothing+    , _dcExpirationTime = Nothing+    }++-- | A public key used to verify the signature of JSON Web Tokens (JWTs).+-- When adding a new device credential, either via device creation or via+-- modifications, this public key credential may be required to be signed+-- by one of the registry level certificates. More specifically, if the+-- registry contains at least one certificate, any new device credential+-- must be signed by one of the registry certificates. As a result, when+-- the registry contains certificates, only X.509 certificates are accepted+-- as device credentials. However, if the registry does not contain a+-- certificate, self-signed certificates and public keys will be accepted.+-- New device credentials must be different from every registry-level+-- certificate.+dcPublicKey :: Lens' DeviceCredential (Maybe PublicKeyCredential)+dcPublicKey+  = lens _dcPublicKey (\ s a -> s{_dcPublicKey = a})++-- | [Optional] The time at which this credential becomes invalid. This+-- credential will be ignored for new client authentication requests after+-- this timestamp; however, it will not be automatically deleted.+dcExpirationTime :: Lens' DeviceCredential (Maybe UTCTime)+dcExpirationTime+  = lens _dcExpirationTime+      (\ s a -> s{_dcExpirationTime = a})+      . mapping _DateTime++instance FromJSON DeviceCredential where+        parseJSON+          = withObject "DeviceCredential"+              (\ o ->+                 DeviceCredential' <$>+                   (o .:? "publicKey") <*> (o .:? "expirationTime"))++instance ToJSON DeviceCredential where+        toJSON DeviceCredential'{..}+          = object+              (catMaybes+                 [("publicKey" .=) <$> _dcPublicKey,+                  ("expirationTime" .=) <$> _dcExpirationTime])++-- | The configuration for forwarding telemetry events.+--+-- /See:/ 'eventNotificationConfig' smart constructor.+data EventNotificationConfig = EventNotificationConfig'+    { _encPubsubTopicName  :: !(Maybe Text)+    , _encSubfolderMatches :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'EventNotificationConfig' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'encPubsubTopicName'+--+-- * 'encSubfolderMatches'+eventNotificationConfig+    :: EventNotificationConfig+eventNotificationConfig =+    EventNotificationConfig'+    { _encPubsubTopicName = Nothing+    , _encSubfolderMatches = Nothing+    }++-- | A Cloud Pub\/Sub topic name. For example,+-- \`projects\/myProject\/topics\/deviceEvents\`.+encPubsubTopicName :: Lens' EventNotificationConfig (Maybe Text)+encPubsubTopicName+  = lens _encPubsubTopicName+      (\ s a -> s{_encPubsubTopicName = a})++-- | If the subfolder name matches this string exactly, this configuration+-- will be used. The string must not include the leading \'\/\' character.+-- If empty, all strings are matched. This field is used only for telemetry+-- events; subfolders are not supported for state changes.+encSubfolderMatches :: Lens' EventNotificationConfig (Maybe Text)+encSubfolderMatches+  = lens _encSubfolderMatches+      (\ s a -> s{_encSubfolderMatches = a})++instance FromJSON EventNotificationConfig where+        parseJSON+          = withObject "EventNotificationConfig"+              (\ o ->+                 EventNotificationConfig' <$>+                   (o .:? "pubsubTopicName") <*>+                     (o .:? "subfolderMatches"))++instance ToJSON EventNotificationConfig where+        toJSON EventNotificationConfig'{..}+          = object+              (catMaybes+                 [("pubsubTopicName" .=) <$> _encPubsubTopicName,+                  ("subfolderMatches" .=) <$> _encSubfolderMatches])++-- | Details of an X.509 certificate. For informational purposes only.+--+-- /See:/ 'x509CertificateDetails' smart constructor.+data X509CertificateDetails = X509CertificateDetails'+    { _xcdSubject            :: !(Maybe Text)+    , _xcdExpiryTime         :: !(Maybe DateTime')+    , _xcdStartTime          :: !(Maybe DateTime')+    , _xcdSignatureAlgorithm :: !(Maybe Text)+    , _xcdIssuer             :: !(Maybe Text)+    , _xcdPublicKeyType      :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'X509CertificateDetails' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'xcdSubject'+--+-- * 'xcdExpiryTime'+--+-- * 'xcdStartTime'+--+-- * 'xcdSignatureAlgorithm'+--+-- * 'xcdIssuer'+--+-- * 'xcdPublicKeyType'+x509CertificateDetails+    :: X509CertificateDetails+x509CertificateDetails =+    X509CertificateDetails'+    { _xcdSubject = Nothing+    , _xcdExpiryTime = Nothing+    , _xcdStartTime = Nothing+    , _xcdSignatureAlgorithm = Nothing+    , _xcdIssuer = Nothing+    , _xcdPublicKeyType = Nothing+    }++-- | The entity the certificate and public key belong to.+xcdSubject :: Lens' X509CertificateDetails (Maybe Text)+xcdSubject+  = lens _xcdSubject (\ s a -> s{_xcdSubject = a})++-- | The time the certificate becomes invalid.+xcdExpiryTime :: Lens' X509CertificateDetails (Maybe UTCTime)+xcdExpiryTime+  = lens _xcdExpiryTime+      (\ s a -> s{_xcdExpiryTime = a})+      . mapping _DateTime++-- | The time the certificate becomes valid.+xcdStartTime :: Lens' X509CertificateDetails (Maybe UTCTime)+xcdStartTime+  = lens _xcdStartTime (\ s a -> s{_xcdStartTime = a})+      . mapping _DateTime++-- | The algorithm used to sign the certificate.+xcdSignatureAlgorithm :: Lens' X509CertificateDetails (Maybe Text)+xcdSignatureAlgorithm+  = lens _xcdSignatureAlgorithm+      (\ s a -> s{_xcdSignatureAlgorithm = a})++-- | The entity that signed the certificate.+xcdIssuer :: Lens' X509CertificateDetails (Maybe Text)+xcdIssuer+  = lens _xcdIssuer (\ s a -> s{_xcdIssuer = a})++-- | The type of public key in the certificate.+xcdPublicKeyType :: Lens' X509CertificateDetails (Maybe Text)+xcdPublicKeyType+  = lens _xcdPublicKeyType+      (\ s a -> s{_xcdPublicKeyType = a})++instance FromJSON X509CertificateDetails where+        parseJSON+          = withObject "X509CertificateDetails"+              (\ o ->+                 X509CertificateDetails' <$>+                   (o .:? "subject") <*> (o .:? "expiryTime") <*>+                     (o .:? "startTime")+                     <*> (o .:? "signatureAlgorithm")+                     <*> (o .:? "issuer")+                     <*> (o .:? "publicKeyType"))++instance ToJSON X509CertificateDetails where+        toJSON X509CertificateDetails'{..}+          = object+              (catMaybes+                 [("subject" .=) <$> _xcdSubject,+                  ("expiryTime" .=) <$> _xcdExpiryTime,+                  ("startTime" .=) <$> _xcdStartTime,+                  ("signatureAlgorithm" .=) <$> _xcdSignatureAlgorithm,+                  ("issuer" .=) <$> _xcdIssuer,+                  ("publicKeyType" .=) <$> _xcdPublicKeyType])++-- | A public key certificate format and data.+--+-- /See:/ 'publicKeyCertificate' smart constructor.+data PublicKeyCertificate = PublicKeyCertificate'+    { _pkcFormat      :: !(Maybe PublicKeyCertificateFormat)+    , _pkcCertificate :: !(Maybe Text)+    , _pkcX509Details :: !(Maybe X509CertificateDetails)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'PublicKeyCertificate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pkcFormat'+--+-- * 'pkcCertificate'+--+-- * 'pkcX509Details'+publicKeyCertificate+    :: PublicKeyCertificate+publicKeyCertificate =+    PublicKeyCertificate'+    { _pkcFormat = Nothing+    , _pkcCertificate = Nothing+    , _pkcX509Details = Nothing+    }++-- | The certificate format.+pkcFormat :: Lens' PublicKeyCertificate (Maybe PublicKeyCertificateFormat)+pkcFormat+  = lens _pkcFormat (\ s a -> s{_pkcFormat = a})++-- | The certificate data.+pkcCertificate :: Lens' PublicKeyCertificate (Maybe Text)+pkcCertificate+  = lens _pkcCertificate+      (\ s a -> s{_pkcCertificate = a})++-- | [Output only] The certificate details. Used only for X.509 certificates.+pkcX509Details :: Lens' PublicKeyCertificate (Maybe X509CertificateDetails)+pkcX509Details+  = lens _pkcX509Details+      (\ s a -> s{_pkcX509Details = a})++instance FromJSON PublicKeyCertificate where+        parseJSON+          = withObject "PublicKeyCertificate"+              (\ o ->+                 PublicKeyCertificate' <$>+                   (o .:? "format") <*> (o .:? "certificate") <*>+                     (o .:? "x509Details"))++instance ToJSON PublicKeyCertificate where+        toJSON PublicKeyCertificate'{..}+          = object+              (catMaybes+                 [("format" .=) <$> _pkcFormat,+                  ("certificate" .=) <$> _pkcCertificate,+                  ("x509Details" .=) <$> _pkcX509Details])++--+-- /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++-- | The configuration of MQTT for a device registry.+--+-- /See:/ 'mqttConfig' smart constructor.+newtype MqttConfig = MqttConfig'+    { _mcMqttEnabledState :: Maybe MqttConfigMqttEnabledState+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'MqttConfig' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mcMqttEnabledState'+mqttConfig+    :: MqttConfig+mqttConfig =+    MqttConfig'+    { _mcMqttEnabledState = Nothing+    }++-- | If enabled, allows connections using the MQTT protocol. Otherwise, MQTT+-- connections to this registry will fail.+mcMqttEnabledState :: Lens' MqttConfig (Maybe MqttConfigMqttEnabledState)+mcMqttEnabledState+  = lens _mcMqttEnabledState+      (\ s a -> s{_mcMqttEnabledState = a})++instance FromJSON MqttConfig where+        parseJSON+          = withObject "MqttConfig"+              (\ o -> MqttConfig' <$> (o .:? "mqttEnabledState"))++instance ToJSON MqttConfig where+        toJSON MqttConfig'{..}+          = object+              (catMaybes+                 [("mqttEnabledState" .=) <$> _mcMqttEnabledState])++-- | Request message for \`SetIamPolicy\` method.+--+-- /See:/ 'setIAMPolicyRequest' smart constructor.+newtype SetIAMPolicyRequest = SetIAMPolicyRequest'+    { _siprPolicy :: Maybe Policy+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'SetIAMPolicyRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'siprPolicy'+setIAMPolicyRequest+    :: SetIAMPolicyRequest+setIAMPolicyRequest =+    SetIAMPolicyRequest'+    { _siprPolicy = Nothing+    }++-- | REQUIRED: The complete policy to be applied to the \`resource\`. The+-- size of the policy is limited to a few 10s of KB. An empty policy is a+-- valid policy but certain Cloud Platform services (such as Projects)+-- might reject them.+siprPolicy :: Lens' SetIAMPolicyRequest (Maybe Policy)+siprPolicy+  = lens _siprPolicy (\ s a -> s{_siprPolicy = a})++instance FromJSON SetIAMPolicyRequest where+        parseJSON+          = withObject "SetIAMPolicyRequest"+              (\ o -> SetIAMPolicyRequest' <$> (o .:? "policy"))++instance ToJSON SetIAMPolicyRequest where+        toJSON SetIAMPolicyRequest'{..}+          = object (catMaybes [("policy" .=) <$> _siprPolicy])++-- | A server-stored registry credential used to validate device credentials.+--+-- /See:/ 'registryCredential' smart constructor.+newtype RegistryCredential = RegistryCredential'+    { _rcPublicKeyCertificate :: Maybe PublicKeyCertificate+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'RegistryCredential' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rcPublicKeyCertificate'+registryCredential+    :: RegistryCredential+registryCredential =+    RegistryCredential'+    { _rcPublicKeyCertificate = Nothing+    }++-- | A public key certificate used to verify the device credentials.+rcPublicKeyCertificate :: Lens' RegistryCredential (Maybe PublicKeyCertificate)+rcPublicKeyCertificate+  = lens _rcPublicKeyCertificate+      (\ s a -> s{_rcPublicKeyCertificate = a})++instance FromJSON RegistryCredential where+        parseJSON+          = withObject "RegistryCredential"+              (\ o ->+                 RegistryCredential' <$>+                   (o .:? "publicKeyCertificate"))++instance ToJSON RegistryCredential where+        toJSON RegistryCredential'{..}+          = object+              (catMaybes+                 [("publicKeyCertificate" .=) <$>+                    _rcPublicKeyCertificate])++-- | Request for \`SendCommandToDevice\`.+--+-- /See:/ 'sendCommandToDeviceRequest' smart constructor.+data SendCommandToDeviceRequest = SendCommandToDeviceRequest'+    { _sctdrBinaryData :: !(Maybe Bytes)+    , _sctdrSubfolder  :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'SendCommandToDeviceRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sctdrBinaryData'+--+-- * 'sctdrSubfolder'+sendCommandToDeviceRequest+    :: SendCommandToDeviceRequest+sendCommandToDeviceRequest =+    SendCommandToDeviceRequest'+    { _sctdrBinaryData = Nothing+    , _sctdrSubfolder = Nothing+    }++-- | The command data to send to the device.+sctdrBinaryData :: Lens' SendCommandToDeviceRequest (Maybe ByteString)+sctdrBinaryData+  = lens _sctdrBinaryData+      (\ s a -> s{_sctdrBinaryData = a})+      . mapping _Bytes++-- | Optional subfolder for the command. If empty, the command will be+-- delivered to the \/devices\/{device-id}\/commands topic, otherwise it+-- will be delivered to the \/devices\/{device-id}\/commands\/{subfolder}+-- topic. Multi-level subfolders are allowed. This field must not have more+-- than 256 characters, and must not contain any MQTT wildcards (\"+\" or+-- \"#\") or null characters.+sctdrSubfolder :: Lens' SendCommandToDeviceRequest (Maybe Text)+sctdrSubfolder+  = lens _sctdrSubfolder+      (\ s a -> s{_sctdrSubfolder = a})++instance FromJSON SendCommandToDeviceRequest where+        parseJSON+          = withObject "SendCommandToDeviceRequest"+              (\ o ->+                 SendCommandToDeviceRequest' <$>+                   (o .:? "binaryData") <*> (o .:? "subfolder"))++instance ToJSON SendCommandToDeviceRequest where+        toJSON SendCommandToDeviceRequest'{..}+          = object+              (catMaybes+                 [("binaryData" .=) <$> _sctdrBinaryData,+                  ("subfolder" .=) <$> _sctdrSubfolder])++-- | Response for \`BindDeviceToGateway\`.+--+-- /See:/ 'bindDeviceToGatewayResponse' smart constructor.+data BindDeviceToGatewayResponse =+    BindDeviceToGatewayResponse'+    deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'BindDeviceToGatewayResponse' with the minimum fields required to make a request.+--+bindDeviceToGatewayResponse+    :: BindDeviceToGatewayResponse+bindDeviceToGatewayResponse = BindDeviceToGatewayResponse'++instance FromJSON BindDeviceToGatewayResponse where+        parseJSON+          = withObject "BindDeviceToGatewayResponse"+              (\ o -> pure BindDeviceToGatewayResponse')++instance ToJSON BindDeviceToGatewayResponse where+        toJSON = const emptyObject++-- | The configuration of the HTTP bridge for a device registry.+--+-- /See:/ 'hTTPConfig' smart constructor.+newtype HTTPConfig = HTTPConfig'+    { _httpcHTTPEnabledState :: Maybe HTTPConfigHTTPEnabledState+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'HTTPConfig' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'httpcHTTPEnabledState'+hTTPConfig+    :: HTTPConfig+hTTPConfig =+    HTTPConfig'+    { _httpcHTTPEnabledState = Nothing+    }++-- | If enabled, allows devices to use DeviceService via the HTTP protocol.+-- Otherwise, any requests to DeviceService will fail for this registry.+httpcHTTPEnabledState :: Lens' HTTPConfig (Maybe HTTPConfigHTTPEnabledState)+httpcHTTPEnabledState+  = lens _httpcHTTPEnabledState+      (\ s a -> s{_httpcHTTPEnabledState = a})++instance FromJSON HTTPConfig where+        parseJSON+          = withObject "HTTPConfig"+              (\ o -> HTTPConfig' <$> (o .:? "httpEnabledState"))++instance ToJSON HTTPConfig where+        toJSON HTTPConfig'{..}+          = object+              (catMaybes+                 [("httpEnabledState" .=) <$> _httpcHTTPEnabledState])++-- | Request message for \`TestIamPermissions\` method.+--+-- /See:/ 'testIAMPermissionsRequest' smart constructor.+newtype TestIAMPermissionsRequest = TestIAMPermissionsRequest'+    { _tiprPermissions :: Maybe [Text]+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TestIAMPermissionsRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tiprPermissions'+testIAMPermissionsRequest+    :: TestIAMPermissionsRequest+testIAMPermissionsRequest =+    TestIAMPermissionsRequest'+    { _tiprPermissions = Nothing+    }++-- | The set of permissions to check for the \`resource\`. Permissions with+-- wildcards (such as \'*\' or \'storage.*\') are not allowed. For more+-- information see [IAM+-- Overview](https:\/\/cloud.google.com\/iam\/docs\/overview#permissions).+tiprPermissions :: Lens' TestIAMPermissionsRequest [Text]+tiprPermissions+  = lens _tiprPermissions+      (\ s a -> s{_tiprPermissions = a})+      . _Default+      . _Coerce++instance FromJSON TestIAMPermissionsRequest where+        parseJSON+          = withObject "TestIAMPermissionsRequest"+              (\ o ->+                 TestIAMPermissionsRequest' <$>+                   (o .:? "permissions" .!= mempty))++instance ToJSON TestIAMPermissionsRequest where+        toJSON TestIAMPermissionsRequest'{..}+          = object+              (catMaybes [("permissions" .=) <$> _tiprPermissions])++-- | Response for \`ListDevices\`.+--+-- /See:/ 'listDevicesResponse' smart constructor.+data ListDevicesResponse = ListDevicesResponse'+    { _ldrNextPageToken :: !(Maybe Text)+    , _ldrDevices       :: !(Maybe [Device])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ListDevicesResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ldrNextPageToken'+--+-- * 'ldrDevices'+listDevicesResponse+    :: ListDevicesResponse+listDevicesResponse =+    ListDevicesResponse'+    { _ldrNextPageToken = Nothing+    , _ldrDevices = Nothing+    }++-- | If not empty, indicates that there may be more devices that match the+-- request; this value should be passed in a new \`ListDevicesRequest\`.+ldrNextPageToken :: Lens' ListDevicesResponse (Maybe Text)+ldrNextPageToken+  = lens _ldrNextPageToken+      (\ s a -> s{_ldrNextPageToken = a})++-- | The devices that match the request.+ldrDevices :: Lens' ListDevicesResponse [Device]+ldrDevices+  = lens _ldrDevices (\ s a -> s{_ldrDevices = a}) .+      _Default+      . _Coerce++instance FromJSON ListDevicesResponse where+        parseJSON+          = withObject "ListDevicesResponse"+              (\ o ->+                 ListDevicesResponse' <$>+                   (o .:? "nextPageToken") <*>+                     (o .:? "devices" .!= mempty))++instance ToJSON ListDevicesResponse where+        toJSON ListDevicesResponse'{..}+          = object+              (catMaybes+                 [("nextPageToken" .=) <$> _ldrNextPageToken,+                  ("devices" .=) <$> _ldrDevices])++-- | The metadata key-value pairs assigned to the device. This metadata is+-- not interpreted or indexed by Cloud IoT Core. It can be used to add+-- contextual information for the device. Keys must conform to the regular+-- expression a-zA-Z+ and be less than 128 bytes in length. Values are+-- free-form strings. Each value must be less than or equal to 32 KB in+-- size. The total size of all keys and values must be less than 256 KB,+-- and the maximum number of key-value pairs is 500.+--+-- /See:/ 'deviceMetadata' smart constructor.+newtype DeviceMetadata = DeviceMetadata'+    { _dmAddtional :: HashMap Text Text+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DeviceMetadata' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dmAddtional'+deviceMetadata+    :: HashMap Text Text -- ^ 'dmAddtional'+    -> DeviceMetadata+deviceMetadata pDmAddtional_ =+    DeviceMetadata'+    { _dmAddtional = _Coerce # pDmAddtional_+    }++dmAddtional :: Lens' DeviceMetadata (HashMap Text Text)+dmAddtional+  = lens _dmAddtional (\ s a -> s{_dmAddtional = a}) .+      _Coerce++instance FromJSON DeviceMetadata where+        parseJSON+          = withObject "DeviceMetadata"+              (\ o -> DeviceMetadata' <$> (parseJSONObject o))++instance ToJSON DeviceMetadata where+        toJSON = toJSON . _dmAddtional++-- | A container for a group of devices.+--+-- /See:/ 'deviceRegistry' smart constructor.+data DeviceRegistry = DeviceRegistry'+    { _drLogLevel                 :: !(Maybe DeviceRegistryLogLevel)+    , _drCredentials              :: !(Maybe [RegistryCredential])+    , _drStateNotificationConfig  :: !(Maybe StateNotificationConfig)+    , _drEventNotificationConfigs :: !(Maybe [EventNotificationConfig])+    , _drMqttConfig               :: !(Maybe MqttConfig)+    , _drName                     :: !(Maybe Text)+    , _drHTTPConfig               :: !(Maybe HTTPConfig)+    , _drId                       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'DeviceRegistry' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'drLogLevel'+--+-- * 'drCredentials'+--+-- * 'drStateNotificationConfig'+--+-- * 'drEventNotificationConfigs'+--+-- * 'drMqttConfig'+--+-- * 'drName'+--+-- * 'drHTTPConfig'+--+-- * 'drId'+deviceRegistry+    :: DeviceRegistry+deviceRegistry =+    DeviceRegistry'+    { _drLogLevel = Nothing+    , _drCredentials = Nothing+    , _drStateNotificationConfig = Nothing+    , _drEventNotificationConfigs = Nothing+    , _drMqttConfig = Nothing+    , _drName = Nothing+    , _drHTTPConfig = Nothing+    , _drId = Nothing+    }++-- | **Beta Feature** The default logging verbosity for activity from devices+-- in this registry. The verbosity level can be overridden by+-- Device.log_level.+drLogLevel :: Lens' DeviceRegistry (Maybe DeviceRegistryLogLevel)+drLogLevel+  = lens _drLogLevel (\ s a -> s{_drLogLevel = a})++-- | The credentials used to verify the device credentials. No more than 10+-- credentials can be bound to a single registry at a time. The+-- verification process occurs at the time of device creation or update. If+-- this field is empty, no verification is performed. Otherwise, the+-- credentials of a newly created device or added credentials of an updated+-- device should be signed with one of these registry credentials. Note,+-- however, that existing devices will never be affected by modifications+-- to this list of credentials: after a device has been successfully+-- created in a registry, it should be able to connect even if its registry+-- credentials are revoked, deleted, or modified.+drCredentials :: Lens' DeviceRegistry [RegistryCredential]+drCredentials+  = lens _drCredentials+      (\ s a -> s{_drCredentials = a})+      . _Default+      . _Coerce++-- | The configuration for notification of new states received from the+-- device. State updates are guaranteed to be stored in the state history,+-- but notifications to Cloud Pub\/Sub are not guaranteed. For example, if+-- permissions are misconfigured or the specified topic doesn\'t exist, no+-- notification will be published but the state will still be stored in+-- Cloud IoT Core.+drStateNotificationConfig :: Lens' DeviceRegistry (Maybe StateNotificationConfig)+drStateNotificationConfig+  = lens _drStateNotificationConfig+      (\ s a -> s{_drStateNotificationConfig = a})++-- | The configuration for notification of telemetry events received from the+-- device. All telemetry events that were successfully published by the+-- device and acknowledged by Cloud IoT Core are guaranteed to be delivered+-- to Cloud Pub\/Sub. If multiple configurations match a message, only the+-- first matching configuration is used. If you try to publish a device+-- telemetry event using MQTT without specifying a Cloud Pub\/Sub topic for+-- the device\'s registry, the connection closes automatically. If you try+-- to do so using an HTTP connection, an error is returned. Up to 10+-- configurations may be provided.+drEventNotificationConfigs :: Lens' DeviceRegistry [EventNotificationConfig]+drEventNotificationConfigs+  = lens _drEventNotificationConfigs+      (\ s a -> s{_drEventNotificationConfigs = a})+      . _Default+      . _Coerce++-- | The MQTT configuration for this device registry.+drMqttConfig :: Lens' DeviceRegistry (Maybe MqttConfig)+drMqttConfig+  = lens _drMqttConfig (\ s a -> s{_drMqttConfig = a})++-- | The resource path name. For example,+-- \`projects\/example-project\/locations\/us-central1\/registries\/my-registry\`.+drName :: Lens' DeviceRegistry (Maybe Text)+drName = lens _drName (\ s a -> s{_drName = a})++-- | The DeviceService (HTTP) configuration for this device registry.+drHTTPConfig :: Lens' DeviceRegistry (Maybe HTTPConfig)+drHTTPConfig+  = lens _drHTTPConfig (\ s a -> s{_drHTTPConfig = a})++-- | The identifier of this device registry. For example, \`myRegistry\`.+drId :: Lens' DeviceRegistry (Maybe Text)+drId = lens _drId (\ s a -> s{_drId = a})++instance FromJSON DeviceRegistry where+        parseJSON+          = withObject "DeviceRegistry"+              (\ o ->+                 DeviceRegistry' <$>+                   (o .:? "logLevel") <*>+                     (o .:? "credentials" .!= mempty)+                     <*> (o .:? "stateNotificationConfig")+                     <*> (o .:? "eventNotificationConfigs" .!= mempty)+                     <*> (o .:? "mqttConfig")+                     <*> (o .:? "name")+                     <*> (o .:? "httpConfig")+                     <*> (o .:? "id"))++instance ToJSON DeviceRegistry where+        toJSON DeviceRegistry'{..}+          = object+              (catMaybes+                 [("logLevel" .=) <$> _drLogLevel,+                  ("credentials" .=) <$> _drCredentials,+                  ("stateNotificationConfig" .=) <$>+                    _drStateNotificationConfig,+                  ("eventNotificationConfigs" .=) <$>+                    _drEventNotificationConfigs,+                  ("mqttConfig" .=) <$> _drMqttConfig,+                  ("name" .=) <$> _drName,+                  ("httpConfig" .=) <$> _drHTTPConfig,+                  ("id" .=) <$> _drId])++-- | A public key format and data.+--+-- /See:/ 'publicKeyCredential' smart constructor.+data PublicKeyCredential = PublicKeyCredential'+    { _pFormat :: !(Maybe PublicKeyCredentialFormat)+    , _pKey    :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'PublicKeyCredential' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pFormat'+--+-- * 'pKey'+publicKeyCredential+    :: PublicKeyCredential+publicKeyCredential =+    PublicKeyCredential'+    { _pFormat = Nothing+    , _pKey = Nothing+    }++-- | The format of the key.+pFormat :: Lens' PublicKeyCredential (Maybe PublicKeyCredentialFormat)+pFormat = lens _pFormat (\ s a -> s{_pFormat = a})++-- | The key data.+pKey :: Lens' PublicKeyCredential (Maybe Text)+pKey = lens _pKey (\ s a -> s{_pKey = a})++instance FromJSON PublicKeyCredential where+        parseJSON+          = withObject "PublicKeyCredential"+              (\ o ->+                 PublicKeyCredential' <$>+                   (o .:? "format") <*> (o .:? "key"))++instance ToJSON PublicKeyCredential where+        toJSON PublicKeyCredential'{..}+          = object+              (catMaybes+                 [("format" .=) <$> _pFormat, ("key" .=) <$> _pKey])++-- | Request for \`UnbindDeviceFromGateway\`.+--+-- /See:/ 'unbindDeviceFromGatewayRequest' smart constructor.+data UnbindDeviceFromGatewayRequest = UnbindDeviceFromGatewayRequest'+    { _udfgrDeviceId  :: !(Maybe Text)+    , _udfgrGatewayId :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'UnbindDeviceFromGatewayRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'udfgrDeviceId'+--+-- * 'udfgrGatewayId'+unbindDeviceFromGatewayRequest+    :: UnbindDeviceFromGatewayRequest+unbindDeviceFromGatewayRequest =+    UnbindDeviceFromGatewayRequest'+    { _udfgrDeviceId = Nothing+    , _udfgrGatewayId = Nothing+    }++-- | The device to disassociate from the specified gateway. The value of+-- \`device_id\` can be either the device numeric ID or the user-defined+-- device identifier.+udfgrDeviceId :: Lens' UnbindDeviceFromGatewayRequest (Maybe Text)+udfgrDeviceId+  = lens _udfgrDeviceId+      (\ s a -> s{_udfgrDeviceId = a})++-- | The value of \`gateway_id\` can be either the device numeric ID or the+-- user-defined device identifier.+udfgrGatewayId :: Lens' UnbindDeviceFromGatewayRequest (Maybe Text)+udfgrGatewayId+  = lens _udfgrGatewayId+      (\ s a -> s{_udfgrGatewayId = a})++instance FromJSON UnbindDeviceFromGatewayRequest+         where+        parseJSON+          = withObject "UnbindDeviceFromGatewayRequest"+              (\ o ->+                 UnbindDeviceFromGatewayRequest' <$>+                   (o .:? "deviceId") <*> (o .:? "gatewayId"))++instance ToJSON UnbindDeviceFromGatewayRequest where+        toJSON UnbindDeviceFromGatewayRequest'{..}+          = object+              (catMaybes+                 [("deviceId" .=) <$> _udfgrDeviceId,+                  ("gatewayId" .=) <$> _udfgrGatewayId])++-- | Response message for \`TestIamPermissions\` method.+--+-- /See:/ 'testIAMPermissionsResponse' smart constructor.+newtype TestIAMPermissionsResponse = TestIAMPermissionsResponse'+    { _tiamprPermissions :: Maybe [Text]+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'TestIAMPermissionsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tiamprPermissions'+testIAMPermissionsResponse+    :: TestIAMPermissionsResponse+testIAMPermissionsResponse =+    TestIAMPermissionsResponse'+    { _tiamprPermissions = Nothing+    }++-- | A subset of \`TestPermissionsRequest.permissions\` that the caller is+-- allowed.+tiamprPermissions :: Lens' TestIAMPermissionsResponse [Text]+tiamprPermissions+  = lens _tiamprPermissions+      (\ s a -> s{_tiamprPermissions = a})+      . _Default+      . _Coerce++instance FromJSON TestIAMPermissionsResponse where+        parseJSON+          = withObject "TestIAMPermissionsResponse"+              (\ o ->+                 TestIAMPermissionsResponse' <$>+                   (o .:? "permissions" .!= mempty))++instance ToJSON TestIAMPermissionsResponse where+        toJSON TestIAMPermissionsResponse'{..}+          = object+              (catMaybes+                 [("permissions" .=) <$> _tiamprPermissions])++-- | Defines an Identity and Access Management (IAM) policy. It is used to+-- specify access control policies for Cloud Platform resources. A+-- \`Policy\` consists of a list of \`bindings\`. A \`binding\` binds a+-- list of \`members\` to a \`role\`, where the members can be user+-- accounts, Google groups, Google domains, and service accounts. A+-- \`role\` is a named list of permissions defined by IAM. **JSON Example**+-- { \"bindings\": [ { \"role\": \"roles\/owner\", \"members\": [+-- \"user:mike\'example.com\", \"group:admins\'example.com\",+-- \"domain:google.com\",+-- \"serviceAccount:my-other-app\'appspot.gserviceaccount.com\" ] }, {+-- \"role\": \"roles\/viewer\", \"members\": [\"user:sean\'example.com\"] }+-- ] } **YAML Example** bindings: - members: - user:mike\'example.com -+-- group:admins\'example.com - domain:google.com -+-- serviceAccount:my-other-app\'appspot.gserviceaccount.com role:+-- roles\/owner - members: - user:sean\'example.com role: roles\/viewer For+-- a description of IAM and its features, see the [IAM developer\'s+-- guide](https:\/\/cloud.google.com\/iam\/docs).+--+-- /See:/ 'policy' smart constructor.+data Policy = Policy'+    { _pEtag     :: !(Maybe Bytes)+    , _pVersion  :: !(Maybe (Textual Int32))+    , _pBindings :: !(Maybe [Binding])+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Policy' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pEtag'+--+-- * 'pVersion'+--+-- * 'pBindings'+policy+    :: Policy+policy =+    Policy'+    { _pEtag = Nothing+    , _pVersion = Nothing+    , _pBindings = Nothing+    }++-- | \`etag\` is used for optimistic concurrency control as a way to help+-- prevent simultaneous updates of a policy from overwriting each other. It+-- is strongly suggested that systems make use of the \`etag\` in the+-- read-modify-write cycle to perform policy updates in order to avoid race+-- conditions: An \`etag\` is returned in the response to \`getIamPolicy\`,+-- and systems are expected to put that etag in the request to+-- \`setIamPolicy\` to ensure that their change will be applied to the same+-- version of the policy. If no \`etag\` is provided in the call to+-- \`setIamPolicy\`, then the existing policy is overwritten blindly.+pEtag :: Lens' Policy (Maybe ByteString)+pEtag+  = lens _pEtag (\ s a -> s{_pEtag = a}) .+      mapping _Bytes++-- | Deprecated.+pVersion :: Lens' Policy (Maybe Int32)+pVersion+  = lens _pVersion (\ s a -> s{_pVersion = a}) .+      mapping _Coerce++-- | Associates a list of \`members\` to a \`role\`. \`bindings\` with no+-- members will result in an error.+pBindings :: Lens' Policy [Binding]+pBindings+  = lens _pBindings (\ s a -> s{_pBindings = a}) .+      _Default+      . _Coerce++instance FromJSON Policy where+        parseJSON+          = withObject "Policy"+              (\ o ->+                 Policy' <$>+                   (o .:? "etag") <*> (o .:? "version") <*>+                     (o .:? "bindings" .!= mempty))++instance ToJSON Policy where+        toJSON Policy'{..}+          = object+              (catMaybes+                 [("etag" .=) <$> _pEtag,+                  ("version" .=) <$> _pVersion,+                  ("bindings" .=) <$> _pBindings])++-- | Response for \`SendCommandToDevice\`.+--+-- /See:/ 'sendCommandToDeviceResponse' smart constructor.+data SendCommandToDeviceResponse =+    SendCommandToDeviceResponse'+    deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'SendCommandToDeviceResponse' with the minimum fields required to make a request.+--+sendCommandToDeviceResponse+    :: SendCommandToDeviceResponse+sendCommandToDeviceResponse = SendCommandToDeviceResponse'++instance FromJSON SendCommandToDeviceResponse where+        parseJSON+          = withObject "SendCommandToDeviceResponse"+              (\ o -> pure SendCommandToDeviceResponse')++instance ToJSON SendCommandToDeviceResponse where+        toJSON = const emptyObject++-- | Request for \`BindDeviceToGateway\`.+--+-- /See:/ 'bindDeviceToGatewayRequest' smart constructor.+data BindDeviceToGatewayRequest = BindDeviceToGatewayRequest'+    { _bdtgrDeviceId  :: !(Maybe Text)+    , _bdtgrGatewayId :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'BindDeviceToGatewayRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'bdtgrDeviceId'+--+-- * 'bdtgrGatewayId'+bindDeviceToGatewayRequest+    :: BindDeviceToGatewayRequest+bindDeviceToGatewayRequest =+    BindDeviceToGatewayRequest'+    { _bdtgrDeviceId = Nothing+    , _bdtgrGatewayId = Nothing+    }++-- | The device to associate with the specified gateway. The value of+-- \`device_id\` can be either the device numeric ID or the user-defined+-- device identifier.+bdtgrDeviceId :: Lens' BindDeviceToGatewayRequest (Maybe Text)+bdtgrDeviceId+  = lens _bdtgrDeviceId+      (\ s a -> s{_bdtgrDeviceId = a})++-- | The value of \`gateway_id\` can be either the device numeric ID or the+-- user-defined device identifier.+bdtgrGatewayId :: Lens' BindDeviceToGatewayRequest (Maybe Text)+bdtgrGatewayId+  = lens _bdtgrGatewayId+      (\ s a -> s{_bdtgrGatewayId = a})++instance FromJSON BindDeviceToGatewayRequest where+        parseJSON+          = withObject "BindDeviceToGatewayRequest"+              (\ o ->+                 BindDeviceToGatewayRequest' <$>+                   (o .:? "deviceId") <*> (o .:? "gatewayId"))++instance ToJSON BindDeviceToGatewayRequest where+        toJSON BindDeviceToGatewayRequest'{..}+          = object+              (catMaybes+                 [("deviceId" .=) <$> _bdtgrDeviceId,+                  ("gatewayId" .=) <$> _bdtgrGatewayId])++-- | Request for \`ModifyCloudToDeviceConfig\`.+--+-- /See:/ 'modifyCloudToDeviceConfigRequest' smart constructor.+data ModifyCloudToDeviceConfigRequest = ModifyCloudToDeviceConfigRequest'+    { _mctdcrVersionToUpdate :: !(Maybe (Textual Int64))+    , _mctdcrBinaryData      :: !(Maybe Bytes)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ModifyCloudToDeviceConfigRequest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mctdcrVersionToUpdate'+--+-- * 'mctdcrBinaryData'+modifyCloudToDeviceConfigRequest+    :: ModifyCloudToDeviceConfigRequest+modifyCloudToDeviceConfigRequest =+    ModifyCloudToDeviceConfigRequest'+    { _mctdcrVersionToUpdate = Nothing+    , _mctdcrBinaryData = Nothing+    }++-- | The version number to update. If this value is zero, it will not check+-- the version number of the server and will always update the current+-- version; otherwise, this update will fail if the version number found on+-- the server does not match this version number. This is used to support+-- multiple simultaneous updates without losing data.+mctdcrVersionToUpdate :: Lens' ModifyCloudToDeviceConfigRequest (Maybe Int64)+mctdcrVersionToUpdate+  = lens _mctdcrVersionToUpdate+      (\ s a -> s{_mctdcrVersionToUpdate = a})+      . mapping _Coerce++-- | The configuration data for the device.+mctdcrBinaryData :: Lens' ModifyCloudToDeviceConfigRequest (Maybe ByteString)+mctdcrBinaryData+  = lens _mctdcrBinaryData+      (\ s a -> s{_mctdcrBinaryData = a})+      . mapping _Bytes++instance FromJSON ModifyCloudToDeviceConfigRequest+         where+        parseJSON+          = withObject "ModifyCloudToDeviceConfigRequest"+              (\ o ->+                 ModifyCloudToDeviceConfigRequest' <$>+                   (o .:? "versionToUpdate") <*> (o .:? "binaryData"))++instance ToJSON ModifyCloudToDeviceConfigRequest+         where+        toJSON ModifyCloudToDeviceConfigRequest'{..}+          = object+              (catMaybes+                 [("versionToUpdate" .=) <$> _mctdcrVersionToUpdate,+                  ("binaryData" .=) <$> _mctdcrBinaryData])++-- | Associates \`members\` with a \`role\`.+--+-- /See:/ 'binding' smart constructor.+data Binding = Binding'+    { _bMembers   :: !(Maybe [Text])+    , _bRole      :: !(Maybe Text)+    , _bCondition :: !(Maybe Expr)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'Binding' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'bMembers'+--+-- * 'bRole'+--+-- * 'bCondition'+binding+    :: Binding+binding =+    Binding'+    { _bMembers = Nothing+    , _bRole = Nothing+    , _bCondition = Nothing+    }++-- | Specifies the identities requesting access for a Cloud Platform+-- resource. \`members\` can have the following values: * \`allUsers\`: A+-- special identifier that represents anyone who is on the internet; with+-- or without a Google account. * \`allAuthenticatedUsers\`: A special+-- identifier that represents anyone who is authenticated with a Google+-- account or a service account. * \`user:{emailid}\`: An email address+-- that represents a specific Google account. For example,+-- \`alice\'gmail.com\` . * \`serviceAccount:{emailid}\`: An email address+-- that represents a service account. For example,+-- \`my-other-app\'appspot.gserviceaccount.com\`. * \`group:{emailid}\`: An+-- email address that represents a Google group. For example,+-- \`admins\'example.com\`. * \`domain:{domain}\`: A Google Apps domain+-- name that represents all the users of that domain. For example,+-- \`google.com\` or \`example.com\`.+bMembers :: Lens' Binding [Text]+bMembers+  = lens _bMembers (\ s a -> s{_bMembers = a}) .+      _Default+      . _Coerce++-- | Role that is assigned to \`members\`. For example, \`roles\/viewer\`,+-- \`roles\/editor\`, or \`roles\/owner\`.+bRole :: Lens' Binding (Maybe Text)+bRole = lens _bRole (\ s a -> s{_bRole = a})++-- | Unimplemented. The condition that is associated with this binding. NOTE:+-- an unsatisfied condition will not allow user access via current binding.+-- Different bindings, including their conditions, are examined+-- independently.+bCondition :: Lens' Binding (Maybe Expr)+bCondition+  = lens _bCondition (\ s a -> s{_bCondition = a})++instance FromJSON Binding where+        parseJSON+          = withObject "Binding"+              (\ o ->+                 Binding' <$>+                   (o .:? "members" .!= mempty) <*> (o .:? "role") <*>+                     (o .:? "condition"))++instance ToJSON Binding where+        toJSON Binding'{..}+          = object+              (catMaybes+                 [("members" .=) <$> _bMembers,+                  ("role" .=) <$> _bRole,+                  ("condition" .=) <$> _bCondition])
+ gen/Network/Google/CloudIOT/Types/Sum.hs view
@@ -0,0 +1,385 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE LambdaCase         #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Network.Google.CloudIOT.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.CloudIOT.Types.Sum where++import           Network.Google.Prelude hiding (Bytes)++-- | **Beta Feature** The logging verbosity for device activity. If+-- unspecified, DeviceRegistry.log_level will be used.+data DeviceLogLevel+    = LogLevelUnspecified+      -- ^ @LOG_LEVEL_UNSPECIFIED@+      -- No logging specified. If not specified, logging will be disabled.+    | None+      -- ^ @NONE@+      -- Disables logging.+    | Error'+      -- ^ @ERROR@+      -- Error events will be logged.+    | Info+      -- ^ @INFO@+      -- Informational events will be logged, such as connections and+      -- disconnections.+    | Debug+      -- ^ @DEBUG@+      -- All events will be logged.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable DeviceLogLevel++instance FromHttpApiData DeviceLogLevel where+    parseQueryParam = \case+        "LOG_LEVEL_UNSPECIFIED" -> Right LogLevelUnspecified+        "NONE" -> Right None+        "ERROR" -> Right Error'+        "INFO" -> Right Info+        "DEBUG" -> Right Debug+        x -> Left ("Unable to parse DeviceLogLevel from: " <> x)++instance ToHttpApiData DeviceLogLevel where+    toQueryParam = \case+        LogLevelUnspecified -> "LOG_LEVEL_UNSPECIFIED"+        None -> "NONE"+        Error' -> "ERROR"+        Info -> "INFO"+        Debug -> "DEBUG"++instance FromJSON DeviceLogLevel where+    parseJSON = parseJSONText "DeviceLogLevel"++instance ToJSON DeviceLogLevel where+    toJSON = toJSONText++-- | The certificate format.+data PublicKeyCertificateFormat+    = UnspecifiedPublicKeyCertificateFormat+      -- ^ @UNSPECIFIED_PUBLIC_KEY_CERTIFICATE_FORMAT@+      -- The format has not been specified. This is an invalid default value and+      -- must not be used.+    | X509CertificatePem+      -- ^ @X509_CERTIFICATE_PEM@+      -- An X.509v3 certificate+      -- ([RFC5280](https:\/\/www.ietf.org\/rfc\/rfc5280.txt)), encoded in+      -- base64, and wrapped by \`-----BEGIN CERTIFICATE-----\` and \`-----END+      -- CERTIFICATE-----\`.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable PublicKeyCertificateFormat++instance FromHttpApiData PublicKeyCertificateFormat where+    parseQueryParam = \case+        "UNSPECIFIED_PUBLIC_KEY_CERTIFICATE_FORMAT" -> Right UnspecifiedPublicKeyCertificateFormat+        "X509_CERTIFICATE_PEM" -> Right X509CertificatePem+        x -> Left ("Unable to parse PublicKeyCertificateFormat from: " <> x)++instance ToHttpApiData PublicKeyCertificateFormat where+    toQueryParam = \case+        UnspecifiedPublicKeyCertificateFormat -> "UNSPECIFIED_PUBLIC_KEY_CERTIFICATE_FORMAT"+        X509CertificatePem -> "X509_CERTIFICATE_PEM"++instance FromJSON PublicKeyCertificateFormat where+    parseJSON = parseJSONText "PublicKeyCertificateFormat"++instance ToJSON PublicKeyCertificateFormat where+    toJSON = toJSONText++-- | The format of the key.+data PublicKeyCredentialFormat+    = UnspecifiedPublicKeyFormat+      -- ^ @UNSPECIFIED_PUBLIC_KEY_FORMAT@+      -- The format has not been specified. This is an invalid default value and+      -- must not be used.+    | RsaPem+      -- ^ @RSA_PEM@+      -- An RSA public key encoded in base64, and wrapped by \`-----BEGIN PUBLIC+      -- KEY-----\` and \`-----END PUBLIC KEY-----\`. This can be used to verify+      -- \`RS256\` signatures in JWT tokens ([RFC7518](+      -- https:\/\/www.ietf.org\/rfc\/rfc7518.txt)).+    | RsaX509Pem+      -- ^ @RSA_X509_PEM@+      -- As RSA_PEM, but wrapped in an X.509v3 certificate ([RFC5280](+      -- https:\/\/www.ietf.org\/rfc\/rfc5280.txt)), encoded in base64, and+      -- wrapped by \`-----BEGIN CERTIFICATE-----\` and \`-----END+      -- CERTIFICATE-----\`.+    | ES256Pem+      -- ^ @ES256_PEM@+      -- Public key for the ECDSA algorithm using P-256 and SHA-256, encoded in+      -- base64, and wrapped by \`-----BEGIN PUBLIC KEY-----\` and \`-----END+      -- PUBLIC KEY-----\`. This can be used to verify JWT tokens with the+      -- \`ES256\` algorithm+      -- ([RFC7518](https:\/\/www.ietf.org\/rfc\/rfc7518.txt)). This curve is+      -- defined in [OpenSSL](https:\/\/www.openssl.org\/) as the \`prime256v1\`+      -- curve.+    | ES256X509Pem+      -- ^ @ES256_X509_PEM@+      -- As ES256_PEM, but wrapped in an X.509v3 certificate ([RFC5280](+      -- https:\/\/www.ietf.org\/rfc\/rfc5280.txt)), encoded in base64, and+      -- wrapped by \`-----BEGIN CERTIFICATE-----\` and \`-----END+      -- CERTIFICATE-----\`.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable PublicKeyCredentialFormat++instance FromHttpApiData PublicKeyCredentialFormat where+    parseQueryParam = \case+        "UNSPECIFIED_PUBLIC_KEY_FORMAT" -> Right UnspecifiedPublicKeyFormat+        "RSA_PEM" -> Right RsaPem+        "RSA_X509_PEM" -> Right RsaX509Pem+        "ES256_PEM" -> Right ES256Pem+        "ES256_X509_PEM" -> Right ES256X509Pem+        x -> Left ("Unable to parse PublicKeyCredentialFormat from: " <> x)++instance ToHttpApiData PublicKeyCredentialFormat where+    toQueryParam = \case+        UnspecifiedPublicKeyFormat -> "UNSPECIFIED_PUBLIC_KEY_FORMAT"+        RsaPem -> "RSA_PEM"+        RsaX509Pem -> "RSA_X509_PEM"+        ES256Pem -> "ES256_PEM"+        ES256X509Pem -> "ES256_X509_PEM"++instance FromJSON PublicKeyCredentialFormat where+    parseJSON = parseJSONText "PublicKeyCredentialFormat"++instance ToJSON PublicKeyCredentialFormat where+    toJSON = toJSONText++-- | **Beta Feature** The default logging verbosity for activity from devices+-- in this registry. The verbosity level can be overridden by+-- Device.log_level.+data DeviceRegistryLogLevel+    = DRLLLogLevelUnspecified+      -- ^ @LOG_LEVEL_UNSPECIFIED@+      -- No logging specified. If not specified, logging will be disabled.+    | DRLLNone+      -- ^ @NONE@+      -- Disables logging.+    | DRLLError'+      -- ^ @ERROR@+      -- Error events will be logged.+    | DRLLInfo+      -- ^ @INFO@+      -- Informational events will be logged, such as connections and+      -- disconnections.+    | DRLLDebug+      -- ^ @DEBUG@+      -- All events will be logged.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable DeviceRegistryLogLevel++instance FromHttpApiData DeviceRegistryLogLevel where+    parseQueryParam = \case+        "LOG_LEVEL_UNSPECIFIED" -> Right DRLLLogLevelUnspecified+        "NONE" -> Right DRLLNone+        "ERROR" -> Right DRLLError'+        "INFO" -> Right DRLLInfo+        "DEBUG" -> Right DRLLDebug+        x -> Left ("Unable to parse DeviceRegistryLogLevel from: " <> x)++instance ToHttpApiData DeviceRegistryLogLevel where+    toQueryParam = \case+        DRLLLogLevelUnspecified -> "LOG_LEVEL_UNSPECIFIED"+        DRLLNone -> "NONE"+        DRLLError' -> "ERROR"+        DRLLInfo -> "INFO"+        DRLLDebug -> "DEBUG"++instance FromJSON DeviceRegistryLogLevel where+    parseJSON = parseJSONText "DeviceRegistryLogLevel"++instance ToJSON DeviceRegistryLogLevel 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++-- | Indicates whether the device is a gateway.+data GatewayConfigGatewayType+    = GatewayTypeUnspecified+      -- ^ @GATEWAY_TYPE_UNSPECIFIED@+      -- If unspecified, the device is considered a non-gateway device.+    | Gateway+      -- ^ @GATEWAY@+      -- The device is a gateway.+    | NonGateway+      -- ^ @NON_GATEWAY@+      -- The device is not a gateway.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable GatewayConfigGatewayType++instance FromHttpApiData GatewayConfigGatewayType where+    parseQueryParam = \case+        "GATEWAY_TYPE_UNSPECIFIED" -> Right GatewayTypeUnspecified+        "GATEWAY" -> Right Gateway+        "NON_GATEWAY" -> Right NonGateway+        x -> Left ("Unable to parse GatewayConfigGatewayType from: " <> x)++instance ToHttpApiData GatewayConfigGatewayType where+    toQueryParam = \case+        GatewayTypeUnspecified -> "GATEWAY_TYPE_UNSPECIFIED"+        Gateway -> "GATEWAY"+        NonGateway -> "NON_GATEWAY"++instance FromJSON GatewayConfigGatewayType where+    parseJSON = parseJSONText "GatewayConfigGatewayType"++instance ToJSON GatewayConfigGatewayType where+    toJSON = toJSONText++-- | Indicates how to authorize and\/or authenticate devices to access the+-- gateway.+data GatewayConfigGatewayAuthMethod+    = GatewayAuthMethodUnspecified+      -- ^ @GATEWAY_AUTH_METHOD_UNSPECIFIED@+      -- No authentication\/authorization method specified. No devices are+      -- allowed to access the gateway.+    | AssociationOnly+      -- ^ @ASSOCIATION_ONLY@+      -- The device is authenticated through the gateway association only. Device+      -- credentials are ignored even if provided.+    | DeviceAuthTokenOnly+      -- ^ @DEVICE_AUTH_TOKEN_ONLY@+      -- The device is authenticated through its own credentials. Gateway+      -- association is not checked.+    | AssociationAndDeviceAuthToken+      -- ^ @ASSOCIATION_AND_DEVICE_AUTH_TOKEN@+      -- The device is authenticated through both device credentials and gateway+      -- association. The device must be bound to the gateway and must provide+      -- its own credentials.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable GatewayConfigGatewayAuthMethod++instance FromHttpApiData GatewayConfigGatewayAuthMethod where+    parseQueryParam = \case+        "GATEWAY_AUTH_METHOD_UNSPECIFIED" -> Right GatewayAuthMethodUnspecified+        "ASSOCIATION_ONLY" -> Right AssociationOnly+        "DEVICE_AUTH_TOKEN_ONLY" -> Right DeviceAuthTokenOnly+        "ASSOCIATION_AND_DEVICE_AUTH_TOKEN" -> Right AssociationAndDeviceAuthToken+        x -> Left ("Unable to parse GatewayConfigGatewayAuthMethod from: " <> x)++instance ToHttpApiData GatewayConfigGatewayAuthMethod where+    toQueryParam = \case+        GatewayAuthMethodUnspecified -> "GATEWAY_AUTH_METHOD_UNSPECIFIED"+        AssociationOnly -> "ASSOCIATION_ONLY"+        DeviceAuthTokenOnly -> "DEVICE_AUTH_TOKEN_ONLY"+        AssociationAndDeviceAuthToken -> "ASSOCIATION_AND_DEVICE_AUTH_TOKEN"++instance FromJSON GatewayConfigGatewayAuthMethod where+    parseJSON = parseJSONText "GatewayConfigGatewayAuthMethod"++instance ToJSON GatewayConfigGatewayAuthMethod where+    toJSON = toJSONText++-- | If enabled, allows connections using the MQTT protocol. Otherwise, MQTT+-- connections to this registry will fail.+data MqttConfigMqttEnabledState+    = MqttStateUnspecified+      -- ^ @MQTT_STATE_UNSPECIFIED@+      -- No MQTT state specified. If not specified, MQTT will be enabled by+      -- default.+    | MqttEnabled+      -- ^ @MQTT_ENABLED@+      -- Enables a MQTT connection.+    | MqttDisabled+      -- ^ @MQTT_DISABLED@+      -- Disables a MQTT connection.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable MqttConfigMqttEnabledState++instance FromHttpApiData MqttConfigMqttEnabledState where+    parseQueryParam = \case+        "MQTT_STATE_UNSPECIFIED" -> Right MqttStateUnspecified+        "MQTT_ENABLED" -> Right MqttEnabled+        "MQTT_DISABLED" -> Right MqttDisabled+        x -> Left ("Unable to parse MqttConfigMqttEnabledState from: " <> x)++instance ToHttpApiData MqttConfigMqttEnabledState where+    toQueryParam = \case+        MqttStateUnspecified -> "MQTT_STATE_UNSPECIFIED"+        MqttEnabled -> "MQTT_ENABLED"+        MqttDisabled -> "MQTT_DISABLED"++instance FromJSON MqttConfigMqttEnabledState where+    parseJSON = parseJSONText "MqttConfigMqttEnabledState"++instance ToJSON MqttConfigMqttEnabledState where+    toJSON = toJSONText++-- | If enabled, allows devices to use DeviceService via the HTTP protocol.+-- Otherwise, any requests to DeviceService will fail for this registry.+data HTTPConfigHTTPEnabledState+    = HTTPStateUnspecified+      -- ^ @HTTP_STATE_UNSPECIFIED@+      -- No HTTP state specified. If not specified, DeviceService will be enabled+      -- by default.+    | HTTPEnabled+      -- ^ @HTTP_ENABLED@+      -- Enables DeviceService (HTTP) service for the registry.+    | HTTPDisabled+      -- ^ @HTTP_DISABLED@+      -- Disables DeviceService (HTTP) service for the registry.+      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)++instance Hashable HTTPConfigHTTPEnabledState++instance FromHttpApiData HTTPConfigHTTPEnabledState where+    parseQueryParam = \case+        "HTTP_STATE_UNSPECIFIED" -> Right HTTPStateUnspecified+        "HTTP_ENABLED" -> Right HTTPEnabled+        "HTTP_DISABLED" -> Right HTTPDisabled+        x -> Left ("Unable to parse HTTPConfigHTTPEnabledState from: " <> x)++instance ToHttpApiData HTTPConfigHTTPEnabledState where+    toQueryParam = \case+        HTTPStateUnspecified -> "HTTP_STATE_UNSPECIFIED"+        HTTPEnabled -> "HTTP_ENABLED"+        HTTPDisabled -> "HTTP_DISABLED"++instance FromJSON HTTPConfigHTTPEnabledState where+    parseJSON = parseJSONText "HTTPConfigHTTPEnabledState"++instance ToJSON HTTPConfigHTTPEnabledState where+    toJSON = toJSONText
+ gen/Network/Google/Resource/CloudIOT/Projects/Locations/Registries/BindDeviceToGateway.hs view
@@ -0,0 +1,175 @@+{-# 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.CloudIOT.Projects.Locations.Registries.BindDeviceToGateway+-- 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)+--+-- Associates the device with the gateway.+--+-- /See:/ <https://cloud.google.com/iot Cloud IoT API Reference> for @cloudiot.projects.locations.registries.bindDeviceToGateway@.+module Network.Google.Resource.CloudIOT.Projects.Locations.Registries.BindDeviceToGateway+    (+    -- * REST Resource+      ProjectsLocationsRegistriesBindDeviceToGatewayResource++    -- * Creating a Request+    , projectsLocationsRegistriesBindDeviceToGateway+    , ProjectsLocationsRegistriesBindDeviceToGateway++    -- * Request Lenses+    , plrbdtgParent+    , plrbdtgXgafv+    , plrbdtgUploadProtocol+    , plrbdtgAccessToken+    , plrbdtgUploadType+    , plrbdtgPayload+    , plrbdtgCallback+    ) where++import           Network.Google.CloudIOT.Types+import           Network.Google.Prelude++-- | A resource alias for @cloudiot.projects.locations.registries.bindDeviceToGateway@ method which the+-- 'ProjectsLocationsRegistriesBindDeviceToGateway' request conforms to.+type ProjectsLocationsRegistriesBindDeviceToGatewayResource+     =+     "v1" :>+       CaptureMode "parent" "bindDeviceToGateway" Text :>+         QueryParam "$.xgafv" Xgafv :>+           QueryParam "upload_protocol" Text :>+             QueryParam "access_token" Text :>+               QueryParam "uploadType" Text :>+                 QueryParam "callback" Text :>+                   QueryParam "alt" AltJSON :>+                     ReqBody '[JSON] BindDeviceToGatewayRequest :>+                       Post '[JSON] BindDeviceToGatewayResponse++-- | Associates the device with the gateway.+--+-- /See:/ 'projectsLocationsRegistriesBindDeviceToGateway' smart constructor.+data ProjectsLocationsRegistriesBindDeviceToGateway = ProjectsLocationsRegistriesBindDeviceToGateway'+    { _plrbdtgParent         :: !Text+    , _plrbdtgXgafv          :: !(Maybe Xgafv)+    , _plrbdtgUploadProtocol :: !(Maybe Text)+    , _plrbdtgAccessToken    :: !(Maybe Text)+    , _plrbdtgUploadType     :: !(Maybe Text)+    , _plrbdtgPayload        :: !BindDeviceToGatewayRequest+    , _plrbdtgCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectsLocationsRegistriesBindDeviceToGateway' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'plrbdtgParent'+--+-- * 'plrbdtgXgafv'+--+-- * 'plrbdtgUploadProtocol'+--+-- * 'plrbdtgAccessToken'+--+-- * 'plrbdtgUploadType'+--+-- * 'plrbdtgPayload'+--+-- * 'plrbdtgCallback'+projectsLocationsRegistriesBindDeviceToGateway+    :: Text -- ^ 'plrbdtgParent'+    -> BindDeviceToGatewayRequest -- ^ 'plrbdtgPayload'+    -> ProjectsLocationsRegistriesBindDeviceToGateway+projectsLocationsRegistriesBindDeviceToGateway pPlrbdtgParent_ pPlrbdtgPayload_ =+    ProjectsLocationsRegistriesBindDeviceToGateway'+    { _plrbdtgParent = pPlrbdtgParent_+    , _plrbdtgXgafv = Nothing+    , _plrbdtgUploadProtocol = Nothing+    , _plrbdtgAccessToken = Nothing+    , _plrbdtgUploadType = Nothing+    , _plrbdtgPayload = pPlrbdtgPayload_+    , _plrbdtgCallback = Nothing+    }++-- | The name of the registry. For example,+-- \`projects\/example-project\/locations\/us-central1\/registries\/my-registry\`.+plrbdtgParent :: Lens' ProjectsLocationsRegistriesBindDeviceToGateway Text+plrbdtgParent+  = lens _plrbdtgParent+      (\ s a -> s{_plrbdtgParent = a})++-- | V1 error format.+plrbdtgXgafv :: Lens' ProjectsLocationsRegistriesBindDeviceToGateway (Maybe Xgafv)+plrbdtgXgafv+  = lens _plrbdtgXgafv (\ s a -> s{_plrbdtgXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+plrbdtgUploadProtocol :: Lens' ProjectsLocationsRegistriesBindDeviceToGateway (Maybe Text)+plrbdtgUploadProtocol+  = lens _plrbdtgUploadProtocol+      (\ s a -> s{_plrbdtgUploadProtocol = a})++-- | OAuth access token.+plrbdtgAccessToken :: Lens' ProjectsLocationsRegistriesBindDeviceToGateway (Maybe Text)+plrbdtgAccessToken+  = lens _plrbdtgAccessToken+      (\ s a -> s{_plrbdtgAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+plrbdtgUploadType :: Lens' ProjectsLocationsRegistriesBindDeviceToGateway (Maybe Text)+plrbdtgUploadType+  = lens _plrbdtgUploadType+      (\ s a -> s{_plrbdtgUploadType = a})++-- | Multipart request metadata.+plrbdtgPayload :: Lens' ProjectsLocationsRegistriesBindDeviceToGateway BindDeviceToGatewayRequest+plrbdtgPayload+  = lens _plrbdtgPayload+      (\ s a -> s{_plrbdtgPayload = a})++-- | JSONP+plrbdtgCallback :: Lens' ProjectsLocationsRegistriesBindDeviceToGateway (Maybe Text)+plrbdtgCallback+  = lens _plrbdtgCallback+      (\ s a -> s{_plrbdtgCallback = a})++instance GoogleRequest+         ProjectsLocationsRegistriesBindDeviceToGateway where+        type Rs+               ProjectsLocationsRegistriesBindDeviceToGateway+             = BindDeviceToGatewayResponse+        type Scopes+               ProjectsLocationsRegistriesBindDeviceToGateway+             =+             '["https://www.googleapis.com/auth/cloud-platform",+               "https://www.googleapis.com/auth/cloudiot"]+        requestClient+          ProjectsLocationsRegistriesBindDeviceToGateway'{..}+          = go _plrbdtgParent _plrbdtgXgafv+              _plrbdtgUploadProtocol+              _plrbdtgAccessToken+              _plrbdtgUploadType+              _plrbdtgCallback+              (Just AltJSON)+              _plrbdtgPayload+              cloudIOTService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy+                           ProjectsLocationsRegistriesBindDeviceToGatewayResource)+                      mempty
+ gen/Network/Google/Resource/CloudIOT/Projects/Locations/Registries/Create.hs view
@@ -0,0 +1,166 @@+{-# 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.CloudIOT.Projects.Locations.Registries.Create+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a device registry that contains devices.+--+-- /See:/ <https://cloud.google.com/iot Cloud IoT API Reference> for @cloudiot.projects.locations.registries.create@.+module Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Create+    (+    -- * REST Resource+      ProjectsLocationsRegistriesCreateResource++    -- * Creating a Request+    , projectsLocationsRegistriesCreate+    , ProjectsLocationsRegistriesCreate++    -- * Request Lenses+    , plrcParent+    , plrcXgafv+    , plrcUploadProtocol+    , plrcAccessToken+    , plrcUploadType+    , plrcPayload+    , plrcCallback+    ) where++import           Network.Google.CloudIOT.Types+import           Network.Google.Prelude++-- | A resource alias for @cloudiot.projects.locations.registries.create@ method which the+-- 'ProjectsLocationsRegistriesCreate' request conforms to.+type ProjectsLocationsRegistriesCreateResource =+     "v1" :>+       Capture "parent" Text :>+         "registries" :>+           QueryParam "$.xgafv" Xgafv :>+             QueryParam "upload_protocol" Text :>+               QueryParam "access_token" Text :>+                 QueryParam "uploadType" Text :>+                   QueryParam "callback" Text :>+                     QueryParam "alt" AltJSON :>+                       ReqBody '[JSON] DeviceRegistry :>+                         Post '[JSON] DeviceRegistry++-- | Creates a device registry that contains devices.+--+-- /See:/ 'projectsLocationsRegistriesCreate' smart constructor.+data ProjectsLocationsRegistriesCreate = ProjectsLocationsRegistriesCreate'+    { _plrcParent         :: !Text+    , _plrcXgafv          :: !(Maybe Xgafv)+    , _plrcUploadProtocol :: !(Maybe Text)+    , _plrcAccessToken    :: !(Maybe Text)+    , _plrcUploadType     :: !(Maybe Text)+    , _plrcPayload        :: !DeviceRegistry+    , _plrcCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectsLocationsRegistriesCreate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'plrcParent'+--+-- * 'plrcXgafv'+--+-- * 'plrcUploadProtocol'+--+-- * 'plrcAccessToken'+--+-- * 'plrcUploadType'+--+-- * 'plrcPayload'+--+-- * 'plrcCallback'+projectsLocationsRegistriesCreate+    :: Text -- ^ 'plrcParent'+    -> DeviceRegistry -- ^ 'plrcPayload'+    -> ProjectsLocationsRegistriesCreate+projectsLocationsRegistriesCreate pPlrcParent_ pPlrcPayload_ =+    ProjectsLocationsRegistriesCreate'+    { _plrcParent = pPlrcParent_+    , _plrcXgafv = Nothing+    , _plrcUploadProtocol = Nothing+    , _plrcAccessToken = Nothing+    , _plrcUploadType = Nothing+    , _plrcPayload = pPlrcPayload_+    , _plrcCallback = Nothing+    }++-- | The project and cloud region where this device registry must be created.+-- For example, \`projects\/example-project\/locations\/us-central1\`.+plrcParent :: Lens' ProjectsLocationsRegistriesCreate Text+plrcParent+  = lens _plrcParent (\ s a -> s{_plrcParent = a})++-- | V1 error format.+plrcXgafv :: Lens' ProjectsLocationsRegistriesCreate (Maybe Xgafv)+plrcXgafv+  = lens _plrcXgafv (\ s a -> s{_plrcXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+plrcUploadProtocol :: Lens' ProjectsLocationsRegistriesCreate (Maybe Text)+plrcUploadProtocol+  = lens _plrcUploadProtocol+      (\ s a -> s{_plrcUploadProtocol = a})++-- | OAuth access token.+plrcAccessToken :: Lens' ProjectsLocationsRegistriesCreate (Maybe Text)+plrcAccessToken+  = lens _plrcAccessToken+      (\ s a -> s{_plrcAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+plrcUploadType :: Lens' ProjectsLocationsRegistriesCreate (Maybe Text)+plrcUploadType+  = lens _plrcUploadType+      (\ s a -> s{_plrcUploadType = a})++-- | Multipart request metadata.+plrcPayload :: Lens' ProjectsLocationsRegistriesCreate DeviceRegistry+plrcPayload+  = lens _plrcPayload (\ s a -> s{_plrcPayload = a})++-- | JSONP+plrcCallback :: Lens' ProjectsLocationsRegistriesCreate (Maybe Text)+plrcCallback+  = lens _plrcCallback (\ s a -> s{_plrcCallback = a})++instance GoogleRequest+         ProjectsLocationsRegistriesCreate where+        type Rs ProjectsLocationsRegistriesCreate =+             DeviceRegistry+        type Scopes ProjectsLocationsRegistriesCreate =+             '["https://www.googleapis.com/auth/cloud-platform",+               "https://www.googleapis.com/auth/cloudiot"]+        requestClient ProjectsLocationsRegistriesCreate'{..}+          = go _plrcParent _plrcXgafv _plrcUploadProtocol+              _plrcAccessToken+              _plrcUploadType+              _plrcCallback+              (Just AltJSON)+              _plrcPayload+              cloudIOTService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy ProjectsLocationsRegistriesCreateResource)+                      mempty
+ gen/Network/Google/Resource/CloudIOT/Projects/Locations/Registries/Delete.hs view
@@ -0,0 +1,149 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.CloudIOT.Projects.Locations.Registries.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 device registry configuration.+--+-- /See:/ <https://cloud.google.com/iot Cloud IoT API Reference> for @cloudiot.projects.locations.registries.delete@.+module Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Delete+    (+    -- * REST Resource+      ProjectsLocationsRegistriesDeleteResource++    -- * Creating a Request+    , projectsLocationsRegistriesDelete+    , ProjectsLocationsRegistriesDelete++    -- * Request Lenses+    , plrdXgafv+    , plrdUploadProtocol+    , plrdAccessToken+    , plrdUploadType+    , plrdName+    , plrdCallback+    ) where++import           Network.Google.CloudIOT.Types+import           Network.Google.Prelude++-- | A resource alias for @cloudiot.projects.locations.registries.delete@ method which the+-- 'ProjectsLocationsRegistriesDelete' request conforms to.+type ProjectsLocationsRegistriesDeleteResource =+     "v1" :>+       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 device registry configuration.+--+-- /See:/ 'projectsLocationsRegistriesDelete' smart constructor.+data ProjectsLocationsRegistriesDelete = ProjectsLocationsRegistriesDelete'+    { _plrdXgafv          :: !(Maybe Xgafv)+    , _plrdUploadProtocol :: !(Maybe Text)+    , _plrdAccessToken    :: !(Maybe Text)+    , _plrdUploadType     :: !(Maybe Text)+    , _plrdName           :: !Text+    , _plrdCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectsLocationsRegistriesDelete' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'plrdXgafv'+--+-- * 'plrdUploadProtocol'+--+-- * 'plrdAccessToken'+--+-- * 'plrdUploadType'+--+-- * 'plrdName'+--+-- * 'plrdCallback'+projectsLocationsRegistriesDelete+    :: Text -- ^ 'plrdName'+    -> ProjectsLocationsRegistriesDelete+projectsLocationsRegistriesDelete pPlrdName_ =+    ProjectsLocationsRegistriesDelete'+    { _plrdXgafv = Nothing+    , _plrdUploadProtocol = Nothing+    , _plrdAccessToken = Nothing+    , _plrdUploadType = Nothing+    , _plrdName = pPlrdName_+    , _plrdCallback = Nothing+    }++-- | V1 error format.+plrdXgafv :: Lens' ProjectsLocationsRegistriesDelete (Maybe Xgafv)+plrdXgafv+  = lens _plrdXgafv (\ s a -> s{_plrdXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+plrdUploadProtocol :: Lens' ProjectsLocationsRegistriesDelete (Maybe Text)+plrdUploadProtocol+  = lens _plrdUploadProtocol+      (\ s a -> s{_plrdUploadProtocol = a})++-- | OAuth access token.+plrdAccessToken :: Lens' ProjectsLocationsRegistriesDelete (Maybe Text)+plrdAccessToken+  = lens _plrdAccessToken+      (\ s a -> s{_plrdAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+plrdUploadType :: Lens' ProjectsLocationsRegistriesDelete (Maybe Text)+plrdUploadType+  = lens _plrdUploadType+      (\ s a -> s{_plrdUploadType = a})++-- | The name of the device registry. For example,+-- \`projects\/example-project\/locations\/us-central1\/registries\/my-registry\`.+plrdName :: Lens' ProjectsLocationsRegistriesDelete Text+plrdName = lens _plrdName (\ s a -> s{_plrdName = a})++-- | JSONP+plrdCallback :: Lens' ProjectsLocationsRegistriesDelete (Maybe Text)+plrdCallback+  = lens _plrdCallback (\ s a -> s{_plrdCallback = a})++instance GoogleRequest+         ProjectsLocationsRegistriesDelete where+        type Rs ProjectsLocationsRegistriesDelete = Empty+        type Scopes ProjectsLocationsRegistriesDelete =+             '["https://www.googleapis.com/auth/cloud-platform",+               "https://www.googleapis.com/auth/cloudiot"]+        requestClient ProjectsLocationsRegistriesDelete'{..}+          = go _plrdName _plrdXgafv _plrdUploadProtocol+              _plrdAccessToken+              _plrdUploadType+              _plrdCallback+              (Just AltJSON)+              cloudIOTService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy ProjectsLocationsRegistriesDeleteResource)+                      mempty
+ gen/Network/Google/Resource/CloudIOT/Projects/Locations/Registries/Devices/ConfigVersions/List.hs view
@@ -0,0 +1,182 @@+{-# 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.CloudIOT.Projects.Locations.Registries.Devices.ConfigVersions.List+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists the last few versions of the device configuration in descending+-- order (i.e.: newest first).+--+-- /See:/ <https://cloud.google.com/iot Cloud IoT API Reference> for @cloudiot.projects.locations.registries.devices.configVersions.list@.+module Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Devices.ConfigVersions.List+    (+    -- * REST Resource+      ProjectsLocationsRegistriesDevicesConfigVersionsListResource++    -- * Creating a Request+    , projectsLocationsRegistriesDevicesConfigVersionsList+    , ProjectsLocationsRegistriesDevicesConfigVersionsList++    -- * Request Lenses+    , plrdcvlXgafv+    , plrdcvlUploadProtocol+    , plrdcvlAccessToken+    , plrdcvlUploadType+    , plrdcvlNumVersions+    , plrdcvlName+    , plrdcvlCallback+    ) where++import           Network.Google.CloudIOT.Types+import           Network.Google.Prelude++-- | A resource alias for @cloudiot.projects.locations.registries.devices.configVersions.list@ method which the+-- 'ProjectsLocationsRegistriesDevicesConfigVersionsList' request conforms to.+type ProjectsLocationsRegistriesDevicesConfigVersionsListResource+     =+     "v1" :>+       Capture "name" Text :>+         "configVersions" :>+           QueryParam "$.xgafv" Xgafv :>+             QueryParam "upload_protocol" Text :>+               QueryParam "access_token" Text :>+                 QueryParam "uploadType" Text :>+                   QueryParam "numVersions" (Textual Int32) :>+                     QueryParam "callback" Text :>+                       QueryParam "alt" AltJSON :>+                         Get '[JSON] ListDeviceConfigVersionsResponse++-- | Lists the last few versions of the device configuration in descending+-- order (i.e.: newest first).+--+-- /See:/ 'projectsLocationsRegistriesDevicesConfigVersionsList' smart constructor.+data ProjectsLocationsRegistriesDevicesConfigVersionsList = ProjectsLocationsRegistriesDevicesConfigVersionsList'+    { _plrdcvlXgafv          :: !(Maybe Xgafv)+    , _plrdcvlUploadProtocol :: !(Maybe Text)+    , _plrdcvlAccessToken    :: !(Maybe Text)+    , _plrdcvlUploadType     :: !(Maybe Text)+    , _plrdcvlNumVersions    :: !(Maybe (Textual Int32))+    , _plrdcvlName           :: !Text+    , _plrdcvlCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectsLocationsRegistriesDevicesConfigVersionsList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'plrdcvlXgafv'+--+-- * 'plrdcvlUploadProtocol'+--+-- * 'plrdcvlAccessToken'+--+-- * 'plrdcvlUploadType'+--+-- * 'plrdcvlNumVersions'+--+-- * 'plrdcvlName'+--+-- * 'plrdcvlCallback'+projectsLocationsRegistriesDevicesConfigVersionsList+    :: Text -- ^ 'plrdcvlName'+    -> ProjectsLocationsRegistriesDevicesConfigVersionsList+projectsLocationsRegistriesDevicesConfigVersionsList pPlrdcvlName_ =+    ProjectsLocationsRegistriesDevicesConfigVersionsList'+    { _plrdcvlXgafv = Nothing+    , _plrdcvlUploadProtocol = Nothing+    , _plrdcvlAccessToken = Nothing+    , _plrdcvlUploadType = Nothing+    , _plrdcvlNumVersions = Nothing+    , _plrdcvlName = pPlrdcvlName_+    , _plrdcvlCallback = Nothing+    }++-- | V1 error format.+plrdcvlXgafv :: Lens' ProjectsLocationsRegistriesDevicesConfigVersionsList (Maybe Xgafv)+plrdcvlXgafv+  = lens _plrdcvlXgafv (\ s a -> s{_plrdcvlXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+plrdcvlUploadProtocol :: Lens' ProjectsLocationsRegistriesDevicesConfigVersionsList (Maybe Text)+plrdcvlUploadProtocol+  = lens _plrdcvlUploadProtocol+      (\ s a -> s{_plrdcvlUploadProtocol = a})++-- | OAuth access token.+plrdcvlAccessToken :: Lens' ProjectsLocationsRegistriesDevicesConfigVersionsList (Maybe Text)+plrdcvlAccessToken+  = lens _plrdcvlAccessToken+      (\ s a -> s{_plrdcvlAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+plrdcvlUploadType :: Lens' ProjectsLocationsRegistriesDevicesConfigVersionsList (Maybe Text)+plrdcvlUploadType+  = lens _plrdcvlUploadType+      (\ s a -> s{_plrdcvlUploadType = a})++-- | The number of versions to list. Versions are listed in decreasing order+-- of the version number. The maximum number of versions retained is 10. If+-- this value is zero, it will return all the versions available.+plrdcvlNumVersions :: Lens' ProjectsLocationsRegistriesDevicesConfigVersionsList (Maybe Int32)+plrdcvlNumVersions+  = lens _plrdcvlNumVersions+      (\ s a -> s{_plrdcvlNumVersions = a})+      . mapping _Coerce++-- | The name of the device. For example,+-- \`projects\/p0\/locations\/us-central1\/registries\/registry0\/devices\/device0\`+-- or+-- \`projects\/p0\/locations\/us-central1\/registries\/registry0\/devices\/{num_id}\`.+plrdcvlName :: Lens' ProjectsLocationsRegistriesDevicesConfigVersionsList Text+plrdcvlName+  = lens _plrdcvlName (\ s a -> s{_plrdcvlName = a})++-- | JSONP+plrdcvlCallback :: Lens' ProjectsLocationsRegistriesDevicesConfigVersionsList (Maybe Text)+plrdcvlCallback+  = lens _plrdcvlCallback+      (\ s a -> s{_plrdcvlCallback = a})++instance GoogleRequest+         ProjectsLocationsRegistriesDevicesConfigVersionsList+         where+        type Rs+               ProjectsLocationsRegistriesDevicesConfigVersionsList+             = ListDeviceConfigVersionsResponse+        type Scopes+               ProjectsLocationsRegistriesDevicesConfigVersionsList+             =+             '["https://www.googleapis.com/auth/cloud-platform",+               "https://www.googleapis.com/auth/cloudiot"]+        requestClient+          ProjectsLocationsRegistriesDevicesConfigVersionsList'{..}+          = go _plrdcvlName _plrdcvlXgafv+              _plrdcvlUploadProtocol+              _plrdcvlAccessToken+              _plrdcvlUploadType+              _plrdcvlNumVersions+              _plrdcvlCallback+              (Just AltJSON)+              cloudIOTService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy+                           ProjectsLocationsRegistriesDevicesConfigVersionsListResource)+                      mempty
+ gen/Network/Google/Resource/CloudIOT/Projects/Locations/Registries/Devices/Create.hs view
@@ -0,0 +1,171 @@+{-# 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.CloudIOT.Projects.Locations.Registries.Devices.Create+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a device in a device registry.+--+-- /See:/ <https://cloud.google.com/iot Cloud IoT API Reference> for @cloudiot.projects.locations.registries.devices.create@.+module Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Devices.Create+    (+    -- * REST Resource+      ProjectsLocationsRegistriesDevicesCreateResource++    -- * Creating a Request+    , projectsLocationsRegistriesDevicesCreate+    , ProjectsLocationsRegistriesDevicesCreate++    -- * Request Lenses+    , plrdcParent+    , plrdcXgafv+    , plrdcUploadProtocol+    , plrdcAccessToken+    , plrdcUploadType+    , plrdcPayload+    , plrdcCallback+    ) where++import           Network.Google.CloudIOT.Types+import           Network.Google.Prelude++-- | A resource alias for @cloudiot.projects.locations.registries.devices.create@ method which the+-- 'ProjectsLocationsRegistriesDevicesCreate' request conforms to.+type ProjectsLocationsRegistriesDevicesCreateResource+     =+     "v1" :>+       Capture "parent" Text :>+         "devices" :>+           QueryParam "$.xgafv" Xgafv :>+             QueryParam "upload_protocol" Text :>+               QueryParam "access_token" Text :>+                 QueryParam "uploadType" Text :>+                   QueryParam "callback" Text :>+                     QueryParam "alt" AltJSON :>+                       ReqBody '[JSON] Device :> Post '[JSON] Device++-- | Creates a device in a device registry.+--+-- /See:/ 'projectsLocationsRegistriesDevicesCreate' smart constructor.+data ProjectsLocationsRegistriesDevicesCreate = ProjectsLocationsRegistriesDevicesCreate'+    { _plrdcParent         :: !Text+    , _plrdcXgafv          :: !(Maybe Xgafv)+    , _plrdcUploadProtocol :: !(Maybe Text)+    , _plrdcAccessToken    :: !(Maybe Text)+    , _plrdcUploadType     :: !(Maybe Text)+    , _plrdcPayload        :: !Device+    , _plrdcCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectsLocationsRegistriesDevicesCreate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'plrdcParent'+--+-- * 'plrdcXgafv'+--+-- * 'plrdcUploadProtocol'+--+-- * 'plrdcAccessToken'+--+-- * 'plrdcUploadType'+--+-- * 'plrdcPayload'+--+-- * 'plrdcCallback'+projectsLocationsRegistriesDevicesCreate+    :: Text -- ^ 'plrdcParent'+    -> Device -- ^ 'plrdcPayload'+    -> ProjectsLocationsRegistriesDevicesCreate+projectsLocationsRegistriesDevicesCreate pPlrdcParent_ pPlrdcPayload_ =+    ProjectsLocationsRegistriesDevicesCreate'+    { _plrdcParent = pPlrdcParent_+    , _plrdcXgafv = Nothing+    , _plrdcUploadProtocol = Nothing+    , _plrdcAccessToken = Nothing+    , _plrdcUploadType = Nothing+    , _plrdcPayload = pPlrdcPayload_+    , _plrdcCallback = Nothing+    }++-- | The name of the device registry where this device should be created. For+-- example,+-- \`projects\/example-project\/locations\/us-central1\/registries\/my-registry\`.+plrdcParent :: Lens' ProjectsLocationsRegistriesDevicesCreate Text+plrdcParent+  = lens _plrdcParent (\ s a -> s{_plrdcParent = a})++-- | V1 error format.+plrdcXgafv :: Lens' ProjectsLocationsRegistriesDevicesCreate (Maybe Xgafv)+plrdcXgafv+  = lens _plrdcXgafv (\ s a -> s{_plrdcXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+plrdcUploadProtocol :: Lens' ProjectsLocationsRegistriesDevicesCreate (Maybe Text)+plrdcUploadProtocol+  = lens _plrdcUploadProtocol+      (\ s a -> s{_plrdcUploadProtocol = a})++-- | OAuth access token.+plrdcAccessToken :: Lens' ProjectsLocationsRegistriesDevicesCreate (Maybe Text)+plrdcAccessToken+  = lens _plrdcAccessToken+      (\ s a -> s{_plrdcAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+plrdcUploadType :: Lens' ProjectsLocationsRegistriesDevicesCreate (Maybe Text)+plrdcUploadType+  = lens _plrdcUploadType+      (\ s a -> s{_plrdcUploadType = a})++-- | Multipart request metadata.+plrdcPayload :: Lens' ProjectsLocationsRegistriesDevicesCreate Device+plrdcPayload+  = lens _plrdcPayload (\ s a -> s{_plrdcPayload = a})++-- | JSONP+plrdcCallback :: Lens' ProjectsLocationsRegistriesDevicesCreate (Maybe Text)+plrdcCallback+  = lens _plrdcCallback+      (\ s a -> s{_plrdcCallback = a})++instance GoogleRequest+         ProjectsLocationsRegistriesDevicesCreate where+        type Rs ProjectsLocationsRegistriesDevicesCreate =+             Device+        type Scopes ProjectsLocationsRegistriesDevicesCreate+             =+             '["https://www.googleapis.com/auth/cloud-platform",+               "https://www.googleapis.com/auth/cloudiot"]+        requestClient+          ProjectsLocationsRegistriesDevicesCreate'{..}+          = go _plrdcParent _plrdcXgafv _plrdcUploadProtocol+              _plrdcAccessToken+              _plrdcUploadType+              _plrdcCallback+              (Just AltJSON)+              _plrdcPayload+              cloudIOTService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy+                           ProjectsLocationsRegistriesDevicesCreateResource)+                      mempty
+ gen/Network/Google/Resource/CloudIOT/Projects/Locations/Registries/Devices/Delete.hs view
@@ -0,0 +1,158 @@+{-# 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.CloudIOT.Projects.Locations.Registries.Devices.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 device.+--+-- /See:/ <https://cloud.google.com/iot Cloud IoT API Reference> for @cloudiot.projects.locations.registries.devices.delete@.+module Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Devices.Delete+    (+    -- * REST Resource+      ProjectsLocationsRegistriesDevicesDeleteResource++    -- * Creating a Request+    , projectsLocationsRegistriesDevicesDelete+    , ProjectsLocationsRegistriesDevicesDelete++    -- * Request Lenses+    , plrddXgafv+    , plrddUploadProtocol+    , plrddAccessToken+    , plrddUploadType+    , plrddName+    , plrddCallback+    ) where++import           Network.Google.CloudIOT.Types+import           Network.Google.Prelude++-- | A resource alias for @cloudiot.projects.locations.registries.devices.delete@ method which the+-- 'ProjectsLocationsRegistriesDevicesDelete' request conforms to.+type ProjectsLocationsRegistriesDevicesDeleteResource+     =+     "v1" :>+       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 device.+--+-- /See:/ 'projectsLocationsRegistriesDevicesDelete' smart constructor.+data ProjectsLocationsRegistriesDevicesDelete = ProjectsLocationsRegistriesDevicesDelete'+    { _plrddXgafv          :: !(Maybe Xgafv)+    , _plrddUploadProtocol :: !(Maybe Text)+    , _plrddAccessToken    :: !(Maybe Text)+    , _plrddUploadType     :: !(Maybe Text)+    , _plrddName           :: !Text+    , _plrddCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectsLocationsRegistriesDevicesDelete' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'plrddXgafv'+--+-- * 'plrddUploadProtocol'+--+-- * 'plrddAccessToken'+--+-- * 'plrddUploadType'+--+-- * 'plrddName'+--+-- * 'plrddCallback'+projectsLocationsRegistriesDevicesDelete+    :: Text -- ^ 'plrddName'+    -> ProjectsLocationsRegistriesDevicesDelete+projectsLocationsRegistriesDevicesDelete pPlrddName_ =+    ProjectsLocationsRegistriesDevicesDelete'+    { _plrddXgafv = Nothing+    , _plrddUploadProtocol = Nothing+    , _plrddAccessToken = Nothing+    , _plrddUploadType = Nothing+    , _plrddName = pPlrddName_+    , _plrddCallback = Nothing+    }++-- | V1 error format.+plrddXgafv :: Lens' ProjectsLocationsRegistriesDevicesDelete (Maybe Xgafv)+plrddXgafv+  = lens _plrddXgafv (\ s a -> s{_plrddXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+plrddUploadProtocol :: Lens' ProjectsLocationsRegistriesDevicesDelete (Maybe Text)+plrddUploadProtocol+  = lens _plrddUploadProtocol+      (\ s a -> s{_plrddUploadProtocol = a})++-- | OAuth access token.+plrddAccessToken :: Lens' ProjectsLocationsRegistriesDevicesDelete (Maybe Text)+plrddAccessToken+  = lens _plrddAccessToken+      (\ s a -> s{_plrddAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+plrddUploadType :: Lens' ProjectsLocationsRegistriesDevicesDelete (Maybe Text)+plrddUploadType+  = lens _plrddUploadType+      (\ s a -> s{_plrddUploadType = a})++-- | The name of the device. For example,+-- \`projects\/p0\/locations\/us-central1\/registries\/registry0\/devices\/device0\`+-- or+-- \`projects\/p0\/locations\/us-central1\/registries\/registry0\/devices\/{num_id}\`.+plrddName :: Lens' ProjectsLocationsRegistriesDevicesDelete Text+plrddName+  = lens _plrddName (\ s a -> s{_plrddName = a})++-- | JSONP+plrddCallback :: Lens' ProjectsLocationsRegistriesDevicesDelete (Maybe Text)+plrddCallback+  = lens _plrddCallback+      (\ s a -> s{_plrddCallback = a})++instance GoogleRequest+         ProjectsLocationsRegistriesDevicesDelete where+        type Rs ProjectsLocationsRegistriesDevicesDelete =+             Empty+        type Scopes ProjectsLocationsRegistriesDevicesDelete+             =+             '["https://www.googleapis.com/auth/cloud-platform",+               "https://www.googleapis.com/auth/cloudiot"]+        requestClient+          ProjectsLocationsRegistriesDevicesDelete'{..}+          = go _plrddName _plrddXgafv _plrddUploadProtocol+              _plrddAccessToken+              _plrddUploadType+              _plrddCallback+              (Just AltJSON)+              cloudIOTService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy+                           ProjectsLocationsRegistriesDevicesDeleteResource)+                      mempty
+ gen/Network/Google/Resource/CloudIOT/Projects/Locations/Registries/Devices/Get.hs view
@@ -0,0 +1,169 @@+{-# 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.CloudIOT.Projects.Locations.Registries.Devices.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 details about a device.+--+-- /See:/ <https://cloud.google.com/iot Cloud IoT API Reference> for @cloudiot.projects.locations.registries.devices.get@.+module Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Devices.Get+    (+    -- * REST Resource+      ProjectsLocationsRegistriesDevicesGetResource++    -- * Creating a Request+    , projectsLocationsRegistriesDevicesGet+    , ProjectsLocationsRegistriesDevicesGet++    -- * Request Lenses+    , plrdgXgafv+    , plrdgUploadProtocol+    , plrdgAccessToken+    , plrdgUploadType+    , plrdgFieldMask+    , plrdgName+    , plrdgCallback+    ) where++import           Network.Google.CloudIOT.Types+import           Network.Google.Prelude++-- | A resource alias for @cloudiot.projects.locations.registries.devices.get@ method which the+-- 'ProjectsLocationsRegistriesDevicesGet' request conforms to.+type ProjectsLocationsRegistriesDevicesGetResource =+     "v1" :>+       Capture "name" Text :>+         QueryParam "$.xgafv" Xgafv :>+           QueryParam "upload_protocol" Text :>+             QueryParam "access_token" Text :>+               QueryParam "uploadType" Text :>+                 QueryParam "fieldMask" GFieldMask :>+                   QueryParam "callback" Text :>+                     QueryParam "alt" AltJSON :> Get '[JSON] Device++-- | Gets details about a device.+--+-- /See:/ 'projectsLocationsRegistriesDevicesGet' smart constructor.+data ProjectsLocationsRegistriesDevicesGet = ProjectsLocationsRegistriesDevicesGet'+    { _plrdgXgafv          :: !(Maybe Xgafv)+    , _plrdgUploadProtocol :: !(Maybe Text)+    , _plrdgAccessToken    :: !(Maybe Text)+    , _plrdgUploadType     :: !(Maybe Text)+    , _plrdgFieldMask      :: !(Maybe GFieldMask)+    , _plrdgName           :: !Text+    , _plrdgCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectsLocationsRegistriesDevicesGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'plrdgXgafv'+--+-- * 'plrdgUploadProtocol'+--+-- * 'plrdgAccessToken'+--+-- * 'plrdgUploadType'+--+-- * 'plrdgFieldMask'+--+-- * 'plrdgName'+--+-- * 'plrdgCallback'+projectsLocationsRegistriesDevicesGet+    :: Text -- ^ 'plrdgName'+    -> ProjectsLocationsRegistriesDevicesGet+projectsLocationsRegistriesDevicesGet pPlrdgName_ =+    ProjectsLocationsRegistriesDevicesGet'+    { _plrdgXgafv = Nothing+    , _plrdgUploadProtocol = Nothing+    , _plrdgAccessToken = Nothing+    , _plrdgUploadType = Nothing+    , _plrdgFieldMask = Nothing+    , _plrdgName = pPlrdgName_+    , _plrdgCallback = Nothing+    }++-- | V1 error format.+plrdgXgafv :: Lens' ProjectsLocationsRegistriesDevicesGet (Maybe Xgafv)+plrdgXgafv+  = lens _plrdgXgafv (\ s a -> s{_plrdgXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+plrdgUploadProtocol :: Lens' ProjectsLocationsRegistriesDevicesGet (Maybe Text)+plrdgUploadProtocol+  = lens _plrdgUploadProtocol+      (\ s a -> s{_plrdgUploadProtocol = a})++-- | OAuth access token.+plrdgAccessToken :: Lens' ProjectsLocationsRegistriesDevicesGet (Maybe Text)+plrdgAccessToken+  = lens _plrdgAccessToken+      (\ s a -> s{_plrdgAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+plrdgUploadType :: Lens' ProjectsLocationsRegistriesDevicesGet (Maybe Text)+plrdgUploadType+  = lens _plrdgUploadType+      (\ s a -> s{_plrdgUploadType = a})++-- | The fields of the \`Device\` resource to be returned in the response. If+-- the field mask is unset or empty, all fields are returned.+plrdgFieldMask :: Lens' ProjectsLocationsRegistriesDevicesGet (Maybe GFieldMask)+plrdgFieldMask+  = lens _plrdgFieldMask+      (\ s a -> s{_plrdgFieldMask = a})++-- | The name of the device. For example,+-- \`projects\/p0\/locations\/us-central1\/registries\/registry0\/devices\/device0\`+-- or+-- \`projects\/p0\/locations\/us-central1\/registries\/registry0\/devices\/{num_id}\`.+plrdgName :: Lens' ProjectsLocationsRegistriesDevicesGet Text+plrdgName+  = lens _plrdgName (\ s a -> s{_plrdgName = a})++-- | JSONP+plrdgCallback :: Lens' ProjectsLocationsRegistriesDevicesGet (Maybe Text)+plrdgCallback+  = lens _plrdgCallback+      (\ s a -> s{_plrdgCallback = a})++instance GoogleRequest+         ProjectsLocationsRegistriesDevicesGet where+        type Rs ProjectsLocationsRegistriesDevicesGet =+             Device+        type Scopes ProjectsLocationsRegistriesDevicesGet =+             '["https://www.googleapis.com/auth/cloud-platform",+               "https://www.googleapis.com/auth/cloudiot"]+        requestClient+          ProjectsLocationsRegistriesDevicesGet'{..}+          = go _plrdgName _plrdgXgafv _plrdgUploadProtocol+              _plrdgAccessToken+              _plrdgUploadType+              _plrdgFieldMask+              _plrdgCallback+              (Just AltJSON)+              cloudIOTService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy ProjectsLocationsRegistriesDevicesGetResource)+                      mempty
+ gen/Network/Google/Resource/CloudIOT/Projects/Locations/Registries/Devices/List.hs view
@@ -0,0 +1,288 @@+{-# 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.CloudIOT.Projects.Locations.Registries.Devices.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)+--+-- List devices in a device registry.+--+-- /See:/ <https://cloud.google.com/iot Cloud IoT API Reference> for @cloudiot.projects.locations.registries.devices.list@.+module Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Devices.List+    (+    -- * REST Resource+      ProjectsLocationsRegistriesDevicesListResource++    -- * Creating a Request+    , projectsLocationsRegistriesDevicesList+    , ProjectsLocationsRegistriesDevicesList++    -- * Request Lenses+    , plrdlParent+    , plrdlXgafv+    , plrdlUploadProtocol+    , plrdlAccessToken+    , plrdlDeviceNumIds+    , plrdlGatewayListOptionsAssociationsDeviceId+    , plrdlGatewayListOptionsAssociationsGatewayId+    , plrdlUploadType+    , plrdlDeviceIds+    , plrdlFieldMask+    , plrdlGatewayListOptionsGatewayType+    , plrdlPageToken+    , plrdlPageSize+    , plrdlCallback+    ) where++import           Network.Google.CloudIOT.Types+import           Network.Google.Prelude++-- | A resource alias for @cloudiot.projects.locations.registries.devices.list@ method which the+-- 'ProjectsLocationsRegistriesDevicesList' request conforms to.+type ProjectsLocationsRegistriesDevicesListResource =+     "v1" :>+       Capture "parent" Text :>+         "devices" :>+           QueryParam "$.xgafv" Xgafv :>+             QueryParam "upload_protocol" Text :>+               QueryParam "access_token" Text :>+                 QueryParams "deviceNumIds" (Textual Word64) :>+                   QueryParam "gatewayListOptions.associationsDeviceId"+                     Text+                     :>+                     QueryParam "gatewayListOptions.associationsGatewayId"+                       Text+                       :>+                       QueryParam "uploadType" Text :>+                         QueryParams "deviceIds" Text :>+                           QueryParam "fieldMask" GFieldMask :>+                             QueryParam "gatewayListOptions.gatewayType" Text :>+                               QueryParam "pageToken" Text :>+                                 QueryParam "pageSize" (Textual Int32) :>+                                   QueryParam "callback" Text :>+                                     QueryParam "alt" AltJSON :>+                                       Get '[JSON] ListDevicesResponse++-- | List devices in a device registry.+--+-- /See:/ 'projectsLocationsRegistriesDevicesList' smart constructor.+data ProjectsLocationsRegistriesDevicesList = ProjectsLocationsRegistriesDevicesList'+    { _plrdlParent                                  :: !Text+    , _plrdlXgafv                                   :: !(Maybe Xgafv)+    , _plrdlUploadProtocol                          :: !(Maybe Text)+    , _plrdlAccessToken                             :: !(Maybe Text)+    , _plrdlDeviceNumIds                            :: !(Maybe [Textual Word64])+    , _plrdlGatewayListOptionsAssociationsDeviceId  :: !(Maybe Text)+    , _plrdlGatewayListOptionsAssociationsGatewayId :: !(Maybe Text)+    , _plrdlUploadType                              :: !(Maybe Text)+    , _plrdlDeviceIds                               :: !(Maybe [Text])+    , _plrdlFieldMask                               :: !(Maybe GFieldMask)+    , _plrdlGatewayListOptionsGatewayType           :: !(Maybe Text)+    , _plrdlPageToken                               :: !(Maybe Text)+    , _plrdlPageSize                                :: !(Maybe (Textual Int32))+    , _plrdlCallback                                :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectsLocationsRegistriesDevicesList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'plrdlParent'+--+-- * 'plrdlXgafv'+--+-- * 'plrdlUploadProtocol'+--+-- * 'plrdlAccessToken'+--+-- * 'plrdlDeviceNumIds'+--+-- * 'plrdlGatewayListOptionsAssociationsDeviceId'+--+-- * 'plrdlGatewayListOptionsAssociationsGatewayId'+--+-- * 'plrdlUploadType'+--+-- * 'plrdlDeviceIds'+--+-- * 'plrdlFieldMask'+--+-- * 'plrdlGatewayListOptionsGatewayType'+--+-- * 'plrdlPageToken'+--+-- * 'plrdlPageSize'+--+-- * 'plrdlCallback'+projectsLocationsRegistriesDevicesList+    :: Text -- ^ 'plrdlParent'+    -> ProjectsLocationsRegistriesDevicesList+projectsLocationsRegistriesDevicesList pPlrdlParent_ =+    ProjectsLocationsRegistriesDevicesList'+    { _plrdlParent = pPlrdlParent_+    , _plrdlXgafv = Nothing+    , _plrdlUploadProtocol = Nothing+    , _plrdlAccessToken = Nothing+    , _plrdlDeviceNumIds = Nothing+    , _plrdlGatewayListOptionsAssociationsDeviceId = Nothing+    , _plrdlGatewayListOptionsAssociationsGatewayId = Nothing+    , _plrdlUploadType = Nothing+    , _plrdlDeviceIds = Nothing+    , _plrdlFieldMask = Nothing+    , _plrdlGatewayListOptionsGatewayType = Nothing+    , _plrdlPageToken = Nothing+    , _plrdlPageSize = Nothing+    , _plrdlCallback = Nothing+    }++-- | The device registry path. Required. For example,+-- \`projects\/my-project\/locations\/us-central1\/registries\/my-registry\`.+plrdlParent :: Lens' ProjectsLocationsRegistriesDevicesList Text+plrdlParent+  = lens _plrdlParent (\ s a -> s{_plrdlParent = a})++-- | V1 error format.+plrdlXgafv :: Lens' ProjectsLocationsRegistriesDevicesList (Maybe Xgafv)+plrdlXgafv+  = lens _plrdlXgafv (\ s a -> s{_plrdlXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+plrdlUploadProtocol :: Lens' ProjectsLocationsRegistriesDevicesList (Maybe Text)+plrdlUploadProtocol+  = lens _plrdlUploadProtocol+      (\ s a -> s{_plrdlUploadProtocol = a})++-- | OAuth access token.+plrdlAccessToken :: Lens' ProjectsLocationsRegistriesDevicesList (Maybe Text)+plrdlAccessToken+  = lens _plrdlAccessToken+      (\ s a -> s{_plrdlAccessToken = a})++-- | A list of device numeric IDs. If empty, this field is ignored. Maximum+-- IDs: 10,000.+plrdlDeviceNumIds :: Lens' ProjectsLocationsRegistriesDevicesList [Word64]+plrdlDeviceNumIds+  = lens _plrdlDeviceNumIds+      (\ s a -> s{_plrdlDeviceNumIds = a})+      . _Default+      . _Coerce++-- | If set, returns only the gateways with which the specified device is+-- associated. The device ID can be numeric (\`num_id\`) or the+-- user-defined string (\`id\`). For example, if \`456\` is specified,+-- returns only the gateways to which the device with \`num_id\` 456 is+-- bound.+plrdlGatewayListOptionsAssociationsDeviceId :: Lens' ProjectsLocationsRegistriesDevicesList (Maybe Text)+plrdlGatewayListOptionsAssociationsDeviceId+  = lens _plrdlGatewayListOptionsAssociationsDeviceId+      (\ s a ->+         s{_plrdlGatewayListOptionsAssociationsDeviceId = a})++-- | If set, only devices associated with the specified gateway are returned.+-- The gateway ID can be numeric (\`num_id\`) or the user-defined string+-- (\`id\`). For example, if \`123\` is specified, only devices bound to+-- the gateway with \`num_id\` 123 are returned.+plrdlGatewayListOptionsAssociationsGatewayId :: Lens' ProjectsLocationsRegistriesDevicesList (Maybe Text)+plrdlGatewayListOptionsAssociationsGatewayId+  = lens _plrdlGatewayListOptionsAssociationsGatewayId+      (\ s a ->+         s{_plrdlGatewayListOptionsAssociationsGatewayId = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+plrdlUploadType :: Lens' ProjectsLocationsRegistriesDevicesList (Maybe Text)+plrdlUploadType+  = lens _plrdlUploadType+      (\ s a -> s{_plrdlUploadType = a})++-- | A list of device string IDs. For example, \`[\'device0\',+-- \'device12\']\`. If empty, this field is ignored. Maximum IDs: 10,000+plrdlDeviceIds :: Lens' ProjectsLocationsRegistriesDevicesList [Text]+plrdlDeviceIds+  = lens _plrdlDeviceIds+      (\ s a -> s{_plrdlDeviceIds = a})+      . _Default+      . _Coerce++-- | The fields of the \`Device\` resource to be returned in the response.+-- The fields \`id\` and \`num_id\` are always returned, along with any+-- other fields specified.+plrdlFieldMask :: Lens' ProjectsLocationsRegistriesDevicesList (Maybe GFieldMask)+plrdlFieldMask+  = lens _plrdlFieldMask+      (\ s a -> s{_plrdlFieldMask = a})++-- | If \`GATEWAY\` is specified, only gateways are returned. If+-- \`NON_GATEWAY\` is specified, only non-gateway devices are returned. If+-- \`GATEWAY_TYPE_UNSPECIFIED\` is specified, all devices are returned.+plrdlGatewayListOptionsGatewayType :: Lens' ProjectsLocationsRegistriesDevicesList (Maybe Text)+plrdlGatewayListOptionsGatewayType+  = lens _plrdlGatewayListOptionsGatewayType+      (\ s a -> s{_plrdlGatewayListOptionsGatewayType = a})++-- | The value returned by the last \`ListDevicesResponse\`; indicates that+-- this is a continuation of a prior \`ListDevices\` call and the system+-- should return the next page of data.+plrdlPageToken :: Lens' ProjectsLocationsRegistriesDevicesList (Maybe Text)+plrdlPageToken+  = lens _plrdlPageToken+      (\ s a -> s{_plrdlPageToken = a})++-- | The maximum number of devices to return in the response. If this value+-- is zero, the service will select a default size. A call may return fewer+-- objects than requested. A non-empty \`next_page_token\` in the response+-- indicates that more data is available.+plrdlPageSize :: Lens' ProjectsLocationsRegistriesDevicesList (Maybe Int32)+plrdlPageSize+  = lens _plrdlPageSize+      (\ s a -> s{_plrdlPageSize = a})+      . mapping _Coerce++-- | JSONP+plrdlCallback :: Lens' ProjectsLocationsRegistriesDevicesList (Maybe Text)+plrdlCallback+  = lens _plrdlCallback+      (\ s a -> s{_plrdlCallback = a})++instance GoogleRequest+         ProjectsLocationsRegistriesDevicesList where+        type Rs ProjectsLocationsRegistriesDevicesList =+             ListDevicesResponse+        type Scopes ProjectsLocationsRegistriesDevicesList =+             '["https://www.googleapis.com/auth/cloud-platform",+               "https://www.googleapis.com/auth/cloudiot"]+        requestClient+          ProjectsLocationsRegistriesDevicesList'{..}+          = go _plrdlParent _plrdlXgafv _plrdlUploadProtocol+              _plrdlAccessToken+              (_plrdlDeviceNumIds ^. _Default)+              _plrdlGatewayListOptionsAssociationsDeviceId+              _plrdlGatewayListOptionsAssociationsGatewayId+              _plrdlUploadType+              (_plrdlDeviceIds ^. _Default)+              _plrdlFieldMask+              _plrdlGatewayListOptionsGatewayType+              _plrdlPageToken+              _plrdlPageSize+              _plrdlCallback+              (Just AltJSON)+              cloudIOTService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy ProjectsLocationsRegistriesDevicesListResource)+                      mempty
+ gen/Network/Google/Resource/CloudIOT/Projects/Locations/Registries/Devices/ModifyCloudToDeviceConfig.hs view
@@ -0,0 +1,184 @@+{-# 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.CloudIOT.Projects.Locations.Registries.Devices.ModifyCloudToDeviceConfig+-- 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)+--+-- Modifies the configuration for the device, which is eventually sent from+-- the Cloud IoT Core servers. Returns the modified configuration version+-- and its metadata.+--+-- /See:/ <https://cloud.google.com/iot Cloud IoT API Reference> for @cloudiot.projects.locations.registries.devices.modifyCloudToDeviceConfig@.+module Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Devices.ModifyCloudToDeviceConfig+    (+    -- * REST Resource+      ProjectsLocationsRegistriesDevicesModifyCloudToDeviceConfigResource++    -- * Creating a Request+    , projectsLocationsRegistriesDevicesModifyCloudToDeviceConfig+    , ProjectsLocationsRegistriesDevicesModifyCloudToDeviceConfig++    -- * Request Lenses+    , plrdmctdcXgafv+    , plrdmctdcUploadProtocol+    , plrdmctdcAccessToken+    , plrdmctdcUploadType+    , plrdmctdcPayload+    , plrdmctdcName+    , plrdmctdcCallback+    ) where++import           Network.Google.CloudIOT.Types+import           Network.Google.Prelude++-- | A resource alias for @cloudiot.projects.locations.registries.devices.modifyCloudToDeviceConfig@ method which the+-- 'ProjectsLocationsRegistriesDevicesModifyCloudToDeviceConfig' request conforms to.+type ProjectsLocationsRegistriesDevicesModifyCloudToDeviceConfigResource+     =+     "v1" :>+       CaptureMode "name" "modifyCloudToDeviceConfig" Text+         :>+         QueryParam "$.xgafv" Xgafv :>+           QueryParam "upload_protocol" Text :>+             QueryParam "access_token" Text :>+               QueryParam "uploadType" Text :>+                 QueryParam "callback" Text :>+                   QueryParam "alt" AltJSON :>+                     ReqBody '[JSON] ModifyCloudToDeviceConfigRequest :>+                       Post '[JSON] DeviceConfig++-- | Modifies the configuration for the device, which is eventually sent from+-- the Cloud IoT Core servers. Returns the modified configuration version+-- and its metadata.+--+-- /See:/ 'projectsLocationsRegistriesDevicesModifyCloudToDeviceConfig' smart constructor.+data ProjectsLocationsRegistriesDevicesModifyCloudToDeviceConfig = ProjectsLocationsRegistriesDevicesModifyCloudToDeviceConfig'+    { _plrdmctdcXgafv          :: !(Maybe Xgafv)+    , _plrdmctdcUploadProtocol :: !(Maybe Text)+    , _plrdmctdcAccessToken    :: !(Maybe Text)+    , _plrdmctdcUploadType     :: !(Maybe Text)+    , _plrdmctdcPayload        :: !ModifyCloudToDeviceConfigRequest+    , _plrdmctdcName           :: !Text+    , _plrdmctdcCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectsLocationsRegistriesDevicesModifyCloudToDeviceConfig' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'plrdmctdcXgafv'+--+-- * 'plrdmctdcUploadProtocol'+--+-- * 'plrdmctdcAccessToken'+--+-- * 'plrdmctdcUploadType'+--+-- * 'plrdmctdcPayload'+--+-- * 'plrdmctdcName'+--+-- * 'plrdmctdcCallback'+projectsLocationsRegistriesDevicesModifyCloudToDeviceConfig+    :: ModifyCloudToDeviceConfigRequest -- ^ 'plrdmctdcPayload'+    -> Text -- ^ 'plrdmctdcName'+    -> ProjectsLocationsRegistriesDevicesModifyCloudToDeviceConfig+projectsLocationsRegistriesDevicesModifyCloudToDeviceConfig pPlrdmctdcPayload_ pPlrdmctdcName_ =+    ProjectsLocationsRegistriesDevicesModifyCloudToDeviceConfig'+    { _plrdmctdcXgafv = Nothing+    , _plrdmctdcUploadProtocol = Nothing+    , _plrdmctdcAccessToken = Nothing+    , _plrdmctdcUploadType = Nothing+    , _plrdmctdcPayload = pPlrdmctdcPayload_+    , _plrdmctdcName = pPlrdmctdcName_+    , _plrdmctdcCallback = Nothing+    }++-- | V1 error format.+plrdmctdcXgafv :: Lens' ProjectsLocationsRegistriesDevicesModifyCloudToDeviceConfig (Maybe Xgafv)+plrdmctdcXgafv+  = lens _plrdmctdcXgafv+      (\ s a -> s{_plrdmctdcXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+plrdmctdcUploadProtocol :: Lens' ProjectsLocationsRegistriesDevicesModifyCloudToDeviceConfig (Maybe Text)+plrdmctdcUploadProtocol+  = lens _plrdmctdcUploadProtocol+      (\ s a -> s{_plrdmctdcUploadProtocol = a})++-- | OAuth access token.+plrdmctdcAccessToken :: Lens' ProjectsLocationsRegistriesDevicesModifyCloudToDeviceConfig (Maybe Text)+plrdmctdcAccessToken+  = lens _plrdmctdcAccessToken+      (\ s a -> s{_plrdmctdcAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+plrdmctdcUploadType :: Lens' ProjectsLocationsRegistriesDevicesModifyCloudToDeviceConfig (Maybe Text)+plrdmctdcUploadType+  = lens _plrdmctdcUploadType+      (\ s a -> s{_plrdmctdcUploadType = a})++-- | Multipart request metadata.+plrdmctdcPayload :: Lens' ProjectsLocationsRegistriesDevicesModifyCloudToDeviceConfig ModifyCloudToDeviceConfigRequest+plrdmctdcPayload+  = lens _plrdmctdcPayload+      (\ s a -> s{_plrdmctdcPayload = a})++-- | The name of the device. For example,+-- \`projects\/p0\/locations\/us-central1\/registries\/registry0\/devices\/device0\`+-- or+-- \`projects\/p0\/locations\/us-central1\/registries\/registry0\/devices\/{num_id}\`.+plrdmctdcName :: Lens' ProjectsLocationsRegistriesDevicesModifyCloudToDeviceConfig Text+plrdmctdcName+  = lens _plrdmctdcName+      (\ s a -> s{_plrdmctdcName = a})++-- | JSONP+plrdmctdcCallback :: Lens' ProjectsLocationsRegistriesDevicesModifyCloudToDeviceConfig (Maybe Text)+plrdmctdcCallback+  = lens _plrdmctdcCallback+      (\ s a -> s{_plrdmctdcCallback = a})++instance GoogleRequest+         ProjectsLocationsRegistriesDevicesModifyCloudToDeviceConfig+         where+        type Rs+               ProjectsLocationsRegistriesDevicesModifyCloudToDeviceConfig+             = DeviceConfig+        type Scopes+               ProjectsLocationsRegistriesDevicesModifyCloudToDeviceConfig+             =+             '["https://www.googleapis.com/auth/cloud-platform",+               "https://www.googleapis.com/auth/cloudiot"]+        requestClient+          ProjectsLocationsRegistriesDevicesModifyCloudToDeviceConfig'{..}+          = go _plrdmctdcName _plrdmctdcXgafv+              _plrdmctdcUploadProtocol+              _plrdmctdcAccessToken+              _plrdmctdcUploadType+              _plrdmctdcCallback+              (Just AltJSON)+              _plrdmctdcPayload+              cloudIOTService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy+                           ProjectsLocationsRegistriesDevicesModifyCloudToDeviceConfigResource)+                      mempty
+ gen/Network/Google/Resource/CloudIOT/Projects/Locations/Registries/Devices/Patch.hs view
@@ -0,0 +1,188 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Devices.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 a device.+--+-- /See:/ <https://cloud.google.com/iot Cloud IoT API Reference> for @cloudiot.projects.locations.registries.devices.patch@.+module Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Devices.Patch+    (+    -- * REST Resource+      ProjectsLocationsRegistriesDevicesPatchResource++    -- * Creating a Request+    , projectsLocationsRegistriesDevicesPatch+    , ProjectsLocationsRegistriesDevicesPatch++    -- * Request Lenses+    , plrdpXgafv+    , plrdpUploadProtocol+    , plrdpUpdateMask+    , plrdpAccessToken+    , plrdpUploadType+    , plrdpPayload+    , plrdpName+    , plrdpCallback+    ) where++import           Network.Google.CloudIOT.Types+import           Network.Google.Prelude++-- | A resource alias for @cloudiot.projects.locations.registries.devices.patch@ method which the+-- 'ProjectsLocationsRegistriesDevicesPatch' request conforms to.+type ProjectsLocationsRegistriesDevicesPatchResource+     =+     "v1" :>+       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] Device :> Patch '[JSON] Device++-- | Updates a device.+--+-- /See:/ 'projectsLocationsRegistriesDevicesPatch' smart constructor.+data ProjectsLocationsRegistriesDevicesPatch = ProjectsLocationsRegistriesDevicesPatch'+    { _plrdpXgafv          :: !(Maybe Xgafv)+    , _plrdpUploadProtocol :: !(Maybe Text)+    , _plrdpUpdateMask     :: !(Maybe GFieldMask)+    , _plrdpAccessToken    :: !(Maybe Text)+    , _plrdpUploadType     :: !(Maybe Text)+    , _plrdpPayload        :: !Device+    , _plrdpName           :: !Text+    , _plrdpCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectsLocationsRegistriesDevicesPatch' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'plrdpXgafv'+--+-- * 'plrdpUploadProtocol'+--+-- * 'plrdpUpdateMask'+--+-- * 'plrdpAccessToken'+--+-- * 'plrdpUploadType'+--+-- * 'plrdpPayload'+--+-- * 'plrdpName'+--+-- * 'plrdpCallback'+projectsLocationsRegistriesDevicesPatch+    :: Device -- ^ 'plrdpPayload'+    -> Text -- ^ 'plrdpName'+    -> ProjectsLocationsRegistriesDevicesPatch+projectsLocationsRegistriesDevicesPatch pPlrdpPayload_ pPlrdpName_ =+    ProjectsLocationsRegistriesDevicesPatch'+    { _plrdpXgafv = Nothing+    , _plrdpUploadProtocol = Nothing+    , _plrdpUpdateMask = Nothing+    , _plrdpAccessToken = Nothing+    , _plrdpUploadType = Nothing+    , _plrdpPayload = pPlrdpPayload_+    , _plrdpName = pPlrdpName_+    , _plrdpCallback = Nothing+    }++-- | V1 error format.+plrdpXgafv :: Lens' ProjectsLocationsRegistriesDevicesPatch (Maybe Xgafv)+plrdpXgafv+  = lens _plrdpXgafv (\ s a -> s{_plrdpXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+plrdpUploadProtocol :: Lens' ProjectsLocationsRegistriesDevicesPatch (Maybe Text)+plrdpUploadProtocol+  = lens _plrdpUploadProtocol+      (\ s a -> s{_plrdpUploadProtocol = a})++-- | Only updates the \`device\` fields indicated by this mask. The field+-- mask must not be empty, and it must not contain fields that are+-- immutable or only set by the server. Mutable top-level fields:+-- \`credentials\`, \`blocked\`, and \`metadata\`+plrdpUpdateMask :: Lens' ProjectsLocationsRegistriesDevicesPatch (Maybe GFieldMask)+plrdpUpdateMask+  = lens _plrdpUpdateMask+      (\ s a -> s{_plrdpUpdateMask = a})++-- | OAuth access token.+plrdpAccessToken :: Lens' ProjectsLocationsRegistriesDevicesPatch (Maybe Text)+plrdpAccessToken+  = lens _plrdpAccessToken+      (\ s a -> s{_plrdpAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+plrdpUploadType :: Lens' ProjectsLocationsRegistriesDevicesPatch (Maybe Text)+plrdpUploadType+  = lens _plrdpUploadType+      (\ s a -> s{_plrdpUploadType = a})++-- | Multipart request metadata.+plrdpPayload :: Lens' ProjectsLocationsRegistriesDevicesPatch Device+plrdpPayload+  = lens _plrdpPayload (\ s a -> s{_plrdpPayload = a})++-- | The resource path name. For example,+-- \`projects\/p1\/locations\/us-central1\/registries\/registry0\/devices\/dev0\`+-- or+-- \`projects\/p1\/locations\/us-central1\/registries\/registry0\/devices\/{num_id}\`.+-- When \`name\` is populated as a response from the service, it always+-- ends in the device numeric ID.+plrdpName :: Lens' ProjectsLocationsRegistriesDevicesPatch Text+plrdpName+  = lens _plrdpName (\ s a -> s{_plrdpName = a})++-- | JSONP+plrdpCallback :: Lens' ProjectsLocationsRegistriesDevicesPatch (Maybe Text)+plrdpCallback+  = lens _plrdpCallback+      (\ s a -> s{_plrdpCallback = a})++instance GoogleRequest+         ProjectsLocationsRegistriesDevicesPatch where+        type Rs ProjectsLocationsRegistriesDevicesPatch =+             Device+        type Scopes ProjectsLocationsRegistriesDevicesPatch =+             '["https://www.googleapis.com/auth/cloud-platform",+               "https://www.googleapis.com/auth/cloudiot"]+        requestClient+          ProjectsLocationsRegistriesDevicesPatch'{..}+          = go _plrdpName _plrdpXgafv _plrdpUploadProtocol+              _plrdpUpdateMask+              _plrdpAccessToken+              _plrdpUploadType+              _plrdpCallback+              (Just AltJSON)+              _plrdpPayload+              cloudIOTService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy+                           ProjectsLocationsRegistriesDevicesPatchResource)+                      mempty
+ gen/Network/Google/Resource/CloudIOT/Projects/Locations/Registries/Devices/SendCommandToDevice.hs view
@@ -0,0 +1,202 @@+{-# 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.CloudIOT.Projects.Locations.Registries.Devices.SendCommandToDevice+-- 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)+--+-- Sends a command to the specified device. In order for a device to be+-- able to receive commands, it must: 1) be connected to Cloud IoT Core+-- using the MQTT protocol, and 2) be subscribed to the group of MQTT+-- topics specified by \/devices\/{device-id}\/commands\/#. This+-- subscription will receive commands at the top-level topic+-- \/devices\/{device-id}\/commands as well as commands for subfolders,+-- like \/devices\/{device-id}\/commands\/subfolder. Note that subscribing+-- to specific subfolders is not supported. If the command could not be+-- delivered to the device, this method will return an error; in+-- particular, if the device is not subscribed, this method will return+-- FAILED_PRECONDITION. Otherwise, this method will return OK. If the+-- subscription is QoS 1, at least once delivery will be guaranteed; for+-- QoS 0, no acknowledgment will be expected from the device.+--+-- /See:/ <https://cloud.google.com/iot Cloud IoT API Reference> for @cloudiot.projects.locations.registries.devices.sendCommandToDevice@.+module Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Devices.SendCommandToDevice+    (+    -- * REST Resource+      ProjectsLocationsRegistriesDevicesSendCommandToDeviceResource++    -- * Creating a Request+    , projectsLocationsRegistriesDevicesSendCommandToDevice+    , ProjectsLocationsRegistriesDevicesSendCommandToDevice++    -- * Request Lenses+    , plrdsctdXgafv+    , plrdsctdUploadProtocol+    , plrdsctdAccessToken+    , plrdsctdUploadType+    , plrdsctdPayload+    , plrdsctdName+    , plrdsctdCallback+    ) where++import           Network.Google.CloudIOT.Types+import           Network.Google.Prelude++-- | A resource alias for @cloudiot.projects.locations.registries.devices.sendCommandToDevice@ method which the+-- 'ProjectsLocationsRegistriesDevicesSendCommandToDevice' request conforms to.+type ProjectsLocationsRegistriesDevicesSendCommandToDeviceResource+     =+     "v1" :>+       CaptureMode "name" "sendCommandToDevice" Text :>+         QueryParam "$.xgafv" Xgafv :>+           QueryParam "upload_protocol" Text :>+             QueryParam "access_token" Text :>+               QueryParam "uploadType" Text :>+                 QueryParam "callback" Text :>+                   QueryParam "alt" AltJSON :>+                     ReqBody '[JSON] SendCommandToDeviceRequest :>+                       Post '[JSON] SendCommandToDeviceResponse++-- | Sends a command to the specified device. In order for a device to be+-- able to receive commands, it must: 1) be connected to Cloud IoT Core+-- using the MQTT protocol, and 2) be subscribed to the group of MQTT+-- topics specified by \/devices\/{device-id}\/commands\/#. This+-- subscription will receive commands at the top-level topic+-- \/devices\/{device-id}\/commands as well as commands for subfolders,+-- like \/devices\/{device-id}\/commands\/subfolder. Note that subscribing+-- to specific subfolders is not supported. If the command could not be+-- delivered to the device, this method will return an error; in+-- particular, if the device is not subscribed, this method will return+-- FAILED_PRECONDITION. Otherwise, this method will return OK. If the+-- subscription is QoS 1, at least once delivery will be guaranteed; for+-- QoS 0, no acknowledgment will be expected from the device.+--+-- /See:/ 'projectsLocationsRegistriesDevicesSendCommandToDevice' smart constructor.+data ProjectsLocationsRegistriesDevicesSendCommandToDevice = ProjectsLocationsRegistriesDevicesSendCommandToDevice'+    { _plrdsctdXgafv          :: !(Maybe Xgafv)+    , _plrdsctdUploadProtocol :: !(Maybe Text)+    , _plrdsctdAccessToken    :: !(Maybe Text)+    , _plrdsctdUploadType     :: !(Maybe Text)+    , _plrdsctdPayload        :: !SendCommandToDeviceRequest+    , _plrdsctdName           :: !Text+    , _plrdsctdCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectsLocationsRegistriesDevicesSendCommandToDevice' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'plrdsctdXgafv'+--+-- * 'plrdsctdUploadProtocol'+--+-- * 'plrdsctdAccessToken'+--+-- * 'plrdsctdUploadType'+--+-- * 'plrdsctdPayload'+--+-- * 'plrdsctdName'+--+-- * 'plrdsctdCallback'+projectsLocationsRegistriesDevicesSendCommandToDevice+    :: SendCommandToDeviceRequest -- ^ 'plrdsctdPayload'+    -> Text -- ^ 'plrdsctdName'+    -> ProjectsLocationsRegistriesDevicesSendCommandToDevice+projectsLocationsRegistriesDevicesSendCommandToDevice pPlrdsctdPayload_ pPlrdsctdName_ =+    ProjectsLocationsRegistriesDevicesSendCommandToDevice'+    { _plrdsctdXgafv = Nothing+    , _plrdsctdUploadProtocol = Nothing+    , _plrdsctdAccessToken = Nothing+    , _plrdsctdUploadType = Nothing+    , _plrdsctdPayload = pPlrdsctdPayload_+    , _plrdsctdName = pPlrdsctdName_+    , _plrdsctdCallback = Nothing+    }++-- | V1 error format.+plrdsctdXgafv :: Lens' ProjectsLocationsRegistriesDevicesSendCommandToDevice (Maybe Xgafv)+plrdsctdXgafv+  = lens _plrdsctdXgafv+      (\ s a -> s{_plrdsctdXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+plrdsctdUploadProtocol :: Lens' ProjectsLocationsRegistriesDevicesSendCommandToDevice (Maybe Text)+plrdsctdUploadProtocol+  = lens _plrdsctdUploadProtocol+      (\ s a -> s{_plrdsctdUploadProtocol = a})++-- | OAuth access token.+plrdsctdAccessToken :: Lens' ProjectsLocationsRegistriesDevicesSendCommandToDevice (Maybe Text)+plrdsctdAccessToken+  = lens _plrdsctdAccessToken+      (\ s a -> s{_plrdsctdAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+plrdsctdUploadType :: Lens' ProjectsLocationsRegistriesDevicesSendCommandToDevice (Maybe Text)+plrdsctdUploadType+  = lens _plrdsctdUploadType+      (\ s a -> s{_plrdsctdUploadType = a})++-- | Multipart request metadata.+plrdsctdPayload :: Lens' ProjectsLocationsRegistriesDevicesSendCommandToDevice SendCommandToDeviceRequest+plrdsctdPayload+  = lens _plrdsctdPayload+      (\ s a -> s{_plrdsctdPayload = a})++-- | The name of the device. For example,+-- \`projects\/p0\/locations\/us-central1\/registries\/registry0\/devices\/device0\`+-- or+-- \`projects\/p0\/locations\/us-central1\/registries\/registry0\/devices\/{num_id}\`.+plrdsctdName :: Lens' ProjectsLocationsRegistriesDevicesSendCommandToDevice Text+plrdsctdName+  = lens _plrdsctdName (\ s a -> s{_plrdsctdName = a})++-- | JSONP+plrdsctdCallback :: Lens' ProjectsLocationsRegistriesDevicesSendCommandToDevice (Maybe Text)+plrdsctdCallback+  = lens _plrdsctdCallback+      (\ s a -> s{_plrdsctdCallback = a})++instance GoogleRequest+         ProjectsLocationsRegistriesDevicesSendCommandToDevice+         where+        type Rs+               ProjectsLocationsRegistriesDevicesSendCommandToDevice+             = SendCommandToDeviceResponse+        type Scopes+               ProjectsLocationsRegistriesDevicesSendCommandToDevice+             =+             '["https://www.googleapis.com/auth/cloud-platform",+               "https://www.googleapis.com/auth/cloudiot"]+        requestClient+          ProjectsLocationsRegistriesDevicesSendCommandToDevice'{..}+          = go _plrdsctdName _plrdsctdXgafv+              _plrdsctdUploadProtocol+              _plrdsctdAccessToken+              _plrdsctdUploadType+              _plrdsctdCallback+              (Just AltJSON)+              _plrdsctdPayload+              cloudIOTService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy+                           ProjectsLocationsRegistriesDevicesSendCommandToDeviceResource)+                      mempty
+ gen/Network/Google/Resource/CloudIOT/Projects/Locations/Registries/Devices/States/List.hs view
@@ -0,0 +1,179 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Devices.States.List+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists the last few versions of the device state in descending order+-- (i.e.: newest first).+--+-- /See:/ <https://cloud.google.com/iot Cloud IoT API Reference> for @cloudiot.projects.locations.registries.devices.states.list@.+module Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Devices.States.List+    (+    -- * REST Resource+      ProjectsLocationsRegistriesDevicesStatesListResource++    -- * Creating a Request+    , projectsLocationsRegistriesDevicesStatesList+    , ProjectsLocationsRegistriesDevicesStatesList++    -- * Request Lenses+    , plrdslXgafv+    , plrdslUploadProtocol+    , plrdslAccessToken+    , plrdslUploadType+    , plrdslName+    , plrdslNumStates+    , plrdslCallback+    ) where++import           Network.Google.CloudIOT.Types+import           Network.Google.Prelude++-- | A resource alias for @cloudiot.projects.locations.registries.devices.states.list@ method which the+-- 'ProjectsLocationsRegistriesDevicesStatesList' request conforms to.+type ProjectsLocationsRegistriesDevicesStatesListResource+     =+     "v1" :>+       Capture "name" Text :>+         "states" :>+           QueryParam "$.xgafv" Xgafv :>+             QueryParam "upload_protocol" Text :>+               QueryParam "access_token" Text :>+                 QueryParam "uploadType" Text :>+                   QueryParam "numStates" (Textual Int32) :>+                     QueryParam "callback" Text :>+                       QueryParam "alt" AltJSON :>+                         Get '[JSON] ListDeviceStatesResponse++-- | Lists the last few versions of the device state in descending order+-- (i.e.: newest first).+--+-- /See:/ 'projectsLocationsRegistriesDevicesStatesList' smart constructor.+data ProjectsLocationsRegistriesDevicesStatesList = ProjectsLocationsRegistriesDevicesStatesList'+    { _plrdslXgafv          :: !(Maybe Xgafv)+    , _plrdslUploadProtocol :: !(Maybe Text)+    , _plrdslAccessToken    :: !(Maybe Text)+    , _plrdslUploadType     :: !(Maybe Text)+    , _plrdslName           :: !Text+    , _plrdslNumStates      :: !(Maybe (Textual Int32))+    , _plrdslCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectsLocationsRegistriesDevicesStatesList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'plrdslXgafv'+--+-- * 'plrdslUploadProtocol'+--+-- * 'plrdslAccessToken'+--+-- * 'plrdslUploadType'+--+-- * 'plrdslName'+--+-- * 'plrdslNumStates'+--+-- * 'plrdslCallback'+projectsLocationsRegistriesDevicesStatesList+    :: Text -- ^ 'plrdslName'+    -> ProjectsLocationsRegistriesDevicesStatesList+projectsLocationsRegistriesDevicesStatesList pPlrdslName_ =+    ProjectsLocationsRegistriesDevicesStatesList'+    { _plrdslXgafv = Nothing+    , _plrdslUploadProtocol = Nothing+    , _plrdslAccessToken = Nothing+    , _plrdslUploadType = Nothing+    , _plrdslName = pPlrdslName_+    , _plrdslNumStates = Nothing+    , _plrdslCallback = Nothing+    }++-- | V1 error format.+plrdslXgafv :: Lens' ProjectsLocationsRegistriesDevicesStatesList (Maybe Xgafv)+plrdslXgafv+  = lens _plrdslXgafv (\ s a -> s{_plrdslXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+plrdslUploadProtocol :: Lens' ProjectsLocationsRegistriesDevicesStatesList (Maybe Text)+plrdslUploadProtocol+  = lens _plrdslUploadProtocol+      (\ s a -> s{_plrdslUploadProtocol = a})++-- | OAuth access token.+plrdslAccessToken :: Lens' ProjectsLocationsRegistriesDevicesStatesList (Maybe Text)+plrdslAccessToken+  = lens _plrdslAccessToken+      (\ s a -> s{_plrdslAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+plrdslUploadType :: Lens' ProjectsLocationsRegistriesDevicesStatesList (Maybe Text)+plrdslUploadType+  = lens _plrdslUploadType+      (\ s a -> s{_plrdslUploadType = a})++-- | The name of the device. For example,+-- \`projects\/p0\/locations\/us-central1\/registries\/registry0\/devices\/device0\`+-- or+-- \`projects\/p0\/locations\/us-central1\/registries\/registry0\/devices\/{num_id}\`.+plrdslName :: Lens' ProjectsLocationsRegistriesDevicesStatesList Text+plrdslName+  = lens _plrdslName (\ s a -> s{_plrdslName = a})++-- | The number of states to list. States are listed in descending order of+-- update time. The maximum number of states retained is 10. If this value+-- is zero, it will return all the states available.+plrdslNumStates :: Lens' ProjectsLocationsRegistriesDevicesStatesList (Maybe Int32)+plrdslNumStates+  = lens _plrdslNumStates+      (\ s a -> s{_plrdslNumStates = a})+      . mapping _Coerce++-- | JSONP+plrdslCallback :: Lens' ProjectsLocationsRegistriesDevicesStatesList (Maybe Text)+plrdslCallback+  = lens _plrdslCallback+      (\ s a -> s{_plrdslCallback = a})++instance GoogleRequest+         ProjectsLocationsRegistriesDevicesStatesList where+        type Rs ProjectsLocationsRegistriesDevicesStatesList+             = ListDeviceStatesResponse+        type Scopes+               ProjectsLocationsRegistriesDevicesStatesList+             =+             '["https://www.googleapis.com/auth/cloud-platform",+               "https://www.googleapis.com/auth/cloudiot"]+        requestClient+          ProjectsLocationsRegistriesDevicesStatesList'{..}+          = go _plrdslName _plrdslXgafv _plrdslUploadProtocol+              _plrdslAccessToken+              _plrdslUploadType+              _plrdslNumStates+              _plrdslCallback+              (Just AltJSON)+              cloudIOTService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy+                           ProjectsLocationsRegistriesDevicesStatesListResource)+                      mempty
+ gen/Network/Google/Resource/CloudIOT/Projects/Locations/Registries/Get.hs view
@@ -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.CloudIOT.Projects.Locations.Registries.Get+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets a device registry configuration.+--+-- /See:/ <https://cloud.google.com/iot Cloud IoT API Reference> for @cloudiot.projects.locations.registries.get@.+module Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Get+    (+    -- * REST Resource+      ProjectsLocationsRegistriesGetResource++    -- * Creating a Request+    , projectsLocationsRegistriesGet+    , ProjectsLocationsRegistriesGet++    -- * Request Lenses+    , plrgXgafv+    , plrgUploadProtocol+    , plrgAccessToken+    , plrgUploadType+    , plrgName+    , plrgCallback+    ) where++import           Network.Google.CloudIOT.Types+import           Network.Google.Prelude++-- | A resource alias for @cloudiot.projects.locations.registries.get@ method which the+-- 'ProjectsLocationsRegistriesGet' request conforms to.+type ProjectsLocationsRegistriesGetResource =+     "v1" :>+       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] DeviceRegistry++-- | Gets a device registry configuration.+--+-- /See:/ 'projectsLocationsRegistriesGet' smart constructor.+data ProjectsLocationsRegistriesGet = ProjectsLocationsRegistriesGet'+    { _plrgXgafv          :: !(Maybe Xgafv)+    , _plrgUploadProtocol :: !(Maybe Text)+    , _plrgAccessToken    :: !(Maybe Text)+    , _plrgUploadType     :: !(Maybe Text)+    , _plrgName           :: !Text+    , _plrgCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectsLocationsRegistriesGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'plrgXgafv'+--+-- * 'plrgUploadProtocol'+--+-- * 'plrgAccessToken'+--+-- * 'plrgUploadType'+--+-- * 'plrgName'+--+-- * 'plrgCallback'+projectsLocationsRegistriesGet+    :: Text -- ^ 'plrgName'+    -> ProjectsLocationsRegistriesGet+projectsLocationsRegistriesGet pPlrgName_ =+    ProjectsLocationsRegistriesGet'+    { _plrgXgafv = Nothing+    , _plrgUploadProtocol = Nothing+    , _plrgAccessToken = Nothing+    , _plrgUploadType = Nothing+    , _plrgName = pPlrgName_+    , _plrgCallback = Nothing+    }++-- | V1 error format.+plrgXgafv :: Lens' ProjectsLocationsRegistriesGet (Maybe Xgafv)+plrgXgafv+  = lens _plrgXgafv (\ s a -> s{_plrgXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+plrgUploadProtocol :: Lens' ProjectsLocationsRegistriesGet (Maybe Text)+plrgUploadProtocol+  = lens _plrgUploadProtocol+      (\ s a -> s{_plrgUploadProtocol = a})++-- | OAuth access token.+plrgAccessToken :: Lens' ProjectsLocationsRegistriesGet (Maybe Text)+plrgAccessToken+  = lens _plrgAccessToken+      (\ s a -> s{_plrgAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+plrgUploadType :: Lens' ProjectsLocationsRegistriesGet (Maybe Text)+plrgUploadType+  = lens _plrgUploadType+      (\ s a -> s{_plrgUploadType = a})++-- | The name of the device registry. For example,+-- \`projects\/example-project\/locations\/us-central1\/registries\/my-registry\`.+plrgName :: Lens' ProjectsLocationsRegistriesGet Text+plrgName = lens _plrgName (\ s a -> s{_plrgName = a})++-- | JSONP+plrgCallback :: Lens' ProjectsLocationsRegistriesGet (Maybe Text)+plrgCallback+  = lens _plrgCallback (\ s a -> s{_plrgCallback = a})++instance GoogleRequest ProjectsLocationsRegistriesGet+         where+        type Rs ProjectsLocationsRegistriesGet =+             DeviceRegistry+        type Scopes ProjectsLocationsRegistriesGet =+             '["https://www.googleapis.com/auth/cloud-platform",+               "https://www.googleapis.com/auth/cloudiot"]+        requestClient ProjectsLocationsRegistriesGet'{..}+          = go _plrgName _plrgXgafv _plrgUploadProtocol+              _plrgAccessToken+              _plrgUploadType+              _plrgCallback+              (Just AltJSON)+              cloudIOTService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy ProjectsLocationsRegistriesGetResource)+                      mempty
+ gen/Network/Google/Resource/CloudIOT/Projects/Locations/Registries/GetIAMPolicy.hs view
@@ -0,0 +1,174 @@+{-# 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.CloudIOT.Projects.Locations.Registries.GetIAMPolicy+-- 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 access control policy for a resource. Returns an empty policy+-- if the resource exists and does not have a policy set.+--+-- /See:/ <https://cloud.google.com/iot Cloud IoT API Reference> for @cloudiot.projects.locations.registries.getIamPolicy@.+module Network.Google.Resource.CloudIOT.Projects.Locations.Registries.GetIAMPolicy+    (+    -- * REST Resource+      ProjectsLocationsRegistriesGetIAMPolicyResource++    -- * Creating a Request+    , projectsLocationsRegistriesGetIAMPolicy+    , ProjectsLocationsRegistriesGetIAMPolicy++    -- * Request Lenses+    , plrgipXgafv+    , plrgipUploadProtocol+    , plrgipAccessToken+    , plrgipUploadType+    , plrgipPayload+    , plrgipResource+    , plrgipCallback+    ) where++import           Network.Google.CloudIOT.Types+import           Network.Google.Prelude++-- | A resource alias for @cloudiot.projects.locations.registries.getIamPolicy@ method which the+-- 'ProjectsLocationsRegistriesGetIAMPolicy' request conforms to.+type ProjectsLocationsRegistriesGetIAMPolicyResource+     =+     "v1" :>+       CaptureMode "resource" "getIamPolicy" Text :>+         QueryParam "$.xgafv" Xgafv :>+           QueryParam "upload_protocol" Text :>+             QueryParam "access_token" Text :>+               QueryParam "uploadType" Text :>+                 QueryParam "callback" Text :>+                   QueryParam "alt" AltJSON :>+                     ReqBody '[JSON] GetIAMPolicyRequest :>+                       Post '[JSON] Policy++-- | Gets the access control policy for a resource. Returns an empty policy+-- if the resource exists and does not have a policy set.+--+-- /See:/ 'projectsLocationsRegistriesGetIAMPolicy' smart constructor.+data ProjectsLocationsRegistriesGetIAMPolicy = ProjectsLocationsRegistriesGetIAMPolicy'+    { _plrgipXgafv          :: !(Maybe Xgafv)+    , _plrgipUploadProtocol :: !(Maybe Text)+    , _plrgipAccessToken    :: !(Maybe Text)+    , _plrgipUploadType     :: !(Maybe Text)+    , _plrgipPayload        :: !GetIAMPolicyRequest+    , _plrgipResource       :: !Text+    , _plrgipCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectsLocationsRegistriesGetIAMPolicy' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'plrgipXgafv'+--+-- * 'plrgipUploadProtocol'+--+-- * 'plrgipAccessToken'+--+-- * 'plrgipUploadType'+--+-- * 'plrgipPayload'+--+-- * 'plrgipResource'+--+-- * 'plrgipCallback'+projectsLocationsRegistriesGetIAMPolicy+    :: GetIAMPolicyRequest -- ^ 'plrgipPayload'+    -> Text -- ^ 'plrgipResource'+    -> ProjectsLocationsRegistriesGetIAMPolicy+projectsLocationsRegistriesGetIAMPolicy pPlrgipPayload_ pPlrgipResource_ =+    ProjectsLocationsRegistriesGetIAMPolicy'+    { _plrgipXgafv = Nothing+    , _plrgipUploadProtocol = Nothing+    , _plrgipAccessToken = Nothing+    , _plrgipUploadType = Nothing+    , _plrgipPayload = pPlrgipPayload_+    , _plrgipResource = pPlrgipResource_+    , _plrgipCallback = Nothing+    }++-- | V1 error format.+plrgipXgafv :: Lens' ProjectsLocationsRegistriesGetIAMPolicy (Maybe Xgafv)+plrgipXgafv+  = lens _plrgipXgafv (\ s a -> s{_plrgipXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+plrgipUploadProtocol :: Lens' ProjectsLocationsRegistriesGetIAMPolicy (Maybe Text)+plrgipUploadProtocol+  = lens _plrgipUploadProtocol+      (\ s a -> s{_plrgipUploadProtocol = a})++-- | OAuth access token.+plrgipAccessToken :: Lens' ProjectsLocationsRegistriesGetIAMPolicy (Maybe Text)+plrgipAccessToken+  = lens _plrgipAccessToken+      (\ s a -> s{_plrgipAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+plrgipUploadType :: Lens' ProjectsLocationsRegistriesGetIAMPolicy (Maybe Text)+plrgipUploadType+  = lens _plrgipUploadType+      (\ s a -> s{_plrgipUploadType = a})++-- | Multipart request metadata.+plrgipPayload :: Lens' ProjectsLocationsRegistriesGetIAMPolicy GetIAMPolicyRequest+plrgipPayload+  = lens _plrgipPayload+      (\ s a -> s{_plrgipPayload = a})++-- | REQUIRED: The resource for which the policy is being requested. See the+-- operation documentation for the appropriate value for this field.+plrgipResource :: Lens' ProjectsLocationsRegistriesGetIAMPolicy Text+plrgipResource+  = lens _plrgipResource+      (\ s a -> s{_plrgipResource = a})++-- | JSONP+plrgipCallback :: Lens' ProjectsLocationsRegistriesGetIAMPolicy (Maybe Text)+plrgipCallback+  = lens _plrgipCallback+      (\ s a -> s{_plrgipCallback = a})++instance GoogleRequest+         ProjectsLocationsRegistriesGetIAMPolicy where+        type Rs ProjectsLocationsRegistriesGetIAMPolicy =+             Policy+        type Scopes ProjectsLocationsRegistriesGetIAMPolicy =+             '["https://www.googleapis.com/auth/cloud-platform",+               "https://www.googleapis.com/auth/cloudiot"]+        requestClient+          ProjectsLocationsRegistriesGetIAMPolicy'{..}+          = go _plrgipResource _plrgipXgafv+              _plrgipUploadProtocol+              _plrgipAccessToken+              _plrgipUploadType+              _plrgipCallback+              (Just AltJSON)+              _plrgipPayload+              cloudIOTService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy+                           ProjectsLocationsRegistriesGetIAMPolicyResource)+                      mempty
+ gen/Network/Google/Resource/CloudIOT/Projects/Locations/Registries/Groups/BindDeviceToGateway.hs view
@@ -0,0 +1,177 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Groups.BindDeviceToGateway+-- 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)+--+-- Associates the device with the gateway.+--+-- /See:/ <https://cloud.google.com/iot Cloud IoT API Reference> for @cloudiot.projects.locations.registries.groups.bindDeviceToGateway@.+module Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Groups.BindDeviceToGateway+    (+    -- * REST Resource+      ProjectsLocationsRegistriesGroupsBindDeviceToGatewayResource++    -- * Creating a Request+    , projectsLocationsRegistriesGroupsBindDeviceToGateway+    , ProjectsLocationsRegistriesGroupsBindDeviceToGateway++    -- * Request Lenses+    , plrgbdtgParent+    , plrgbdtgXgafv+    , plrgbdtgUploadProtocol+    , plrgbdtgAccessToken+    , plrgbdtgUploadType+    , plrgbdtgPayload+    , plrgbdtgCallback+    ) where++import           Network.Google.CloudIOT.Types+import           Network.Google.Prelude++-- | A resource alias for @cloudiot.projects.locations.registries.groups.bindDeviceToGateway@ method which the+-- 'ProjectsLocationsRegistriesGroupsBindDeviceToGateway' request conforms to.+type ProjectsLocationsRegistriesGroupsBindDeviceToGatewayResource+     =+     "v1" :>+       CaptureMode "parent" "bindDeviceToGateway" Text :>+         QueryParam "$.xgafv" Xgafv :>+           QueryParam "upload_protocol" Text :>+             QueryParam "access_token" Text :>+               QueryParam "uploadType" Text :>+                 QueryParam "callback" Text :>+                   QueryParam "alt" AltJSON :>+                     ReqBody '[JSON] BindDeviceToGatewayRequest :>+                       Post '[JSON] BindDeviceToGatewayResponse++-- | Associates the device with the gateway.+--+-- /See:/ 'projectsLocationsRegistriesGroupsBindDeviceToGateway' smart constructor.+data ProjectsLocationsRegistriesGroupsBindDeviceToGateway = ProjectsLocationsRegistriesGroupsBindDeviceToGateway'+    { _plrgbdtgParent         :: !Text+    , _plrgbdtgXgafv          :: !(Maybe Xgafv)+    , _plrgbdtgUploadProtocol :: !(Maybe Text)+    , _plrgbdtgAccessToken    :: !(Maybe Text)+    , _plrgbdtgUploadType     :: !(Maybe Text)+    , _plrgbdtgPayload        :: !BindDeviceToGatewayRequest+    , _plrgbdtgCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectsLocationsRegistriesGroupsBindDeviceToGateway' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'plrgbdtgParent'+--+-- * 'plrgbdtgXgafv'+--+-- * 'plrgbdtgUploadProtocol'+--+-- * 'plrgbdtgAccessToken'+--+-- * 'plrgbdtgUploadType'+--+-- * 'plrgbdtgPayload'+--+-- * 'plrgbdtgCallback'+projectsLocationsRegistriesGroupsBindDeviceToGateway+    :: Text -- ^ 'plrgbdtgParent'+    -> BindDeviceToGatewayRequest -- ^ 'plrgbdtgPayload'+    -> ProjectsLocationsRegistriesGroupsBindDeviceToGateway+projectsLocationsRegistriesGroupsBindDeviceToGateway pPlrgbdtgParent_ pPlrgbdtgPayload_ =+    ProjectsLocationsRegistriesGroupsBindDeviceToGateway'+    { _plrgbdtgParent = pPlrgbdtgParent_+    , _plrgbdtgXgafv = Nothing+    , _plrgbdtgUploadProtocol = Nothing+    , _plrgbdtgAccessToken = Nothing+    , _plrgbdtgUploadType = Nothing+    , _plrgbdtgPayload = pPlrgbdtgPayload_+    , _plrgbdtgCallback = Nothing+    }++-- | The name of the registry. For example,+-- \`projects\/example-project\/locations\/us-central1\/registries\/my-registry\`.+plrgbdtgParent :: Lens' ProjectsLocationsRegistriesGroupsBindDeviceToGateway Text+plrgbdtgParent+  = lens _plrgbdtgParent+      (\ s a -> s{_plrgbdtgParent = a})++-- | V1 error format.+plrgbdtgXgafv :: Lens' ProjectsLocationsRegistriesGroupsBindDeviceToGateway (Maybe Xgafv)+plrgbdtgXgafv+  = lens _plrgbdtgXgafv+      (\ s a -> s{_plrgbdtgXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+plrgbdtgUploadProtocol :: Lens' ProjectsLocationsRegistriesGroupsBindDeviceToGateway (Maybe Text)+plrgbdtgUploadProtocol+  = lens _plrgbdtgUploadProtocol+      (\ s a -> s{_plrgbdtgUploadProtocol = a})++-- | OAuth access token.+plrgbdtgAccessToken :: Lens' ProjectsLocationsRegistriesGroupsBindDeviceToGateway (Maybe Text)+plrgbdtgAccessToken+  = lens _plrgbdtgAccessToken+      (\ s a -> s{_plrgbdtgAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+plrgbdtgUploadType :: Lens' ProjectsLocationsRegistriesGroupsBindDeviceToGateway (Maybe Text)+plrgbdtgUploadType+  = lens _plrgbdtgUploadType+      (\ s a -> s{_plrgbdtgUploadType = a})++-- | Multipart request metadata.+plrgbdtgPayload :: Lens' ProjectsLocationsRegistriesGroupsBindDeviceToGateway BindDeviceToGatewayRequest+plrgbdtgPayload+  = lens _plrgbdtgPayload+      (\ s a -> s{_plrgbdtgPayload = a})++-- | JSONP+plrgbdtgCallback :: Lens' ProjectsLocationsRegistriesGroupsBindDeviceToGateway (Maybe Text)+plrgbdtgCallback+  = lens _plrgbdtgCallback+      (\ s a -> s{_plrgbdtgCallback = a})++instance GoogleRequest+         ProjectsLocationsRegistriesGroupsBindDeviceToGateway+         where+        type Rs+               ProjectsLocationsRegistriesGroupsBindDeviceToGateway+             = BindDeviceToGatewayResponse+        type Scopes+               ProjectsLocationsRegistriesGroupsBindDeviceToGateway+             =+             '["https://www.googleapis.com/auth/cloud-platform",+               "https://www.googleapis.com/auth/cloudiot"]+        requestClient+          ProjectsLocationsRegistriesGroupsBindDeviceToGateway'{..}+          = go _plrgbdtgParent _plrgbdtgXgafv+              _plrgbdtgUploadProtocol+              _plrgbdtgAccessToken+              _plrgbdtgUploadType+              _plrgbdtgCallback+              (Just AltJSON)+              _plrgbdtgPayload+              cloudIOTService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy+                           ProjectsLocationsRegistriesGroupsBindDeviceToGatewayResource)+                      mempty
+ gen/Network/Google/Resource/CloudIOT/Projects/Locations/Registries/Groups/Devices/ConfigVersions/List.hs view
@@ -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.CloudIOT.Projects.Locations.Registries.Groups.Devices.ConfigVersions.List+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists the last few versions of the device configuration in descending+-- order (i.e.: newest first).+--+-- /See:/ <https://cloud.google.com/iot Cloud IoT API Reference> for @cloudiot.projects.locations.registries.groups.devices.configVersions.list@.+module Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Groups.Devices.ConfigVersions.List+    (+    -- * REST Resource+      ProjectsLocationsRegistriesGroupsDevicesConfigVersionsListResource++    -- * Creating a Request+    , projectsLocationsRegistriesGroupsDevicesConfigVersionsList+    , ProjectsLocationsRegistriesGroupsDevicesConfigVersionsList++    -- * Request Lenses+    , plrgdcvlXgafv+    , plrgdcvlUploadProtocol+    , plrgdcvlAccessToken+    , plrgdcvlUploadType+    , plrgdcvlNumVersions+    , plrgdcvlName+    , plrgdcvlCallback+    ) where++import           Network.Google.CloudIOT.Types+import           Network.Google.Prelude++-- | A resource alias for @cloudiot.projects.locations.registries.groups.devices.configVersions.list@ method which the+-- 'ProjectsLocationsRegistriesGroupsDevicesConfigVersionsList' request conforms to.+type ProjectsLocationsRegistriesGroupsDevicesConfigVersionsListResource+     =+     "v1" :>+       Capture "name" Text :>+         "configVersions" :>+           QueryParam "$.xgafv" Xgafv :>+             QueryParam "upload_protocol" Text :>+               QueryParam "access_token" Text :>+                 QueryParam "uploadType" Text :>+                   QueryParam "numVersions" (Textual Int32) :>+                     QueryParam "callback" Text :>+                       QueryParam "alt" AltJSON :>+                         Get '[JSON] ListDeviceConfigVersionsResponse++-- | Lists the last few versions of the device configuration in descending+-- order (i.e.: newest first).+--+-- /See:/ 'projectsLocationsRegistriesGroupsDevicesConfigVersionsList' smart constructor.+data ProjectsLocationsRegistriesGroupsDevicesConfigVersionsList = ProjectsLocationsRegistriesGroupsDevicesConfigVersionsList'+    { _plrgdcvlXgafv          :: !(Maybe Xgafv)+    , _plrgdcvlUploadProtocol :: !(Maybe Text)+    , _plrgdcvlAccessToken    :: !(Maybe Text)+    , _plrgdcvlUploadType     :: !(Maybe Text)+    , _plrgdcvlNumVersions    :: !(Maybe (Textual Int32))+    , _plrgdcvlName           :: !Text+    , _plrgdcvlCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectsLocationsRegistriesGroupsDevicesConfigVersionsList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'plrgdcvlXgafv'+--+-- * 'plrgdcvlUploadProtocol'+--+-- * 'plrgdcvlAccessToken'+--+-- * 'plrgdcvlUploadType'+--+-- * 'plrgdcvlNumVersions'+--+-- * 'plrgdcvlName'+--+-- * 'plrgdcvlCallback'+projectsLocationsRegistriesGroupsDevicesConfigVersionsList+    :: Text -- ^ 'plrgdcvlName'+    -> ProjectsLocationsRegistriesGroupsDevicesConfigVersionsList+projectsLocationsRegistriesGroupsDevicesConfigVersionsList pPlrgdcvlName_ =+    ProjectsLocationsRegistriesGroupsDevicesConfigVersionsList'+    { _plrgdcvlXgafv = Nothing+    , _plrgdcvlUploadProtocol = Nothing+    , _plrgdcvlAccessToken = Nothing+    , _plrgdcvlUploadType = Nothing+    , _plrgdcvlNumVersions = Nothing+    , _plrgdcvlName = pPlrgdcvlName_+    , _plrgdcvlCallback = Nothing+    }++-- | V1 error format.+plrgdcvlXgafv :: Lens' ProjectsLocationsRegistriesGroupsDevicesConfigVersionsList (Maybe Xgafv)+plrgdcvlXgafv+  = lens _plrgdcvlXgafv+      (\ s a -> s{_plrgdcvlXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+plrgdcvlUploadProtocol :: Lens' ProjectsLocationsRegistriesGroupsDevicesConfigVersionsList (Maybe Text)+plrgdcvlUploadProtocol+  = lens _plrgdcvlUploadProtocol+      (\ s a -> s{_plrgdcvlUploadProtocol = a})++-- | OAuth access token.+plrgdcvlAccessToken :: Lens' ProjectsLocationsRegistriesGroupsDevicesConfigVersionsList (Maybe Text)+plrgdcvlAccessToken+  = lens _plrgdcvlAccessToken+      (\ s a -> s{_plrgdcvlAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+plrgdcvlUploadType :: Lens' ProjectsLocationsRegistriesGroupsDevicesConfigVersionsList (Maybe Text)+plrgdcvlUploadType+  = lens _plrgdcvlUploadType+      (\ s a -> s{_plrgdcvlUploadType = a})++-- | The number of versions to list. Versions are listed in decreasing order+-- of the version number. The maximum number of versions retained is 10. If+-- this value is zero, it will return all the versions available.+plrgdcvlNumVersions :: Lens' ProjectsLocationsRegistriesGroupsDevicesConfigVersionsList (Maybe Int32)+plrgdcvlNumVersions+  = lens _plrgdcvlNumVersions+      (\ s a -> s{_plrgdcvlNumVersions = a})+      . mapping _Coerce++-- | The name of the device. For example,+-- \`projects\/p0\/locations\/us-central1\/registries\/registry0\/devices\/device0\`+-- or+-- \`projects\/p0\/locations\/us-central1\/registries\/registry0\/devices\/{num_id}\`.+plrgdcvlName :: Lens' ProjectsLocationsRegistriesGroupsDevicesConfigVersionsList Text+plrgdcvlName+  = lens _plrgdcvlName (\ s a -> s{_plrgdcvlName = a})++-- | JSONP+plrgdcvlCallback :: Lens' ProjectsLocationsRegistriesGroupsDevicesConfigVersionsList (Maybe Text)+plrgdcvlCallback+  = lens _plrgdcvlCallback+      (\ s a -> s{_plrgdcvlCallback = a})++instance GoogleRequest+         ProjectsLocationsRegistriesGroupsDevicesConfigVersionsList+         where+        type Rs+               ProjectsLocationsRegistriesGroupsDevicesConfigVersionsList+             = ListDeviceConfigVersionsResponse+        type Scopes+               ProjectsLocationsRegistriesGroupsDevicesConfigVersionsList+             =+             '["https://www.googleapis.com/auth/cloud-platform",+               "https://www.googleapis.com/auth/cloudiot"]+        requestClient+          ProjectsLocationsRegistriesGroupsDevicesConfigVersionsList'{..}+          = go _plrgdcvlName _plrgdcvlXgafv+              _plrgdcvlUploadProtocol+              _plrgdcvlAccessToken+              _plrgdcvlUploadType+              _plrgdcvlNumVersions+              _plrgdcvlCallback+              (Just AltJSON)+              cloudIOTService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy+                           ProjectsLocationsRegistriesGroupsDevicesConfigVersionsListResource)+                      mempty
+ gen/Network/Google/Resource/CloudIOT/Projects/Locations/Registries/Groups/Devices/Get.hs view
@@ -0,0 +1,173 @@+{-# 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.CloudIOT.Projects.Locations.Registries.Groups.Devices.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 details about a device.+--+-- /See:/ <https://cloud.google.com/iot Cloud IoT API Reference> for @cloudiot.projects.locations.registries.groups.devices.get@.+module Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Groups.Devices.Get+    (+    -- * REST Resource+      ProjectsLocationsRegistriesGroupsDevicesGetResource++    -- * Creating a Request+    , projectsLocationsRegistriesGroupsDevicesGet+    , ProjectsLocationsRegistriesGroupsDevicesGet++    -- * Request Lenses+    , plrgdgXgafv+    , plrgdgUploadProtocol+    , plrgdgAccessToken+    , plrgdgUploadType+    , plrgdgFieldMask+    , plrgdgName+    , plrgdgCallback+    ) where++import           Network.Google.CloudIOT.Types+import           Network.Google.Prelude++-- | A resource alias for @cloudiot.projects.locations.registries.groups.devices.get@ method which the+-- 'ProjectsLocationsRegistriesGroupsDevicesGet' request conforms to.+type ProjectsLocationsRegistriesGroupsDevicesGetResource+     =+     "v1" :>+       Capture "name" Text :>+         QueryParam "$.xgafv" Xgafv :>+           QueryParam "upload_protocol" Text :>+             QueryParam "access_token" Text :>+               QueryParam "uploadType" Text :>+                 QueryParam "fieldMask" GFieldMask :>+                   QueryParam "callback" Text :>+                     QueryParam "alt" AltJSON :> Get '[JSON] Device++-- | Gets details about a device.+--+-- /See:/ 'projectsLocationsRegistriesGroupsDevicesGet' smart constructor.+data ProjectsLocationsRegistriesGroupsDevicesGet = ProjectsLocationsRegistriesGroupsDevicesGet'+    { _plrgdgXgafv          :: !(Maybe Xgafv)+    , _plrgdgUploadProtocol :: !(Maybe Text)+    , _plrgdgAccessToken    :: !(Maybe Text)+    , _plrgdgUploadType     :: !(Maybe Text)+    , _plrgdgFieldMask      :: !(Maybe GFieldMask)+    , _plrgdgName           :: !Text+    , _plrgdgCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectsLocationsRegistriesGroupsDevicesGet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'plrgdgXgafv'+--+-- * 'plrgdgUploadProtocol'+--+-- * 'plrgdgAccessToken'+--+-- * 'plrgdgUploadType'+--+-- * 'plrgdgFieldMask'+--+-- * 'plrgdgName'+--+-- * 'plrgdgCallback'+projectsLocationsRegistriesGroupsDevicesGet+    :: Text -- ^ 'plrgdgName'+    -> ProjectsLocationsRegistriesGroupsDevicesGet+projectsLocationsRegistriesGroupsDevicesGet pPlrgdgName_ =+    ProjectsLocationsRegistriesGroupsDevicesGet'+    { _plrgdgXgafv = Nothing+    , _plrgdgUploadProtocol = Nothing+    , _plrgdgAccessToken = Nothing+    , _plrgdgUploadType = Nothing+    , _plrgdgFieldMask = Nothing+    , _plrgdgName = pPlrgdgName_+    , _plrgdgCallback = Nothing+    }++-- | V1 error format.+plrgdgXgafv :: Lens' ProjectsLocationsRegistriesGroupsDevicesGet (Maybe Xgafv)+plrgdgXgafv+  = lens _plrgdgXgafv (\ s a -> s{_plrgdgXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+plrgdgUploadProtocol :: Lens' ProjectsLocationsRegistriesGroupsDevicesGet (Maybe Text)+plrgdgUploadProtocol+  = lens _plrgdgUploadProtocol+      (\ s a -> s{_plrgdgUploadProtocol = a})++-- | OAuth access token.+plrgdgAccessToken :: Lens' ProjectsLocationsRegistriesGroupsDevicesGet (Maybe Text)+plrgdgAccessToken+  = lens _plrgdgAccessToken+      (\ s a -> s{_plrgdgAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+plrgdgUploadType :: Lens' ProjectsLocationsRegistriesGroupsDevicesGet (Maybe Text)+plrgdgUploadType+  = lens _plrgdgUploadType+      (\ s a -> s{_plrgdgUploadType = a})++-- | The fields of the \`Device\` resource to be returned in the response. If+-- the field mask is unset or empty, all fields are returned.+plrgdgFieldMask :: Lens' ProjectsLocationsRegistriesGroupsDevicesGet (Maybe GFieldMask)+plrgdgFieldMask+  = lens _plrgdgFieldMask+      (\ s a -> s{_plrgdgFieldMask = a})++-- | The name of the device. For example,+-- \`projects\/p0\/locations\/us-central1\/registries\/registry0\/devices\/device0\`+-- or+-- \`projects\/p0\/locations\/us-central1\/registries\/registry0\/devices\/{num_id}\`.+plrgdgName :: Lens' ProjectsLocationsRegistriesGroupsDevicesGet Text+plrgdgName+  = lens _plrgdgName (\ s a -> s{_plrgdgName = a})++-- | JSONP+plrgdgCallback :: Lens' ProjectsLocationsRegistriesGroupsDevicesGet (Maybe Text)+plrgdgCallback+  = lens _plrgdgCallback+      (\ s a -> s{_plrgdgCallback = a})++instance GoogleRequest+         ProjectsLocationsRegistriesGroupsDevicesGet where+        type Rs ProjectsLocationsRegistriesGroupsDevicesGet =+             Device+        type Scopes+               ProjectsLocationsRegistriesGroupsDevicesGet+             =+             '["https://www.googleapis.com/auth/cloud-platform",+               "https://www.googleapis.com/auth/cloudiot"]+        requestClient+          ProjectsLocationsRegistriesGroupsDevicesGet'{..}+          = go _plrgdgName _plrgdgXgafv _plrgdgUploadProtocol+              _plrgdgAccessToken+              _plrgdgUploadType+              _plrgdgFieldMask+              _plrgdgCallback+              (Just AltJSON)+              cloudIOTService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy+                           ProjectsLocationsRegistriesGroupsDevicesGetResource)+                      mempty
+ gen/Network/Google/Resource/CloudIOT/Projects/Locations/Registries/Groups/Devices/List.hs view
@@ -0,0 +1,294 @@+{-# 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.CloudIOT.Projects.Locations.Registries.Groups.Devices.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)+--+-- List devices in a device registry.+--+-- /See:/ <https://cloud.google.com/iot Cloud IoT API Reference> for @cloudiot.projects.locations.registries.groups.devices.list@.+module Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Groups.Devices.List+    (+    -- * REST Resource+      ProjectsLocationsRegistriesGroupsDevicesListResource++    -- * Creating a Request+    , projectsLocationsRegistriesGroupsDevicesList+    , ProjectsLocationsRegistriesGroupsDevicesList++    -- * Request Lenses+    , plrgdlParent+    , plrgdlXgafv+    , plrgdlUploadProtocol+    , plrgdlAccessToken+    , plrgdlDeviceNumIds+    , plrgdlGatewayListOptionsAssociationsDeviceId+    , plrgdlGatewayListOptionsAssociationsGatewayId+    , plrgdlUploadType+    , plrgdlDeviceIds+    , plrgdlFieldMask+    , plrgdlGatewayListOptionsGatewayType+    , plrgdlPageToken+    , plrgdlPageSize+    , plrgdlCallback+    ) where++import           Network.Google.CloudIOT.Types+import           Network.Google.Prelude++-- | A resource alias for @cloudiot.projects.locations.registries.groups.devices.list@ method which the+-- 'ProjectsLocationsRegistriesGroupsDevicesList' request conforms to.+type ProjectsLocationsRegistriesGroupsDevicesListResource+     =+     "v1" :>+       Capture "parent" Text :>+         "devices" :>+           QueryParam "$.xgafv" Xgafv :>+             QueryParam "upload_protocol" Text :>+               QueryParam "access_token" Text :>+                 QueryParams "deviceNumIds" (Textual Word64) :>+                   QueryParam "gatewayListOptions.associationsDeviceId"+                     Text+                     :>+                     QueryParam "gatewayListOptions.associationsGatewayId"+                       Text+                       :>+                       QueryParam "uploadType" Text :>+                         QueryParams "deviceIds" Text :>+                           QueryParam "fieldMask" GFieldMask :>+                             QueryParam "gatewayListOptions.gatewayType" Text :>+                               QueryParam "pageToken" Text :>+                                 QueryParam "pageSize" (Textual Int32) :>+                                   QueryParam "callback" Text :>+                                     QueryParam "alt" AltJSON :>+                                       Get '[JSON] ListDevicesResponse++-- | List devices in a device registry.+--+-- /See:/ 'projectsLocationsRegistriesGroupsDevicesList' smart constructor.+data ProjectsLocationsRegistriesGroupsDevicesList = ProjectsLocationsRegistriesGroupsDevicesList'+    { _plrgdlParent                                  :: !Text+    , _plrgdlXgafv                                   :: !(Maybe Xgafv)+    , _plrgdlUploadProtocol                          :: !(Maybe Text)+    , _plrgdlAccessToken                             :: !(Maybe Text)+    , _plrgdlDeviceNumIds                            :: !(Maybe [Textual Word64])+    , _plrgdlGatewayListOptionsAssociationsDeviceId  :: !(Maybe Text)+    , _plrgdlGatewayListOptionsAssociationsGatewayId :: !(Maybe Text)+    , _plrgdlUploadType                              :: !(Maybe Text)+    , _plrgdlDeviceIds                               :: !(Maybe [Text])+    , _plrgdlFieldMask                               :: !(Maybe GFieldMask)+    , _plrgdlGatewayListOptionsGatewayType           :: !(Maybe Text)+    , _plrgdlPageToken                               :: !(Maybe Text)+    , _plrgdlPageSize                                :: !(Maybe (Textual Int32))+    , _plrgdlCallback                                :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectsLocationsRegistriesGroupsDevicesList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'plrgdlParent'+--+-- * 'plrgdlXgafv'+--+-- * 'plrgdlUploadProtocol'+--+-- * 'plrgdlAccessToken'+--+-- * 'plrgdlDeviceNumIds'+--+-- * 'plrgdlGatewayListOptionsAssociationsDeviceId'+--+-- * 'plrgdlGatewayListOptionsAssociationsGatewayId'+--+-- * 'plrgdlUploadType'+--+-- * 'plrgdlDeviceIds'+--+-- * 'plrgdlFieldMask'+--+-- * 'plrgdlGatewayListOptionsGatewayType'+--+-- * 'plrgdlPageToken'+--+-- * 'plrgdlPageSize'+--+-- * 'plrgdlCallback'+projectsLocationsRegistriesGroupsDevicesList+    :: Text -- ^ 'plrgdlParent'+    -> ProjectsLocationsRegistriesGroupsDevicesList+projectsLocationsRegistriesGroupsDevicesList pPlrgdlParent_ =+    ProjectsLocationsRegistriesGroupsDevicesList'+    { _plrgdlParent = pPlrgdlParent_+    , _plrgdlXgafv = Nothing+    , _plrgdlUploadProtocol = Nothing+    , _plrgdlAccessToken = Nothing+    , _plrgdlDeviceNumIds = Nothing+    , _plrgdlGatewayListOptionsAssociationsDeviceId = Nothing+    , _plrgdlGatewayListOptionsAssociationsGatewayId = Nothing+    , _plrgdlUploadType = Nothing+    , _plrgdlDeviceIds = Nothing+    , _plrgdlFieldMask = Nothing+    , _plrgdlGatewayListOptionsGatewayType = Nothing+    , _plrgdlPageToken = Nothing+    , _plrgdlPageSize = Nothing+    , _plrgdlCallback = Nothing+    }++-- | The device registry path. Required. For example,+-- \`projects\/my-project\/locations\/us-central1\/registries\/my-registry\`.+plrgdlParent :: Lens' ProjectsLocationsRegistriesGroupsDevicesList Text+plrgdlParent+  = lens _plrgdlParent (\ s a -> s{_plrgdlParent = a})++-- | V1 error format.+plrgdlXgafv :: Lens' ProjectsLocationsRegistriesGroupsDevicesList (Maybe Xgafv)+plrgdlXgafv+  = lens _plrgdlXgafv (\ s a -> s{_plrgdlXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+plrgdlUploadProtocol :: Lens' ProjectsLocationsRegistriesGroupsDevicesList (Maybe Text)+plrgdlUploadProtocol+  = lens _plrgdlUploadProtocol+      (\ s a -> s{_plrgdlUploadProtocol = a})++-- | OAuth access token.+plrgdlAccessToken :: Lens' ProjectsLocationsRegistriesGroupsDevicesList (Maybe Text)+plrgdlAccessToken+  = lens _plrgdlAccessToken+      (\ s a -> s{_plrgdlAccessToken = a})++-- | A list of device numeric IDs. If empty, this field is ignored. Maximum+-- IDs: 10,000.+plrgdlDeviceNumIds :: Lens' ProjectsLocationsRegistriesGroupsDevicesList [Word64]+plrgdlDeviceNumIds+  = lens _plrgdlDeviceNumIds+      (\ s a -> s{_plrgdlDeviceNumIds = a})+      . _Default+      . _Coerce++-- | If set, returns only the gateways with which the specified device is+-- associated. The device ID can be numeric (\`num_id\`) or the+-- user-defined string (\`id\`). For example, if \`456\` is specified,+-- returns only the gateways to which the device with \`num_id\` 456 is+-- bound.+plrgdlGatewayListOptionsAssociationsDeviceId :: Lens' ProjectsLocationsRegistriesGroupsDevicesList (Maybe Text)+plrgdlGatewayListOptionsAssociationsDeviceId+  = lens _plrgdlGatewayListOptionsAssociationsDeviceId+      (\ s a ->+         s{_plrgdlGatewayListOptionsAssociationsDeviceId = a})++-- | If set, only devices associated with the specified gateway are returned.+-- The gateway ID can be numeric (\`num_id\`) or the user-defined string+-- (\`id\`). For example, if \`123\` is specified, only devices bound to+-- the gateway with \`num_id\` 123 are returned.+plrgdlGatewayListOptionsAssociationsGatewayId :: Lens' ProjectsLocationsRegistriesGroupsDevicesList (Maybe Text)+plrgdlGatewayListOptionsAssociationsGatewayId+  = lens _plrgdlGatewayListOptionsAssociationsGatewayId+      (\ s a ->+         s{_plrgdlGatewayListOptionsAssociationsGatewayId =+             a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+plrgdlUploadType :: Lens' ProjectsLocationsRegistriesGroupsDevicesList (Maybe Text)+plrgdlUploadType+  = lens _plrgdlUploadType+      (\ s a -> s{_plrgdlUploadType = a})++-- | A list of device string IDs. For example, \`[\'device0\',+-- \'device12\']\`. If empty, this field is ignored. Maximum IDs: 10,000+plrgdlDeviceIds :: Lens' ProjectsLocationsRegistriesGroupsDevicesList [Text]+plrgdlDeviceIds+  = lens _plrgdlDeviceIds+      (\ s a -> s{_plrgdlDeviceIds = a})+      . _Default+      . _Coerce++-- | The fields of the \`Device\` resource to be returned in the response.+-- The fields \`id\` and \`num_id\` are always returned, along with any+-- other fields specified.+plrgdlFieldMask :: Lens' ProjectsLocationsRegistriesGroupsDevicesList (Maybe GFieldMask)+plrgdlFieldMask+  = lens _plrgdlFieldMask+      (\ s a -> s{_plrgdlFieldMask = a})++-- | If \`GATEWAY\` is specified, only gateways are returned. If+-- \`NON_GATEWAY\` is specified, only non-gateway devices are returned. If+-- \`GATEWAY_TYPE_UNSPECIFIED\` is specified, all devices are returned.+plrgdlGatewayListOptionsGatewayType :: Lens' ProjectsLocationsRegistriesGroupsDevicesList (Maybe Text)+plrgdlGatewayListOptionsGatewayType+  = lens _plrgdlGatewayListOptionsGatewayType+      (\ s a ->+         s{_plrgdlGatewayListOptionsGatewayType = a})++-- | The value returned by the last \`ListDevicesResponse\`; indicates that+-- this is a continuation of a prior \`ListDevices\` call and the system+-- should return the next page of data.+plrgdlPageToken :: Lens' ProjectsLocationsRegistriesGroupsDevicesList (Maybe Text)+plrgdlPageToken+  = lens _plrgdlPageToken+      (\ s a -> s{_plrgdlPageToken = a})++-- | The maximum number of devices to return in the response. If this value+-- is zero, the service will select a default size. A call may return fewer+-- objects than requested. A non-empty \`next_page_token\` in the response+-- indicates that more data is available.+plrgdlPageSize :: Lens' ProjectsLocationsRegistriesGroupsDevicesList (Maybe Int32)+plrgdlPageSize+  = lens _plrgdlPageSize+      (\ s a -> s{_plrgdlPageSize = a})+      . mapping _Coerce++-- | JSONP+plrgdlCallback :: Lens' ProjectsLocationsRegistriesGroupsDevicesList (Maybe Text)+plrgdlCallback+  = lens _plrgdlCallback+      (\ s a -> s{_plrgdlCallback = a})++instance GoogleRequest+         ProjectsLocationsRegistriesGroupsDevicesList where+        type Rs ProjectsLocationsRegistriesGroupsDevicesList+             = ListDevicesResponse+        type Scopes+               ProjectsLocationsRegistriesGroupsDevicesList+             =+             '["https://www.googleapis.com/auth/cloud-platform",+               "https://www.googleapis.com/auth/cloudiot"]+        requestClient+          ProjectsLocationsRegistriesGroupsDevicesList'{..}+          = go _plrgdlParent _plrgdlXgafv _plrgdlUploadProtocol+              _plrgdlAccessToken+              (_plrgdlDeviceNumIds ^. _Default)+              _plrgdlGatewayListOptionsAssociationsDeviceId+              _plrgdlGatewayListOptionsAssociationsGatewayId+              _plrgdlUploadType+              (_plrgdlDeviceIds ^. _Default)+              _plrgdlFieldMask+              _plrgdlGatewayListOptionsGatewayType+              _plrgdlPageToken+              _plrgdlPageSize+              _plrgdlCallback+              (Just AltJSON)+              cloudIOTService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy+                           ProjectsLocationsRegistriesGroupsDevicesListResource)+                      mempty
+ gen/Network/Google/Resource/CloudIOT/Projects/Locations/Registries/Groups/Devices/ModifyCloudToDeviceConfig.hs view
@@ -0,0 +1,184 @@+{-# 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.CloudIOT.Projects.Locations.Registries.Groups.Devices.ModifyCloudToDeviceConfig+-- 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)+--+-- Modifies the configuration for the device, which is eventually sent from+-- the Cloud IoT Core servers. Returns the modified configuration version+-- and its metadata.+--+-- /See:/ <https://cloud.google.com/iot Cloud IoT API Reference> for @cloudiot.projects.locations.registries.groups.devices.modifyCloudToDeviceConfig@.+module Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Groups.Devices.ModifyCloudToDeviceConfig+    (+    -- * REST Resource+      ProjectsLocationsRegistriesGroupsDevicesModifyCloudToDeviceConfigResource++    -- * Creating a Request+    , projectsLocationsRegistriesGroupsDevicesModifyCloudToDeviceConfig+    , ProjectsLocationsRegistriesGroupsDevicesModifyCloudToDeviceConfig++    -- * Request Lenses+    , plrgdmctdcXgafv+    , plrgdmctdcUploadProtocol+    , plrgdmctdcAccessToken+    , plrgdmctdcUploadType+    , plrgdmctdcPayload+    , plrgdmctdcName+    , plrgdmctdcCallback+    ) where++import           Network.Google.CloudIOT.Types+import           Network.Google.Prelude++-- | A resource alias for @cloudiot.projects.locations.registries.groups.devices.modifyCloudToDeviceConfig@ method which the+-- 'ProjectsLocationsRegistriesGroupsDevicesModifyCloudToDeviceConfig' request conforms to.+type ProjectsLocationsRegistriesGroupsDevicesModifyCloudToDeviceConfigResource+     =+     "v1" :>+       CaptureMode "name" "modifyCloudToDeviceConfig" Text+         :>+         QueryParam "$.xgafv" Xgafv :>+           QueryParam "upload_protocol" Text :>+             QueryParam "access_token" Text :>+               QueryParam "uploadType" Text :>+                 QueryParam "callback" Text :>+                   QueryParam "alt" AltJSON :>+                     ReqBody '[JSON] ModifyCloudToDeviceConfigRequest :>+                       Post '[JSON] DeviceConfig++-- | Modifies the configuration for the device, which is eventually sent from+-- the Cloud IoT Core servers. Returns the modified configuration version+-- and its metadata.+--+-- /See:/ 'projectsLocationsRegistriesGroupsDevicesModifyCloudToDeviceConfig' smart constructor.+data ProjectsLocationsRegistriesGroupsDevicesModifyCloudToDeviceConfig = ProjectsLocationsRegistriesGroupsDevicesModifyCloudToDeviceConfig'+    { _plrgdmctdcXgafv          :: !(Maybe Xgafv)+    , _plrgdmctdcUploadProtocol :: !(Maybe Text)+    , _plrgdmctdcAccessToken    :: !(Maybe Text)+    , _plrgdmctdcUploadType     :: !(Maybe Text)+    , _plrgdmctdcPayload        :: !ModifyCloudToDeviceConfigRequest+    , _plrgdmctdcName           :: !Text+    , _plrgdmctdcCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectsLocationsRegistriesGroupsDevicesModifyCloudToDeviceConfig' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'plrgdmctdcXgafv'+--+-- * 'plrgdmctdcUploadProtocol'+--+-- * 'plrgdmctdcAccessToken'+--+-- * 'plrgdmctdcUploadType'+--+-- * 'plrgdmctdcPayload'+--+-- * 'plrgdmctdcName'+--+-- * 'plrgdmctdcCallback'+projectsLocationsRegistriesGroupsDevicesModifyCloudToDeviceConfig+    :: ModifyCloudToDeviceConfigRequest -- ^ 'plrgdmctdcPayload'+    -> Text -- ^ 'plrgdmctdcName'+    -> ProjectsLocationsRegistriesGroupsDevicesModifyCloudToDeviceConfig+projectsLocationsRegistriesGroupsDevicesModifyCloudToDeviceConfig pPlrgdmctdcPayload_ pPlrgdmctdcName_ =+    ProjectsLocationsRegistriesGroupsDevicesModifyCloudToDeviceConfig'+    { _plrgdmctdcXgafv = Nothing+    , _plrgdmctdcUploadProtocol = Nothing+    , _plrgdmctdcAccessToken = Nothing+    , _plrgdmctdcUploadType = Nothing+    , _plrgdmctdcPayload = pPlrgdmctdcPayload_+    , _plrgdmctdcName = pPlrgdmctdcName_+    , _plrgdmctdcCallback = Nothing+    }++-- | V1 error format.+plrgdmctdcXgafv :: Lens' ProjectsLocationsRegistriesGroupsDevicesModifyCloudToDeviceConfig (Maybe Xgafv)+plrgdmctdcXgafv+  = lens _plrgdmctdcXgafv+      (\ s a -> s{_plrgdmctdcXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+plrgdmctdcUploadProtocol :: Lens' ProjectsLocationsRegistriesGroupsDevicesModifyCloudToDeviceConfig (Maybe Text)+plrgdmctdcUploadProtocol+  = lens _plrgdmctdcUploadProtocol+      (\ s a -> s{_plrgdmctdcUploadProtocol = a})++-- | OAuth access token.+plrgdmctdcAccessToken :: Lens' ProjectsLocationsRegistriesGroupsDevicesModifyCloudToDeviceConfig (Maybe Text)+plrgdmctdcAccessToken+  = lens _plrgdmctdcAccessToken+      (\ s a -> s{_plrgdmctdcAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+plrgdmctdcUploadType :: Lens' ProjectsLocationsRegistriesGroupsDevicesModifyCloudToDeviceConfig (Maybe Text)+plrgdmctdcUploadType+  = lens _plrgdmctdcUploadType+      (\ s a -> s{_plrgdmctdcUploadType = a})++-- | Multipart request metadata.+plrgdmctdcPayload :: Lens' ProjectsLocationsRegistriesGroupsDevicesModifyCloudToDeviceConfig ModifyCloudToDeviceConfigRequest+plrgdmctdcPayload+  = lens _plrgdmctdcPayload+      (\ s a -> s{_plrgdmctdcPayload = a})++-- | The name of the device. For example,+-- \`projects\/p0\/locations\/us-central1\/registries\/registry0\/devices\/device0\`+-- or+-- \`projects\/p0\/locations\/us-central1\/registries\/registry0\/devices\/{num_id}\`.+plrgdmctdcName :: Lens' ProjectsLocationsRegistriesGroupsDevicesModifyCloudToDeviceConfig Text+plrgdmctdcName+  = lens _plrgdmctdcName+      (\ s a -> s{_plrgdmctdcName = a})++-- | JSONP+plrgdmctdcCallback :: Lens' ProjectsLocationsRegistriesGroupsDevicesModifyCloudToDeviceConfig (Maybe Text)+plrgdmctdcCallback+  = lens _plrgdmctdcCallback+      (\ s a -> s{_plrgdmctdcCallback = a})++instance GoogleRequest+         ProjectsLocationsRegistriesGroupsDevicesModifyCloudToDeviceConfig+         where+        type Rs+               ProjectsLocationsRegistriesGroupsDevicesModifyCloudToDeviceConfig+             = DeviceConfig+        type Scopes+               ProjectsLocationsRegistriesGroupsDevicesModifyCloudToDeviceConfig+             =+             '["https://www.googleapis.com/auth/cloud-platform",+               "https://www.googleapis.com/auth/cloudiot"]+        requestClient+          ProjectsLocationsRegistriesGroupsDevicesModifyCloudToDeviceConfig'{..}+          = go _plrgdmctdcName _plrgdmctdcXgafv+              _plrgdmctdcUploadProtocol+              _plrgdmctdcAccessToken+              _plrgdmctdcUploadType+              _plrgdmctdcCallback+              (Just AltJSON)+              _plrgdmctdcPayload+              cloudIOTService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy+                           ProjectsLocationsRegistriesGroupsDevicesModifyCloudToDeviceConfigResource)+                      mempty
+ gen/Network/Google/Resource/CloudIOT/Projects/Locations/Registries/Groups/Devices/Patch.hs view
@@ -0,0 +1,191 @@+{-# 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.CloudIOT.Projects.Locations.Registries.Groups.Devices.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 a device.+--+-- /See:/ <https://cloud.google.com/iot Cloud IoT API Reference> for @cloudiot.projects.locations.registries.groups.devices.patch@.+module Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Groups.Devices.Patch+    (+    -- * REST Resource+      ProjectsLocationsRegistriesGroupsDevicesPatchResource++    -- * Creating a Request+    , projectsLocationsRegistriesGroupsDevicesPatch+    , ProjectsLocationsRegistriesGroupsDevicesPatch++    -- * Request Lenses+    , plrgdpXgafv+    , plrgdpUploadProtocol+    , plrgdpUpdateMask+    , plrgdpAccessToken+    , plrgdpUploadType+    , plrgdpPayload+    , plrgdpName+    , plrgdpCallback+    ) where++import           Network.Google.CloudIOT.Types+import           Network.Google.Prelude++-- | A resource alias for @cloudiot.projects.locations.registries.groups.devices.patch@ method which the+-- 'ProjectsLocationsRegistriesGroupsDevicesPatch' request conforms to.+type ProjectsLocationsRegistriesGroupsDevicesPatchResource+     =+     "v1" :>+       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] Device :> Patch '[JSON] Device++-- | Updates a device.+--+-- /See:/ 'projectsLocationsRegistriesGroupsDevicesPatch' smart constructor.+data ProjectsLocationsRegistriesGroupsDevicesPatch = ProjectsLocationsRegistriesGroupsDevicesPatch'+    { _plrgdpXgafv          :: !(Maybe Xgafv)+    , _plrgdpUploadProtocol :: !(Maybe Text)+    , _plrgdpUpdateMask     :: !(Maybe GFieldMask)+    , _plrgdpAccessToken    :: !(Maybe Text)+    , _plrgdpUploadType     :: !(Maybe Text)+    , _plrgdpPayload        :: !Device+    , _plrgdpName           :: !Text+    , _plrgdpCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectsLocationsRegistriesGroupsDevicesPatch' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'plrgdpXgafv'+--+-- * 'plrgdpUploadProtocol'+--+-- * 'plrgdpUpdateMask'+--+-- * 'plrgdpAccessToken'+--+-- * 'plrgdpUploadType'+--+-- * 'plrgdpPayload'+--+-- * 'plrgdpName'+--+-- * 'plrgdpCallback'+projectsLocationsRegistriesGroupsDevicesPatch+    :: Device -- ^ 'plrgdpPayload'+    -> Text -- ^ 'plrgdpName'+    -> ProjectsLocationsRegistriesGroupsDevicesPatch+projectsLocationsRegistriesGroupsDevicesPatch pPlrgdpPayload_ pPlrgdpName_ =+    ProjectsLocationsRegistriesGroupsDevicesPatch'+    { _plrgdpXgafv = Nothing+    , _plrgdpUploadProtocol = Nothing+    , _plrgdpUpdateMask = Nothing+    , _plrgdpAccessToken = Nothing+    , _plrgdpUploadType = Nothing+    , _plrgdpPayload = pPlrgdpPayload_+    , _plrgdpName = pPlrgdpName_+    , _plrgdpCallback = Nothing+    }++-- | V1 error format.+plrgdpXgafv :: Lens' ProjectsLocationsRegistriesGroupsDevicesPatch (Maybe Xgafv)+plrgdpXgafv+  = lens _plrgdpXgafv (\ s a -> s{_plrgdpXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+plrgdpUploadProtocol :: Lens' ProjectsLocationsRegistriesGroupsDevicesPatch (Maybe Text)+plrgdpUploadProtocol+  = lens _plrgdpUploadProtocol+      (\ s a -> s{_plrgdpUploadProtocol = a})++-- | Only updates the \`device\` fields indicated by this mask. The field+-- mask must not be empty, and it must not contain fields that are+-- immutable or only set by the server. Mutable top-level fields:+-- \`credentials\`, \`blocked\`, and \`metadata\`+plrgdpUpdateMask :: Lens' ProjectsLocationsRegistriesGroupsDevicesPatch (Maybe GFieldMask)+plrgdpUpdateMask+  = lens _plrgdpUpdateMask+      (\ s a -> s{_plrgdpUpdateMask = a})++-- | OAuth access token.+plrgdpAccessToken :: Lens' ProjectsLocationsRegistriesGroupsDevicesPatch (Maybe Text)+plrgdpAccessToken+  = lens _plrgdpAccessToken+      (\ s a -> s{_plrgdpAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+plrgdpUploadType :: Lens' ProjectsLocationsRegistriesGroupsDevicesPatch (Maybe Text)+plrgdpUploadType+  = lens _plrgdpUploadType+      (\ s a -> s{_plrgdpUploadType = a})++-- | Multipart request metadata.+plrgdpPayload :: Lens' ProjectsLocationsRegistriesGroupsDevicesPatch Device+plrgdpPayload+  = lens _plrgdpPayload+      (\ s a -> s{_plrgdpPayload = a})++-- | The resource path name. For example,+-- \`projects\/p1\/locations\/us-central1\/registries\/registry0\/devices\/dev0\`+-- or+-- \`projects\/p1\/locations\/us-central1\/registries\/registry0\/devices\/{num_id}\`.+-- When \`name\` is populated as a response from the service, it always+-- ends in the device numeric ID.+plrgdpName :: Lens' ProjectsLocationsRegistriesGroupsDevicesPatch Text+plrgdpName+  = lens _plrgdpName (\ s a -> s{_plrgdpName = a})++-- | JSONP+plrgdpCallback :: Lens' ProjectsLocationsRegistriesGroupsDevicesPatch (Maybe Text)+plrgdpCallback+  = lens _plrgdpCallback+      (\ s a -> s{_plrgdpCallback = a})++instance GoogleRequest+         ProjectsLocationsRegistriesGroupsDevicesPatch where+        type Rs ProjectsLocationsRegistriesGroupsDevicesPatch+             = Device+        type Scopes+               ProjectsLocationsRegistriesGroupsDevicesPatch+             =+             '["https://www.googleapis.com/auth/cloud-platform",+               "https://www.googleapis.com/auth/cloudiot"]+        requestClient+          ProjectsLocationsRegistriesGroupsDevicesPatch'{..}+          = go _plrgdpName _plrgdpXgafv _plrgdpUploadProtocol+              _plrgdpUpdateMask+              _plrgdpAccessToken+              _plrgdpUploadType+              _plrgdpCallback+              (Just AltJSON)+              _plrgdpPayload+              cloudIOTService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy+                           ProjectsLocationsRegistriesGroupsDevicesPatchResource)+                      mempty
+ gen/Network/Google/Resource/CloudIOT/Projects/Locations/Registries/Groups/Devices/SendCommandToDevice.hs view
@@ -0,0 +1,203 @@+{-# 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.CloudIOT.Projects.Locations.Registries.Groups.Devices.SendCommandToDevice+-- 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)+--+-- Sends a command to the specified device. In order for a device to be+-- able to receive commands, it must: 1) be connected to Cloud IoT Core+-- using the MQTT protocol, and 2) be subscribed to the group of MQTT+-- topics specified by \/devices\/{device-id}\/commands\/#. This+-- subscription will receive commands at the top-level topic+-- \/devices\/{device-id}\/commands as well as commands for subfolders,+-- like \/devices\/{device-id}\/commands\/subfolder. Note that subscribing+-- to specific subfolders is not supported. If the command could not be+-- delivered to the device, this method will return an error; in+-- particular, if the device is not subscribed, this method will return+-- FAILED_PRECONDITION. Otherwise, this method will return OK. If the+-- subscription is QoS 1, at least once delivery will be guaranteed; for+-- QoS 0, no acknowledgment will be expected from the device.+--+-- /See:/ <https://cloud.google.com/iot Cloud IoT API Reference> for @cloudiot.projects.locations.registries.groups.devices.sendCommandToDevice@.+module Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Groups.Devices.SendCommandToDevice+    (+    -- * REST Resource+      ProjectsLocationsRegistriesGroupsDevicesSendCommandToDeviceResource++    -- * Creating a Request+    , projectsLocationsRegistriesGroupsDevicesSendCommandToDevice+    , ProjectsLocationsRegistriesGroupsDevicesSendCommandToDevice++    -- * Request Lenses+    , plrgdsctdXgafv+    , plrgdsctdUploadProtocol+    , plrgdsctdAccessToken+    , plrgdsctdUploadType+    , plrgdsctdPayload+    , plrgdsctdName+    , plrgdsctdCallback+    ) where++import           Network.Google.CloudIOT.Types+import           Network.Google.Prelude++-- | A resource alias for @cloudiot.projects.locations.registries.groups.devices.sendCommandToDevice@ method which the+-- 'ProjectsLocationsRegistriesGroupsDevicesSendCommandToDevice' request conforms to.+type ProjectsLocationsRegistriesGroupsDevicesSendCommandToDeviceResource+     =+     "v1" :>+       CaptureMode "name" "sendCommandToDevice" Text :>+         QueryParam "$.xgafv" Xgafv :>+           QueryParam "upload_protocol" Text :>+             QueryParam "access_token" Text :>+               QueryParam "uploadType" Text :>+                 QueryParam "callback" Text :>+                   QueryParam "alt" AltJSON :>+                     ReqBody '[JSON] SendCommandToDeviceRequest :>+                       Post '[JSON] SendCommandToDeviceResponse++-- | Sends a command to the specified device. In order for a device to be+-- able to receive commands, it must: 1) be connected to Cloud IoT Core+-- using the MQTT protocol, and 2) be subscribed to the group of MQTT+-- topics specified by \/devices\/{device-id}\/commands\/#. This+-- subscription will receive commands at the top-level topic+-- \/devices\/{device-id}\/commands as well as commands for subfolders,+-- like \/devices\/{device-id}\/commands\/subfolder. Note that subscribing+-- to specific subfolders is not supported. If the command could not be+-- delivered to the device, this method will return an error; in+-- particular, if the device is not subscribed, this method will return+-- FAILED_PRECONDITION. Otherwise, this method will return OK. If the+-- subscription is QoS 1, at least once delivery will be guaranteed; for+-- QoS 0, no acknowledgment will be expected from the device.+--+-- /See:/ 'projectsLocationsRegistriesGroupsDevicesSendCommandToDevice' smart constructor.+data ProjectsLocationsRegistriesGroupsDevicesSendCommandToDevice = ProjectsLocationsRegistriesGroupsDevicesSendCommandToDevice'+    { _plrgdsctdXgafv          :: !(Maybe Xgafv)+    , _plrgdsctdUploadProtocol :: !(Maybe Text)+    , _plrgdsctdAccessToken    :: !(Maybe Text)+    , _plrgdsctdUploadType     :: !(Maybe Text)+    , _plrgdsctdPayload        :: !SendCommandToDeviceRequest+    , _plrgdsctdName           :: !Text+    , _plrgdsctdCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectsLocationsRegistriesGroupsDevicesSendCommandToDevice' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'plrgdsctdXgafv'+--+-- * 'plrgdsctdUploadProtocol'+--+-- * 'plrgdsctdAccessToken'+--+-- * 'plrgdsctdUploadType'+--+-- * 'plrgdsctdPayload'+--+-- * 'plrgdsctdName'+--+-- * 'plrgdsctdCallback'+projectsLocationsRegistriesGroupsDevicesSendCommandToDevice+    :: SendCommandToDeviceRequest -- ^ 'plrgdsctdPayload'+    -> Text -- ^ 'plrgdsctdName'+    -> ProjectsLocationsRegistriesGroupsDevicesSendCommandToDevice+projectsLocationsRegistriesGroupsDevicesSendCommandToDevice pPlrgdsctdPayload_ pPlrgdsctdName_ =+    ProjectsLocationsRegistriesGroupsDevicesSendCommandToDevice'+    { _plrgdsctdXgafv = Nothing+    , _plrgdsctdUploadProtocol = Nothing+    , _plrgdsctdAccessToken = Nothing+    , _plrgdsctdUploadType = Nothing+    , _plrgdsctdPayload = pPlrgdsctdPayload_+    , _plrgdsctdName = pPlrgdsctdName_+    , _plrgdsctdCallback = Nothing+    }++-- | V1 error format.+plrgdsctdXgafv :: Lens' ProjectsLocationsRegistriesGroupsDevicesSendCommandToDevice (Maybe Xgafv)+plrgdsctdXgafv+  = lens _plrgdsctdXgafv+      (\ s a -> s{_plrgdsctdXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+plrgdsctdUploadProtocol :: Lens' ProjectsLocationsRegistriesGroupsDevicesSendCommandToDevice (Maybe Text)+plrgdsctdUploadProtocol+  = lens _plrgdsctdUploadProtocol+      (\ s a -> s{_plrgdsctdUploadProtocol = a})++-- | OAuth access token.+plrgdsctdAccessToken :: Lens' ProjectsLocationsRegistriesGroupsDevicesSendCommandToDevice (Maybe Text)+plrgdsctdAccessToken+  = lens _plrgdsctdAccessToken+      (\ s a -> s{_plrgdsctdAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+plrgdsctdUploadType :: Lens' ProjectsLocationsRegistriesGroupsDevicesSendCommandToDevice (Maybe Text)+plrgdsctdUploadType+  = lens _plrgdsctdUploadType+      (\ s a -> s{_plrgdsctdUploadType = a})++-- | Multipart request metadata.+plrgdsctdPayload :: Lens' ProjectsLocationsRegistriesGroupsDevicesSendCommandToDevice SendCommandToDeviceRequest+plrgdsctdPayload+  = lens _plrgdsctdPayload+      (\ s a -> s{_plrgdsctdPayload = a})++-- | The name of the device. For example,+-- \`projects\/p0\/locations\/us-central1\/registries\/registry0\/devices\/device0\`+-- or+-- \`projects\/p0\/locations\/us-central1\/registries\/registry0\/devices\/{num_id}\`.+plrgdsctdName :: Lens' ProjectsLocationsRegistriesGroupsDevicesSendCommandToDevice Text+plrgdsctdName+  = lens _plrgdsctdName+      (\ s a -> s{_plrgdsctdName = a})++-- | JSONP+plrgdsctdCallback :: Lens' ProjectsLocationsRegistriesGroupsDevicesSendCommandToDevice (Maybe Text)+plrgdsctdCallback+  = lens _plrgdsctdCallback+      (\ s a -> s{_plrgdsctdCallback = a})++instance GoogleRequest+         ProjectsLocationsRegistriesGroupsDevicesSendCommandToDevice+         where+        type Rs+               ProjectsLocationsRegistriesGroupsDevicesSendCommandToDevice+             = SendCommandToDeviceResponse+        type Scopes+               ProjectsLocationsRegistriesGroupsDevicesSendCommandToDevice+             =+             '["https://www.googleapis.com/auth/cloud-platform",+               "https://www.googleapis.com/auth/cloudiot"]+        requestClient+          ProjectsLocationsRegistriesGroupsDevicesSendCommandToDevice'{..}+          = go _plrgdsctdName _plrgdsctdXgafv+              _plrgdsctdUploadProtocol+              _plrgdsctdAccessToken+              _plrgdsctdUploadType+              _plrgdsctdCallback+              (Just AltJSON)+              _plrgdsctdPayload+              cloudIOTService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy+                           ProjectsLocationsRegistriesGroupsDevicesSendCommandToDeviceResource)+                      mempty
+ gen/Network/Google/Resource/CloudIOT/Projects/Locations/Registries/Groups/Devices/States/List.hs view
@@ -0,0 +1,182 @@+{-# 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.CloudIOT.Projects.Locations.Registries.Groups.Devices.States.List+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists the last few versions of the device state in descending order+-- (i.e.: newest first).+--+-- /See:/ <https://cloud.google.com/iot Cloud IoT API Reference> for @cloudiot.projects.locations.registries.groups.devices.states.list@.+module Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Groups.Devices.States.List+    (+    -- * REST Resource+      ProjectsLocationsRegistriesGroupsDevicesStatesListResource++    -- * Creating a Request+    , projectsLocationsRegistriesGroupsDevicesStatesList+    , ProjectsLocationsRegistriesGroupsDevicesStatesList++    -- * Request Lenses+    , plrgdslXgafv+    , plrgdslUploadProtocol+    , plrgdslAccessToken+    , plrgdslUploadType+    , plrgdslName+    , plrgdslNumStates+    , plrgdslCallback+    ) where++import           Network.Google.CloudIOT.Types+import           Network.Google.Prelude++-- | A resource alias for @cloudiot.projects.locations.registries.groups.devices.states.list@ method which the+-- 'ProjectsLocationsRegistriesGroupsDevicesStatesList' request conforms to.+type ProjectsLocationsRegistriesGroupsDevicesStatesListResource+     =+     "v1" :>+       Capture "name" Text :>+         "states" :>+           QueryParam "$.xgafv" Xgafv :>+             QueryParam "upload_protocol" Text :>+               QueryParam "access_token" Text :>+                 QueryParam "uploadType" Text :>+                   QueryParam "numStates" (Textual Int32) :>+                     QueryParam "callback" Text :>+                       QueryParam "alt" AltJSON :>+                         Get '[JSON] ListDeviceStatesResponse++-- | Lists the last few versions of the device state in descending order+-- (i.e.: newest first).+--+-- /See:/ 'projectsLocationsRegistriesGroupsDevicesStatesList' smart constructor.+data ProjectsLocationsRegistriesGroupsDevicesStatesList = ProjectsLocationsRegistriesGroupsDevicesStatesList'+    { _plrgdslXgafv          :: !(Maybe Xgafv)+    , _plrgdslUploadProtocol :: !(Maybe Text)+    , _plrgdslAccessToken    :: !(Maybe Text)+    , _plrgdslUploadType     :: !(Maybe Text)+    , _plrgdslName           :: !Text+    , _plrgdslNumStates      :: !(Maybe (Textual Int32))+    , _plrgdslCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectsLocationsRegistriesGroupsDevicesStatesList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'plrgdslXgafv'+--+-- * 'plrgdslUploadProtocol'+--+-- * 'plrgdslAccessToken'+--+-- * 'plrgdslUploadType'+--+-- * 'plrgdslName'+--+-- * 'plrgdslNumStates'+--+-- * 'plrgdslCallback'+projectsLocationsRegistriesGroupsDevicesStatesList+    :: Text -- ^ 'plrgdslName'+    -> ProjectsLocationsRegistriesGroupsDevicesStatesList+projectsLocationsRegistriesGroupsDevicesStatesList pPlrgdslName_ =+    ProjectsLocationsRegistriesGroupsDevicesStatesList'+    { _plrgdslXgafv = Nothing+    , _plrgdslUploadProtocol = Nothing+    , _plrgdslAccessToken = Nothing+    , _plrgdslUploadType = Nothing+    , _plrgdslName = pPlrgdslName_+    , _plrgdslNumStates = Nothing+    , _plrgdslCallback = Nothing+    }++-- | V1 error format.+plrgdslXgafv :: Lens' ProjectsLocationsRegistriesGroupsDevicesStatesList (Maybe Xgafv)+plrgdslXgafv+  = lens _plrgdslXgafv (\ s a -> s{_plrgdslXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+plrgdslUploadProtocol :: Lens' ProjectsLocationsRegistriesGroupsDevicesStatesList (Maybe Text)+plrgdslUploadProtocol+  = lens _plrgdslUploadProtocol+      (\ s a -> s{_plrgdslUploadProtocol = a})++-- | OAuth access token.+plrgdslAccessToken :: Lens' ProjectsLocationsRegistriesGroupsDevicesStatesList (Maybe Text)+plrgdslAccessToken+  = lens _plrgdslAccessToken+      (\ s a -> s{_plrgdslAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+plrgdslUploadType :: Lens' ProjectsLocationsRegistriesGroupsDevicesStatesList (Maybe Text)+plrgdslUploadType+  = lens _plrgdslUploadType+      (\ s a -> s{_plrgdslUploadType = a})++-- | The name of the device. For example,+-- \`projects\/p0\/locations\/us-central1\/registries\/registry0\/devices\/device0\`+-- or+-- \`projects\/p0\/locations\/us-central1\/registries\/registry0\/devices\/{num_id}\`.+plrgdslName :: Lens' ProjectsLocationsRegistriesGroupsDevicesStatesList Text+plrgdslName+  = lens _plrgdslName (\ s a -> s{_plrgdslName = a})++-- | The number of states to list. States are listed in descending order of+-- update time. The maximum number of states retained is 10. If this value+-- is zero, it will return all the states available.+plrgdslNumStates :: Lens' ProjectsLocationsRegistriesGroupsDevicesStatesList (Maybe Int32)+plrgdslNumStates+  = lens _plrgdslNumStates+      (\ s a -> s{_plrgdslNumStates = a})+      . mapping _Coerce++-- | JSONP+plrgdslCallback :: Lens' ProjectsLocationsRegistriesGroupsDevicesStatesList (Maybe Text)+plrgdslCallback+  = lens _plrgdslCallback+      (\ s a -> s{_plrgdslCallback = a})++instance GoogleRequest+         ProjectsLocationsRegistriesGroupsDevicesStatesList+         where+        type Rs+               ProjectsLocationsRegistriesGroupsDevicesStatesList+             = ListDeviceStatesResponse+        type Scopes+               ProjectsLocationsRegistriesGroupsDevicesStatesList+             =+             '["https://www.googleapis.com/auth/cloud-platform",+               "https://www.googleapis.com/auth/cloudiot"]+        requestClient+          ProjectsLocationsRegistriesGroupsDevicesStatesList'{..}+          = go _plrgdslName _plrgdslXgafv+              _plrgdslUploadProtocol+              _plrgdslAccessToken+              _plrgdslUploadType+              _plrgdslNumStates+              _plrgdslCallback+              (Just AltJSON)+              cloudIOTService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy+                           ProjectsLocationsRegistriesGroupsDevicesStatesListResource)+                      mempty
+ gen/Network/Google/Resource/CloudIOT/Projects/Locations/Registries/Groups/GetIAMPolicy.hs view
@@ -0,0 +1,176 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Groups.GetIAMPolicy+-- 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 access control policy for a resource. Returns an empty policy+-- if the resource exists and does not have a policy set.+--+-- /See:/ <https://cloud.google.com/iot Cloud IoT API Reference> for @cloudiot.projects.locations.registries.groups.getIamPolicy@.+module Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Groups.GetIAMPolicy+    (+    -- * REST Resource+      ProjectsLocationsRegistriesGroupsGetIAMPolicyResource++    -- * Creating a Request+    , projectsLocationsRegistriesGroupsGetIAMPolicy+    , ProjectsLocationsRegistriesGroupsGetIAMPolicy++    -- * Request Lenses+    , plrggipXgafv+    , plrggipUploadProtocol+    , plrggipAccessToken+    , plrggipUploadType+    , plrggipPayload+    , plrggipResource+    , plrggipCallback+    ) where++import           Network.Google.CloudIOT.Types+import           Network.Google.Prelude++-- | A resource alias for @cloudiot.projects.locations.registries.groups.getIamPolicy@ method which the+-- 'ProjectsLocationsRegistriesGroupsGetIAMPolicy' request conforms to.+type ProjectsLocationsRegistriesGroupsGetIAMPolicyResource+     =+     "v1" :>+       CaptureMode "resource" "getIamPolicy" Text :>+         QueryParam "$.xgafv" Xgafv :>+           QueryParam "upload_protocol" Text :>+             QueryParam "access_token" Text :>+               QueryParam "uploadType" Text :>+                 QueryParam "callback" Text :>+                   QueryParam "alt" AltJSON :>+                     ReqBody '[JSON] GetIAMPolicyRequest :>+                       Post '[JSON] Policy++-- | Gets the access control policy for a resource. Returns an empty policy+-- if the resource exists and does not have a policy set.+--+-- /See:/ 'projectsLocationsRegistriesGroupsGetIAMPolicy' smart constructor.+data ProjectsLocationsRegistriesGroupsGetIAMPolicy = ProjectsLocationsRegistriesGroupsGetIAMPolicy'+    { _plrggipXgafv          :: !(Maybe Xgafv)+    , _plrggipUploadProtocol :: !(Maybe Text)+    , _plrggipAccessToken    :: !(Maybe Text)+    , _plrggipUploadType     :: !(Maybe Text)+    , _plrggipPayload        :: !GetIAMPolicyRequest+    , _plrggipResource       :: !Text+    , _plrggipCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectsLocationsRegistriesGroupsGetIAMPolicy' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'plrggipXgafv'+--+-- * 'plrggipUploadProtocol'+--+-- * 'plrggipAccessToken'+--+-- * 'plrggipUploadType'+--+-- * 'plrggipPayload'+--+-- * 'plrggipResource'+--+-- * 'plrggipCallback'+projectsLocationsRegistriesGroupsGetIAMPolicy+    :: GetIAMPolicyRequest -- ^ 'plrggipPayload'+    -> Text -- ^ 'plrggipResource'+    -> ProjectsLocationsRegistriesGroupsGetIAMPolicy+projectsLocationsRegistriesGroupsGetIAMPolicy pPlrggipPayload_ pPlrggipResource_ =+    ProjectsLocationsRegistriesGroupsGetIAMPolicy'+    { _plrggipXgafv = Nothing+    , _plrggipUploadProtocol = Nothing+    , _plrggipAccessToken = Nothing+    , _plrggipUploadType = Nothing+    , _plrggipPayload = pPlrggipPayload_+    , _plrggipResource = pPlrggipResource_+    , _plrggipCallback = Nothing+    }++-- | V1 error format.+plrggipXgafv :: Lens' ProjectsLocationsRegistriesGroupsGetIAMPolicy (Maybe Xgafv)+plrggipXgafv+  = lens _plrggipXgafv (\ s a -> s{_plrggipXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+plrggipUploadProtocol :: Lens' ProjectsLocationsRegistriesGroupsGetIAMPolicy (Maybe Text)+plrggipUploadProtocol+  = lens _plrggipUploadProtocol+      (\ s a -> s{_plrggipUploadProtocol = a})++-- | OAuth access token.+plrggipAccessToken :: Lens' ProjectsLocationsRegistriesGroupsGetIAMPolicy (Maybe Text)+plrggipAccessToken+  = lens _plrggipAccessToken+      (\ s a -> s{_plrggipAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+plrggipUploadType :: Lens' ProjectsLocationsRegistriesGroupsGetIAMPolicy (Maybe Text)+plrggipUploadType+  = lens _plrggipUploadType+      (\ s a -> s{_plrggipUploadType = a})++-- | Multipart request metadata.+plrggipPayload :: Lens' ProjectsLocationsRegistriesGroupsGetIAMPolicy GetIAMPolicyRequest+plrggipPayload+  = lens _plrggipPayload+      (\ s a -> s{_plrggipPayload = a})++-- | REQUIRED: The resource for which the policy is being requested. See the+-- operation documentation for the appropriate value for this field.+plrggipResource :: Lens' ProjectsLocationsRegistriesGroupsGetIAMPolicy Text+plrggipResource+  = lens _plrggipResource+      (\ s a -> s{_plrggipResource = a})++-- | JSONP+plrggipCallback :: Lens' ProjectsLocationsRegistriesGroupsGetIAMPolicy (Maybe Text)+plrggipCallback+  = lens _plrggipCallback+      (\ s a -> s{_plrggipCallback = a})++instance GoogleRequest+         ProjectsLocationsRegistriesGroupsGetIAMPolicy where+        type Rs ProjectsLocationsRegistriesGroupsGetIAMPolicy+             = Policy+        type Scopes+               ProjectsLocationsRegistriesGroupsGetIAMPolicy+             =+             '["https://www.googleapis.com/auth/cloud-platform",+               "https://www.googleapis.com/auth/cloudiot"]+        requestClient+          ProjectsLocationsRegistriesGroupsGetIAMPolicy'{..}+          = go _plrggipResource _plrggipXgafv+              _plrggipUploadProtocol+              _plrggipAccessToken+              _plrggipUploadType+              _plrggipCallback+              (Just AltJSON)+              _plrggipPayload+              cloudIOTService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy+                           ProjectsLocationsRegistriesGroupsGetIAMPolicyResource)+                      mempty
+ gen/Network/Google/Resource/CloudIOT/Projects/Locations/Registries/Groups/SetIAMPolicy.hs view
@@ -0,0 +1,176 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Groups.SetIAMPolicy+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Sets the access control policy on the specified resource. Replaces any+-- existing policy.+--+-- /See:/ <https://cloud.google.com/iot Cloud IoT API Reference> for @cloudiot.projects.locations.registries.groups.setIamPolicy@.+module Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Groups.SetIAMPolicy+    (+    -- * REST Resource+      ProjectsLocationsRegistriesGroupsSetIAMPolicyResource++    -- * Creating a Request+    , projectsLocationsRegistriesGroupsSetIAMPolicy+    , ProjectsLocationsRegistriesGroupsSetIAMPolicy++    -- * Request Lenses+    , plrgsipXgafv+    , plrgsipUploadProtocol+    , plrgsipAccessToken+    , plrgsipUploadType+    , plrgsipPayload+    , plrgsipResource+    , plrgsipCallback+    ) where++import           Network.Google.CloudIOT.Types+import           Network.Google.Prelude++-- | A resource alias for @cloudiot.projects.locations.registries.groups.setIamPolicy@ method which the+-- 'ProjectsLocationsRegistriesGroupsSetIAMPolicy' request conforms to.+type ProjectsLocationsRegistriesGroupsSetIAMPolicyResource+     =+     "v1" :>+       CaptureMode "resource" "setIamPolicy" Text :>+         QueryParam "$.xgafv" Xgafv :>+           QueryParam "upload_protocol" Text :>+             QueryParam "access_token" Text :>+               QueryParam "uploadType" Text :>+                 QueryParam "callback" Text :>+                   QueryParam "alt" AltJSON :>+                     ReqBody '[JSON] SetIAMPolicyRequest :>+                       Post '[JSON] Policy++-- | Sets the access control policy on the specified resource. Replaces any+-- existing policy.+--+-- /See:/ 'projectsLocationsRegistriesGroupsSetIAMPolicy' smart constructor.+data ProjectsLocationsRegistriesGroupsSetIAMPolicy = ProjectsLocationsRegistriesGroupsSetIAMPolicy'+    { _plrgsipXgafv          :: !(Maybe Xgafv)+    , _plrgsipUploadProtocol :: !(Maybe Text)+    , _plrgsipAccessToken    :: !(Maybe Text)+    , _plrgsipUploadType     :: !(Maybe Text)+    , _plrgsipPayload        :: !SetIAMPolicyRequest+    , _plrgsipResource       :: !Text+    , _plrgsipCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectsLocationsRegistriesGroupsSetIAMPolicy' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'plrgsipXgafv'+--+-- * 'plrgsipUploadProtocol'+--+-- * 'plrgsipAccessToken'+--+-- * 'plrgsipUploadType'+--+-- * 'plrgsipPayload'+--+-- * 'plrgsipResource'+--+-- * 'plrgsipCallback'+projectsLocationsRegistriesGroupsSetIAMPolicy+    :: SetIAMPolicyRequest -- ^ 'plrgsipPayload'+    -> Text -- ^ 'plrgsipResource'+    -> ProjectsLocationsRegistriesGroupsSetIAMPolicy+projectsLocationsRegistriesGroupsSetIAMPolicy pPlrgsipPayload_ pPlrgsipResource_ =+    ProjectsLocationsRegistriesGroupsSetIAMPolicy'+    { _plrgsipXgafv = Nothing+    , _plrgsipUploadProtocol = Nothing+    , _plrgsipAccessToken = Nothing+    , _plrgsipUploadType = Nothing+    , _plrgsipPayload = pPlrgsipPayload_+    , _plrgsipResource = pPlrgsipResource_+    , _plrgsipCallback = Nothing+    }++-- | V1 error format.+plrgsipXgafv :: Lens' ProjectsLocationsRegistriesGroupsSetIAMPolicy (Maybe Xgafv)+plrgsipXgafv+  = lens _plrgsipXgafv (\ s a -> s{_plrgsipXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+plrgsipUploadProtocol :: Lens' ProjectsLocationsRegistriesGroupsSetIAMPolicy (Maybe Text)+plrgsipUploadProtocol+  = lens _plrgsipUploadProtocol+      (\ s a -> s{_plrgsipUploadProtocol = a})++-- | OAuth access token.+plrgsipAccessToken :: Lens' ProjectsLocationsRegistriesGroupsSetIAMPolicy (Maybe Text)+plrgsipAccessToken+  = lens _plrgsipAccessToken+      (\ s a -> s{_plrgsipAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+plrgsipUploadType :: Lens' ProjectsLocationsRegistriesGroupsSetIAMPolicy (Maybe Text)+plrgsipUploadType+  = lens _plrgsipUploadType+      (\ s a -> s{_plrgsipUploadType = a})++-- | Multipart request metadata.+plrgsipPayload :: Lens' ProjectsLocationsRegistriesGroupsSetIAMPolicy SetIAMPolicyRequest+plrgsipPayload+  = lens _plrgsipPayload+      (\ s a -> s{_plrgsipPayload = a})++-- | REQUIRED: The resource for which the policy is being specified. See the+-- operation documentation for the appropriate value for this field.+plrgsipResource :: Lens' ProjectsLocationsRegistriesGroupsSetIAMPolicy Text+plrgsipResource+  = lens _plrgsipResource+      (\ s a -> s{_plrgsipResource = a})++-- | JSONP+plrgsipCallback :: Lens' ProjectsLocationsRegistriesGroupsSetIAMPolicy (Maybe Text)+plrgsipCallback+  = lens _plrgsipCallback+      (\ s a -> s{_plrgsipCallback = a})++instance GoogleRequest+         ProjectsLocationsRegistriesGroupsSetIAMPolicy where+        type Rs ProjectsLocationsRegistriesGroupsSetIAMPolicy+             = Policy+        type Scopes+               ProjectsLocationsRegistriesGroupsSetIAMPolicy+             =+             '["https://www.googleapis.com/auth/cloud-platform",+               "https://www.googleapis.com/auth/cloudiot"]+        requestClient+          ProjectsLocationsRegistriesGroupsSetIAMPolicy'{..}+          = go _plrgsipResource _plrgsipXgafv+              _plrgsipUploadProtocol+              _plrgsipAccessToken+              _plrgsipUploadType+              _plrgsipCallback+              (Just AltJSON)+              _plrgsipPayload+              cloudIOTService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy+                           ProjectsLocationsRegistriesGroupsSetIAMPolicyResource)+                      mempty
+ gen/Network/Google/Resource/CloudIOT/Projects/Locations/Registries/Groups/TestIAMPermissions.hs view
@@ -0,0 +1,181 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Groups.TestIAMPermissions+-- 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)+--+-- Returns permissions that a caller has on the specified resource. If the+-- resource does not exist, this will return an empty set of permissions,+-- not a NOT_FOUND error.+--+-- /See:/ <https://cloud.google.com/iot Cloud IoT API Reference> for @cloudiot.projects.locations.registries.groups.testIamPermissions@.+module Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Groups.TestIAMPermissions+    (+    -- * REST Resource+      ProjectsLocationsRegistriesGroupsTestIAMPermissionsResource++    -- * Creating a Request+    , projectsLocationsRegistriesGroupsTestIAMPermissions+    , ProjectsLocationsRegistriesGroupsTestIAMPermissions++    -- * Request Lenses+    , plrgtipXgafv+    , plrgtipUploadProtocol+    , plrgtipAccessToken+    , plrgtipUploadType+    , plrgtipPayload+    , plrgtipResource+    , plrgtipCallback+    ) where++import           Network.Google.CloudIOT.Types+import           Network.Google.Prelude++-- | A resource alias for @cloudiot.projects.locations.registries.groups.testIamPermissions@ method which the+-- 'ProjectsLocationsRegistriesGroupsTestIAMPermissions' request conforms to.+type ProjectsLocationsRegistriesGroupsTestIAMPermissionsResource+     =+     "v1" :>+       CaptureMode "resource" "testIamPermissions" Text :>+         QueryParam "$.xgafv" Xgafv :>+           QueryParam "upload_protocol" Text :>+             QueryParam "access_token" Text :>+               QueryParam "uploadType" Text :>+                 QueryParam "callback" Text :>+                   QueryParam "alt" AltJSON :>+                     ReqBody '[JSON] TestIAMPermissionsRequest :>+                       Post '[JSON] TestIAMPermissionsResponse++-- | Returns permissions that a caller has on the specified resource. If the+-- resource does not exist, this will return an empty set of permissions,+-- not a NOT_FOUND error.+--+-- /See:/ 'projectsLocationsRegistriesGroupsTestIAMPermissions' smart constructor.+data ProjectsLocationsRegistriesGroupsTestIAMPermissions = ProjectsLocationsRegistriesGroupsTestIAMPermissions'+    { _plrgtipXgafv          :: !(Maybe Xgafv)+    , _plrgtipUploadProtocol :: !(Maybe Text)+    , _plrgtipAccessToken    :: !(Maybe Text)+    , _plrgtipUploadType     :: !(Maybe Text)+    , _plrgtipPayload        :: !TestIAMPermissionsRequest+    , _plrgtipResource       :: !Text+    , _plrgtipCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectsLocationsRegistriesGroupsTestIAMPermissions' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'plrgtipXgafv'+--+-- * 'plrgtipUploadProtocol'+--+-- * 'plrgtipAccessToken'+--+-- * 'plrgtipUploadType'+--+-- * 'plrgtipPayload'+--+-- * 'plrgtipResource'+--+-- * 'plrgtipCallback'+projectsLocationsRegistriesGroupsTestIAMPermissions+    :: TestIAMPermissionsRequest -- ^ 'plrgtipPayload'+    -> Text -- ^ 'plrgtipResource'+    -> ProjectsLocationsRegistriesGroupsTestIAMPermissions+projectsLocationsRegistriesGroupsTestIAMPermissions pPlrgtipPayload_ pPlrgtipResource_ =+    ProjectsLocationsRegistriesGroupsTestIAMPermissions'+    { _plrgtipXgafv = Nothing+    , _plrgtipUploadProtocol = Nothing+    , _plrgtipAccessToken = Nothing+    , _plrgtipUploadType = Nothing+    , _plrgtipPayload = pPlrgtipPayload_+    , _plrgtipResource = pPlrgtipResource_+    , _plrgtipCallback = Nothing+    }++-- | V1 error format.+plrgtipXgafv :: Lens' ProjectsLocationsRegistriesGroupsTestIAMPermissions (Maybe Xgafv)+plrgtipXgafv+  = lens _plrgtipXgafv (\ s a -> s{_plrgtipXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+plrgtipUploadProtocol :: Lens' ProjectsLocationsRegistriesGroupsTestIAMPermissions (Maybe Text)+plrgtipUploadProtocol+  = lens _plrgtipUploadProtocol+      (\ s a -> s{_plrgtipUploadProtocol = a})++-- | OAuth access token.+plrgtipAccessToken :: Lens' ProjectsLocationsRegistriesGroupsTestIAMPermissions (Maybe Text)+plrgtipAccessToken+  = lens _plrgtipAccessToken+      (\ s a -> s{_plrgtipAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+plrgtipUploadType :: Lens' ProjectsLocationsRegistriesGroupsTestIAMPermissions (Maybe Text)+plrgtipUploadType+  = lens _plrgtipUploadType+      (\ s a -> s{_plrgtipUploadType = a})++-- | Multipart request metadata.+plrgtipPayload :: Lens' ProjectsLocationsRegistriesGroupsTestIAMPermissions TestIAMPermissionsRequest+plrgtipPayload+  = lens _plrgtipPayload+      (\ s a -> s{_plrgtipPayload = a})++-- | REQUIRED: The resource for which the policy detail is being requested.+-- See the operation documentation for the appropriate value for this+-- field.+plrgtipResource :: Lens' ProjectsLocationsRegistriesGroupsTestIAMPermissions Text+plrgtipResource+  = lens _plrgtipResource+      (\ s a -> s{_plrgtipResource = a})++-- | JSONP+plrgtipCallback :: Lens' ProjectsLocationsRegistriesGroupsTestIAMPermissions (Maybe Text)+plrgtipCallback+  = lens _plrgtipCallback+      (\ s a -> s{_plrgtipCallback = a})++instance GoogleRequest+         ProjectsLocationsRegistriesGroupsTestIAMPermissions+         where+        type Rs+               ProjectsLocationsRegistriesGroupsTestIAMPermissions+             = TestIAMPermissionsResponse+        type Scopes+               ProjectsLocationsRegistriesGroupsTestIAMPermissions+             =+             '["https://www.googleapis.com/auth/cloud-platform",+               "https://www.googleapis.com/auth/cloudiot"]+        requestClient+          ProjectsLocationsRegistriesGroupsTestIAMPermissions'{..}+          = go _plrgtipResource _plrgtipXgafv+              _plrgtipUploadProtocol+              _plrgtipAccessToken+              _plrgtipUploadType+              _plrgtipCallback+              (Just AltJSON)+              _plrgtipPayload+              cloudIOTService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy+                           ProjectsLocationsRegistriesGroupsTestIAMPermissionsResource)+                      mempty
+ gen/Network/Google/Resource/CloudIOT/Projects/Locations/Registries/Groups/UnbindDeviceFromGateway.hs view
@@ -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.CloudIOT.Projects.Locations.Registries.Groups.UnbindDeviceFromGateway+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes the association between the device and the gateway.+--+-- /See:/ <https://cloud.google.com/iot Cloud IoT API Reference> for @cloudiot.projects.locations.registries.groups.unbindDeviceFromGateway@.+module Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Groups.UnbindDeviceFromGateway+    (+    -- * REST Resource+      ProjectsLocationsRegistriesGroupsUnbindDeviceFromGatewayResource++    -- * Creating a Request+    , projectsLocationsRegistriesGroupsUnbindDeviceFromGateway+    , ProjectsLocationsRegistriesGroupsUnbindDeviceFromGateway++    -- * Request Lenses+    , plrgudfgParent+    , plrgudfgXgafv+    , plrgudfgUploadProtocol+    , plrgudfgAccessToken+    , plrgudfgUploadType+    , plrgudfgPayload+    , plrgudfgCallback+    ) where++import           Network.Google.CloudIOT.Types+import           Network.Google.Prelude++-- | A resource alias for @cloudiot.projects.locations.registries.groups.unbindDeviceFromGateway@ method which the+-- 'ProjectsLocationsRegistriesGroupsUnbindDeviceFromGateway' request conforms to.+type ProjectsLocationsRegistriesGroupsUnbindDeviceFromGatewayResource+     =+     "v1" :>+       CaptureMode "parent" "unbindDeviceFromGateway" Text+         :>+         QueryParam "$.xgafv" Xgafv :>+           QueryParam "upload_protocol" Text :>+             QueryParam "access_token" Text :>+               QueryParam "uploadType" Text :>+                 QueryParam "callback" Text :>+                   QueryParam "alt" AltJSON :>+                     ReqBody '[JSON] UnbindDeviceFromGatewayRequest :>+                       Post '[JSON] UnbindDeviceFromGatewayResponse++-- | Deletes the association between the device and the gateway.+--+-- /See:/ 'projectsLocationsRegistriesGroupsUnbindDeviceFromGateway' smart constructor.+data ProjectsLocationsRegistriesGroupsUnbindDeviceFromGateway = ProjectsLocationsRegistriesGroupsUnbindDeviceFromGateway'+    { _plrgudfgParent         :: !Text+    , _plrgudfgXgafv          :: !(Maybe Xgafv)+    , _plrgudfgUploadProtocol :: !(Maybe Text)+    , _plrgudfgAccessToken    :: !(Maybe Text)+    , _plrgudfgUploadType     :: !(Maybe Text)+    , _plrgudfgPayload        :: !UnbindDeviceFromGatewayRequest+    , _plrgudfgCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectsLocationsRegistriesGroupsUnbindDeviceFromGateway' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'plrgudfgParent'+--+-- * 'plrgudfgXgafv'+--+-- * 'plrgudfgUploadProtocol'+--+-- * 'plrgudfgAccessToken'+--+-- * 'plrgudfgUploadType'+--+-- * 'plrgudfgPayload'+--+-- * 'plrgudfgCallback'+projectsLocationsRegistriesGroupsUnbindDeviceFromGateway+    :: Text -- ^ 'plrgudfgParent'+    -> UnbindDeviceFromGatewayRequest -- ^ 'plrgudfgPayload'+    -> ProjectsLocationsRegistriesGroupsUnbindDeviceFromGateway+projectsLocationsRegistriesGroupsUnbindDeviceFromGateway pPlrgudfgParent_ pPlrgudfgPayload_ =+    ProjectsLocationsRegistriesGroupsUnbindDeviceFromGateway'+    { _plrgudfgParent = pPlrgudfgParent_+    , _plrgudfgXgafv = Nothing+    , _plrgudfgUploadProtocol = Nothing+    , _plrgudfgAccessToken = Nothing+    , _plrgudfgUploadType = Nothing+    , _plrgudfgPayload = pPlrgudfgPayload_+    , _plrgudfgCallback = Nothing+    }++-- | The name of the registry. For example,+-- \`projects\/example-project\/locations\/us-central1\/registries\/my-registry\`.+plrgudfgParent :: Lens' ProjectsLocationsRegistriesGroupsUnbindDeviceFromGateway Text+plrgudfgParent+  = lens _plrgudfgParent+      (\ s a -> s{_plrgudfgParent = a})++-- | V1 error format.+plrgudfgXgafv :: Lens' ProjectsLocationsRegistriesGroupsUnbindDeviceFromGateway (Maybe Xgafv)+plrgudfgXgafv+  = lens _plrgudfgXgafv+      (\ s a -> s{_plrgudfgXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+plrgudfgUploadProtocol :: Lens' ProjectsLocationsRegistriesGroupsUnbindDeviceFromGateway (Maybe Text)+plrgudfgUploadProtocol+  = lens _plrgudfgUploadProtocol+      (\ s a -> s{_plrgudfgUploadProtocol = a})++-- | OAuth access token.+plrgudfgAccessToken :: Lens' ProjectsLocationsRegistriesGroupsUnbindDeviceFromGateway (Maybe Text)+plrgudfgAccessToken+  = lens _plrgudfgAccessToken+      (\ s a -> s{_plrgudfgAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+plrgudfgUploadType :: Lens' ProjectsLocationsRegistriesGroupsUnbindDeviceFromGateway (Maybe Text)+plrgudfgUploadType+  = lens _plrgudfgUploadType+      (\ s a -> s{_plrgudfgUploadType = a})++-- | Multipart request metadata.+plrgudfgPayload :: Lens' ProjectsLocationsRegistriesGroupsUnbindDeviceFromGateway UnbindDeviceFromGatewayRequest+plrgudfgPayload+  = lens _plrgudfgPayload+      (\ s a -> s{_plrgudfgPayload = a})++-- | JSONP+plrgudfgCallback :: Lens' ProjectsLocationsRegistriesGroupsUnbindDeviceFromGateway (Maybe Text)+plrgudfgCallback+  = lens _plrgudfgCallback+      (\ s a -> s{_plrgudfgCallback = a})++instance GoogleRequest+         ProjectsLocationsRegistriesGroupsUnbindDeviceFromGateway+         where+        type Rs+               ProjectsLocationsRegistriesGroupsUnbindDeviceFromGateway+             = UnbindDeviceFromGatewayResponse+        type Scopes+               ProjectsLocationsRegistriesGroupsUnbindDeviceFromGateway+             =+             '["https://www.googleapis.com/auth/cloud-platform",+               "https://www.googleapis.com/auth/cloudiot"]+        requestClient+          ProjectsLocationsRegistriesGroupsUnbindDeviceFromGateway'{..}+          = go _plrgudfgParent _plrgudfgXgafv+              _plrgudfgUploadProtocol+              _plrgudfgAccessToken+              _plrgudfgUploadType+              _plrgudfgCallback+              (Just AltJSON)+              _plrgudfgPayload+              cloudIOTService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy+                           ProjectsLocationsRegistriesGroupsUnbindDeviceFromGatewayResource)+                      mempty
+ gen/Network/Google/Resource/CloudIOT/Projects/Locations/Registries/List.hs view
@@ -0,0 +1,185 @@+{-# 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.CloudIOT.Projects.Locations.Registries.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 device registries.+--+-- /See:/ <https://cloud.google.com/iot Cloud IoT API Reference> for @cloudiot.projects.locations.registries.list@.+module Network.Google.Resource.CloudIOT.Projects.Locations.Registries.List+    (+    -- * REST Resource+      ProjectsLocationsRegistriesListResource++    -- * Creating a Request+    , projectsLocationsRegistriesList+    , ProjectsLocationsRegistriesList++    -- * Request Lenses+    , plrlParent+    , plrlXgafv+    , plrlUploadProtocol+    , plrlAccessToken+    , plrlUploadType+    , plrlPageToken+    , plrlPageSize+    , plrlCallback+    ) where++import           Network.Google.CloudIOT.Types+import           Network.Google.Prelude++-- | A resource alias for @cloudiot.projects.locations.registries.list@ method which the+-- 'ProjectsLocationsRegistriesList' request conforms to.+type ProjectsLocationsRegistriesListResource =+     "v1" :>+       Capture "parent" Text :>+         "registries" :>+           QueryParam "$.xgafv" Xgafv :>+             QueryParam "upload_protocol" Text :>+               QueryParam "access_token" Text :>+                 QueryParam "uploadType" Text :>+                   QueryParam "pageToken" Text :>+                     QueryParam "pageSize" (Textual Int32) :>+                       QueryParam "callback" Text :>+                         QueryParam "alt" AltJSON :>+                           Get '[JSON] ListDeviceRegistriesResponse++-- | Lists device registries.+--+-- /See:/ 'projectsLocationsRegistriesList' smart constructor.+data ProjectsLocationsRegistriesList = ProjectsLocationsRegistriesList'+    { _plrlParent         :: !Text+    , _plrlXgafv          :: !(Maybe Xgafv)+    , _plrlUploadProtocol :: !(Maybe Text)+    , _plrlAccessToken    :: !(Maybe Text)+    , _plrlUploadType     :: !(Maybe Text)+    , _plrlPageToken      :: !(Maybe Text)+    , _plrlPageSize       :: !(Maybe (Textual Int32))+    , _plrlCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectsLocationsRegistriesList' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'plrlParent'+--+-- * 'plrlXgafv'+--+-- * 'plrlUploadProtocol'+--+-- * 'plrlAccessToken'+--+-- * 'plrlUploadType'+--+-- * 'plrlPageToken'+--+-- * 'plrlPageSize'+--+-- * 'plrlCallback'+projectsLocationsRegistriesList+    :: Text -- ^ 'plrlParent'+    -> ProjectsLocationsRegistriesList+projectsLocationsRegistriesList pPlrlParent_ =+    ProjectsLocationsRegistriesList'+    { _plrlParent = pPlrlParent_+    , _plrlXgafv = Nothing+    , _plrlUploadProtocol = Nothing+    , _plrlAccessToken = Nothing+    , _plrlUploadType = Nothing+    , _plrlPageToken = Nothing+    , _plrlPageSize = Nothing+    , _plrlCallback = Nothing+    }++-- | The project and cloud region path. For example,+-- \`projects\/example-project\/locations\/us-central1\`.+plrlParent :: Lens' ProjectsLocationsRegistriesList Text+plrlParent+  = lens _plrlParent (\ s a -> s{_plrlParent = a})++-- | V1 error format.+plrlXgafv :: Lens' ProjectsLocationsRegistriesList (Maybe Xgafv)+plrlXgafv+  = lens _plrlXgafv (\ s a -> s{_plrlXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+plrlUploadProtocol :: Lens' ProjectsLocationsRegistriesList (Maybe Text)+plrlUploadProtocol+  = lens _plrlUploadProtocol+      (\ s a -> s{_plrlUploadProtocol = a})++-- | OAuth access token.+plrlAccessToken :: Lens' ProjectsLocationsRegistriesList (Maybe Text)+plrlAccessToken+  = lens _plrlAccessToken+      (\ s a -> s{_plrlAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+plrlUploadType :: Lens' ProjectsLocationsRegistriesList (Maybe Text)+plrlUploadType+  = lens _plrlUploadType+      (\ s a -> s{_plrlUploadType = a})++-- | The value returned by the last \`ListDeviceRegistriesResponse\`;+-- indicates that this is a continuation of a prior+-- \`ListDeviceRegistries\` call and the system should return the next page+-- of data.+plrlPageToken :: Lens' ProjectsLocationsRegistriesList (Maybe Text)+plrlPageToken+  = lens _plrlPageToken+      (\ s a -> s{_plrlPageToken = a})++-- | The maximum number of registries to return in the response. If this+-- value is zero, the service will select a default size. A call may return+-- fewer objects than requested. A non-empty \`next_page_token\` in the+-- response indicates that more data is available.+plrlPageSize :: Lens' ProjectsLocationsRegistriesList (Maybe Int32)+plrlPageSize+  = lens _plrlPageSize (\ s a -> s{_plrlPageSize = a})+      . mapping _Coerce++-- | JSONP+plrlCallback :: Lens' ProjectsLocationsRegistriesList (Maybe Text)+plrlCallback+  = lens _plrlCallback (\ s a -> s{_plrlCallback = a})++instance GoogleRequest+         ProjectsLocationsRegistriesList where+        type Rs ProjectsLocationsRegistriesList =+             ListDeviceRegistriesResponse+        type Scopes ProjectsLocationsRegistriesList =+             '["https://www.googleapis.com/auth/cloud-platform",+               "https://www.googleapis.com/auth/cloudiot"]+        requestClient ProjectsLocationsRegistriesList'{..}+          = go _plrlParent _plrlXgafv _plrlUploadProtocol+              _plrlAccessToken+              _plrlUploadType+              _plrlPageToken+              _plrlPageSize+              _plrlCallback+              (Just AltJSON)+              cloudIOTService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy ProjectsLocationsRegistriesListResource)+                      mempty
+ gen/Network/Google/Resource/CloudIOT/Projects/Locations/Registries/Patch.hs view
@@ -0,0 +1,181 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.CloudIOT.Projects.Locations.Registries.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 a device registry configuration.+--+-- /See:/ <https://cloud.google.com/iot Cloud IoT API Reference> for @cloudiot.projects.locations.registries.patch@.+module Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Patch+    (+    -- * REST Resource+      ProjectsLocationsRegistriesPatchResource++    -- * Creating a Request+    , projectsLocationsRegistriesPatch+    , ProjectsLocationsRegistriesPatch++    -- * Request Lenses+    , plrpXgafv+    , plrpUploadProtocol+    , plrpUpdateMask+    , plrpAccessToken+    , plrpUploadType+    , plrpPayload+    , plrpName+    , plrpCallback+    ) where++import           Network.Google.CloudIOT.Types+import           Network.Google.Prelude++-- | A resource alias for @cloudiot.projects.locations.registries.patch@ method which the+-- 'ProjectsLocationsRegistriesPatch' request conforms to.+type ProjectsLocationsRegistriesPatchResource =+     "v1" :>+       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] DeviceRegistry :>+                         Patch '[JSON] DeviceRegistry++-- | Updates a device registry configuration.+--+-- /See:/ 'projectsLocationsRegistriesPatch' smart constructor.+data ProjectsLocationsRegistriesPatch = ProjectsLocationsRegistriesPatch'+    { _plrpXgafv          :: !(Maybe Xgafv)+    , _plrpUploadProtocol :: !(Maybe Text)+    , _plrpUpdateMask     :: !(Maybe GFieldMask)+    , _plrpAccessToken    :: !(Maybe Text)+    , _plrpUploadType     :: !(Maybe Text)+    , _plrpPayload        :: !DeviceRegistry+    , _plrpName           :: !Text+    , _plrpCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectsLocationsRegistriesPatch' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'plrpXgafv'+--+-- * 'plrpUploadProtocol'+--+-- * 'plrpUpdateMask'+--+-- * 'plrpAccessToken'+--+-- * 'plrpUploadType'+--+-- * 'plrpPayload'+--+-- * 'plrpName'+--+-- * 'plrpCallback'+projectsLocationsRegistriesPatch+    :: DeviceRegistry -- ^ 'plrpPayload'+    -> Text -- ^ 'plrpName'+    -> ProjectsLocationsRegistriesPatch+projectsLocationsRegistriesPatch pPlrpPayload_ pPlrpName_ =+    ProjectsLocationsRegistriesPatch'+    { _plrpXgafv = Nothing+    , _plrpUploadProtocol = Nothing+    , _plrpUpdateMask = Nothing+    , _plrpAccessToken = Nothing+    , _plrpUploadType = Nothing+    , _plrpPayload = pPlrpPayload_+    , _plrpName = pPlrpName_+    , _plrpCallback = Nothing+    }++-- | V1 error format.+plrpXgafv :: Lens' ProjectsLocationsRegistriesPatch (Maybe Xgafv)+plrpXgafv+  = lens _plrpXgafv (\ s a -> s{_plrpXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+plrpUploadProtocol :: Lens' ProjectsLocationsRegistriesPatch (Maybe Text)+plrpUploadProtocol+  = lens _plrpUploadProtocol+      (\ s a -> s{_plrpUploadProtocol = a})++-- | Only updates the \`device_registry\` fields indicated by this mask. The+-- field mask must not be empty, and it must not contain fields that are+-- immutable or only set by the server. Mutable top-level fields:+-- \`event_notification_config\`, \`http_config\`, \`mqtt_config\`, and+-- \`state_notification_config\`.+plrpUpdateMask :: Lens' ProjectsLocationsRegistriesPatch (Maybe GFieldMask)+plrpUpdateMask+  = lens _plrpUpdateMask+      (\ s a -> s{_plrpUpdateMask = a})++-- | OAuth access token.+plrpAccessToken :: Lens' ProjectsLocationsRegistriesPatch (Maybe Text)+plrpAccessToken+  = lens _plrpAccessToken+      (\ s a -> s{_plrpAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+plrpUploadType :: Lens' ProjectsLocationsRegistriesPatch (Maybe Text)+plrpUploadType+  = lens _plrpUploadType+      (\ s a -> s{_plrpUploadType = a})++-- | Multipart request metadata.+plrpPayload :: Lens' ProjectsLocationsRegistriesPatch DeviceRegistry+plrpPayload+  = lens _plrpPayload (\ s a -> s{_plrpPayload = a})++-- | The resource path name. For example,+-- \`projects\/example-project\/locations\/us-central1\/registries\/my-registry\`.+plrpName :: Lens' ProjectsLocationsRegistriesPatch Text+plrpName = lens _plrpName (\ s a -> s{_plrpName = a})++-- | JSONP+plrpCallback :: Lens' ProjectsLocationsRegistriesPatch (Maybe Text)+plrpCallback+  = lens _plrpCallback (\ s a -> s{_plrpCallback = a})++instance GoogleRequest+         ProjectsLocationsRegistriesPatch where+        type Rs ProjectsLocationsRegistriesPatch =+             DeviceRegistry+        type Scopes ProjectsLocationsRegistriesPatch =+             '["https://www.googleapis.com/auth/cloud-platform",+               "https://www.googleapis.com/auth/cloudiot"]+        requestClient ProjectsLocationsRegistriesPatch'{..}+          = go _plrpName _plrpXgafv _plrpUploadProtocol+              _plrpUpdateMask+              _plrpAccessToken+              _plrpUploadType+              _plrpCallback+              (Just AltJSON)+              _plrpPayload+              cloudIOTService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy ProjectsLocationsRegistriesPatchResource)+                      mempty
+ gen/Network/Google/Resource/CloudIOT/Projects/Locations/Registries/SetIAMPolicy.hs view
@@ -0,0 +1,174 @@+{-# 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.CloudIOT.Projects.Locations.Registries.SetIAMPolicy+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Sets the access control policy on the specified resource. Replaces any+-- existing policy.+--+-- /See:/ <https://cloud.google.com/iot Cloud IoT API Reference> for @cloudiot.projects.locations.registries.setIamPolicy@.+module Network.Google.Resource.CloudIOT.Projects.Locations.Registries.SetIAMPolicy+    (+    -- * REST Resource+      ProjectsLocationsRegistriesSetIAMPolicyResource++    -- * Creating a Request+    , projectsLocationsRegistriesSetIAMPolicy+    , ProjectsLocationsRegistriesSetIAMPolicy++    -- * Request Lenses+    , plrsipXgafv+    , plrsipUploadProtocol+    , plrsipAccessToken+    , plrsipUploadType+    , plrsipPayload+    , plrsipResource+    , plrsipCallback+    ) where++import           Network.Google.CloudIOT.Types+import           Network.Google.Prelude++-- | A resource alias for @cloudiot.projects.locations.registries.setIamPolicy@ method which the+-- 'ProjectsLocationsRegistriesSetIAMPolicy' request conforms to.+type ProjectsLocationsRegistriesSetIAMPolicyResource+     =+     "v1" :>+       CaptureMode "resource" "setIamPolicy" Text :>+         QueryParam "$.xgafv" Xgafv :>+           QueryParam "upload_protocol" Text :>+             QueryParam "access_token" Text :>+               QueryParam "uploadType" Text :>+                 QueryParam "callback" Text :>+                   QueryParam "alt" AltJSON :>+                     ReqBody '[JSON] SetIAMPolicyRequest :>+                       Post '[JSON] Policy++-- | Sets the access control policy on the specified resource. Replaces any+-- existing policy.+--+-- /See:/ 'projectsLocationsRegistriesSetIAMPolicy' smart constructor.+data ProjectsLocationsRegistriesSetIAMPolicy = ProjectsLocationsRegistriesSetIAMPolicy'+    { _plrsipXgafv          :: !(Maybe Xgafv)+    , _plrsipUploadProtocol :: !(Maybe Text)+    , _plrsipAccessToken    :: !(Maybe Text)+    , _plrsipUploadType     :: !(Maybe Text)+    , _plrsipPayload        :: !SetIAMPolicyRequest+    , _plrsipResource       :: !Text+    , _plrsipCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectsLocationsRegistriesSetIAMPolicy' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'plrsipXgafv'+--+-- * 'plrsipUploadProtocol'+--+-- * 'plrsipAccessToken'+--+-- * 'plrsipUploadType'+--+-- * 'plrsipPayload'+--+-- * 'plrsipResource'+--+-- * 'plrsipCallback'+projectsLocationsRegistriesSetIAMPolicy+    :: SetIAMPolicyRequest -- ^ 'plrsipPayload'+    -> Text -- ^ 'plrsipResource'+    -> ProjectsLocationsRegistriesSetIAMPolicy+projectsLocationsRegistriesSetIAMPolicy pPlrsipPayload_ pPlrsipResource_ =+    ProjectsLocationsRegistriesSetIAMPolicy'+    { _plrsipXgafv = Nothing+    , _plrsipUploadProtocol = Nothing+    , _plrsipAccessToken = Nothing+    , _plrsipUploadType = Nothing+    , _plrsipPayload = pPlrsipPayload_+    , _plrsipResource = pPlrsipResource_+    , _plrsipCallback = Nothing+    }++-- | V1 error format.+plrsipXgafv :: Lens' ProjectsLocationsRegistriesSetIAMPolicy (Maybe Xgafv)+plrsipXgafv+  = lens _plrsipXgafv (\ s a -> s{_plrsipXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+plrsipUploadProtocol :: Lens' ProjectsLocationsRegistriesSetIAMPolicy (Maybe Text)+plrsipUploadProtocol+  = lens _plrsipUploadProtocol+      (\ s a -> s{_plrsipUploadProtocol = a})++-- | OAuth access token.+plrsipAccessToken :: Lens' ProjectsLocationsRegistriesSetIAMPolicy (Maybe Text)+plrsipAccessToken+  = lens _plrsipAccessToken+      (\ s a -> s{_plrsipAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+plrsipUploadType :: Lens' ProjectsLocationsRegistriesSetIAMPolicy (Maybe Text)+plrsipUploadType+  = lens _plrsipUploadType+      (\ s a -> s{_plrsipUploadType = a})++-- | Multipart request metadata.+plrsipPayload :: Lens' ProjectsLocationsRegistriesSetIAMPolicy SetIAMPolicyRequest+plrsipPayload+  = lens _plrsipPayload+      (\ s a -> s{_plrsipPayload = a})++-- | REQUIRED: The resource for which the policy is being specified. See the+-- operation documentation for the appropriate value for this field.+plrsipResource :: Lens' ProjectsLocationsRegistriesSetIAMPolicy Text+plrsipResource+  = lens _plrsipResource+      (\ s a -> s{_plrsipResource = a})++-- | JSONP+plrsipCallback :: Lens' ProjectsLocationsRegistriesSetIAMPolicy (Maybe Text)+plrsipCallback+  = lens _plrsipCallback+      (\ s a -> s{_plrsipCallback = a})++instance GoogleRequest+         ProjectsLocationsRegistriesSetIAMPolicy where+        type Rs ProjectsLocationsRegistriesSetIAMPolicy =+             Policy+        type Scopes ProjectsLocationsRegistriesSetIAMPolicy =+             '["https://www.googleapis.com/auth/cloud-platform",+               "https://www.googleapis.com/auth/cloudiot"]+        requestClient+          ProjectsLocationsRegistriesSetIAMPolicy'{..}+          = go _plrsipResource _plrsipXgafv+              _plrsipUploadProtocol+              _plrsipAccessToken+              _plrsipUploadType+              _plrsipCallback+              (Just AltJSON)+              _plrsipPayload+              cloudIOTService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy+                           ProjectsLocationsRegistriesSetIAMPolicyResource)+                      mempty
+ gen/Network/Google/Resource/CloudIOT/Projects/Locations/Registries/TestIAMPermissions.hs view
@@ -0,0 +1,179 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.CloudIOT.Projects.Locations.Registries.TestIAMPermissions+-- 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)+--+-- Returns permissions that a caller has on the specified resource. If the+-- resource does not exist, this will return an empty set of permissions,+-- not a NOT_FOUND error.+--+-- /See:/ <https://cloud.google.com/iot Cloud IoT API Reference> for @cloudiot.projects.locations.registries.testIamPermissions@.+module Network.Google.Resource.CloudIOT.Projects.Locations.Registries.TestIAMPermissions+    (+    -- * REST Resource+      ProjectsLocationsRegistriesTestIAMPermissionsResource++    -- * Creating a Request+    , projectsLocationsRegistriesTestIAMPermissions+    , ProjectsLocationsRegistriesTestIAMPermissions++    -- * Request Lenses+    , plrtipXgafv+    , plrtipUploadProtocol+    , plrtipAccessToken+    , plrtipUploadType+    , plrtipPayload+    , plrtipResource+    , plrtipCallback+    ) where++import           Network.Google.CloudIOT.Types+import           Network.Google.Prelude++-- | A resource alias for @cloudiot.projects.locations.registries.testIamPermissions@ method which the+-- 'ProjectsLocationsRegistriesTestIAMPermissions' request conforms to.+type ProjectsLocationsRegistriesTestIAMPermissionsResource+     =+     "v1" :>+       CaptureMode "resource" "testIamPermissions" Text :>+         QueryParam "$.xgafv" Xgafv :>+           QueryParam "upload_protocol" Text :>+             QueryParam "access_token" Text :>+               QueryParam "uploadType" Text :>+                 QueryParam "callback" Text :>+                   QueryParam "alt" AltJSON :>+                     ReqBody '[JSON] TestIAMPermissionsRequest :>+                       Post '[JSON] TestIAMPermissionsResponse++-- | Returns permissions that a caller has on the specified resource. If the+-- resource does not exist, this will return an empty set of permissions,+-- not a NOT_FOUND error.+--+-- /See:/ 'projectsLocationsRegistriesTestIAMPermissions' smart constructor.+data ProjectsLocationsRegistriesTestIAMPermissions = ProjectsLocationsRegistriesTestIAMPermissions'+    { _plrtipXgafv          :: !(Maybe Xgafv)+    , _plrtipUploadProtocol :: !(Maybe Text)+    , _plrtipAccessToken    :: !(Maybe Text)+    , _plrtipUploadType     :: !(Maybe Text)+    , _plrtipPayload        :: !TestIAMPermissionsRequest+    , _plrtipResource       :: !Text+    , _plrtipCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectsLocationsRegistriesTestIAMPermissions' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'plrtipXgafv'+--+-- * 'plrtipUploadProtocol'+--+-- * 'plrtipAccessToken'+--+-- * 'plrtipUploadType'+--+-- * 'plrtipPayload'+--+-- * 'plrtipResource'+--+-- * 'plrtipCallback'+projectsLocationsRegistriesTestIAMPermissions+    :: TestIAMPermissionsRequest -- ^ 'plrtipPayload'+    -> Text -- ^ 'plrtipResource'+    -> ProjectsLocationsRegistriesTestIAMPermissions+projectsLocationsRegistriesTestIAMPermissions pPlrtipPayload_ pPlrtipResource_ =+    ProjectsLocationsRegistriesTestIAMPermissions'+    { _plrtipXgafv = Nothing+    , _plrtipUploadProtocol = Nothing+    , _plrtipAccessToken = Nothing+    , _plrtipUploadType = Nothing+    , _plrtipPayload = pPlrtipPayload_+    , _plrtipResource = pPlrtipResource_+    , _plrtipCallback = Nothing+    }++-- | V1 error format.+plrtipXgafv :: Lens' ProjectsLocationsRegistriesTestIAMPermissions (Maybe Xgafv)+plrtipXgafv+  = lens _plrtipXgafv (\ s a -> s{_plrtipXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+plrtipUploadProtocol :: Lens' ProjectsLocationsRegistriesTestIAMPermissions (Maybe Text)+plrtipUploadProtocol+  = lens _plrtipUploadProtocol+      (\ s a -> s{_plrtipUploadProtocol = a})++-- | OAuth access token.+plrtipAccessToken :: Lens' ProjectsLocationsRegistriesTestIAMPermissions (Maybe Text)+plrtipAccessToken+  = lens _plrtipAccessToken+      (\ s a -> s{_plrtipAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+plrtipUploadType :: Lens' ProjectsLocationsRegistriesTestIAMPermissions (Maybe Text)+plrtipUploadType+  = lens _plrtipUploadType+      (\ s a -> s{_plrtipUploadType = a})++-- | Multipart request metadata.+plrtipPayload :: Lens' ProjectsLocationsRegistriesTestIAMPermissions TestIAMPermissionsRequest+plrtipPayload+  = lens _plrtipPayload+      (\ s a -> s{_plrtipPayload = a})++-- | REQUIRED: The resource for which the policy detail is being requested.+-- See the operation documentation for the appropriate value for this+-- field.+plrtipResource :: Lens' ProjectsLocationsRegistriesTestIAMPermissions Text+plrtipResource+  = lens _plrtipResource+      (\ s a -> s{_plrtipResource = a})++-- | JSONP+plrtipCallback :: Lens' ProjectsLocationsRegistriesTestIAMPermissions (Maybe Text)+plrtipCallback+  = lens _plrtipCallback+      (\ s a -> s{_plrtipCallback = a})++instance GoogleRequest+         ProjectsLocationsRegistriesTestIAMPermissions where+        type Rs ProjectsLocationsRegistriesTestIAMPermissions+             = TestIAMPermissionsResponse+        type Scopes+               ProjectsLocationsRegistriesTestIAMPermissions+             =+             '["https://www.googleapis.com/auth/cloud-platform",+               "https://www.googleapis.com/auth/cloudiot"]+        requestClient+          ProjectsLocationsRegistriesTestIAMPermissions'{..}+          = go _plrtipResource _plrtipXgafv+              _plrtipUploadProtocol+              _plrtipAccessToken+              _plrtipUploadType+              _plrtipCallback+              (Just AltJSON)+              _plrtipPayload+              cloudIOTService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy+                           ProjectsLocationsRegistriesTestIAMPermissionsResource)+                      mempty
+ gen/Network/Google/Resource/CloudIOT/Projects/Locations/Registries/UnbindDeviceFromGateway.hs view
@@ -0,0 +1,177 @@+{-# LANGUAGE DataKinds          #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# LANGUAGE NoImplicitPrelude  #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE TypeOperators      #-}++{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds      #-}+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}++-- |+-- Module      : Network.Google.Resource.CloudIOT.Projects.Locations.Registries.UnbindDeviceFromGateway+-- Copyright   : (c) 2015-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes the association between the device and the gateway.+--+-- /See:/ <https://cloud.google.com/iot Cloud IoT API Reference> for @cloudiot.projects.locations.registries.unbindDeviceFromGateway@.+module Network.Google.Resource.CloudIOT.Projects.Locations.Registries.UnbindDeviceFromGateway+    (+    -- * REST Resource+      ProjectsLocationsRegistriesUnbindDeviceFromGatewayResource++    -- * Creating a Request+    , projectsLocationsRegistriesUnbindDeviceFromGateway+    , ProjectsLocationsRegistriesUnbindDeviceFromGateway++    -- * Request Lenses+    , plrudfgParent+    , plrudfgXgafv+    , plrudfgUploadProtocol+    , plrudfgAccessToken+    , plrudfgUploadType+    , plrudfgPayload+    , plrudfgCallback+    ) where++import           Network.Google.CloudIOT.Types+import           Network.Google.Prelude++-- | A resource alias for @cloudiot.projects.locations.registries.unbindDeviceFromGateway@ method which the+-- 'ProjectsLocationsRegistriesUnbindDeviceFromGateway' request conforms to.+type ProjectsLocationsRegistriesUnbindDeviceFromGatewayResource+     =+     "v1" :>+       CaptureMode "parent" "unbindDeviceFromGateway" Text+         :>+         QueryParam "$.xgafv" Xgafv :>+           QueryParam "upload_protocol" Text :>+             QueryParam "access_token" Text :>+               QueryParam "uploadType" Text :>+                 QueryParam "callback" Text :>+                   QueryParam "alt" AltJSON :>+                     ReqBody '[JSON] UnbindDeviceFromGatewayRequest :>+                       Post '[JSON] UnbindDeviceFromGatewayResponse++-- | Deletes the association between the device and the gateway.+--+-- /See:/ 'projectsLocationsRegistriesUnbindDeviceFromGateway' smart constructor.+data ProjectsLocationsRegistriesUnbindDeviceFromGateway = ProjectsLocationsRegistriesUnbindDeviceFromGateway'+    { _plrudfgParent         :: !Text+    , _plrudfgXgafv          :: !(Maybe Xgafv)+    , _plrudfgUploadProtocol :: !(Maybe Text)+    , _plrudfgAccessToken    :: !(Maybe Text)+    , _plrudfgUploadType     :: !(Maybe Text)+    , _plrudfgPayload        :: !UnbindDeviceFromGatewayRequest+    , _plrudfgCallback       :: !(Maybe Text)+    } deriving (Eq,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProjectsLocationsRegistriesUnbindDeviceFromGateway' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'plrudfgParent'+--+-- * 'plrudfgXgafv'+--+-- * 'plrudfgUploadProtocol'+--+-- * 'plrudfgAccessToken'+--+-- * 'plrudfgUploadType'+--+-- * 'plrudfgPayload'+--+-- * 'plrudfgCallback'+projectsLocationsRegistriesUnbindDeviceFromGateway+    :: Text -- ^ 'plrudfgParent'+    -> UnbindDeviceFromGatewayRequest -- ^ 'plrudfgPayload'+    -> ProjectsLocationsRegistriesUnbindDeviceFromGateway+projectsLocationsRegistriesUnbindDeviceFromGateway pPlrudfgParent_ pPlrudfgPayload_ =+    ProjectsLocationsRegistriesUnbindDeviceFromGateway'+    { _plrudfgParent = pPlrudfgParent_+    , _plrudfgXgafv = Nothing+    , _plrudfgUploadProtocol = Nothing+    , _plrudfgAccessToken = Nothing+    , _plrudfgUploadType = Nothing+    , _plrudfgPayload = pPlrudfgPayload_+    , _plrudfgCallback = Nothing+    }++-- | The name of the registry. For example,+-- \`projects\/example-project\/locations\/us-central1\/registries\/my-registry\`.+plrudfgParent :: Lens' ProjectsLocationsRegistriesUnbindDeviceFromGateway Text+plrudfgParent+  = lens _plrudfgParent+      (\ s a -> s{_plrudfgParent = a})++-- | V1 error format.+plrudfgXgafv :: Lens' ProjectsLocationsRegistriesUnbindDeviceFromGateway (Maybe Xgafv)+plrudfgXgafv+  = lens _plrudfgXgafv (\ s a -> s{_plrudfgXgafv = a})++-- | Upload protocol for media (e.g. \"raw\", \"multipart\").+plrudfgUploadProtocol :: Lens' ProjectsLocationsRegistriesUnbindDeviceFromGateway (Maybe Text)+plrudfgUploadProtocol+  = lens _plrudfgUploadProtocol+      (\ s a -> s{_plrudfgUploadProtocol = a})++-- | OAuth access token.+plrudfgAccessToken :: Lens' ProjectsLocationsRegistriesUnbindDeviceFromGateway (Maybe Text)+plrudfgAccessToken+  = lens _plrudfgAccessToken+      (\ s a -> s{_plrudfgAccessToken = a})++-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+plrudfgUploadType :: Lens' ProjectsLocationsRegistriesUnbindDeviceFromGateway (Maybe Text)+plrudfgUploadType+  = lens _plrudfgUploadType+      (\ s a -> s{_plrudfgUploadType = a})++-- | Multipart request metadata.+plrudfgPayload :: Lens' ProjectsLocationsRegistriesUnbindDeviceFromGateway UnbindDeviceFromGatewayRequest+plrudfgPayload+  = lens _plrudfgPayload+      (\ s a -> s{_plrudfgPayload = a})++-- | JSONP+plrudfgCallback :: Lens' ProjectsLocationsRegistriesUnbindDeviceFromGateway (Maybe Text)+plrudfgCallback+  = lens _plrudfgCallback+      (\ s a -> s{_plrudfgCallback = a})++instance GoogleRequest+         ProjectsLocationsRegistriesUnbindDeviceFromGateway+         where+        type Rs+               ProjectsLocationsRegistriesUnbindDeviceFromGateway+             = UnbindDeviceFromGatewayResponse+        type Scopes+               ProjectsLocationsRegistriesUnbindDeviceFromGateway+             =+             '["https://www.googleapis.com/auth/cloud-platform",+               "https://www.googleapis.com/auth/cloudiot"]+        requestClient+          ProjectsLocationsRegistriesUnbindDeviceFromGateway'{..}+          = go _plrudfgParent _plrudfgXgafv+              _plrudfgUploadProtocol+              _plrudfgAccessToken+              _plrudfgUploadType+              _plrudfgCallback+              (Just AltJSON)+              _plrudfgPayload+              cloudIOTService+          where go+                  = buildClient+                      (Proxy ::+                         Proxy+                           ProjectsLocationsRegistriesUnbindDeviceFromGatewayResource)+                      mempty
+ gogol-cloudiot.cabal view
@@ -0,0 +1,77 @@+name:                  gogol-cloudiot+version:               0.4.0+synopsis:              Google Cloud IoT 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:+    Registers and manages IoT (Internet of Things) devices that connect to+    the Google Cloud Platform.+    .+    /Warning:/ This is an experimental prototype/preview release which is still+    under exploratory development and not intended for public use, caveat emptor!+    .+    This library is compatible with version @v1@+    of the API.++source-repository head+    type:     git+    location: git://github.com/brendanhay/gogol.git++library+    default-language:  Haskell2010+    hs-source-dirs:    src gen++    ghc-options:       -Wall++    exposed-modules:+          Network.Google.CloudIOT+        , Network.Google.CloudIOT.Types+        , Network.Google.Resource.CloudIOT.Projects.Locations.Registries.BindDeviceToGateway+        , Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Create+        , Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Delete+        , Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Devices.ConfigVersions.List+        , Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Devices.Create+        , Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Devices.Delete+        , Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Devices.Get+        , Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Devices.List+        , Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Devices.ModifyCloudToDeviceConfig+        , Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Devices.Patch+        , Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Devices.SendCommandToDevice+        , Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Devices.States.List+        , Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Get+        , Network.Google.Resource.CloudIOT.Projects.Locations.Registries.GetIAMPolicy+        , Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Groups.BindDeviceToGateway+        , Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Groups.Devices.ConfigVersions.List+        , Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Groups.Devices.Get+        , Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Groups.Devices.List+        , Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Groups.Devices.ModifyCloudToDeviceConfig+        , Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Groups.Devices.Patch+        , Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Groups.Devices.SendCommandToDevice+        , Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Groups.Devices.States.List+        , Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Groups.GetIAMPolicy+        , Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Groups.SetIAMPolicy+        , Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Groups.TestIAMPermissions+        , Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Groups.UnbindDeviceFromGateway+        , Network.Google.Resource.CloudIOT.Projects.Locations.Registries.List+        , Network.Google.Resource.CloudIOT.Projects.Locations.Registries.Patch+        , Network.Google.Resource.CloudIOT.Projects.Locations.Registries.SetIAMPolicy+        , Network.Google.Resource.CloudIOT.Projects.Locations.Registries.TestIAMPermissions+        , Network.Google.Resource.CloudIOT.Projects.Locations.Registries.UnbindDeviceFromGateway++    other-modules:+          Network.Google.CloudIOT.Types.Product+        , Network.Google.CloudIOT.Types.Sum++    build-depends:+          gogol-core == 0.4.0.*+        , base       >= 4.7 && < 5
+ src/.gitkeep view