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 +367/−0
- README.md +28/−0
- Setup.hs +2/−0
- gen/Network/Google/CloudIOT.hs +475/−0
- gen/Network/Google/CloudIOT/Types.hs +300/−0
- gen/Network/Google/CloudIOT/Types/Product.hs +2160/−0
- gen/Network/Google/CloudIOT/Types/Sum.hs +385/−0
- gen/Network/Google/Resource/CloudIOT/Projects/Locations/Registries/BindDeviceToGateway.hs +175/−0
- gen/Network/Google/Resource/CloudIOT/Projects/Locations/Registries/Create.hs +166/−0
- gen/Network/Google/Resource/CloudIOT/Projects/Locations/Registries/Delete.hs +149/−0
- gen/Network/Google/Resource/CloudIOT/Projects/Locations/Registries/Devices/ConfigVersions/List.hs +182/−0
- gen/Network/Google/Resource/CloudIOT/Projects/Locations/Registries/Devices/Create.hs +171/−0
- gen/Network/Google/Resource/CloudIOT/Projects/Locations/Registries/Devices/Delete.hs +158/−0
- gen/Network/Google/Resource/CloudIOT/Projects/Locations/Registries/Devices/Get.hs +169/−0
- gen/Network/Google/Resource/CloudIOT/Projects/Locations/Registries/Devices/List.hs +288/−0
- gen/Network/Google/Resource/CloudIOT/Projects/Locations/Registries/Devices/ModifyCloudToDeviceConfig.hs +184/−0
- gen/Network/Google/Resource/CloudIOT/Projects/Locations/Registries/Devices/Patch.hs +188/−0
- gen/Network/Google/Resource/CloudIOT/Projects/Locations/Registries/Devices/SendCommandToDevice.hs +202/−0
- gen/Network/Google/Resource/CloudIOT/Projects/Locations/Registries/Devices/States/List.hs +179/−0
- gen/Network/Google/Resource/CloudIOT/Projects/Locations/Registries/Get.hs +151/−0
- gen/Network/Google/Resource/CloudIOT/Projects/Locations/Registries/GetIAMPolicy.hs +174/−0
- gen/Network/Google/Resource/CloudIOT/Projects/Locations/Registries/Groups/BindDeviceToGateway.hs +177/−0
- gen/Network/Google/Resource/CloudIOT/Projects/Locations/Registries/Groups/Devices/ConfigVersions/List.hs +183/−0
- gen/Network/Google/Resource/CloudIOT/Projects/Locations/Registries/Groups/Devices/Get.hs +173/−0
- gen/Network/Google/Resource/CloudIOT/Projects/Locations/Registries/Groups/Devices/List.hs +294/−0
- gen/Network/Google/Resource/CloudIOT/Projects/Locations/Registries/Groups/Devices/ModifyCloudToDeviceConfig.hs +184/−0
- gen/Network/Google/Resource/CloudIOT/Projects/Locations/Registries/Groups/Devices/Patch.hs +191/−0
- gen/Network/Google/Resource/CloudIOT/Projects/Locations/Registries/Groups/Devices/SendCommandToDevice.hs +203/−0
- gen/Network/Google/Resource/CloudIOT/Projects/Locations/Registries/Groups/Devices/States/List.hs +182/−0
- gen/Network/Google/Resource/CloudIOT/Projects/Locations/Registries/Groups/GetIAMPolicy.hs +176/−0
- gen/Network/Google/Resource/CloudIOT/Projects/Locations/Registries/Groups/SetIAMPolicy.hs +176/−0
- gen/Network/Google/Resource/CloudIOT/Projects/Locations/Registries/Groups/TestIAMPermissions.hs +181/−0
- gen/Network/Google/Resource/CloudIOT/Projects/Locations/Registries/Groups/UnbindDeviceFromGateway.hs +178/−0
- gen/Network/Google/Resource/CloudIOT/Projects/Locations/Registries/List.hs +185/−0
- gen/Network/Google/Resource/CloudIOT/Projects/Locations/Registries/Patch.hs +181/−0
- gen/Network/Google/Resource/CloudIOT/Projects/Locations/Registries/SetIAMPolicy.hs +174/−0
- gen/Network/Google/Resource/CloudIOT/Projects/Locations/Registries/TestIAMPermissions.hs +179/−0
- gen/Network/Google/Resource/CloudIOT/Projects/Locations/Registries/UnbindDeviceFromGateway.hs +177/−0
- gogol-cloudiot.cabal +77/−0
- src/.gitkeep +0/−0
+ 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