packages feed

amazonka-iotfleetwise (empty) → 2.0

raw patch · 215 files changed

+22743/−0 lines, 215 filesdep +amazonka-coredep +amazonka-iotfleetwisedep +amazonka-test

Dependencies added: amazonka-core, amazonka-iotfleetwise, amazonka-test, base, bytestring, case-insensitive, tasty, tasty-hunit, text, time, unordered-containers

Files

+ LICENSE view
@@ -0,0 +1,367 @@+Mozilla Public License Version 2.0+==================================++1. Definitions+--------------++1.1. "Contributor"+    means each individual or legal entity that creates, contributes to+    the creation of, or owns Covered Software.++1.2. "Contributor Version"+    means the combination of the Contributions of others (if any) used+    by a Contributor and that particular Contributor's Contribution.++1.3. "Contribution"+    means Covered Software of a particular Contributor.++1.4. "Covered Software"+    means Source Code Form to which the initial Contributor has attached+    the notice in Exhibit A, the Executable Form of such Source Code+    Form, and Modifications of such Source Code Form, in each case+    including portions thereof.++1.5. "Incompatible With Secondary Licenses"+    means++    (a) that the initial Contributor has attached the notice described+        in Exhibit B to the Covered Software; or++    (b) that the Covered Software was made available under the terms of+        version 1.1 or earlier of the License, but not also under the+        terms of a Secondary License.++1.6. "Executable Form"+    means any form of the work other than Source Code Form.++1.7. "Larger Work"+    means a work that combines Covered Software with other material, in+    a separate file or files, that is not Covered Software.++1.8. "License"+    means this document.++1.9. "Licensable"+    means having the right to grant, to the maximum extent possible,+    whether at the time of the initial grant or subsequently, any and+    all of the rights conveyed by this License.++1.10. "Modifications"+    means any of the following:++    (a) any file in Source Code Form that results from an addition to,+        deletion from, or modification of the contents of Covered+        Software; or++    (b) any new file in Source Code Form that contains any Covered+        Software.++1.11. "Patent Claims" of a Contributor+    means any patent claim(s), including without limitation, method,+    process, and apparatus claims, in any patent Licensable by such+    Contributor that would be infringed, but for the grant of the+    License, by the making, using, selling, offering for sale, having+    made, import, or transfer of either its Contributions or its+    Contributor Version.++1.12. "Secondary License"+    means either the GNU General Public License, Version 2.0, the GNU+    Lesser General Public License, Version 2.1, the GNU Affero General+    Public License, Version 3.0, or any later versions of those+    licenses.++1.13. "Source Code Form"+    means the form of the work preferred for making modifications.++1.14. "You" (or "Your")+    means an individual or a legal entity exercising rights under this+    License. For legal entities, "You" includes any entity that+    controls, is controlled by, or is under common control with You. For+    purposes of this definition, "control" means (a) the power, direct+    or indirect, to cause the direction or management of such entity,+    whether by contract or otherwise, or (b) ownership of more than+    fifty percent (50%) of the outstanding shares or beneficial+    ownership of such entity.++2. License Grants and Conditions+--------------------------------++2.1. Grants++Each Contributor hereby grants You a world-wide, royalty-free,+non-exclusive license:++(a) under intellectual property rights (other than patent or trademark)+    Licensable by such Contributor to use, reproduce, make available,+    modify, display, perform, distribute, and otherwise exploit its+    Contributions, either on an unmodified basis, with Modifications, or+    as part of a Larger Work; and++(b) under Patent Claims of such Contributor to make, use, sell, offer+    for sale, have made, import, and otherwise transfer either its+    Contributions or its Contributor Version.++2.2. Effective Date++The licenses granted in Section 2.1 with respect to any Contribution+become effective for each Contribution on the date the Contributor first+distributes such Contribution.++2.3. Limitations on Grant Scope++The licenses granted in this Section 2 are the only rights granted under+this License. No additional rights or licenses will be implied from the+distribution or licensing of Covered Software under this License.+Notwithstanding Section 2.1(b) above, no patent license is granted by a+Contributor:++(a) for any code that a Contributor has removed from Covered Software;+    or++(b) for infringements caused by: (i) Your and any other third party's+    modifications of Covered Software, or (ii) the combination of its+    Contributions with other software (except as part of its Contributor+    Version); or++(c) under Patent Claims infringed by Covered Software in the absence of+    its Contributions.++This License does not grant any rights in the trademarks, service marks,+or logos of any Contributor (except as may be necessary to comply with+the notice requirements in Section 3.4).++2.4. Subsequent Licenses++No Contributor makes additional grants as a result of Your choice to+distribute the Covered Software under a subsequent version of this+License (see Section 10.2) or under the terms of a Secondary License (if+permitted under the terms of Section 3.3).++2.5. Representation++Each Contributor represents that the Contributor believes its+Contributions are its original creation(s) or it has sufficient rights+to grant the rights to its Contributions conveyed by this License.++2.6. Fair Use++This License is not intended to limit any rights You have under+applicable copyright doctrines of fair use, fair dealing, or other+equivalents.++2.7. Conditions++Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted+in Section 2.1.++3. Responsibilities+-------------------++3.1. Distribution of Source Form++All distribution of Covered Software in Source Code Form, including any+Modifications that You create or to which You contribute, must be under+the terms of this License. You must inform recipients that the Source+Code Form of the Covered Software is governed by the terms of this+License, and how they can obtain a copy of this License. You may not+attempt to alter or restrict the recipients' rights in the Source Code+Form.++3.2. Distribution of Executable Form++If You distribute Covered Software in Executable Form then:++(a) such Covered Software must also be made available in Source Code+    Form, as described in Section 3.1, and You must inform recipients of+    the Executable Form how they can obtain a copy of such Source Code+    Form by reasonable means in a timely manner, at a charge no more+    than the cost of distribution to the recipient; and++(b) You may distribute such Executable Form under the terms of this+    License, or sublicense it under different terms, provided that the+    license for the Executable Form does not attempt to limit or alter+    the recipients' rights in the Source Code Form under this License.++3.3. Distribution of a Larger Work++You may create and distribute a Larger Work under terms of Your choice,+provided that You also comply with the requirements of this License for+the Covered Software. If the Larger Work is a combination of Covered+Software with a work governed by one or more Secondary Licenses, and the+Covered Software is not Incompatible With Secondary Licenses, this+License permits You to additionally distribute such Covered Software+under the terms of such Secondary License(s), so that the recipient of+the Larger Work may, at their option, further distribute the Covered+Software under the terms of either this License or such Secondary+License(s).++3.4. Notices++You may not remove or alter the substance of any license notices+(including copyright notices, patent notices, disclaimers of warranty,+or limitations of liability) contained within the Source Code Form of+the Covered Software, except that You may alter any license notices to+the extent required to remedy known factual inaccuracies.++3.5. Application of Additional Terms++You may choose to offer, and to charge a fee for, warranty, support,+indemnity or liability obligations to one or more recipients of Covered+Software. However, You may do so only on Your own behalf, and not on+behalf of any Contributor. You must make it absolutely clear that any+such warranty, support, indemnity, or liability obligation is offered by+You alone, and You hereby agree to indemnify every Contributor for any+liability incurred by such Contributor as a result of warranty, support,+indemnity or liability terms You offer. You may include additional+disclaimers of warranty and limitations of liability specific to any+jurisdiction.++4. Inability to Comply Due to Statute or Regulation+---------------------------------------------------++If it is impossible for You to comply with any of the terms of this+License with respect to some or all of the Covered Software due to+statute, judicial order, or regulation then You must: (a) comply with+the terms of this License to the maximum extent possible; and (b)+describe the limitations and the code they affect. Such description must+be placed in a text file included with all distributions of the Covered+Software under this License. Except to the extent prohibited by statute+or regulation, such description must be sufficiently detailed for a+recipient of ordinary skill to be able to understand it.++5. Termination+--------------++5.1. The rights granted under this License will terminate automatically+if You fail to comply with any of its terms. However, if You become+compliant, then the rights granted under this License from a particular+Contributor are reinstated (a) provisionally, unless and until such+Contributor explicitly and finally terminates Your grants, and (b) on an+ongoing basis, if such Contributor fails to notify You of the+non-compliance by some reasonable means prior to 60 days after You have+come back into compliance. Moreover, Your grants from a particular+Contributor are reinstated on an ongoing basis if such Contributor+notifies You of the non-compliance by some reasonable means, this is the+first time You have received notice of non-compliance with this License+from such Contributor, and You become compliant prior to 30 days after+Your receipt of the notice.++5.2. If You initiate litigation against any entity by asserting a patent+infringement claim (excluding declaratory judgment actions,+counter-claims, and cross-claims) alleging that a Contributor Version+directly or indirectly infringes any patent, then the rights granted to+You by any and all Contributors for the Covered Software under Section+2.1 of this License shall terminate.++5.3. In the event of termination under Sections 5.1 or 5.2 above, all+end user license agreements (excluding distributors and resellers) which+have been validly granted by You or Your distributors under this License+prior to termination shall survive termination.++************************************************************************+*                                                                      *+*  6. Disclaimer of Warranty                                           *+*  -------------------------                                           *+*                                                                      *+*  Covered Software is provided under this License on an "as is"       *+*  basis, without warranty of any kind, either expressed, implied, or  *+*  statutory, including, without limitation, warranties that the       *+*  Covered Software is free of defects, merchantable, fit for a        *+*  particular purpose or non-infringing. The entire risk as to the     *+*  quality and performance of the Covered Software is with You.        *+*  Should any Covered Software prove defective in any respect, You     *+*  (not any Contributor) assume the cost of any necessary servicing,   *+*  repair, or correction. This disclaimer of warranty constitutes an   *+*  essential part of this License. No use of any Covered Software is   *+*  authorized under this License except under this disclaimer.         *+*                                                                      *+************************************************************************++************************************************************************+*                                                                      *+*  7. Limitation of Liability                                          *+*  --------------------------                                          *+*                                                                      *+*  Under no circumstances and under no legal theory, whether tort      *+*  (including negligence), contract, or otherwise, shall any           *+*  Contributor, or anyone who distributes Covered Software as          *+*  permitted above, be liable to You for any direct, indirect,         *+*  special, incidental, or consequential damages of any character      *+*  including, without limitation, damages for lost profits, loss of    *+*  goodwill, work stoppage, computer failure or malfunction, or any    *+*  and all other commercial damages or losses, even if such party      *+*  shall have been informed of the possibility of such damages. This   *+*  limitation of liability shall not apply to liability for death or   *+*  personal injury resulting from such party's negligence to the       *+*  extent applicable law prohibits such limitation. Some               *+*  jurisdictions do not allow the exclusion or limitation of           *+*  incidental or consequential damages, so this exclusion and          *+*  limitation may not apply to You.                                    *+*                                                                      *+************************************************************************++8. Litigation+-------------++Any litigation relating to this License may be brought only in the+courts of a jurisdiction where the defendant maintains its principal+place of business and such litigation shall be governed by laws of that+jurisdiction, without reference to its conflict-of-law provisions.+Nothing in this Section shall prevent a party's ability to bring+cross-claims or counter-claims.++9. Miscellaneous+----------------++This License represents the complete agreement concerning the subject+matter hereof. If any provision of this License is held to be+unenforceable, such provision shall be reformed only to the extent+necessary to make it enforceable. Any law or regulation which provides+that the language of a contract shall be construed against the drafter+shall not be used to construe this License against a Contributor.++10. Versions of the License+---------------------------++10.1. New Versions++Mozilla Foundation is the license steward. Except as provided in Section+10.3, no one other than the license steward has the right to modify or+publish new versions of this License. Each version will be given a+distinguishing version number.++10.2. Effect of New Versions++You may distribute the Covered Software under the terms of the version+of the License under which You originally received the Covered Software,+or under the terms of any subsequent version published by the license+steward.++10.3. Modified Versions++If you create software not governed by this License, and you want to+create a new license for such software, you may create and use a+modified version of this License if you rename the license and remove+any references to the name of the license steward (except to note that+such modified license differs from this License).++10.4. Distributing Source Code Form that is Incompatible With Secondary+Licenses++If You choose to distribute Source Code Form that is Incompatible With+Secondary Licenses under the terms of this version of the License, the+notice described in Exhibit B of this License must be attached.++Exhibit A - Source Code Form License Notice+-------------------------------------------++  This Source Code Form is subject to the terms of the Mozilla Public+  License, v. 2.0. If a copy of the MPL was not distributed with this+  file, You can obtain one at http://mozilla.org/MPL/2.0/.++If it is not possible or desirable to put the notice in a particular+file, then You may include the notice in a location (such as a LICENSE+file in a relevant directory) where a recipient would be likely to look+for such a notice.++You may add additional accurate notices of copyright ownership.
+ README.md view
@@ -0,0 +1,44 @@+# Amazon IoT FleetWise SDK++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version+ +`2.0` - Derived from API version @2021-06-17@ of the AWS service descriptions, licensed under Apache 2.0.++## Description++Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-iotfleetwise)+and the [AWS API Reference](https://aws.amazon.com/documentation/).++The types from this library are intended to be used with [amazonka](http://hackage.haskell.org/package/amazonka),+which provides mechanisms for specifying AuthN/AuthZ information, sending requests,+and receiving responses.++Lenses are used for constructing and manipulating types,+due to the depth of nesting of AWS types and transparency regarding+de/serialisation into more palatable Haskell values.+The provided lenses should be compatible with any of the major lens libraries+[lens](http://hackage.haskell.org/package/lens) or [lens-family-core](http://hackage.haskell.org/package/lens-family-core).++See [Amazonka.IoTFleetWise](http://hackage.haskell.org/package/amazonka-iotfleetwise/docs/Amazonka-IoTFleetWise.html)+or [the AWS documentation](https://aws.amazon.com/documentation/) to get started.+++## Contribute++For any problems, comments, or feedback please create an issue [here on GitHub](https://github.com/brendanhay/amazonka/issues).++> _Note:_ this library is an auto-generated Haskell package. Please see `amazonka-gen` for more information.+++## Licence++`amazonka-iotfleetwise` is released under the [Mozilla Public License Version 2.0](http://www.mozilla.org/MPL/).++Parts of the code are derived from AWS service descriptions, licensed under Apache 2.0.+Source files subject to this contain an additional licensing clause in their header.
+ amazonka-iotfleetwise.cabal view
@@ -0,0 +1,186 @@+cabal-version:      2.2+name:               amazonka-iotfleetwise+version:            2.0+synopsis:           Amazon IoT FleetWise SDK.+homepage:           https://github.com/brendanhay/amazonka+bug-reports:        https://github.com/brendanhay/amazonka/issues+license:            MPL-2.0+license-file:       LICENSE+author:             Brendan Hay+maintainer:+  Brendan Hay <brendan.g.hay+amazonka@gmail.com>, Jack Kelly <jack@jackkelly.name>++copyright:          Copyright (c) 2013-2023 Brendan Hay+category:           AWS+build-type:         Simple+extra-source-files:+  fixture/*.proto+  fixture/*.yaml+  README.md+  src/.gitkeep++description:+  Derived from API version @2021-06-17@ of the AWS service descriptions, licensed under Apache 2.0.+  .+  The types from this library are intended to be used with <http://hackage.haskell.org/package/amazonka amazonka>,+  which provides mechanisms for specifying AuthN/AuthZ information, sending requests, and receiving responses.+  .+  It is recommended to use generic lenses or optics from packages such as <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify optional fields and deconstruct responses.+  .+  Generated lenses can be found in "Amazonka.IoTFleetWise.Lens" and are+  suitable for use with a lens package such as <http://hackage.haskell.org/package/lens lens> or <http://hackage.haskell.org/package/lens-family-core lens-family-core>.+  .+  See "Amazonka.IoTFleetWise" and the <https://aws.amazon.com/documentation/ AWS documentation> to get started.++source-repository head+  type:     git+  location: git://github.com/brendanhay/amazonka.git+  subdir:   amazonka-iotfleetwise++library+  default-language: Haskell2010+  hs-source-dirs:   src gen+  ghc-options:+    -Wall -fwarn-incomplete-uni-patterns+    -fwarn-incomplete-record-updates -funbox-strict-fields++  exposed-modules:+    Amazonka.IoTFleetWise+    Amazonka.IoTFleetWise.AssociateVehicleFleet+    Amazonka.IoTFleetWise.BatchCreateVehicle+    Amazonka.IoTFleetWise.BatchUpdateVehicle+    Amazonka.IoTFleetWise.CreateCampaign+    Amazonka.IoTFleetWise.CreateDecoderManifest+    Amazonka.IoTFleetWise.CreateFleet+    Amazonka.IoTFleetWise.CreateModelManifest+    Amazonka.IoTFleetWise.CreateSignalCatalog+    Amazonka.IoTFleetWise.CreateVehicle+    Amazonka.IoTFleetWise.DeleteCampaign+    Amazonka.IoTFleetWise.DeleteDecoderManifest+    Amazonka.IoTFleetWise.DeleteFleet+    Amazonka.IoTFleetWise.DeleteModelManifest+    Amazonka.IoTFleetWise.DeleteSignalCatalog+    Amazonka.IoTFleetWise.DeleteVehicle+    Amazonka.IoTFleetWise.DisassociateVehicleFleet+    Amazonka.IoTFleetWise.GetCampaign+    Amazonka.IoTFleetWise.GetDecoderManifest+    Amazonka.IoTFleetWise.GetFleet+    Amazonka.IoTFleetWise.GetLoggingOptions+    Amazonka.IoTFleetWise.GetModelManifest+    Amazonka.IoTFleetWise.GetRegisterAccountStatus+    Amazonka.IoTFleetWise.GetSignalCatalog+    Amazonka.IoTFleetWise.GetVehicle+    Amazonka.IoTFleetWise.GetVehicleStatus+    Amazonka.IoTFleetWise.ImportDecoderManifest+    Amazonka.IoTFleetWise.ImportSignalCatalog+    Amazonka.IoTFleetWise.Lens+    Amazonka.IoTFleetWise.ListCampaigns+    Amazonka.IoTFleetWise.ListDecoderManifestNetworkInterfaces+    Amazonka.IoTFleetWise.ListDecoderManifests+    Amazonka.IoTFleetWise.ListDecoderManifestSignals+    Amazonka.IoTFleetWise.ListFleets+    Amazonka.IoTFleetWise.ListFleetsForVehicle+    Amazonka.IoTFleetWise.ListModelManifestNodes+    Amazonka.IoTFleetWise.ListModelManifests+    Amazonka.IoTFleetWise.ListSignalCatalogNodes+    Amazonka.IoTFleetWise.ListSignalCatalogs+    Amazonka.IoTFleetWise.ListTagsForResource+    Amazonka.IoTFleetWise.ListVehicles+    Amazonka.IoTFleetWise.ListVehiclesInFleet+    Amazonka.IoTFleetWise.PutLoggingOptions+    Amazonka.IoTFleetWise.RegisterAccount+    Amazonka.IoTFleetWise.TagResource+    Amazonka.IoTFleetWise.Types+    Amazonka.IoTFleetWise.Types.Actuator+    Amazonka.IoTFleetWise.Types.Attribute+    Amazonka.IoTFleetWise.Types.Branch+    Amazonka.IoTFleetWise.Types.CampaignStatus+    Amazonka.IoTFleetWise.Types.CampaignSummary+    Amazonka.IoTFleetWise.Types.CanDbcDefinition+    Amazonka.IoTFleetWise.Types.CanInterface+    Amazonka.IoTFleetWise.Types.CanSignal+    Amazonka.IoTFleetWise.Types.CloudWatchLogDeliveryOptions+    Amazonka.IoTFleetWise.Types.CollectionScheme+    Amazonka.IoTFleetWise.Types.Compression+    Amazonka.IoTFleetWise.Types.ConditionBasedCollectionScheme+    Amazonka.IoTFleetWise.Types.CreateVehicleError+    Amazonka.IoTFleetWise.Types.CreateVehicleRequestItem+    Amazonka.IoTFleetWise.Types.CreateVehicleResponseItem+    Amazonka.IoTFleetWise.Types.DecoderManifestSummary+    Amazonka.IoTFleetWise.Types.DiagnosticsMode+    Amazonka.IoTFleetWise.Types.FleetSummary+    Amazonka.IoTFleetWise.Types.FormattedVss+    Amazonka.IoTFleetWise.Types.IamRegistrationResponse+    Amazonka.IoTFleetWise.Types.IamResources+    Amazonka.IoTFleetWise.Types.LogType+    Amazonka.IoTFleetWise.Types.ManifestStatus+    Amazonka.IoTFleetWise.Types.ModelManifestSummary+    Amazonka.IoTFleetWise.Types.NetworkFileDefinition+    Amazonka.IoTFleetWise.Types.NetworkInterface+    Amazonka.IoTFleetWise.Types.NetworkInterfaceType+    Amazonka.IoTFleetWise.Types.Node+    Amazonka.IoTFleetWise.Types.NodeCounts+    Amazonka.IoTFleetWise.Types.NodeDataType+    Amazonka.IoTFleetWise.Types.ObdInterface+    Amazonka.IoTFleetWise.Types.ObdSignal+    Amazonka.IoTFleetWise.Types.RegistrationStatus+    Amazonka.IoTFleetWise.Types.Sensor+    Amazonka.IoTFleetWise.Types.SignalCatalogSummary+    Amazonka.IoTFleetWise.Types.SignalDecoder+    Amazonka.IoTFleetWise.Types.SignalDecoderType+    Amazonka.IoTFleetWise.Types.SignalInformation+    Amazonka.IoTFleetWise.Types.SpoolingMode+    Amazonka.IoTFleetWise.Types.Tag+    Amazonka.IoTFleetWise.Types.TimeBasedCollectionScheme+    Amazonka.IoTFleetWise.Types.TimestreamRegistrationResponse+    Amazonka.IoTFleetWise.Types.TimestreamResources+    Amazonka.IoTFleetWise.Types.TriggerMode+    Amazonka.IoTFleetWise.Types.UpdateCampaignAction+    Amazonka.IoTFleetWise.Types.UpdateMode+    Amazonka.IoTFleetWise.Types.UpdateVehicleError+    Amazonka.IoTFleetWise.Types.UpdateVehicleRequestItem+    Amazonka.IoTFleetWise.Types.UpdateVehicleResponseItem+    Amazonka.IoTFleetWise.Types.VehicleAssociationBehavior+    Amazonka.IoTFleetWise.Types.VehicleState+    Amazonka.IoTFleetWise.Types.VehicleStatus+    Amazonka.IoTFleetWise.Types.VehicleSummary+    Amazonka.IoTFleetWise.UntagResource+    Amazonka.IoTFleetWise.UpdateCampaign+    Amazonka.IoTFleetWise.UpdateDecoderManifest+    Amazonka.IoTFleetWise.UpdateFleet+    Amazonka.IoTFleetWise.UpdateModelManifest+    Amazonka.IoTFleetWise.UpdateSignalCatalog+    Amazonka.IoTFleetWise.UpdateVehicle+    Amazonka.IoTFleetWise.Waiters++  build-depends:+    , amazonka-core  >=2.0  && <2.1+    , base           >=4.12 && <5++test-suite amazonka-iotfleetwise-test+  type:             exitcode-stdio-1.0+  default-language: Haskell2010+  hs-source-dirs:   test+  main-is:          Main.hs+  ghc-options:      -Wall -threaded++  -- This section is encoded by the template and any modules added by+  -- hand outside these namespaces will not correctly be added to the+  -- distribution package.+  other-modules:+    Test.Amazonka.Gen.IoTFleetWise+    Test.Amazonka.IoTFleetWise+    Test.Amazonka.IoTFleetWise.Internal++  build-depends:+    , amazonka-core          >=2.0 && <2.1+    , amazonka-iotfleetwise+    , amazonka-test          >=2.0 && <2.1+    , base+    , bytestring+    , case-insensitive+    , tasty+    , tasty-hunit+    , text+    , time+    , unordered-containers
+ fixture/AssociateVehicleFleet.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iotfleetwise/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iotfleetwise.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/AssociateVehicleFleetResponse.proto view
+ fixture/BatchCreateVehicle.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iotfleetwise/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iotfleetwise.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/BatchCreateVehicleResponse.proto view
+ fixture/BatchUpdateVehicle.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iotfleetwise/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iotfleetwise.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/BatchUpdateVehicleResponse.proto view
+ fixture/CreateCampaign.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iotfleetwise/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iotfleetwise.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/CreateCampaignResponse.proto view
+ fixture/CreateDecoderManifest.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iotfleetwise/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iotfleetwise.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/CreateDecoderManifestResponse.proto view
+ fixture/CreateFleet.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iotfleetwise/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iotfleetwise.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/CreateFleetResponse.proto view
+ fixture/CreateModelManifest.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iotfleetwise/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iotfleetwise.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/CreateModelManifestResponse.proto view
+ fixture/CreateSignalCatalog.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iotfleetwise/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iotfleetwise.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/CreateSignalCatalogResponse.proto view
+ fixture/CreateVehicle.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iotfleetwise/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iotfleetwise.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/CreateVehicleResponse.proto view
+ fixture/DeleteCampaign.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iotfleetwise/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iotfleetwise.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DeleteCampaignResponse.proto view
+ fixture/DeleteDecoderManifest.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iotfleetwise/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iotfleetwise.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DeleteDecoderManifestResponse.proto view
+ fixture/DeleteFleet.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iotfleetwise/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iotfleetwise.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DeleteFleetResponse.proto view
+ fixture/DeleteModelManifest.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iotfleetwise/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iotfleetwise.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DeleteModelManifestResponse.proto view
+ fixture/DeleteSignalCatalog.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iotfleetwise/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iotfleetwise.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DeleteSignalCatalogResponse.proto view
+ fixture/DeleteVehicle.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iotfleetwise/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iotfleetwise.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DeleteVehicleResponse.proto view
+ fixture/DisassociateVehicleFleet.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iotfleetwise/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iotfleetwise.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DisassociateVehicleFleetResponse.proto view
+ fixture/GetCampaign.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iotfleetwise/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iotfleetwise.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/GetCampaignResponse.proto view
+ fixture/GetDecoderManifest.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iotfleetwise/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iotfleetwise.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/GetDecoderManifestResponse.proto view
+ fixture/GetFleet.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iotfleetwise/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iotfleetwise.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/GetFleetResponse.proto view
+ fixture/GetLoggingOptions.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iotfleetwise/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iotfleetwise.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/GetLoggingOptionsResponse.proto view
+ fixture/GetModelManifest.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iotfleetwise/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iotfleetwise.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/GetModelManifestResponse.proto view
+ fixture/GetRegisterAccountStatus.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iotfleetwise/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iotfleetwise.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/GetRegisterAccountStatusResponse.proto view
+ fixture/GetSignalCatalog.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iotfleetwise/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iotfleetwise.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/GetSignalCatalogResponse.proto view
+ fixture/GetVehicle.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iotfleetwise/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iotfleetwise.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/GetVehicleResponse.proto view
+ fixture/GetVehicleStatus.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iotfleetwise/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iotfleetwise.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/GetVehicleStatusResponse.proto view
+ fixture/ImportDecoderManifest.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iotfleetwise/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iotfleetwise.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/ImportDecoderManifestResponse.proto view
+ fixture/ImportSignalCatalog.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iotfleetwise/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iotfleetwise.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/ImportSignalCatalogResponse.proto view
+ fixture/ListCampaigns.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iotfleetwise/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iotfleetwise.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/ListCampaignsResponse.proto view
+ fixture/ListDecoderManifestNetworkInterfaces.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iotfleetwise/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iotfleetwise.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/ListDecoderManifestNetworkInterfacesResponse.proto view
+ fixture/ListDecoderManifestSignals.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iotfleetwise/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iotfleetwise.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/ListDecoderManifestSignalsResponse.proto view
+ fixture/ListDecoderManifests.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iotfleetwise/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iotfleetwise.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/ListDecoderManifestsResponse.proto view
+ fixture/ListFleets.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iotfleetwise/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iotfleetwise.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/ListFleetsForVehicle.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iotfleetwise/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iotfleetwise.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/ListFleetsForVehicleResponse.proto view
+ fixture/ListFleetsResponse.proto view
+ fixture/ListModelManifestNodes.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iotfleetwise/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iotfleetwise.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/ListModelManifestNodesResponse.proto view
+ fixture/ListModelManifests.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iotfleetwise/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iotfleetwise.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/ListModelManifestsResponse.proto view
+ fixture/ListSignalCatalogNodes.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iotfleetwise/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iotfleetwise.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/ListSignalCatalogNodesResponse.proto view
+ fixture/ListSignalCatalogs.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iotfleetwise/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iotfleetwise.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/ListSignalCatalogsResponse.proto view
+ fixture/ListTagsForResource.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iotfleetwise/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iotfleetwise.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/ListTagsForResourceResponse.proto view
+ fixture/ListVehicles.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iotfleetwise/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iotfleetwise.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/ListVehiclesInFleet.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iotfleetwise/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iotfleetwise.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/ListVehiclesInFleetResponse.proto view
+ fixture/ListVehiclesResponse.proto view
+ fixture/PutLoggingOptions.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iotfleetwise/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iotfleetwise.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/PutLoggingOptionsResponse.proto view
+ fixture/RegisterAccount.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iotfleetwise/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iotfleetwise.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/RegisterAccountResponse.proto view
+ fixture/TagResource.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iotfleetwise/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iotfleetwise.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/TagResourceResponse.proto view
+ fixture/UntagResource.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iotfleetwise/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iotfleetwise.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/UntagResourceResponse.proto view
+ fixture/UpdateCampaign.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iotfleetwise/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iotfleetwise.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/UpdateCampaignResponse.proto view
+ fixture/UpdateDecoderManifest.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iotfleetwise/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iotfleetwise.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/UpdateDecoderManifestResponse.proto view
+ fixture/UpdateFleet.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iotfleetwise/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iotfleetwise.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/UpdateFleetResponse.proto view
+ fixture/UpdateModelManifest.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iotfleetwise/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iotfleetwise.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/UpdateModelManifestResponse.proto view
+ fixture/UpdateSignalCatalog.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iotfleetwise/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iotfleetwise.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/UpdateSignalCatalogResponse.proto view
+ fixture/UpdateVehicle.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iotfleetwise/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iotfleetwise.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/UpdateVehicleResponse.proto view
+ gen/Amazonka/IoTFleetWise.hs view
@@ -0,0 +1,647 @@+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Amazonka.IoTFleetWise+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Derived from API version @2021-06-17@ of the AWS service descriptions, licensed under Apache 2.0.+--+-- Amazon Web Services IoT FleetWise is a fully managed service that you+-- can use to collect, model, and transfer vehicle data to the Amazon Web+-- Services cloud at scale. With Amazon Web Services IoT FleetWise, you can+-- standardize all of your vehicle data models, independent of the+-- in-vehicle communication architecture, and define data collection rules+-- to transfer only high-value data to the cloud.+--+-- For more information, see+-- <https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/ What is Amazon Web Services IoT FleetWise?>+-- in the /Amazon Web Services IoT FleetWise Developer Guide/.+module Amazonka.IoTFleetWise+  ( -- * Service Configuration+    defaultService,++    -- * Errors+    -- $errors++    -- ** AccessDeniedException+    _AccessDeniedException,++    -- ** ConflictException+    _ConflictException,++    -- ** DecoderManifestValidationException+    _DecoderManifestValidationException,++    -- ** InternalServerException+    _InternalServerException,++    -- ** InvalidNodeException+    _InvalidNodeException,++    -- ** InvalidSignalsException+    _InvalidSignalsException,++    -- ** LimitExceededException+    _LimitExceededException,++    -- ** ResourceNotFoundException+    _ResourceNotFoundException,++    -- ** ThrottlingException+    _ThrottlingException,++    -- ** ValidationException+    _ValidationException,++    -- * Waiters+    -- $waiters++    -- * Operations+    -- $operations++    -- ** AssociateVehicleFleet+    AssociateVehicleFleet (AssociateVehicleFleet'),+    newAssociateVehicleFleet,+    AssociateVehicleFleetResponse (AssociateVehicleFleetResponse'),+    newAssociateVehicleFleetResponse,++    -- ** BatchCreateVehicle+    BatchCreateVehicle (BatchCreateVehicle'),+    newBatchCreateVehicle,+    BatchCreateVehicleResponse (BatchCreateVehicleResponse'),+    newBatchCreateVehicleResponse,++    -- ** BatchUpdateVehicle+    BatchUpdateVehicle (BatchUpdateVehicle'),+    newBatchUpdateVehicle,+    BatchUpdateVehicleResponse (BatchUpdateVehicleResponse'),+    newBatchUpdateVehicleResponse,++    -- ** CreateCampaign+    CreateCampaign (CreateCampaign'),+    newCreateCampaign,+    CreateCampaignResponse (CreateCampaignResponse'),+    newCreateCampaignResponse,++    -- ** CreateDecoderManifest+    CreateDecoderManifest (CreateDecoderManifest'),+    newCreateDecoderManifest,+    CreateDecoderManifestResponse (CreateDecoderManifestResponse'),+    newCreateDecoderManifestResponse,++    -- ** CreateFleet+    CreateFleet (CreateFleet'),+    newCreateFleet,+    CreateFleetResponse (CreateFleetResponse'),+    newCreateFleetResponse,++    -- ** CreateModelManifest+    CreateModelManifest (CreateModelManifest'),+    newCreateModelManifest,+    CreateModelManifestResponse (CreateModelManifestResponse'),+    newCreateModelManifestResponse,++    -- ** CreateSignalCatalog+    CreateSignalCatalog (CreateSignalCatalog'),+    newCreateSignalCatalog,+    CreateSignalCatalogResponse (CreateSignalCatalogResponse'),+    newCreateSignalCatalogResponse,++    -- ** CreateVehicle+    CreateVehicle (CreateVehicle'),+    newCreateVehicle,+    CreateVehicleResponse (CreateVehicleResponse'),+    newCreateVehicleResponse,++    -- ** DeleteCampaign+    DeleteCampaign (DeleteCampaign'),+    newDeleteCampaign,+    DeleteCampaignResponse (DeleteCampaignResponse'),+    newDeleteCampaignResponse,++    -- ** DeleteDecoderManifest+    DeleteDecoderManifest (DeleteDecoderManifest'),+    newDeleteDecoderManifest,+    DeleteDecoderManifestResponse (DeleteDecoderManifestResponse'),+    newDeleteDecoderManifestResponse,++    -- ** DeleteFleet+    DeleteFleet (DeleteFleet'),+    newDeleteFleet,+    DeleteFleetResponse (DeleteFleetResponse'),+    newDeleteFleetResponse,++    -- ** DeleteModelManifest+    DeleteModelManifest (DeleteModelManifest'),+    newDeleteModelManifest,+    DeleteModelManifestResponse (DeleteModelManifestResponse'),+    newDeleteModelManifestResponse,++    -- ** DeleteSignalCatalog+    DeleteSignalCatalog (DeleteSignalCatalog'),+    newDeleteSignalCatalog,+    DeleteSignalCatalogResponse (DeleteSignalCatalogResponse'),+    newDeleteSignalCatalogResponse,++    -- ** DeleteVehicle+    DeleteVehicle (DeleteVehicle'),+    newDeleteVehicle,+    DeleteVehicleResponse (DeleteVehicleResponse'),+    newDeleteVehicleResponse,++    -- ** DisassociateVehicleFleet+    DisassociateVehicleFleet (DisassociateVehicleFleet'),+    newDisassociateVehicleFleet,+    DisassociateVehicleFleetResponse (DisassociateVehicleFleetResponse'),+    newDisassociateVehicleFleetResponse,++    -- ** GetCampaign+    GetCampaign (GetCampaign'),+    newGetCampaign,+    GetCampaignResponse (GetCampaignResponse'),+    newGetCampaignResponse,++    -- ** GetDecoderManifest+    GetDecoderManifest (GetDecoderManifest'),+    newGetDecoderManifest,+    GetDecoderManifestResponse (GetDecoderManifestResponse'),+    newGetDecoderManifestResponse,++    -- ** GetFleet+    GetFleet (GetFleet'),+    newGetFleet,+    GetFleetResponse (GetFleetResponse'),+    newGetFleetResponse,++    -- ** GetLoggingOptions+    GetLoggingOptions (GetLoggingOptions'),+    newGetLoggingOptions,+    GetLoggingOptionsResponse (GetLoggingOptionsResponse'),+    newGetLoggingOptionsResponse,++    -- ** GetModelManifest+    GetModelManifest (GetModelManifest'),+    newGetModelManifest,+    GetModelManifestResponse (GetModelManifestResponse'),+    newGetModelManifestResponse,++    -- ** GetRegisterAccountStatus+    GetRegisterAccountStatus (GetRegisterAccountStatus'),+    newGetRegisterAccountStatus,+    GetRegisterAccountStatusResponse (GetRegisterAccountStatusResponse'),+    newGetRegisterAccountStatusResponse,++    -- ** GetSignalCatalog+    GetSignalCatalog (GetSignalCatalog'),+    newGetSignalCatalog,+    GetSignalCatalogResponse (GetSignalCatalogResponse'),+    newGetSignalCatalogResponse,++    -- ** GetVehicle+    GetVehicle (GetVehicle'),+    newGetVehicle,+    GetVehicleResponse (GetVehicleResponse'),+    newGetVehicleResponse,++    -- ** GetVehicleStatus (Paginated)+    GetVehicleStatus (GetVehicleStatus'),+    newGetVehicleStatus,+    GetVehicleStatusResponse (GetVehicleStatusResponse'),+    newGetVehicleStatusResponse,++    -- ** ImportDecoderManifest+    ImportDecoderManifest (ImportDecoderManifest'),+    newImportDecoderManifest,+    ImportDecoderManifestResponse (ImportDecoderManifestResponse'),+    newImportDecoderManifestResponse,++    -- ** ImportSignalCatalog+    ImportSignalCatalog (ImportSignalCatalog'),+    newImportSignalCatalog,+    ImportSignalCatalogResponse (ImportSignalCatalogResponse'),+    newImportSignalCatalogResponse,++    -- ** ListCampaigns (Paginated)+    ListCampaigns (ListCampaigns'),+    newListCampaigns,+    ListCampaignsResponse (ListCampaignsResponse'),+    newListCampaignsResponse,++    -- ** ListDecoderManifestNetworkInterfaces (Paginated)+    ListDecoderManifestNetworkInterfaces (ListDecoderManifestNetworkInterfaces'),+    newListDecoderManifestNetworkInterfaces,+    ListDecoderManifestNetworkInterfacesResponse (ListDecoderManifestNetworkInterfacesResponse'),+    newListDecoderManifestNetworkInterfacesResponse,++    -- ** ListDecoderManifestSignals (Paginated)+    ListDecoderManifestSignals (ListDecoderManifestSignals'),+    newListDecoderManifestSignals,+    ListDecoderManifestSignalsResponse (ListDecoderManifestSignalsResponse'),+    newListDecoderManifestSignalsResponse,++    -- ** ListDecoderManifests (Paginated)+    ListDecoderManifests (ListDecoderManifests'),+    newListDecoderManifests,+    ListDecoderManifestsResponse (ListDecoderManifestsResponse'),+    newListDecoderManifestsResponse,++    -- ** ListFleets (Paginated)+    ListFleets (ListFleets'),+    newListFleets,+    ListFleetsResponse (ListFleetsResponse'),+    newListFleetsResponse,++    -- ** ListFleetsForVehicle (Paginated)+    ListFleetsForVehicle (ListFleetsForVehicle'),+    newListFleetsForVehicle,+    ListFleetsForVehicleResponse (ListFleetsForVehicleResponse'),+    newListFleetsForVehicleResponse,++    -- ** ListModelManifestNodes (Paginated)+    ListModelManifestNodes (ListModelManifestNodes'),+    newListModelManifestNodes,+    ListModelManifestNodesResponse (ListModelManifestNodesResponse'),+    newListModelManifestNodesResponse,++    -- ** ListModelManifests (Paginated)+    ListModelManifests (ListModelManifests'),+    newListModelManifests,+    ListModelManifestsResponse (ListModelManifestsResponse'),+    newListModelManifestsResponse,++    -- ** ListSignalCatalogNodes (Paginated)+    ListSignalCatalogNodes (ListSignalCatalogNodes'),+    newListSignalCatalogNodes,+    ListSignalCatalogNodesResponse (ListSignalCatalogNodesResponse'),+    newListSignalCatalogNodesResponse,++    -- ** ListSignalCatalogs (Paginated)+    ListSignalCatalogs (ListSignalCatalogs'),+    newListSignalCatalogs,+    ListSignalCatalogsResponse (ListSignalCatalogsResponse'),+    newListSignalCatalogsResponse,++    -- ** ListTagsForResource+    ListTagsForResource (ListTagsForResource'),+    newListTagsForResource,+    ListTagsForResourceResponse (ListTagsForResourceResponse'),+    newListTagsForResourceResponse,++    -- ** ListVehicles (Paginated)+    ListVehicles (ListVehicles'),+    newListVehicles,+    ListVehiclesResponse (ListVehiclesResponse'),+    newListVehiclesResponse,++    -- ** ListVehiclesInFleet (Paginated)+    ListVehiclesInFleet (ListVehiclesInFleet'),+    newListVehiclesInFleet,+    ListVehiclesInFleetResponse (ListVehiclesInFleetResponse'),+    newListVehiclesInFleetResponse,++    -- ** PutLoggingOptions+    PutLoggingOptions (PutLoggingOptions'),+    newPutLoggingOptions,+    PutLoggingOptionsResponse (PutLoggingOptionsResponse'),+    newPutLoggingOptionsResponse,++    -- ** RegisterAccount+    RegisterAccount (RegisterAccount'),+    newRegisterAccount,+    RegisterAccountResponse (RegisterAccountResponse'),+    newRegisterAccountResponse,++    -- ** TagResource+    TagResource (TagResource'),+    newTagResource,+    TagResourceResponse (TagResourceResponse'),+    newTagResourceResponse,++    -- ** UntagResource+    UntagResource (UntagResource'),+    newUntagResource,+    UntagResourceResponse (UntagResourceResponse'),+    newUntagResourceResponse,++    -- ** UpdateCampaign+    UpdateCampaign (UpdateCampaign'),+    newUpdateCampaign,+    UpdateCampaignResponse (UpdateCampaignResponse'),+    newUpdateCampaignResponse,++    -- ** UpdateDecoderManifest+    UpdateDecoderManifest (UpdateDecoderManifest'),+    newUpdateDecoderManifest,+    UpdateDecoderManifestResponse (UpdateDecoderManifestResponse'),+    newUpdateDecoderManifestResponse,++    -- ** UpdateFleet+    UpdateFleet (UpdateFleet'),+    newUpdateFleet,+    UpdateFleetResponse (UpdateFleetResponse'),+    newUpdateFleetResponse,++    -- ** UpdateModelManifest+    UpdateModelManifest (UpdateModelManifest'),+    newUpdateModelManifest,+    UpdateModelManifestResponse (UpdateModelManifestResponse'),+    newUpdateModelManifestResponse,++    -- ** UpdateSignalCatalog+    UpdateSignalCatalog (UpdateSignalCatalog'),+    newUpdateSignalCatalog,+    UpdateSignalCatalogResponse (UpdateSignalCatalogResponse'),+    newUpdateSignalCatalogResponse,++    -- ** UpdateVehicle+    UpdateVehicle (UpdateVehicle'),+    newUpdateVehicle,+    UpdateVehicleResponse (UpdateVehicleResponse'),+    newUpdateVehicleResponse,++    -- * Types++    -- ** CampaignStatus+    CampaignStatus (..),++    -- ** Compression+    Compression (..),++    -- ** DiagnosticsMode+    DiagnosticsMode (..),++    -- ** LogType+    LogType (..),++    -- ** ManifestStatus+    ManifestStatus (..),++    -- ** NetworkInterfaceType+    NetworkInterfaceType (..),++    -- ** NodeDataType+    NodeDataType (..),++    -- ** RegistrationStatus+    RegistrationStatus (..),++    -- ** SignalDecoderType+    SignalDecoderType (..),++    -- ** SpoolingMode+    SpoolingMode (..),++    -- ** TriggerMode+    TriggerMode (..),++    -- ** UpdateCampaignAction+    UpdateCampaignAction (..),++    -- ** UpdateMode+    UpdateMode (..),++    -- ** VehicleAssociationBehavior+    VehicleAssociationBehavior (..),++    -- ** VehicleState+    VehicleState (..),++    -- ** Actuator+    Actuator (Actuator'),+    newActuator,++    -- ** Attribute+    Attribute (Attribute'),+    newAttribute,++    -- ** Branch+    Branch (Branch'),+    newBranch,++    -- ** CampaignSummary+    CampaignSummary (CampaignSummary'),+    newCampaignSummary,++    -- ** CanDbcDefinition+    CanDbcDefinition (CanDbcDefinition'),+    newCanDbcDefinition,++    -- ** CanInterface+    CanInterface (CanInterface'),+    newCanInterface,++    -- ** CanSignal+    CanSignal (CanSignal'),+    newCanSignal,++    -- ** CloudWatchLogDeliveryOptions+    CloudWatchLogDeliveryOptions (CloudWatchLogDeliveryOptions'),+    newCloudWatchLogDeliveryOptions,++    -- ** CollectionScheme+    CollectionScheme (CollectionScheme'),+    newCollectionScheme,++    -- ** ConditionBasedCollectionScheme+    ConditionBasedCollectionScheme (ConditionBasedCollectionScheme'),+    newConditionBasedCollectionScheme,++    -- ** CreateVehicleError+    CreateVehicleError (CreateVehicleError'),+    newCreateVehicleError,++    -- ** CreateVehicleRequestItem+    CreateVehicleRequestItem (CreateVehicleRequestItem'),+    newCreateVehicleRequestItem,++    -- ** CreateVehicleResponseItem+    CreateVehicleResponseItem (CreateVehicleResponseItem'),+    newCreateVehicleResponseItem,++    -- ** DecoderManifestSummary+    DecoderManifestSummary (DecoderManifestSummary'),+    newDecoderManifestSummary,++    -- ** FleetSummary+    FleetSummary (FleetSummary'),+    newFleetSummary,++    -- ** FormattedVss+    FormattedVss (FormattedVss'),+    newFormattedVss,++    -- ** IamRegistrationResponse+    IamRegistrationResponse (IamRegistrationResponse'),+    newIamRegistrationResponse,++    -- ** IamResources+    IamResources (IamResources'),+    newIamResources,++    -- ** ModelManifestSummary+    ModelManifestSummary (ModelManifestSummary'),+    newModelManifestSummary,++    -- ** NetworkFileDefinition+    NetworkFileDefinition (NetworkFileDefinition'),+    newNetworkFileDefinition,++    -- ** NetworkInterface+    NetworkInterface (NetworkInterface'),+    newNetworkInterface,++    -- ** Node+    Node (Node'),+    newNode,++    -- ** NodeCounts+    NodeCounts (NodeCounts'),+    newNodeCounts,++    -- ** ObdInterface+    ObdInterface (ObdInterface'),+    newObdInterface,++    -- ** ObdSignal+    ObdSignal (ObdSignal'),+    newObdSignal,++    -- ** Sensor+    Sensor (Sensor'),+    newSensor,++    -- ** SignalCatalogSummary+    SignalCatalogSummary (SignalCatalogSummary'),+    newSignalCatalogSummary,++    -- ** SignalDecoder+    SignalDecoder (SignalDecoder'),+    newSignalDecoder,++    -- ** SignalInformation+    SignalInformation (SignalInformation'),+    newSignalInformation,++    -- ** Tag+    Tag (Tag'),+    newTag,++    -- ** TimeBasedCollectionScheme+    TimeBasedCollectionScheme (TimeBasedCollectionScheme'),+    newTimeBasedCollectionScheme,++    -- ** TimestreamRegistrationResponse+    TimestreamRegistrationResponse (TimestreamRegistrationResponse'),+    newTimestreamRegistrationResponse,++    -- ** TimestreamResources+    TimestreamResources (TimestreamResources'),+    newTimestreamResources,++    -- ** UpdateVehicleError+    UpdateVehicleError (UpdateVehicleError'),+    newUpdateVehicleError,++    -- ** UpdateVehicleRequestItem+    UpdateVehicleRequestItem (UpdateVehicleRequestItem'),+    newUpdateVehicleRequestItem,++    -- ** UpdateVehicleResponseItem+    UpdateVehicleResponseItem (UpdateVehicleResponseItem'),+    newUpdateVehicleResponseItem,++    -- ** VehicleStatus+    VehicleStatus (VehicleStatus'),+    newVehicleStatus,++    -- ** VehicleSummary+    VehicleSummary (VehicleSummary'),+    newVehicleSummary,+  )+where++import Amazonka.IoTFleetWise.AssociateVehicleFleet+import Amazonka.IoTFleetWise.BatchCreateVehicle+import Amazonka.IoTFleetWise.BatchUpdateVehicle+import Amazonka.IoTFleetWise.CreateCampaign+import Amazonka.IoTFleetWise.CreateDecoderManifest+import Amazonka.IoTFleetWise.CreateFleet+import Amazonka.IoTFleetWise.CreateModelManifest+import Amazonka.IoTFleetWise.CreateSignalCatalog+import Amazonka.IoTFleetWise.CreateVehicle+import Amazonka.IoTFleetWise.DeleteCampaign+import Amazonka.IoTFleetWise.DeleteDecoderManifest+import Amazonka.IoTFleetWise.DeleteFleet+import Amazonka.IoTFleetWise.DeleteModelManifest+import Amazonka.IoTFleetWise.DeleteSignalCatalog+import Amazonka.IoTFleetWise.DeleteVehicle+import Amazonka.IoTFleetWise.DisassociateVehicleFleet+import Amazonka.IoTFleetWise.GetCampaign+import Amazonka.IoTFleetWise.GetDecoderManifest+import Amazonka.IoTFleetWise.GetFleet+import Amazonka.IoTFleetWise.GetLoggingOptions+import Amazonka.IoTFleetWise.GetModelManifest+import Amazonka.IoTFleetWise.GetRegisterAccountStatus+import Amazonka.IoTFleetWise.GetSignalCatalog+import Amazonka.IoTFleetWise.GetVehicle+import Amazonka.IoTFleetWise.GetVehicleStatus+import Amazonka.IoTFleetWise.ImportDecoderManifest+import Amazonka.IoTFleetWise.ImportSignalCatalog+import Amazonka.IoTFleetWise.Lens+import Amazonka.IoTFleetWise.ListCampaigns+import Amazonka.IoTFleetWise.ListDecoderManifestNetworkInterfaces+import Amazonka.IoTFleetWise.ListDecoderManifestSignals+import Amazonka.IoTFleetWise.ListDecoderManifests+import Amazonka.IoTFleetWise.ListFleets+import Amazonka.IoTFleetWise.ListFleetsForVehicle+import Amazonka.IoTFleetWise.ListModelManifestNodes+import Amazonka.IoTFleetWise.ListModelManifests+import Amazonka.IoTFleetWise.ListSignalCatalogNodes+import Amazonka.IoTFleetWise.ListSignalCatalogs+import Amazonka.IoTFleetWise.ListTagsForResource+import Amazonka.IoTFleetWise.ListVehicles+import Amazonka.IoTFleetWise.ListVehiclesInFleet+import Amazonka.IoTFleetWise.PutLoggingOptions+import Amazonka.IoTFleetWise.RegisterAccount+import Amazonka.IoTFleetWise.TagResource+import Amazonka.IoTFleetWise.Types+import Amazonka.IoTFleetWise.UntagResource+import Amazonka.IoTFleetWise.UpdateCampaign+import Amazonka.IoTFleetWise.UpdateDecoderManifest+import Amazonka.IoTFleetWise.UpdateFleet+import Amazonka.IoTFleetWise.UpdateModelManifest+import Amazonka.IoTFleetWise.UpdateSignalCatalog+import Amazonka.IoTFleetWise.UpdateVehicle+import Amazonka.IoTFleetWise.Waiters++-- $errors+-- Error matchers are designed for use with the functions provided by+-- <http://hackage.haskell.org/package/lens/docs/Control-Exception-Lens.html Control.Exception.Lens>.+-- This allows catching (and rethrowing) service specific errors returned+-- by 'IoTFleetWise'.++-- $operations+-- Some AWS operations return results that are incomplete and require subsequent+-- requests in order to obtain the entire result set. The process of sending+-- subsequent requests to continue where a previous request left off is called+-- pagination. For example, the 'ListObjects' operation of Amazon S3 returns up to+-- 1000 objects at a time, and you must send subsequent requests with the+-- appropriate Marker in order to retrieve the next page of results.+--+-- Operations that have an 'AWSPager' instance can transparently perform subsequent+-- requests, correctly setting Markers and other request facets to iterate through+-- the entire result set of a truncated API operation. Operations which support+-- this have an additional note in the documentation.+--+-- Many operations have the ability to filter results on the server side. See the+-- individual operation parameters for details.++-- $waiters+-- Waiters poll by repeatedly sending a request until some remote success condition+-- configured by the 'Wait' specification is fulfilled. The 'Wait' specification+-- determines how many attempts should be made, in addition to delay and retry strategies.
+ gen/Amazonka/IoTFleetWise/AssociateVehicleFleet.hs view
@@ -0,0 +1,176 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.AssociateVehicleFleet+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Adds, or associates, a vehicle with a fleet.+module Amazonka.IoTFleetWise.AssociateVehicleFleet+  ( -- * Creating a Request+    AssociateVehicleFleet (..),+    newAssociateVehicleFleet,++    -- * Request Lenses+    associateVehicleFleet_vehicleName,+    associateVehicleFleet_fleetId,++    -- * Destructuring the Response+    AssociateVehicleFleetResponse (..),+    newAssociateVehicleFleetResponse,++    -- * Response Lenses+    associateVehicleFleetResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTFleetWise.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newAssociateVehicleFleet' smart constructor.+data AssociateVehicleFleet = AssociateVehicleFleet'+  { -- | The unique ID of the vehicle to associate with the fleet.+    vehicleName :: Prelude.Text,+    -- | The ID of a fleet.+    fleetId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AssociateVehicleFleet' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'vehicleName', 'associateVehicleFleet_vehicleName' - The unique ID of the vehicle to associate with the fleet.+--+-- 'fleetId', 'associateVehicleFleet_fleetId' - The ID of a fleet.+newAssociateVehicleFleet ::+  -- | 'vehicleName'+  Prelude.Text ->+  -- | 'fleetId'+  Prelude.Text ->+  AssociateVehicleFleet+newAssociateVehicleFleet pVehicleName_ pFleetId_ =+  AssociateVehicleFleet'+    { vehicleName = pVehicleName_,+      fleetId = pFleetId_+    }++-- | The unique ID of the vehicle to associate with the fleet.+associateVehicleFleet_vehicleName :: Lens.Lens' AssociateVehicleFleet Prelude.Text+associateVehicleFleet_vehicleName = Lens.lens (\AssociateVehicleFleet' {vehicleName} -> vehicleName) (\s@AssociateVehicleFleet' {} a -> s {vehicleName = a} :: AssociateVehicleFleet)++-- | The ID of a fleet.+associateVehicleFleet_fleetId :: Lens.Lens' AssociateVehicleFleet Prelude.Text+associateVehicleFleet_fleetId = Lens.lens (\AssociateVehicleFleet' {fleetId} -> fleetId) (\s@AssociateVehicleFleet' {} a -> s {fleetId = a} :: AssociateVehicleFleet)++instance Core.AWSRequest AssociateVehicleFleet where+  type+    AWSResponse AssociateVehicleFleet =+      AssociateVehicleFleetResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          AssociateVehicleFleetResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable AssociateVehicleFleet where+  hashWithSalt _salt AssociateVehicleFleet' {..} =+    _salt+      `Prelude.hashWithSalt` vehicleName+      `Prelude.hashWithSalt` fleetId++instance Prelude.NFData AssociateVehicleFleet where+  rnf AssociateVehicleFleet' {..} =+    Prelude.rnf vehicleName+      `Prelude.seq` Prelude.rnf fleetId++instance Data.ToHeaders AssociateVehicleFleet where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "IoTAutobahnControlPlane.AssociateVehicleFleet" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON AssociateVehicleFleet where+  toJSON AssociateVehicleFleet' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("vehicleName" Data..= vehicleName),+            Prelude.Just ("fleetId" Data..= fleetId)+          ]+      )++instance Data.ToPath AssociateVehicleFleet where+  toPath = Prelude.const "/"++instance Data.ToQuery AssociateVehicleFleet where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newAssociateVehicleFleetResponse' smart constructor.+data AssociateVehicleFleetResponse = AssociateVehicleFleetResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AssociateVehicleFleetResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'associateVehicleFleetResponse_httpStatus' - The response's http status code.+newAssociateVehicleFleetResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  AssociateVehicleFleetResponse+newAssociateVehicleFleetResponse pHttpStatus_ =+  AssociateVehicleFleetResponse'+    { httpStatus =+        pHttpStatus_+    }++-- | The response's http status code.+associateVehicleFleetResponse_httpStatus :: Lens.Lens' AssociateVehicleFleetResponse Prelude.Int+associateVehicleFleetResponse_httpStatus = Lens.lens (\AssociateVehicleFleetResponse' {httpStatus} -> httpStatus) (\s@AssociateVehicleFleetResponse' {} a -> s {httpStatus = a} :: AssociateVehicleFleetResponse)++instance Prelude.NFData AssociateVehicleFleetResponse where+  rnf AssociateVehicleFleetResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/IoTFleetWise/BatchCreateVehicle.hs view
@@ -0,0 +1,194 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.BatchCreateVehicle+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a group, or batch, of vehicles.+--+-- You must specify a decoder manifest and a vehicle model (model manifest)+-- for each vehicle.+--+-- For more information, see+-- <https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/create-vehicles-cli.html Create multiple vehicles (AWS CLI)>+-- in the /Amazon Web Services IoT FleetWise Developer Guide/.+module Amazonka.IoTFleetWise.BatchCreateVehicle+  ( -- * Creating a Request+    BatchCreateVehicle (..),+    newBatchCreateVehicle,++    -- * Request Lenses+    batchCreateVehicle_vehicles,++    -- * Destructuring the Response+    BatchCreateVehicleResponse (..),+    newBatchCreateVehicleResponse,++    -- * Response Lenses+    batchCreateVehicleResponse_errors,+    batchCreateVehicleResponse_vehicles,+    batchCreateVehicleResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTFleetWise.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newBatchCreateVehicle' smart constructor.+data BatchCreateVehicle = BatchCreateVehicle'+  { -- | A list of information about each vehicle to create. For more+    -- information, see the API data type.+    vehicles :: [CreateVehicleRequestItem]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BatchCreateVehicle' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'vehicles', 'batchCreateVehicle_vehicles' - A list of information about each vehicle to create. For more+-- information, see the API data type.+newBatchCreateVehicle ::+  BatchCreateVehicle+newBatchCreateVehicle =+  BatchCreateVehicle' {vehicles = Prelude.mempty}++-- | A list of information about each vehicle to create. For more+-- information, see the API data type.+batchCreateVehicle_vehicles :: Lens.Lens' BatchCreateVehicle [CreateVehicleRequestItem]+batchCreateVehicle_vehicles = Lens.lens (\BatchCreateVehicle' {vehicles} -> vehicles) (\s@BatchCreateVehicle' {} a -> s {vehicles = a} :: BatchCreateVehicle) Prelude.. Lens.coerced++instance Core.AWSRequest BatchCreateVehicle where+  type+    AWSResponse BatchCreateVehicle =+      BatchCreateVehicleResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          BatchCreateVehicleResponse'+            Prelude.<$> (x Data..?> "errors" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "vehicles" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable BatchCreateVehicle where+  hashWithSalt _salt BatchCreateVehicle' {..} =+    _salt `Prelude.hashWithSalt` vehicles++instance Prelude.NFData BatchCreateVehicle where+  rnf BatchCreateVehicle' {..} = Prelude.rnf vehicles++instance Data.ToHeaders BatchCreateVehicle where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "IoTAutobahnControlPlane.BatchCreateVehicle" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON BatchCreateVehicle where+  toJSON BatchCreateVehicle' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("vehicles" Data..= vehicles)]+      )++instance Data.ToPath BatchCreateVehicle where+  toPath = Prelude.const "/"++instance Data.ToQuery BatchCreateVehicle where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newBatchCreateVehicleResponse' smart constructor.+data BatchCreateVehicleResponse = BatchCreateVehicleResponse'+  { -- | A list of information about creation errors, or an empty list if there+    -- aren\'t any errors.+    errors :: Prelude.Maybe [CreateVehicleError],+    -- | A list of information about a batch of created vehicles. For more+    -- information, see the API data type.+    vehicles :: Prelude.Maybe [CreateVehicleResponseItem],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BatchCreateVehicleResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'errors', 'batchCreateVehicleResponse_errors' - A list of information about creation errors, or an empty list if there+-- aren\'t any errors.+--+-- 'vehicles', 'batchCreateVehicleResponse_vehicles' - A list of information about a batch of created vehicles. For more+-- information, see the API data type.+--+-- 'httpStatus', 'batchCreateVehicleResponse_httpStatus' - The response's http status code.+newBatchCreateVehicleResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  BatchCreateVehicleResponse+newBatchCreateVehicleResponse pHttpStatus_ =+  BatchCreateVehicleResponse'+    { errors =+        Prelude.Nothing,+      vehicles = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A list of information about creation errors, or an empty list if there+-- aren\'t any errors.+batchCreateVehicleResponse_errors :: Lens.Lens' BatchCreateVehicleResponse (Prelude.Maybe [CreateVehicleError])+batchCreateVehicleResponse_errors = Lens.lens (\BatchCreateVehicleResponse' {errors} -> errors) (\s@BatchCreateVehicleResponse' {} a -> s {errors = a} :: BatchCreateVehicleResponse) Prelude.. Lens.mapping Lens.coerced++-- | A list of information about a batch of created vehicles. For more+-- information, see the API data type.+batchCreateVehicleResponse_vehicles :: Lens.Lens' BatchCreateVehicleResponse (Prelude.Maybe [CreateVehicleResponseItem])+batchCreateVehicleResponse_vehicles = Lens.lens (\BatchCreateVehicleResponse' {vehicles} -> vehicles) (\s@BatchCreateVehicleResponse' {} a -> s {vehicles = a} :: BatchCreateVehicleResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+batchCreateVehicleResponse_httpStatus :: Lens.Lens' BatchCreateVehicleResponse Prelude.Int+batchCreateVehicleResponse_httpStatus = Lens.lens (\BatchCreateVehicleResponse' {httpStatus} -> httpStatus) (\s@BatchCreateVehicleResponse' {} a -> s {httpStatus = a} :: BatchCreateVehicleResponse)++instance Prelude.NFData BatchCreateVehicleResponse where+  rnf BatchCreateVehicleResponse' {..} =+    Prelude.rnf errors+      `Prelude.seq` Prelude.rnf vehicles+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/IoTFleetWise/BatchUpdateVehicle.hs view
@@ -0,0 +1,197 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.BatchUpdateVehicle+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates a group, or batch, of vehicles.+--+-- You must specify a decoder manifest and a vehicle model (model manifest)+-- for each vehicle.+--+-- For more information, see+-- <https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/update-vehicles-cli.html Update multiple vehicles (AWS CLI)>+-- in the /Amazon Web Services IoT FleetWise Developer Guide/.+module Amazonka.IoTFleetWise.BatchUpdateVehicle+  ( -- * Creating a Request+    BatchUpdateVehicle (..),+    newBatchUpdateVehicle,++    -- * Request Lenses+    batchUpdateVehicle_vehicles,++    -- * Destructuring the Response+    BatchUpdateVehicleResponse (..),+    newBatchUpdateVehicleResponse,++    -- * Response Lenses+    batchUpdateVehicleResponse_errors,+    batchUpdateVehicleResponse_vehicles,+    batchUpdateVehicleResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTFleetWise.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newBatchUpdateVehicle' smart constructor.+data BatchUpdateVehicle = BatchUpdateVehicle'+  { -- | A list of information about the vehicles to update. For more+    -- information, see the API data type.+    vehicles :: [UpdateVehicleRequestItem]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BatchUpdateVehicle' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'vehicles', 'batchUpdateVehicle_vehicles' - A list of information about the vehicles to update. For more+-- information, see the API data type.+newBatchUpdateVehicle ::+  BatchUpdateVehicle+newBatchUpdateVehicle =+  BatchUpdateVehicle' {vehicles = Prelude.mempty}++-- | A list of information about the vehicles to update. For more+-- information, see the API data type.+batchUpdateVehicle_vehicles :: Lens.Lens' BatchUpdateVehicle [UpdateVehicleRequestItem]+batchUpdateVehicle_vehicles = Lens.lens (\BatchUpdateVehicle' {vehicles} -> vehicles) (\s@BatchUpdateVehicle' {} a -> s {vehicles = a} :: BatchUpdateVehicle) Prelude.. Lens.coerced++instance Core.AWSRequest BatchUpdateVehicle where+  type+    AWSResponse BatchUpdateVehicle =+      BatchUpdateVehicleResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          BatchUpdateVehicleResponse'+            Prelude.<$> (x Data..?> "errors" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "vehicles" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable BatchUpdateVehicle where+  hashWithSalt _salt BatchUpdateVehicle' {..} =+    _salt `Prelude.hashWithSalt` vehicles++instance Prelude.NFData BatchUpdateVehicle where+  rnf BatchUpdateVehicle' {..} = Prelude.rnf vehicles++instance Data.ToHeaders BatchUpdateVehicle where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "IoTAutobahnControlPlane.BatchUpdateVehicle" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON BatchUpdateVehicle where+  toJSON BatchUpdateVehicle' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("vehicles" Data..= vehicles)]+      )++instance Data.ToPath BatchUpdateVehicle where+  toPath = Prelude.const "/"++instance Data.ToQuery BatchUpdateVehicle where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newBatchUpdateVehicleResponse' smart constructor.+data BatchUpdateVehicleResponse = BatchUpdateVehicleResponse'+  { -- | A list of information about errors returned while updating a batch of+    -- vehicles, or, if there aren\'t any errors, an empty list.+    errors :: Prelude.Maybe [UpdateVehicleError],+    -- | A list of information about the batch of updated vehicles.+    --+    -- This list contains only unique IDs for the vehicles that were updated.+    vehicles :: Prelude.Maybe [UpdateVehicleResponseItem],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BatchUpdateVehicleResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'errors', 'batchUpdateVehicleResponse_errors' - A list of information about errors returned while updating a batch of+-- vehicles, or, if there aren\'t any errors, an empty list.+--+-- 'vehicles', 'batchUpdateVehicleResponse_vehicles' - A list of information about the batch of updated vehicles.+--+-- This list contains only unique IDs for the vehicles that were updated.+--+-- 'httpStatus', 'batchUpdateVehicleResponse_httpStatus' - The response's http status code.+newBatchUpdateVehicleResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  BatchUpdateVehicleResponse+newBatchUpdateVehicleResponse pHttpStatus_ =+  BatchUpdateVehicleResponse'+    { errors =+        Prelude.Nothing,+      vehicles = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A list of information about errors returned while updating a batch of+-- vehicles, or, if there aren\'t any errors, an empty list.+batchUpdateVehicleResponse_errors :: Lens.Lens' BatchUpdateVehicleResponse (Prelude.Maybe [UpdateVehicleError])+batchUpdateVehicleResponse_errors = Lens.lens (\BatchUpdateVehicleResponse' {errors} -> errors) (\s@BatchUpdateVehicleResponse' {} a -> s {errors = a} :: BatchUpdateVehicleResponse) Prelude.. Lens.mapping Lens.coerced++-- | A list of information about the batch of updated vehicles.+--+-- This list contains only unique IDs for the vehicles that were updated.+batchUpdateVehicleResponse_vehicles :: Lens.Lens' BatchUpdateVehicleResponse (Prelude.Maybe [UpdateVehicleResponseItem])+batchUpdateVehicleResponse_vehicles = Lens.lens (\BatchUpdateVehicleResponse' {vehicles} -> vehicles) (\s@BatchUpdateVehicleResponse' {} a -> s {vehicles = a} :: BatchUpdateVehicleResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+batchUpdateVehicleResponse_httpStatus :: Lens.Lens' BatchUpdateVehicleResponse Prelude.Int+batchUpdateVehicleResponse_httpStatus = Lens.lens (\BatchUpdateVehicleResponse' {httpStatus} -> httpStatus) (\s@BatchUpdateVehicleResponse' {} a -> s {httpStatus = a} :: BatchUpdateVehicleResponse)++instance Prelude.NFData BatchUpdateVehicleResponse where+  rnf BatchUpdateVehicleResponse' {..} =+    Prelude.rnf errors+      `Prelude.seq` Prelude.rnf vehicles+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/IoTFleetWise/CreateCampaign.hs view
@@ -0,0 +1,514 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.CreateCampaign+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates an orchestration of data collection rules. The Amazon Web+-- Services IoT FleetWise Edge Agent software running in vehicles uses+-- campaigns to decide how to collect and transfer data to the cloud. You+-- create campaigns in the cloud. After you or your team approve campaigns,+-- Amazon Web Services IoT FleetWise automatically deploys them to+-- vehicles.+--+-- For more information, see+-- <https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/campaigns.html Collect and transfer data with campaigns>+-- in the /Amazon Web Services IoT FleetWise Developer Guide/.+module Amazonka.IoTFleetWise.CreateCampaign+  ( -- * Creating a Request+    CreateCampaign (..),+    newCreateCampaign,++    -- * Request Lenses+    createCampaign_compression,+    createCampaign_dataExtraDimensions,+    createCampaign_description,+    createCampaign_diagnosticsMode,+    createCampaign_expiryTime,+    createCampaign_postTriggerCollectionDuration,+    createCampaign_priority,+    createCampaign_signalsToCollect,+    createCampaign_spoolingMode,+    createCampaign_startTime,+    createCampaign_tags,+    createCampaign_name,+    createCampaign_signalCatalogArn,+    createCampaign_targetArn,+    createCampaign_collectionScheme,++    -- * Destructuring the Response+    CreateCampaignResponse (..),+    newCreateCampaignResponse,++    -- * Response Lenses+    createCampaignResponse_arn,+    createCampaignResponse_name,+    createCampaignResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTFleetWise.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateCampaign' smart constructor.+data CreateCampaign = CreateCampaign'+  { -- | (Optional) Whether to compress signals before transmitting data to+    -- Amazon Web Services IoT FleetWise. If you don\'t want to compress the+    -- signals, use @OFF@. If it\'s not specified, @SNAPPY@ is used.+    --+    -- Default: @SNAPPY@+    compression :: Prelude.Maybe Compression,+    -- | (Optional) A list of vehicle attributes to associate with a campaign.+    --+    -- Enrich the data with specified vehicle attributes. For example, add+    -- @make@ and @model@ to the campaign, and Amazon Web Services IoT+    -- FleetWise will associate the data with those attributes as dimensions in+    -- Amazon Timestream. You can then query the data against @make@ and+    -- @model@.+    --+    -- Default: An empty array+    dataExtraDimensions :: Prelude.Maybe [Prelude.Text],+    -- | An optional description of the campaign to help identify its purpose.+    description :: Prelude.Maybe Prelude.Text,+    -- | (Optional) Option for a vehicle to send diagnostic trouble codes to+    -- Amazon Web Services IoT FleetWise. If you want to send diagnostic+    -- trouble codes, use @SEND_ACTIVE_DTCS@. If it\'s not specified, @OFF@ is+    -- used.+    --+    -- Default: @OFF@+    diagnosticsMode :: Prelude.Maybe DiagnosticsMode,+    -- | (Optional) The time the campaign expires, in seconds since epoch+    -- (January 1, 1970 at midnight UTC time). Vehicle data won\'t be collected+    -- after the campaign expires.+    --+    -- Default: 253402214400 (December 31, 9999, 00:00:00 UTC)+    expiryTime :: Prelude.Maybe Data.POSIX,+    -- | (Optional) How long (in milliseconds) to collect raw data after a+    -- triggering event initiates the collection. If it\'s not specified, @0@+    -- is used.+    --+    -- Default: @0@+    postTriggerCollectionDuration :: Prelude.Maybe Prelude.Natural,+    -- | (Optional) A number indicating the priority of one campaign over another+    -- campaign for a certain vehicle or fleet. A campaign with the lowest+    -- value is deployed to vehicles before any other campaigns. If it\'s not+    -- specified, @0@ is used.+    --+    -- Default: @0@+    priority :: Prelude.Maybe Prelude.Natural,+    -- | (Optional) A list of information about signals to collect.+    signalsToCollect :: Prelude.Maybe [SignalInformation],+    -- | (Optional) Whether to store collected data after a vehicle lost a+    -- connection with the cloud. After a connection is re-established, the+    -- data is automatically forwarded to Amazon Web Services IoT FleetWise. If+    -- you want to store collected data when a vehicle loses connection with+    -- the cloud, use @TO_DISK@. If it\'s not specified, @OFF@ is used.+    --+    -- Default: @OFF@+    spoolingMode :: Prelude.Maybe SpoolingMode,+    -- | (Optional) The time, in milliseconds, to deliver a campaign after it was+    -- approved. If it\'s not specified, @0@ is used.+    --+    -- Default: @0@+    startTime :: Prelude.Maybe Data.POSIX,+    -- | Metadata that can be used to manage the campaign.+    tags :: Prelude.Maybe [Tag],+    -- | The name of the campaign to create.+    name :: Prelude.Text,+    -- | (Optional) The Amazon Resource Name (ARN) of the signal catalog to+    -- associate with the campaign.+    signalCatalogArn :: Prelude.Text,+    -- | The ARN of the vehicle or fleet to deploy a campaign to.+    targetArn :: Prelude.Text,+    -- | The data collection scheme associated with the campaign. You can specify+    -- a scheme that collects data based on time or an event.+    collectionScheme :: CollectionScheme+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateCampaign' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'compression', 'createCampaign_compression' - (Optional) Whether to compress signals before transmitting data to+-- Amazon Web Services IoT FleetWise. If you don\'t want to compress the+-- signals, use @OFF@. If it\'s not specified, @SNAPPY@ is used.+--+-- Default: @SNAPPY@+--+-- 'dataExtraDimensions', 'createCampaign_dataExtraDimensions' - (Optional) A list of vehicle attributes to associate with a campaign.+--+-- Enrich the data with specified vehicle attributes. For example, add+-- @make@ and @model@ to the campaign, and Amazon Web Services IoT+-- FleetWise will associate the data with those attributes as dimensions in+-- Amazon Timestream. You can then query the data against @make@ and+-- @model@.+--+-- Default: An empty array+--+-- 'description', 'createCampaign_description' - An optional description of the campaign to help identify its purpose.+--+-- 'diagnosticsMode', 'createCampaign_diagnosticsMode' - (Optional) Option for a vehicle to send diagnostic trouble codes to+-- Amazon Web Services IoT FleetWise. If you want to send diagnostic+-- trouble codes, use @SEND_ACTIVE_DTCS@. If it\'s not specified, @OFF@ is+-- used.+--+-- Default: @OFF@+--+-- 'expiryTime', 'createCampaign_expiryTime' - (Optional) The time the campaign expires, in seconds since epoch+-- (January 1, 1970 at midnight UTC time). Vehicle data won\'t be collected+-- after the campaign expires.+--+-- Default: 253402214400 (December 31, 9999, 00:00:00 UTC)+--+-- 'postTriggerCollectionDuration', 'createCampaign_postTriggerCollectionDuration' - (Optional) How long (in milliseconds) to collect raw data after a+-- triggering event initiates the collection. If it\'s not specified, @0@+-- is used.+--+-- Default: @0@+--+-- 'priority', 'createCampaign_priority' - (Optional) A number indicating the priority of one campaign over another+-- campaign for a certain vehicle or fleet. A campaign with the lowest+-- value is deployed to vehicles before any other campaigns. If it\'s not+-- specified, @0@ is used.+--+-- Default: @0@+--+-- 'signalsToCollect', 'createCampaign_signalsToCollect' - (Optional) A list of information about signals to collect.+--+-- 'spoolingMode', 'createCampaign_spoolingMode' - (Optional) Whether to store collected data after a vehicle lost a+-- connection with the cloud. After a connection is re-established, the+-- data is automatically forwarded to Amazon Web Services IoT FleetWise. If+-- you want to store collected data when a vehicle loses connection with+-- the cloud, use @TO_DISK@. If it\'s not specified, @OFF@ is used.+--+-- Default: @OFF@+--+-- 'startTime', 'createCampaign_startTime' - (Optional) The time, in milliseconds, to deliver a campaign after it was+-- approved. If it\'s not specified, @0@ is used.+--+-- Default: @0@+--+-- 'tags', 'createCampaign_tags' - Metadata that can be used to manage the campaign.+--+-- 'name', 'createCampaign_name' - The name of the campaign to create.+--+-- 'signalCatalogArn', 'createCampaign_signalCatalogArn' - (Optional) The Amazon Resource Name (ARN) of the signal catalog to+-- associate with the campaign.+--+-- 'targetArn', 'createCampaign_targetArn' - The ARN of the vehicle or fleet to deploy a campaign to.+--+-- 'collectionScheme', 'createCampaign_collectionScheme' - The data collection scheme associated with the campaign. You can specify+-- a scheme that collects data based on time or an event.+newCreateCampaign ::+  -- | 'name'+  Prelude.Text ->+  -- | 'signalCatalogArn'+  Prelude.Text ->+  -- | 'targetArn'+  Prelude.Text ->+  -- | 'collectionScheme'+  CollectionScheme ->+  CreateCampaign+newCreateCampaign+  pName_+  pSignalCatalogArn_+  pTargetArn_+  pCollectionScheme_ =+    CreateCampaign'+      { compression = Prelude.Nothing,+        dataExtraDimensions = Prelude.Nothing,+        description = Prelude.Nothing,+        diagnosticsMode = Prelude.Nothing,+        expiryTime = Prelude.Nothing,+        postTriggerCollectionDuration = Prelude.Nothing,+        priority = Prelude.Nothing,+        signalsToCollect = Prelude.Nothing,+        spoolingMode = Prelude.Nothing,+        startTime = Prelude.Nothing,+        tags = Prelude.Nothing,+        name = pName_,+        signalCatalogArn = pSignalCatalogArn_,+        targetArn = pTargetArn_,+        collectionScheme = pCollectionScheme_+      }++-- | (Optional) Whether to compress signals before transmitting data to+-- Amazon Web Services IoT FleetWise. If you don\'t want to compress the+-- signals, use @OFF@. If it\'s not specified, @SNAPPY@ is used.+--+-- Default: @SNAPPY@+createCampaign_compression :: Lens.Lens' CreateCampaign (Prelude.Maybe Compression)+createCampaign_compression = Lens.lens (\CreateCampaign' {compression} -> compression) (\s@CreateCampaign' {} a -> s {compression = a} :: CreateCampaign)++-- | (Optional) A list of vehicle attributes to associate with a campaign.+--+-- Enrich the data with specified vehicle attributes. For example, add+-- @make@ and @model@ to the campaign, and Amazon Web Services IoT+-- FleetWise will associate the data with those attributes as dimensions in+-- Amazon Timestream. You can then query the data against @make@ and+-- @model@.+--+-- Default: An empty array+createCampaign_dataExtraDimensions :: Lens.Lens' CreateCampaign (Prelude.Maybe [Prelude.Text])+createCampaign_dataExtraDimensions = Lens.lens (\CreateCampaign' {dataExtraDimensions} -> dataExtraDimensions) (\s@CreateCampaign' {} a -> s {dataExtraDimensions = a} :: CreateCampaign) Prelude.. Lens.mapping Lens.coerced++-- | An optional description of the campaign to help identify its purpose.+createCampaign_description :: Lens.Lens' CreateCampaign (Prelude.Maybe Prelude.Text)+createCampaign_description = Lens.lens (\CreateCampaign' {description} -> description) (\s@CreateCampaign' {} a -> s {description = a} :: CreateCampaign)++-- | (Optional) Option for a vehicle to send diagnostic trouble codes to+-- Amazon Web Services IoT FleetWise. If you want to send diagnostic+-- trouble codes, use @SEND_ACTIVE_DTCS@. If it\'s not specified, @OFF@ is+-- used.+--+-- Default: @OFF@+createCampaign_diagnosticsMode :: Lens.Lens' CreateCampaign (Prelude.Maybe DiagnosticsMode)+createCampaign_diagnosticsMode = Lens.lens (\CreateCampaign' {diagnosticsMode} -> diagnosticsMode) (\s@CreateCampaign' {} a -> s {diagnosticsMode = a} :: CreateCampaign)++-- | (Optional) The time the campaign expires, in seconds since epoch+-- (January 1, 1970 at midnight UTC time). Vehicle data won\'t be collected+-- after the campaign expires.+--+-- Default: 253402214400 (December 31, 9999, 00:00:00 UTC)+createCampaign_expiryTime :: Lens.Lens' CreateCampaign (Prelude.Maybe Prelude.UTCTime)+createCampaign_expiryTime = Lens.lens (\CreateCampaign' {expiryTime} -> expiryTime) (\s@CreateCampaign' {} a -> s {expiryTime = a} :: CreateCampaign) Prelude.. Lens.mapping Data._Time++-- | (Optional) How long (in milliseconds) to collect raw data after a+-- triggering event initiates the collection. If it\'s not specified, @0@+-- is used.+--+-- Default: @0@+createCampaign_postTriggerCollectionDuration :: Lens.Lens' CreateCampaign (Prelude.Maybe Prelude.Natural)+createCampaign_postTriggerCollectionDuration = Lens.lens (\CreateCampaign' {postTriggerCollectionDuration} -> postTriggerCollectionDuration) (\s@CreateCampaign' {} a -> s {postTriggerCollectionDuration = a} :: CreateCampaign)++-- | (Optional) A number indicating the priority of one campaign over another+-- campaign for a certain vehicle or fleet. A campaign with the lowest+-- value is deployed to vehicles before any other campaigns. If it\'s not+-- specified, @0@ is used.+--+-- Default: @0@+createCampaign_priority :: Lens.Lens' CreateCampaign (Prelude.Maybe Prelude.Natural)+createCampaign_priority = Lens.lens (\CreateCampaign' {priority} -> priority) (\s@CreateCampaign' {} a -> s {priority = a} :: CreateCampaign)++-- | (Optional) A list of information about signals to collect.+createCampaign_signalsToCollect :: Lens.Lens' CreateCampaign (Prelude.Maybe [SignalInformation])+createCampaign_signalsToCollect = Lens.lens (\CreateCampaign' {signalsToCollect} -> signalsToCollect) (\s@CreateCampaign' {} a -> s {signalsToCollect = a} :: CreateCampaign) Prelude.. Lens.mapping Lens.coerced++-- | (Optional) Whether to store collected data after a vehicle lost a+-- connection with the cloud. After a connection is re-established, the+-- data is automatically forwarded to Amazon Web Services IoT FleetWise. If+-- you want to store collected data when a vehicle loses connection with+-- the cloud, use @TO_DISK@. If it\'s not specified, @OFF@ is used.+--+-- Default: @OFF@+createCampaign_spoolingMode :: Lens.Lens' CreateCampaign (Prelude.Maybe SpoolingMode)+createCampaign_spoolingMode = Lens.lens (\CreateCampaign' {spoolingMode} -> spoolingMode) (\s@CreateCampaign' {} a -> s {spoolingMode = a} :: CreateCampaign)++-- | (Optional) The time, in milliseconds, to deliver a campaign after it was+-- approved. If it\'s not specified, @0@ is used.+--+-- Default: @0@+createCampaign_startTime :: Lens.Lens' CreateCampaign (Prelude.Maybe Prelude.UTCTime)+createCampaign_startTime = Lens.lens (\CreateCampaign' {startTime} -> startTime) (\s@CreateCampaign' {} a -> s {startTime = a} :: CreateCampaign) Prelude.. Lens.mapping Data._Time++-- | Metadata that can be used to manage the campaign.+createCampaign_tags :: Lens.Lens' CreateCampaign (Prelude.Maybe [Tag])+createCampaign_tags = Lens.lens (\CreateCampaign' {tags} -> tags) (\s@CreateCampaign' {} a -> s {tags = a} :: CreateCampaign) Prelude.. Lens.mapping Lens.coerced++-- | The name of the campaign to create.+createCampaign_name :: Lens.Lens' CreateCampaign Prelude.Text+createCampaign_name = Lens.lens (\CreateCampaign' {name} -> name) (\s@CreateCampaign' {} a -> s {name = a} :: CreateCampaign)++-- | (Optional) The Amazon Resource Name (ARN) of the signal catalog to+-- associate with the campaign.+createCampaign_signalCatalogArn :: Lens.Lens' CreateCampaign Prelude.Text+createCampaign_signalCatalogArn = Lens.lens (\CreateCampaign' {signalCatalogArn} -> signalCatalogArn) (\s@CreateCampaign' {} a -> s {signalCatalogArn = a} :: CreateCampaign)++-- | The ARN of the vehicle or fleet to deploy a campaign to.+createCampaign_targetArn :: Lens.Lens' CreateCampaign Prelude.Text+createCampaign_targetArn = Lens.lens (\CreateCampaign' {targetArn} -> targetArn) (\s@CreateCampaign' {} a -> s {targetArn = a} :: CreateCampaign)++-- | The data collection scheme associated with the campaign. You can specify+-- a scheme that collects data based on time or an event.+createCampaign_collectionScheme :: Lens.Lens' CreateCampaign CollectionScheme+createCampaign_collectionScheme = Lens.lens (\CreateCampaign' {collectionScheme} -> collectionScheme) (\s@CreateCampaign' {} a -> s {collectionScheme = a} :: CreateCampaign)++instance Core.AWSRequest CreateCampaign where+  type+    AWSResponse CreateCampaign =+      CreateCampaignResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateCampaignResponse'+            Prelude.<$> (x Data..?> "arn")+            Prelude.<*> (x Data..?> "name")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateCampaign where+  hashWithSalt _salt CreateCampaign' {..} =+    _salt+      `Prelude.hashWithSalt` compression+      `Prelude.hashWithSalt` dataExtraDimensions+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` diagnosticsMode+      `Prelude.hashWithSalt` expiryTime+      `Prelude.hashWithSalt` postTriggerCollectionDuration+      `Prelude.hashWithSalt` priority+      `Prelude.hashWithSalt` signalsToCollect+      `Prelude.hashWithSalt` spoolingMode+      `Prelude.hashWithSalt` startTime+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` signalCatalogArn+      `Prelude.hashWithSalt` targetArn+      `Prelude.hashWithSalt` collectionScheme++instance Prelude.NFData CreateCampaign where+  rnf CreateCampaign' {..} =+    Prelude.rnf compression+      `Prelude.seq` Prelude.rnf dataExtraDimensions+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf diagnosticsMode+      `Prelude.seq` Prelude.rnf expiryTime+      `Prelude.seq` Prelude.rnf postTriggerCollectionDuration+      `Prelude.seq` Prelude.rnf priority+      `Prelude.seq` Prelude.rnf signalsToCollect+      `Prelude.seq` Prelude.rnf spoolingMode+      `Prelude.seq` Prelude.rnf startTime+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf signalCatalogArn+      `Prelude.seq` Prelude.rnf targetArn+      `Prelude.seq` Prelude.rnf collectionScheme++instance Data.ToHeaders CreateCampaign where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "IoTAutobahnControlPlane.CreateCampaign" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateCampaign where+  toJSON CreateCampaign' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("compression" Data..=) Prelude.<$> compression,+            ("dataExtraDimensions" Data..=)+              Prelude.<$> dataExtraDimensions,+            ("description" Data..=) Prelude.<$> description,+            ("diagnosticsMode" Data..=)+              Prelude.<$> diagnosticsMode,+            ("expiryTime" Data..=) Prelude.<$> expiryTime,+            ("postTriggerCollectionDuration" Data..=)+              Prelude.<$> postTriggerCollectionDuration,+            ("priority" Data..=) Prelude.<$> priority,+            ("signalsToCollect" Data..=)+              Prelude.<$> signalsToCollect,+            ("spoolingMode" Data..=) Prelude.<$> spoolingMode,+            ("startTime" Data..=) Prelude.<$> startTime,+            ("tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("name" Data..= name),+            Prelude.Just+              ("signalCatalogArn" Data..= signalCatalogArn),+            Prelude.Just ("targetArn" Data..= targetArn),+            Prelude.Just+              ("collectionScheme" Data..= collectionScheme)+          ]+      )++instance Data.ToPath CreateCampaign where+  toPath = Prelude.const "/"++instance Data.ToQuery CreateCampaign where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateCampaignResponse' smart constructor.+data CreateCampaignResponse = CreateCampaignResponse'+  { -- | The ARN of the created campaign.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The name of the created campaign.+    name :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateCampaignResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'createCampaignResponse_arn' - The ARN of the created campaign.+--+-- 'name', 'createCampaignResponse_name' - The name of the created campaign.+--+-- 'httpStatus', 'createCampaignResponse_httpStatus' - The response's http status code.+newCreateCampaignResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateCampaignResponse+newCreateCampaignResponse pHttpStatus_ =+  CreateCampaignResponse'+    { arn = Prelude.Nothing,+      name = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The ARN of the created campaign.+createCampaignResponse_arn :: Lens.Lens' CreateCampaignResponse (Prelude.Maybe Prelude.Text)+createCampaignResponse_arn = Lens.lens (\CreateCampaignResponse' {arn} -> arn) (\s@CreateCampaignResponse' {} a -> s {arn = a} :: CreateCampaignResponse)++-- | The name of the created campaign.+createCampaignResponse_name :: Lens.Lens' CreateCampaignResponse (Prelude.Maybe Prelude.Text)+createCampaignResponse_name = Lens.lens (\CreateCampaignResponse' {name} -> name) (\s@CreateCampaignResponse' {} a -> s {name = a} :: CreateCampaignResponse)++-- | The response's http status code.+createCampaignResponse_httpStatus :: Lens.Lens' CreateCampaignResponse Prelude.Int+createCampaignResponse_httpStatus = Lens.lens (\CreateCampaignResponse' {httpStatus} -> httpStatus) (\s@CreateCampaignResponse' {} a -> s {httpStatus = a} :: CreateCampaignResponse)++instance Prelude.NFData CreateCampaignResponse where+  rnf CreateCampaignResponse' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/IoTFleetWise/CreateDecoderManifest.hs view
@@ -0,0 +1,272 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.CreateDecoderManifest+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates the decoder manifest associated with a model manifest. To create+-- a decoder manifest, the following must be true:+--+-- -   Every signal decoder has a unique name.+--+-- -   Each signal decoder is associated with a network interface.+--+-- -   Each network interface has a unique ID.+--+-- -   The signal decoders are specified in the model manifest.+module Amazonka.IoTFleetWise.CreateDecoderManifest+  ( -- * Creating a Request+    CreateDecoderManifest (..),+    newCreateDecoderManifest,++    -- * Request Lenses+    createDecoderManifest_description,+    createDecoderManifest_networkInterfaces,+    createDecoderManifest_signalDecoders,+    createDecoderManifest_tags,+    createDecoderManifest_name,+    createDecoderManifest_modelManifestArn,++    -- * Destructuring the Response+    CreateDecoderManifestResponse (..),+    newCreateDecoderManifestResponse,++    -- * Response Lenses+    createDecoderManifestResponse_httpStatus,+    createDecoderManifestResponse_name,+    createDecoderManifestResponse_arn,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTFleetWise.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateDecoderManifest' smart constructor.+data CreateDecoderManifest = CreateDecoderManifest'+  { -- | A brief description of the decoder manifest.+    description :: Prelude.Maybe Prelude.Text,+    -- | A list of information about available network interfaces.+    networkInterfaces :: Prelude.Maybe (Prelude.NonEmpty NetworkInterface),+    -- | A list of information about signal decoders.+    signalDecoders :: Prelude.Maybe (Prelude.NonEmpty SignalDecoder),+    -- | Metadata that can be used to manage the decoder manifest.+    tags :: Prelude.Maybe [Tag],+    -- | The unique name of the decoder manifest to create.+    name :: Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the vehicle model (model manifest).+    modelManifestArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateDecoderManifest' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'description', 'createDecoderManifest_description' - A brief description of the decoder manifest.+--+-- 'networkInterfaces', 'createDecoderManifest_networkInterfaces' - A list of information about available network interfaces.+--+-- 'signalDecoders', 'createDecoderManifest_signalDecoders' - A list of information about signal decoders.+--+-- 'tags', 'createDecoderManifest_tags' - Metadata that can be used to manage the decoder manifest.+--+-- 'name', 'createDecoderManifest_name' - The unique name of the decoder manifest to create.+--+-- 'modelManifestArn', 'createDecoderManifest_modelManifestArn' - The Amazon Resource Name (ARN) of the vehicle model (model manifest).+newCreateDecoderManifest ::+  -- | 'name'+  Prelude.Text ->+  -- | 'modelManifestArn'+  Prelude.Text ->+  CreateDecoderManifest+newCreateDecoderManifest pName_ pModelManifestArn_ =+  CreateDecoderManifest'+    { description =+        Prelude.Nothing,+      networkInterfaces = Prelude.Nothing,+      signalDecoders = Prelude.Nothing,+      tags = Prelude.Nothing,+      name = pName_,+      modelManifestArn = pModelManifestArn_+    }++-- | A brief description of the decoder manifest.+createDecoderManifest_description :: Lens.Lens' CreateDecoderManifest (Prelude.Maybe Prelude.Text)+createDecoderManifest_description = Lens.lens (\CreateDecoderManifest' {description} -> description) (\s@CreateDecoderManifest' {} a -> s {description = a} :: CreateDecoderManifest)++-- | A list of information about available network interfaces.+createDecoderManifest_networkInterfaces :: Lens.Lens' CreateDecoderManifest (Prelude.Maybe (Prelude.NonEmpty NetworkInterface))+createDecoderManifest_networkInterfaces = Lens.lens (\CreateDecoderManifest' {networkInterfaces} -> networkInterfaces) (\s@CreateDecoderManifest' {} a -> s {networkInterfaces = a} :: CreateDecoderManifest) Prelude.. Lens.mapping Lens.coerced++-- | A list of information about signal decoders.+createDecoderManifest_signalDecoders :: Lens.Lens' CreateDecoderManifest (Prelude.Maybe (Prelude.NonEmpty SignalDecoder))+createDecoderManifest_signalDecoders = Lens.lens (\CreateDecoderManifest' {signalDecoders} -> signalDecoders) (\s@CreateDecoderManifest' {} a -> s {signalDecoders = a} :: CreateDecoderManifest) Prelude.. Lens.mapping Lens.coerced++-- | Metadata that can be used to manage the decoder manifest.+createDecoderManifest_tags :: Lens.Lens' CreateDecoderManifest (Prelude.Maybe [Tag])+createDecoderManifest_tags = Lens.lens (\CreateDecoderManifest' {tags} -> tags) (\s@CreateDecoderManifest' {} a -> s {tags = a} :: CreateDecoderManifest) Prelude.. Lens.mapping Lens.coerced++-- | The unique name of the decoder manifest to create.+createDecoderManifest_name :: Lens.Lens' CreateDecoderManifest Prelude.Text+createDecoderManifest_name = Lens.lens (\CreateDecoderManifest' {name} -> name) (\s@CreateDecoderManifest' {} a -> s {name = a} :: CreateDecoderManifest)++-- | The Amazon Resource Name (ARN) of the vehicle model (model manifest).+createDecoderManifest_modelManifestArn :: Lens.Lens' CreateDecoderManifest Prelude.Text+createDecoderManifest_modelManifestArn = Lens.lens (\CreateDecoderManifest' {modelManifestArn} -> modelManifestArn) (\s@CreateDecoderManifest' {} a -> s {modelManifestArn = a} :: CreateDecoderManifest)++instance Core.AWSRequest CreateDecoderManifest where+  type+    AWSResponse CreateDecoderManifest =+      CreateDecoderManifestResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateDecoderManifestResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "name")+            Prelude.<*> (x Data..:> "arn")+      )++instance Prelude.Hashable CreateDecoderManifest where+  hashWithSalt _salt CreateDecoderManifest' {..} =+    _salt+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` networkInterfaces+      `Prelude.hashWithSalt` signalDecoders+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` modelManifestArn++instance Prelude.NFData CreateDecoderManifest where+  rnf CreateDecoderManifest' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf networkInterfaces+      `Prelude.seq` Prelude.rnf signalDecoders+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf modelManifestArn++instance Data.ToHeaders CreateDecoderManifest where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "IoTAutobahnControlPlane.CreateDecoderManifest" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateDecoderManifest where+  toJSON CreateDecoderManifest' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("description" Data..=) Prelude.<$> description,+            ("networkInterfaces" Data..=)+              Prelude.<$> networkInterfaces,+            ("signalDecoders" Data..=)+              Prelude.<$> signalDecoders,+            ("tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("name" Data..= name),+            Prelude.Just+              ("modelManifestArn" Data..= modelManifestArn)+          ]+      )++instance Data.ToPath CreateDecoderManifest where+  toPath = Prelude.const "/"++instance Data.ToQuery CreateDecoderManifest where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateDecoderManifestResponse' smart constructor.+data CreateDecoderManifestResponse = CreateDecoderManifestResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The name of the created decoder manifest.+    name :: Prelude.Text,+    -- | The ARN of the created decoder manifest.+    arn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateDecoderManifestResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'createDecoderManifestResponse_httpStatus' - The response's http status code.+--+-- 'name', 'createDecoderManifestResponse_name' - The name of the created decoder manifest.+--+-- 'arn', 'createDecoderManifestResponse_arn' - The ARN of the created decoder manifest.+newCreateDecoderManifestResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'name'+  Prelude.Text ->+  -- | 'arn'+  Prelude.Text ->+  CreateDecoderManifestResponse+newCreateDecoderManifestResponse+  pHttpStatus_+  pName_+  pArn_ =+    CreateDecoderManifestResponse'+      { httpStatus =+          pHttpStatus_,+        name = pName_,+        arn = pArn_+      }++-- | The response's http status code.+createDecoderManifestResponse_httpStatus :: Lens.Lens' CreateDecoderManifestResponse Prelude.Int+createDecoderManifestResponse_httpStatus = Lens.lens (\CreateDecoderManifestResponse' {httpStatus} -> httpStatus) (\s@CreateDecoderManifestResponse' {} a -> s {httpStatus = a} :: CreateDecoderManifestResponse)++-- | The name of the created decoder manifest.+createDecoderManifestResponse_name :: Lens.Lens' CreateDecoderManifestResponse Prelude.Text+createDecoderManifestResponse_name = Lens.lens (\CreateDecoderManifestResponse' {name} -> name) (\s@CreateDecoderManifestResponse' {} a -> s {name = a} :: CreateDecoderManifestResponse)++-- | The ARN of the created decoder manifest.+createDecoderManifestResponse_arn :: Lens.Lens' CreateDecoderManifestResponse Prelude.Text+createDecoderManifestResponse_arn = Lens.lens (\CreateDecoderManifestResponse' {arn} -> arn) (\s@CreateDecoderManifestResponse' {} a -> s {arn = a} :: CreateDecoderManifestResponse)++instance Prelude.NFData CreateDecoderManifestResponse where+  rnf CreateDecoderManifestResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf arn
+ gen/Amazonka/IoTFleetWise/CreateFleet.hs view
@@ -0,0 +1,235 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.CreateFleet+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a fleet that represents a group of vehicles.+--+-- You must create both a signal catalog and vehicles before you can create+-- a fleet.+--+-- For more information, see+-- <https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/fleets.html Fleets>+-- in the /Amazon Web Services IoT FleetWise Developer Guide/.+module Amazonka.IoTFleetWise.CreateFleet+  ( -- * Creating a Request+    CreateFleet (..),+    newCreateFleet,++    -- * Request Lenses+    createFleet_description,+    createFleet_tags,+    createFleet_fleetId,+    createFleet_signalCatalogArn,++    -- * Destructuring the Response+    CreateFleetResponse (..),+    newCreateFleetResponse,++    -- * Response Lenses+    createFleetResponse_httpStatus,+    createFleetResponse_id,+    createFleetResponse_arn,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTFleetWise.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateFleet' smart constructor.+data CreateFleet = CreateFleet'+  { -- | A brief description of the fleet to create.+    description :: Prelude.Maybe Prelude.Text,+    -- | Metadata that can be used to manage the fleet.+    tags :: Prelude.Maybe [Tag],+    -- | The unique ID of the fleet to create.+    fleetId :: Prelude.Text,+    -- | The Amazon Resource Name (ARN) of a signal catalog.+    signalCatalogArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateFleet' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'description', 'createFleet_description' - A brief description of the fleet to create.+--+-- 'tags', 'createFleet_tags' - Metadata that can be used to manage the fleet.+--+-- 'fleetId', 'createFleet_fleetId' - The unique ID of the fleet to create.+--+-- 'signalCatalogArn', 'createFleet_signalCatalogArn' - The Amazon Resource Name (ARN) of a signal catalog.+newCreateFleet ::+  -- | 'fleetId'+  Prelude.Text ->+  -- | 'signalCatalogArn'+  Prelude.Text ->+  CreateFleet+newCreateFleet pFleetId_ pSignalCatalogArn_ =+  CreateFleet'+    { description = Prelude.Nothing,+      tags = Prelude.Nothing,+      fleetId = pFleetId_,+      signalCatalogArn = pSignalCatalogArn_+    }++-- | A brief description of the fleet to create.+createFleet_description :: Lens.Lens' CreateFleet (Prelude.Maybe Prelude.Text)+createFleet_description = Lens.lens (\CreateFleet' {description} -> description) (\s@CreateFleet' {} a -> s {description = a} :: CreateFleet)++-- | Metadata that can be used to manage the fleet.+createFleet_tags :: Lens.Lens' CreateFleet (Prelude.Maybe [Tag])+createFleet_tags = Lens.lens (\CreateFleet' {tags} -> tags) (\s@CreateFleet' {} a -> s {tags = a} :: CreateFleet) Prelude.. Lens.mapping Lens.coerced++-- | The unique ID of the fleet to create.+createFleet_fleetId :: Lens.Lens' CreateFleet Prelude.Text+createFleet_fleetId = Lens.lens (\CreateFleet' {fleetId} -> fleetId) (\s@CreateFleet' {} a -> s {fleetId = a} :: CreateFleet)++-- | The Amazon Resource Name (ARN) of a signal catalog.+createFleet_signalCatalogArn :: Lens.Lens' CreateFleet Prelude.Text+createFleet_signalCatalogArn = Lens.lens (\CreateFleet' {signalCatalogArn} -> signalCatalogArn) (\s@CreateFleet' {} a -> s {signalCatalogArn = a} :: CreateFleet)++instance Core.AWSRequest CreateFleet where+  type AWSResponse CreateFleet = CreateFleetResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateFleetResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "id")+            Prelude.<*> (x Data..:> "arn")+      )++instance Prelude.Hashable CreateFleet where+  hashWithSalt _salt CreateFleet' {..} =+    _salt+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` fleetId+      `Prelude.hashWithSalt` signalCatalogArn++instance Prelude.NFData CreateFleet where+  rnf CreateFleet' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf fleetId+      `Prelude.seq` Prelude.rnf signalCatalogArn++instance Data.ToHeaders CreateFleet where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "IoTAutobahnControlPlane.CreateFleet" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateFleet where+  toJSON CreateFleet' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("description" Data..=) Prelude.<$> description,+            ("tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("fleetId" Data..= fleetId),+            Prelude.Just+              ("signalCatalogArn" Data..= signalCatalogArn)+          ]+      )++instance Data.ToPath CreateFleet where+  toPath = Prelude.const "/"++instance Data.ToQuery CreateFleet where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateFleetResponse' smart constructor.+data CreateFleetResponse = CreateFleetResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The ID of the created fleet.+    id :: Prelude.Text,+    -- | The ARN of the created fleet.+    arn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateFleetResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'createFleetResponse_httpStatus' - The response's http status code.+--+-- 'id', 'createFleetResponse_id' - The ID of the created fleet.+--+-- 'arn', 'createFleetResponse_arn' - The ARN of the created fleet.+newCreateFleetResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'id'+  Prelude.Text ->+  -- | 'arn'+  Prelude.Text ->+  CreateFleetResponse+newCreateFleetResponse pHttpStatus_ pId_ pArn_ =+  CreateFleetResponse'+    { httpStatus = pHttpStatus_,+      id = pId_,+      arn = pArn_+    }++-- | The response's http status code.+createFleetResponse_httpStatus :: Lens.Lens' CreateFleetResponse Prelude.Int+createFleetResponse_httpStatus = Lens.lens (\CreateFleetResponse' {httpStatus} -> httpStatus) (\s@CreateFleetResponse' {} a -> s {httpStatus = a} :: CreateFleetResponse)++-- | The ID of the created fleet.+createFleetResponse_id :: Lens.Lens' CreateFleetResponse Prelude.Text+createFleetResponse_id = Lens.lens (\CreateFleetResponse' {id} -> id) (\s@CreateFleetResponse' {} a -> s {id = a} :: CreateFleetResponse)++-- | The ARN of the created fleet.+createFleetResponse_arn :: Lens.Lens' CreateFleetResponse Prelude.Text+createFleetResponse_arn = Lens.lens (\CreateFleetResponse' {arn} -> arn) (\s@CreateFleetResponse' {} a -> s {arn = a} :: CreateFleetResponse)++instance Prelude.NFData CreateFleetResponse where+  rnf CreateFleetResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf arn
+ gen/Amazonka/IoTFleetWise/CreateModelManifest.hs view
@@ -0,0 +1,252 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.CreateModelManifest+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a vehicle model (model manifest) that specifies signals+-- (attributes, branches, sensors, and actuators).+--+-- For more information, see+-- <https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/vehicle-models.html Vehicle models>+-- in the /Amazon Web Services IoT FleetWise Developer Guide/.+module Amazonka.IoTFleetWise.CreateModelManifest+  ( -- * Creating a Request+    CreateModelManifest (..),+    newCreateModelManifest,++    -- * Request Lenses+    createModelManifest_description,+    createModelManifest_tags,+    createModelManifest_name,+    createModelManifest_nodes,+    createModelManifest_signalCatalogArn,++    -- * Destructuring the Response+    CreateModelManifestResponse (..),+    newCreateModelManifestResponse,++    -- * Response Lenses+    createModelManifestResponse_httpStatus,+    createModelManifestResponse_name,+    createModelManifestResponse_arn,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTFleetWise.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateModelManifest' smart constructor.+data CreateModelManifest = CreateModelManifest'+  { -- | A brief description of the vehicle model.+    description :: Prelude.Maybe Prelude.Text,+    -- | Metadata that can be used to manage the vehicle model.+    tags :: Prelude.Maybe [Tag],+    -- | The name of the vehicle model to create.+    name :: Prelude.Text,+    -- | A list of nodes, which are a general abstraction of signals.+    nodes :: [Prelude.Text],+    -- | The Amazon Resource Name (ARN) of a signal catalog.+    signalCatalogArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateModelManifest' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'description', 'createModelManifest_description' - A brief description of the vehicle model.+--+-- 'tags', 'createModelManifest_tags' - Metadata that can be used to manage the vehicle model.+--+-- 'name', 'createModelManifest_name' - The name of the vehicle model to create.+--+-- 'nodes', 'createModelManifest_nodes' - A list of nodes, which are a general abstraction of signals.+--+-- 'signalCatalogArn', 'createModelManifest_signalCatalogArn' - The Amazon Resource Name (ARN) of a signal catalog.+newCreateModelManifest ::+  -- | 'name'+  Prelude.Text ->+  -- | 'signalCatalogArn'+  Prelude.Text ->+  CreateModelManifest+newCreateModelManifest pName_ pSignalCatalogArn_ =+  CreateModelManifest'+    { description = Prelude.Nothing,+      tags = Prelude.Nothing,+      name = pName_,+      nodes = Prelude.mempty,+      signalCatalogArn = pSignalCatalogArn_+    }++-- | A brief description of the vehicle model.+createModelManifest_description :: Lens.Lens' CreateModelManifest (Prelude.Maybe Prelude.Text)+createModelManifest_description = Lens.lens (\CreateModelManifest' {description} -> description) (\s@CreateModelManifest' {} a -> s {description = a} :: CreateModelManifest)++-- | Metadata that can be used to manage the vehicle model.+createModelManifest_tags :: Lens.Lens' CreateModelManifest (Prelude.Maybe [Tag])+createModelManifest_tags = Lens.lens (\CreateModelManifest' {tags} -> tags) (\s@CreateModelManifest' {} a -> s {tags = a} :: CreateModelManifest) Prelude.. Lens.mapping Lens.coerced++-- | The name of the vehicle model to create.+createModelManifest_name :: Lens.Lens' CreateModelManifest Prelude.Text+createModelManifest_name = Lens.lens (\CreateModelManifest' {name} -> name) (\s@CreateModelManifest' {} a -> s {name = a} :: CreateModelManifest)++-- | A list of nodes, which are a general abstraction of signals.+createModelManifest_nodes :: Lens.Lens' CreateModelManifest [Prelude.Text]+createModelManifest_nodes = Lens.lens (\CreateModelManifest' {nodes} -> nodes) (\s@CreateModelManifest' {} a -> s {nodes = a} :: CreateModelManifest) Prelude.. Lens.coerced++-- | The Amazon Resource Name (ARN) of a signal catalog.+createModelManifest_signalCatalogArn :: Lens.Lens' CreateModelManifest Prelude.Text+createModelManifest_signalCatalogArn = Lens.lens (\CreateModelManifest' {signalCatalogArn} -> signalCatalogArn) (\s@CreateModelManifest' {} a -> s {signalCatalogArn = a} :: CreateModelManifest)++instance Core.AWSRequest CreateModelManifest where+  type+    AWSResponse CreateModelManifest =+      CreateModelManifestResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateModelManifestResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "name")+            Prelude.<*> (x Data..:> "arn")+      )++instance Prelude.Hashable CreateModelManifest where+  hashWithSalt _salt CreateModelManifest' {..} =+    _salt+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` nodes+      `Prelude.hashWithSalt` signalCatalogArn++instance Prelude.NFData CreateModelManifest where+  rnf CreateModelManifest' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf nodes+      `Prelude.seq` Prelude.rnf signalCatalogArn++instance Data.ToHeaders CreateModelManifest where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "IoTAutobahnControlPlane.CreateModelManifest" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateModelManifest where+  toJSON CreateModelManifest' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("description" Data..=) Prelude.<$> description,+            ("tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("name" Data..= name),+            Prelude.Just ("nodes" Data..= nodes),+            Prelude.Just+              ("signalCatalogArn" Data..= signalCatalogArn)+          ]+      )++instance Data.ToPath CreateModelManifest where+  toPath = Prelude.const "/"++instance Data.ToQuery CreateModelManifest where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateModelManifestResponse' smart constructor.+data CreateModelManifestResponse = CreateModelManifestResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The name of the created vehicle model.+    name :: Prelude.Text,+    -- | The ARN of the created vehicle model.+    arn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateModelManifestResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'createModelManifestResponse_httpStatus' - The response's http status code.+--+-- 'name', 'createModelManifestResponse_name' - The name of the created vehicle model.+--+-- 'arn', 'createModelManifestResponse_arn' - The ARN of the created vehicle model.+newCreateModelManifestResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'name'+  Prelude.Text ->+  -- | 'arn'+  Prelude.Text ->+  CreateModelManifestResponse+newCreateModelManifestResponse+  pHttpStatus_+  pName_+  pArn_ =+    CreateModelManifestResponse'+      { httpStatus =+          pHttpStatus_,+        name = pName_,+        arn = pArn_+      }++-- | The response's http status code.+createModelManifestResponse_httpStatus :: Lens.Lens' CreateModelManifestResponse Prelude.Int+createModelManifestResponse_httpStatus = Lens.lens (\CreateModelManifestResponse' {httpStatus} -> httpStatus) (\s@CreateModelManifestResponse' {} a -> s {httpStatus = a} :: CreateModelManifestResponse)++-- | The name of the created vehicle model.+createModelManifestResponse_name :: Lens.Lens' CreateModelManifestResponse Prelude.Text+createModelManifestResponse_name = Lens.lens (\CreateModelManifestResponse' {name} -> name) (\s@CreateModelManifestResponse' {} a -> s {name = a} :: CreateModelManifestResponse)++-- | The ARN of the created vehicle model.+createModelManifestResponse_arn :: Lens.Lens' CreateModelManifestResponse Prelude.Text+createModelManifestResponse_arn = Lens.lens (\CreateModelManifestResponse' {arn} -> arn) (\s@CreateModelManifestResponse' {} a -> s {arn = a} :: CreateModelManifestResponse)++instance Prelude.NFData CreateModelManifestResponse where+  rnf CreateModelManifestResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf arn
+ gen/Amazonka/IoTFleetWise/CreateSignalCatalog.hs view
@@ -0,0 +1,235 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.CreateSignalCatalog+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a collection of standardized signals that can be reused to+-- create vehicle models.+module Amazonka.IoTFleetWise.CreateSignalCatalog+  ( -- * Creating a Request+    CreateSignalCatalog (..),+    newCreateSignalCatalog,++    -- * Request Lenses+    createSignalCatalog_description,+    createSignalCatalog_nodes,+    createSignalCatalog_tags,+    createSignalCatalog_name,++    -- * Destructuring the Response+    CreateSignalCatalogResponse (..),+    newCreateSignalCatalogResponse,++    -- * Response Lenses+    createSignalCatalogResponse_httpStatus,+    createSignalCatalogResponse_name,+    createSignalCatalogResponse_arn,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTFleetWise.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateSignalCatalog' smart constructor.+data CreateSignalCatalog = CreateSignalCatalog'+  { -- | A brief description of the signal catalog.+    description :: Prelude.Maybe Prelude.Text,+    -- | A list of information about nodes, which are a general abstraction of+    -- signals. For more information, see the API data type.+    nodes :: Prelude.Maybe [Node],+    -- | Metadata that can be used to manage the signal catalog.+    tags :: Prelude.Maybe [Tag],+    -- | The name of the signal catalog to create.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateSignalCatalog' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'description', 'createSignalCatalog_description' - A brief description of the signal catalog.+--+-- 'nodes', 'createSignalCatalog_nodes' - A list of information about nodes, which are a general abstraction of+-- signals. For more information, see the API data type.+--+-- 'tags', 'createSignalCatalog_tags' - Metadata that can be used to manage the signal catalog.+--+-- 'name', 'createSignalCatalog_name' - The name of the signal catalog to create.+newCreateSignalCatalog ::+  -- | 'name'+  Prelude.Text ->+  CreateSignalCatalog+newCreateSignalCatalog pName_ =+  CreateSignalCatalog'+    { description = Prelude.Nothing,+      nodes = Prelude.Nothing,+      tags = Prelude.Nothing,+      name = pName_+    }++-- | A brief description of the signal catalog.+createSignalCatalog_description :: Lens.Lens' CreateSignalCatalog (Prelude.Maybe Prelude.Text)+createSignalCatalog_description = Lens.lens (\CreateSignalCatalog' {description} -> description) (\s@CreateSignalCatalog' {} a -> s {description = a} :: CreateSignalCatalog)++-- | A list of information about nodes, which are a general abstraction of+-- signals. For more information, see the API data type.+createSignalCatalog_nodes :: Lens.Lens' CreateSignalCatalog (Prelude.Maybe [Node])+createSignalCatalog_nodes = Lens.lens (\CreateSignalCatalog' {nodes} -> nodes) (\s@CreateSignalCatalog' {} a -> s {nodes = a} :: CreateSignalCatalog) Prelude.. Lens.mapping Lens.coerced++-- | Metadata that can be used to manage the signal catalog.+createSignalCatalog_tags :: Lens.Lens' CreateSignalCatalog (Prelude.Maybe [Tag])+createSignalCatalog_tags = Lens.lens (\CreateSignalCatalog' {tags} -> tags) (\s@CreateSignalCatalog' {} a -> s {tags = a} :: CreateSignalCatalog) Prelude.. Lens.mapping Lens.coerced++-- | The name of the signal catalog to create.+createSignalCatalog_name :: Lens.Lens' CreateSignalCatalog Prelude.Text+createSignalCatalog_name = Lens.lens (\CreateSignalCatalog' {name} -> name) (\s@CreateSignalCatalog' {} a -> s {name = a} :: CreateSignalCatalog)++instance Core.AWSRequest CreateSignalCatalog where+  type+    AWSResponse CreateSignalCatalog =+      CreateSignalCatalogResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateSignalCatalogResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "name")+            Prelude.<*> (x Data..:> "arn")+      )++instance Prelude.Hashable CreateSignalCatalog where+  hashWithSalt _salt CreateSignalCatalog' {..} =+    _salt+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` nodes+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` name++instance Prelude.NFData CreateSignalCatalog where+  rnf CreateSignalCatalog' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf nodes+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf name++instance Data.ToHeaders CreateSignalCatalog where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "IoTAutobahnControlPlane.CreateSignalCatalog" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateSignalCatalog where+  toJSON CreateSignalCatalog' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("description" Data..=) Prelude.<$> description,+            ("nodes" Data..=) Prelude.<$> nodes,+            ("tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("name" Data..= name)+          ]+      )++instance Data.ToPath CreateSignalCatalog where+  toPath = Prelude.const "/"++instance Data.ToQuery CreateSignalCatalog where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateSignalCatalogResponse' smart constructor.+data CreateSignalCatalogResponse = CreateSignalCatalogResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The name of the created signal catalog.+    name :: Prelude.Text,+    -- | The ARN of the created signal catalog.+    arn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateSignalCatalogResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'createSignalCatalogResponse_httpStatus' - The response's http status code.+--+-- 'name', 'createSignalCatalogResponse_name' - The name of the created signal catalog.+--+-- 'arn', 'createSignalCatalogResponse_arn' - The ARN of the created signal catalog.+newCreateSignalCatalogResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'name'+  Prelude.Text ->+  -- | 'arn'+  Prelude.Text ->+  CreateSignalCatalogResponse+newCreateSignalCatalogResponse+  pHttpStatus_+  pName_+  pArn_ =+    CreateSignalCatalogResponse'+      { httpStatus =+          pHttpStatus_,+        name = pName_,+        arn = pArn_+      }++-- | The response's http status code.+createSignalCatalogResponse_httpStatus :: Lens.Lens' CreateSignalCatalogResponse Prelude.Int+createSignalCatalogResponse_httpStatus = Lens.lens (\CreateSignalCatalogResponse' {httpStatus} -> httpStatus) (\s@CreateSignalCatalogResponse' {} a -> s {httpStatus = a} :: CreateSignalCatalogResponse)++-- | The name of the created signal catalog.+createSignalCatalogResponse_name :: Lens.Lens' CreateSignalCatalogResponse Prelude.Text+createSignalCatalogResponse_name = Lens.lens (\CreateSignalCatalogResponse' {name} -> name) (\s@CreateSignalCatalogResponse' {} a -> s {name = a} :: CreateSignalCatalogResponse)++-- | The ARN of the created signal catalog.+createSignalCatalogResponse_arn :: Lens.Lens' CreateSignalCatalogResponse Prelude.Text+createSignalCatalogResponse_arn = Lens.lens (\CreateSignalCatalogResponse' {arn} -> arn) (\s@CreateSignalCatalogResponse' {} a -> s {arn = a} :: CreateSignalCatalogResponse)++instance Prelude.NFData CreateSignalCatalogResponse where+  rnf CreateSignalCatalogResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf arn
+ gen/Amazonka/IoTFleetWise/CreateVehicle.hs view
@@ -0,0 +1,297 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.CreateVehicle+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a vehicle, which is an instance of a vehicle model (model+-- manifest). Vehicles created from the same vehicle model consist of the+-- same signals inherited from the vehicle model.+--+-- If you have an existing Amazon Web Services IoT Thing, you can use+-- Amazon Web Services IoT FleetWise to create a vehicle and collect data+-- from your thing.+--+-- For more information, see+-- <https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/create-vehicle-cli.html Create a vehicle (AWS CLI)>+-- in the /Amazon Web Services IoT FleetWise Developer Guide/.+module Amazonka.IoTFleetWise.CreateVehicle+  ( -- * Creating a Request+    CreateVehicle (..),+    newCreateVehicle,++    -- * Request Lenses+    createVehicle_associationBehavior,+    createVehicle_attributes,+    createVehicle_tags,+    createVehicle_vehicleName,+    createVehicle_modelManifestArn,+    createVehicle_decoderManifestArn,++    -- * Destructuring the Response+    CreateVehicleResponse (..),+    newCreateVehicleResponse,++    -- * Response Lenses+    createVehicleResponse_arn,+    createVehicleResponse_thingArn,+    createVehicleResponse_vehicleName,+    createVehicleResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTFleetWise.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateVehicle' smart constructor.+data CreateVehicle = CreateVehicle'+  { -- | An option to create a new Amazon Web Services IoT thing when creating a+    -- vehicle, or to validate an existing Amazon Web Services IoT thing as a+    -- vehicle.+    --+    -- Default:+    associationBehavior :: Prelude.Maybe VehicleAssociationBehavior,+    -- | Static information about a vehicle in a key-value pair. For example:+    -- @\"engineType\"@ : @\"1.3 L R2\"@+    attributes :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | Metadata that can be used to manage the vehicle.+    tags :: Prelude.Maybe [Tag],+    -- | The unique ID of the vehicle to create.+    vehicleName :: Prelude.Text,+    -- | The Amazon Resource Name ARN of a vehicle model.+    modelManifestArn :: Prelude.Text,+    -- | The ARN of a decoder manifest.+    decoderManifestArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateVehicle' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'associationBehavior', 'createVehicle_associationBehavior' - An option to create a new Amazon Web Services IoT thing when creating a+-- vehicle, or to validate an existing Amazon Web Services IoT thing as a+-- vehicle.+--+-- Default:+--+-- 'attributes', 'createVehicle_attributes' - Static information about a vehicle in a key-value pair. For example:+-- @\"engineType\"@ : @\"1.3 L R2\"@+--+-- 'tags', 'createVehicle_tags' - Metadata that can be used to manage the vehicle.+--+-- 'vehicleName', 'createVehicle_vehicleName' - The unique ID of the vehicle to create.+--+-- 'modelManifestArn', 'createVehicle_modelManifestArn' - The Amazon Resource Name ARN of a vehicle model.+--+-- 'decoderManifestArn', 'createVehicle_decoderManifestArn' - The ARN of a decoder manifest.+newCreateVehicle ::+  -- | 'vehicleName'+  Prelude.Text ->+  -- | 'modelManifestArn'+  Prelude.Text ->+  -- | 'decoderManifestArn'+  Prelude.Text ->+  CreateVehicle+newCreateVehicle+  pVehicleName_+  pModelManifestArn_+  pDecoderManifestArn_ =+    CreateVehicle'+      { associationBehavior =+          Prelude.Nothing,+        attributes = Prelude.Nothing,+        tags = Prelude.Nothing,+        vehicleName = pVehicleName_,+        modelManifestArn = pModelManifestArn_,+        decoderManifestArn = pDecoderManifestArn_+      }++-- | An option to create a new Amazon Web Services IoT thing when creating a+-- vehicle, or to validate an existing Amazon Web Services IoT thing as a+-- vehicle.+--+-- Default:+createVehicle_associationBehavior :: Lens.Lens' CreateVehicle (Prelude.Maybe VehicleAssociationBehavior)+createVehicle_associationBehavior = Lens.lens (\CreateVehicle' {associationBehavior} -> associationBehavior) (\s@CreateVehicle' {} a -> s {associationBehavior = a} :: CreateVehicle)++-- | Static information about a vehicle in a key-value pair. For example:+-- @\"engineType\"@ : @\"1.3 L R2\"@+createVehicle_attributes :: Lens.Lens' CreateVehicle (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createVehicle_attributes = Lens.lens (\CreateVehicle' {attributes} -> attributes) (\s@CreateVehicle' {} a -> s {attributes = a} :: CreateVehicle) Prelude.. Lens.mapping Lens.coerced++-- | Metadata that can be used to manage the vehicle.+createVehicle_tags :: Lens.Lens' CreateVehicle (Prelude.Maybe [Tag])+createVehicle_tags = Lens.lens (\CreateVehicle' {tags} -> tags) (\s@CreateVehicle' {} a -> s {tags = a} :: CreateVehicle) Prelude.. Lens.mapping Lens.coerced++-- | The unique ID of the vehicle to create.+createVehicle_vehicleName :: Lens.Lens' CreateVehicle Prelude.Text+createVehicle_vehicleName = Lens.lens (\CreateVehicle' {vehicleName} -> vehicleName) (\s@CreateVehicle' {} a -> s {vehicleName = a} :: CreateVehicle)++-- | The Amazon Resource Name ARN of a vehicle model.+createVehicle_modelManifestArn :: Lens.Lens' CreateVehicle Prelude.Text+createVehicle_modelManifestArn = Lens.lens (\CreateVehicle' {modelManifestArn} -> modelManifestArn) (\s@CreateVehicle' {} a -> s {modelManifestArn = a} :: CreateVehicle)++-- | The ARN of a decoder manifest.+createVehicle_decoderManifestArn :: Lens.Lens' CreateVehicle Prelude.Text+createVehicle_decoderManifestArn = Lens.lens (\CreateVehicle' {decoderManifestArn} -> decoderManifestArn) (\s@CreateVehicle' {} a -> s {decoderManifestArn = a} :: CreateVehicle)++instance Core.AWSRequest CreateVehicle where+  type+    AWSResponse CreateVehicle =+      CreateVehicleResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateVehicleResponse'+            Prelude.<$> (x Data..?> "arn")+            Prelude.<*> (x Data..?> "thingArn")+            Prelude.<*> (x Data..?> "vehicleName")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateVehicle where+  hashWithSalt _salt CreateVehicle' {..} =+    _salt+      `Prelude.hashWithSalt` associationBehavior+      `Prelude.hashWithSalt` attributes+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` vehicleName+      `Prelude.hashWithSalt` modelManifestArn+      `Prelude.hashWithSalt` decoderManifestArn++instance Prelude.NFData CreateVehicle where+  rnf CreateVehicle' {..} =+    Prelude.rnf associationBehavior+      `Prelude.seq` Prelude.rnf attributes+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf vehicleName+      `Prelude.seq` Prelude.rnf modelManifestArn+      `Prelude.seq` Prelude.rnf decoderManifestArn++instance Data.ToHeaders CreateVehicle where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "IoTAutobahnControlPlane.CreateVehicle" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateVehicle where+  toJSON CreateVehicle' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("associationBehavior" Data..=)+              Prelude.<$> associationBehavior,+            ("attributes" Data..=) Prelude.<$> attributes,+            ("tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("vehicleName" Data..= vehicleName),+            Prelude.Just+              ("modelManifestArn" Data..= modelManifestArn),+            Prelude.Just+              ("decoderManifestArn" Data..= decoderManifestArn)+          ]+      )++instance Data.ToPath CreateVehicle where+  toPath = Prelude.const "/"++instance Data.ToQuery CreateVehicle where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateVehicleResponse' smart constructor.+data CreateVehicleResponse = CreateVehicleResponse'+  { -- | The ARN of the created vehicle.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The ARN of a created or validated Amazon Web Services IoT thing.+    thingArn :: Prelude.Maybe Prelude.Text,+    -- | The unique ID of the created vehicle.+    vehicleName :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateVehicleResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'createVehicleResponse_arn' - The ARN of the created vehicle.+--+-- 'thingArn', 'createVehicleResponse_thingArn' - The ARN of a created or validated Amazon Web Services IoT thing.+--+-- 'vehicleName', 'createVehicleResponse_vehicleName' - The unique ID of the created vehicle.+--+-- 'httpStatus', 'createVehicleResponse_httpStatus' - The response's http status code.+newCreateVehicleResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateVehicleResponse+newCreateVehicleResponse pHttpStatus_ =+  CreateVehicleResponse'+    { arn = Prelude.Nothing,+      thingArn = Prelude.Nothing,+      vehicleName = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The ARN of the created vehicle.+createVehicleResponse_arn :: Lens.Lens' CreateVehicleResponse (Prelude.Maybe Prelude.Text)+createVehicleResponse_arn = Lens.lens (\CreateVehicleResponse' {arn} -> arn) (\s@CreateVehicleResponse' {} a -> s {arn = a} :: CreateVehicleResponse)++-- | The ARN of a created or validated Amazon Web Services IoT thing.+createVehicleResponse_thingArn :: Lens.Lens' CreateVehicleResponse (Prelude.Maybe Prelude.Text)+createVehicleResponse_thingArn = Lens.lens (\CreateVehicleResponse' {thingArn} -> thingArn) (\s@CreateVehicleResponse' {} a -> s {thingArn = a} :: CreateVehicleResponse)++-- | The unique ID of the created vehicle.+createVehicleResponse_vehicleName :: Lens.Lens' CreateVehicleResponse (Prelude.Maybe Prelude.Text)+createVehicleResponse_vehicleName = Lens.lens (\CreateVehicleResponse' {vehicleName} -> vehicleName) (\s@CreateVehicleResponse' {} a -> s {vehicleName = a} :: CreateVehicleResponse)++-- | The response's http status code.+createVehicleResponse_httpStatus :: Lens.Lens' CreateVehicleResponse Prelude.Int+createVehicleResponse_httpStatus = Lens.lens (\CreateVehicleResponse' {httpStatus} -> httpStatus) (\s@CreateVehicleResponse' {} a -> s {httpStatus = a} :: CreateVehicleResponse)++instance Prelude.NFData CreateVehicleResponse where+  rnf CreateVehicleResponse' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf thingArn+      `Prelude.seq` Prelude.rnf vehicleName+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/IoTFleetWise/DeleteCampaign.hs view
@@ -0,0 +1,186 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.DeleteCampaign+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes a data collection campaign. Deleting a campaign suspends all+-- data collection and removes it from any vehicles.+module Amazonka.IoTFleetWise.DeleteCampaign+  ( -- * Creating a Request+    DeleteCampaign (..),+    newDeleteCampaign,++    -- * Request Lenses+    deleteCampaign_name,++    -- * Destructuring the Response+    DeleteCampaignResponse (..),+    newDeleteCampaignResponse,++    -- * Response Lenses+    deleteCampaignResponse_arn,+    deleteCampaignResponse_name,+    deleteCampaignResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTFleetWise.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteCampaign' smart constructor.+data DeleteCampaign = DeleteCampaign'+  { -- | The name of the campaign to delete.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteCampaign' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'name', 'deleteCampaign_name' - The name of the campaign to delete.+newDeleteCampaign ::+  -- | 'name'+  Prelude.Text ->+  DeleteCampaign+newDeleteCampaign pName_ =+  DeleteCampaign' {name = pName_}++-- | The name of the campaign to delete.+deleteCampaign_name :: Lens.Lens' DeleteCampaign Prelude.Text+deleteCampaign_name = Lens.lens (\DeleteCampaign' {name} -> name) (\s@DeleteCampaign' {} a -> s {name = a} :: DeleteCampaign)++instance Core.AWSRequest DeleteCampaign where+  type+    AWSResponse DeleteCampaign =+      DeleteCampaignResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DeleteCampaignResponse'+            Prelude.<$> (x Data..?> "arn")+            Prelude.<*> (x Data..?> "name")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteCampaign where+  hashWithSalt _salt DeleteCampaign' {..} =+    _salt `Prelude.hashWithSalt` name++instance Prelude.NFData DeleteCampaign where+  rnf DeleteCampaign' {..} = Prelude.rnf name++instance Data.ToHeaders DeleteCampaign where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "IoTAutobahnControlPlane.DeleteCampaign" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DeleteCampaign where+  toJSON DeleteCampaign' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("name" Data..= name)]+      )++instance Data.ToPath DeleteCampaign where+  toPath = Prelude.const "/"++instance Data.ToQuery DeleteCampaign where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteCampaignResponse' smart constructor.+data DeleteCampaignResponse = DeleteCampaignResponse'+  { -- | The Amazon Resource Name (ARN) of the deleted campaign.+    --+    -- The ARN isn’t returned if a campaign doesn’t exist.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The name of the deleted campaign.+    name :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteCampaignResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'deleteCampaignResponse_arn' - The Amazon Resource Name (ARN) of the deleted campaign.+--+-- The ARN isn’t returned if a campaign doesn’t exist.+--+-- 'name', 'deleteCampaignResponse_name' - The name of the deleted campaign.+--+-- 'httpStatus', 'deleteCampaignResponse_httpStatus' - The response's http status code.+newDeleteCampaignResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteCampaignResponse+newDeleteCampaignResponse pHttpStatus_ =+  DeleteCampaignResponse'+    { arn = Prelude.Nothing,+      name = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The Amazon Resource Name (ARN) of the deleted campaign.+--+-- The ARN isn’t returned if a campaign doesn’t exist.+deleteCampaignResponse_arn :: Lens.Lens' DeleteCampaignResponse (Prelude.Maybe Prelude.Text)+deleteCampaignResponse_arn = Lens.lens (\DeleteCampaignResponse' {arn} -> arn) (\s@DeleteCampaignResponse' {} a -> s {arn = a} :: DeleteCampaignResponse)++-- | The name of the deleted campaign.+deleteCampaignResponse_name :: Lens.Lens' DeleteCampaignResponse (Prelude.Maybe Prelude.Text)+deleteCampaignResponse_name = Lens.lens (\DeleteCampaignResponse' {name} -> name) (\s@DeleteCampaignResponse' {} a -> s {name = a} :: DeleteCampaignResponse)++-- | The response's http status code.+deleteCampaignResponse_httpStatus :: Lens.Lens' DeleteCampaignResponse Prelude.Int+deleteCampaignResponse_httpStatus = Lens.lens (\DeleteCampaignResponse' {httpStatus} -> httpStatus) (\s@DeleteCampaignResponse' {} a -> s {httpStatus = a} :: DeleteCampaignResponse)++instance Prelude.NFData DeleteCampaignResponse where+  rnf DeleteCampaignResponse' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/IoTFleetWise/DeleteDecoderManifest.hs view
@@ -0,0 +1,191 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.DeleteDecoderManifest+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes a decoder manifest. You can\'t delete a decoder manifest if it+-- has vehicles associated with it.+--+-- If the decoder manifest is successfully deleted, Amazon Web Services IoT+-- FleetWise sends back an HTTP 200 response with an empty body.+module Amazonka.IoTFleetWise.DeleteDecoderManifest+  ( -- * Creating a Request+    DeleteDecoderManifest (..),+    newDeleteDecoderManifest,++    -- * Request Lenses+    deleteDecoderManifest_name,++    -- * Destructuring the Response+    DeleteDecoderManifestResponse (..),+    newDeleteDecoderManifestResponse,++    -- * Response Lenses+    deleteDecoderManifestResponse_httpStatus,+    deleteDecoderManifestResponse_name,+    deleteDecoderManifestResponse_arn,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTFleetWise.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteDecoderManifest' smart constructor.+data DeleteDecoderManifest = DeleteDecoderManifest'+  { -- | The name of the decoder manifest to delete.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteDecoderManifest' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'name', 'deleteDecoderManifest_name' - The name of the decoder manifest to delete.+newDeleteDecoderManifest ::+  -- | 'name'+  Prelude.Text ->+  DeleteDecoderManifest+newDeleteDecoderManifest pName_ =+  DeleteDecoderManifest' {name = pName_}++-- | The name of the decoder manifest to delete.+deleteDecoderManifest_name :: Lens.Lens' DeleteDecoderManifest Prelude.Text+deleteDecoderManifest_name = Lens.lens (\DeleteDecoderManifest' {name} -> name) (\s@DeleteDecoderManifest' {} a -> s {name = a} :: DeleteDecoderManifest)++instance Core.AWSRequest DeleteDecoderManifest where+  type+    AWSResponse DeleteDecoderManifest =+      DeleteDecoderManifestResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DeleteDecoderManifestResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "name")+            Prelude.<*> (x Data..:> "arn")+      )++instance Prelude.Hashable DeleteDecoderManifest where+  hashWithSalt _salt DeleteDecoderManifest' {..} =+    _salt `Prelude.hashWithSalt` name++instance Prelude.NFData DeleteDecoderManifest where+  rnf DeleteDecoderManifest' {..} = Prelude.rnf name++instance Data.ToHeaders DeleteDecoderManifest where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "IoTAutobahnControlPlane.DeleteDecoderManifest" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DeleteDecoderManifest where+  toJSON DeleteDecoderManifest' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("name" Data..= name)]+      )++instance Data.ToPath DeleteDecoderManifest where+  toPath = Prelude.const "/"++instance Data.ToQuery DeleteDecoderManifest where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteDecoderManifestResponse' smart constructor.+data DeleteDecoderManifestResponse = DeleteDecoderManifestResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The name of the deleted decoder manifest.+    name :: Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the deleted decoder manifest.+    arn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteDecoderManifestResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'deleteDecoderManifestResponse_httpStatus' - The response's http status code.+--+-- 'name', 'deleteDecoderManifestResponse_name' - The name of the deleted decoder manifest.+--+-- 'arn', 'deleteDecoderManifestResponse_arn' - The Amazon Resource Name (ARN) of the deleted decoder manifest.+newDeleteDecoderManifestResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'name'+  Prelude.Text ->+  -- | 'arn'+  Prelude.Text ->+  DeleteDecoderManifestResponse+newDeleteDecoderManifestResponse+  pHttpStatus_+  pName_+  pArn_ =+    DeleteDecoderManifestResponse'+      { httpStatus =+          pHttpStatus_,+        name = pName_,+        arn = pArn_+      }++-- | The response's http status code.+deleteDecoderManifestResponse_httpStatus :: Lens.Lens' DeleteDecoderManifestResponse Prelude.Int+deleteDecoderManifestResponse_httpStatus = Lens.lens (\DeleteDecoderManifestResponse' {httpStatus} -> httpStatus) (\s@DeleteDecoderManifestResponse' {} a -> s {httpStatus = a} :: DeleteDecoderManifestResponse)++-- | The name of the deleted decoder manifest.+deleteDecoderManifestResponse_name :: Lens.Lens' DeleteDecoderManifestResponse Prelude.Text+deleteDecoderManifestResponse_name = Lens.lens (\DeleteDecoderManifestResponse' {name} -> name) (\s@DeleteDecoderManifestResponse' {} a -> s {name = a} :: DeleteDecoderManifestResponse)++-- | The Amazon Resource Name (ARN) of the deleted decoder manifest.+deleteDecoderManifestResponse_arn :: Lens.Lens' DeleteDecoderManifestResponse Prelude.Text+deleteDecoderManifestResponse_arn = Lens.lens (\DeleteDecoderManifestResponse' {arn} -> arn) (\s@DeleteDecoderManifestResponse' {} a -> s {arn = a} :: DeleteDecoderManifestResponse)++instance Prelude.NFData DeleteDecoderManifestResponse where+  rnf DeleteDecoderManifestResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf arn
+ gen/Amazonka/IoTFleetWise/DeleteFleet.hs view
@@ -0,0 +1,183 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.DeleteFleet+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes a fleet. Before you delete a fleet, all vehicles must be+-- dissociated from the fleet. For more information, see+-- <https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/delete-fleet-cli.html Delete a fleet (AWS CLI)>+-- in the /Amazon Web Services IoT FleetWise Developer Guide/.+--+-- If the fleet is successfully deleted, Amazon Web Services IoT FleetWise+-- sends back an HTTP 200 response with an empty body.+module Amazonka.IoTFleetWise.DeleteFleet+  ( -- * Creating a Request+    DeleteFleet (..),+    newDeleteFleet,++    -- * Request Lenses+    deleteFleet_fleetId,++    -- * Destructuring the Response+    DeleteFleetResponse (..),+    newDeleteFleetResponse,++    -- * Response Lenses+    deleteFleetResponse_arn,+    deleteFleetResponse_id,+    deleteFleetResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTFleetWise.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteFleet' smart constructor.+data DeleteFleet = DeleteFleet'+  { -- | The ID of the fleet to delete.+    fleetId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteFleet' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'fleetId', 'deleteFleet_fleetId' - The ID of the fleet to delete.+newDeleteFleet ::+  -- | 'fleetId'+  Prelude.Text ->+  DeleteFleet+newDeleteFleet pFleetId_ =+  DeleteFleet' {fleetId = pFleetId_}++-- | The ID of the fleet to delete.+deleteFleet_fleetId :: Lens.Lens' DeleteFleet Prelude.Text+deleteFleet_fleetId = Lens.lens (\DeleteFleet' {fleetId} -> fleetId) (\s@DeleteFleet' {} a -> s {fleetId = a} :: DeleteFleet)++instance Core.AWSRequest DeleteFleet where+  type AWSResponse DeleteFleet = DeleteFleetResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DeleteFleetResponse'+            Prelude.<$> (x Data..?> "arn")+            Prelude.<*> (x Data..?> "id")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteFleet where+  hashWithSalt _salt DeleteFleet' {..} =+    _salt `Prelude.hashWithSalt` fleetId++instance Prelude.NFData DeleteFleet where+  rnf DeleteFleet' {..} = Prelude.rnf fleetId++instance Data.ToHeaders DeleteFleet where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "IoTAutobahnControlPlane.DeleteFleet" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DeleteFleet where+  toJSON DeleteFleet' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("fleetId" Data..= fleetId)]+      )++instance Data.ToPath DeleteFleet where+  toPath = Prelude.const "/"++instance Data.ToQuery DeleteFleet where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteFleetResponse' smart constructor.+data DeleteFleetResponse = DeleteFleetResponse'+  { -- | The Amazon Resource Name (ARN) of the deleted fleet.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The ID of the deleted fleet.+    id :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteFleetResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'deleteFleetResponse_arn' - The Amazon Resource Name (ARN) of the deleted fleet.+--+-- 'id', 'deleteFleetResponse_id' - The ID of the deleted fleet.+--+-- 'httpStatus', 'deleteFleetResponse_httpStatus' - The response's http status code.+newDeleteFleetResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteFleetResponse+newDeleteFleetResponse pHttpStatus_ =+  DeleteFleetResponse'+    { arn = Prelude.Nothing,+      id = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The Amazon Resource Name (ARN) of the deleted fleet.+deleteFleetResponse_arn :: Lens.Lens' DeleteFleetResponse (Prelude.Maybe Prelude.Text)+deleteFleetResponse_arn = Lens.lens (\DeleteFleetResponse' {arn} -> arn) (\s@DeleteFleetResponse' {} a -> s {arn = a} :: DeleteFleetResponse)++-- | The ID of the deleted fleet.+deleteFleetResponse_id :: Lens.Lens' DeleteFleetResponse (Prelude.Maybe Prelude.Text)+deleteFleetResponse_id = Lens.lens (\DeleteFleetResponse' {id} -> id) (\s@DeleteFleetResponse' {} a -> s {id = a} :: DeleteFleetResponse)++-- | The response's http status code.+deleteFleetResponse_httpStatus :: Lens.Lens' DeleteFleetResponse Prelude.Int+deleteFleetResponse_httpStatus = Lens.lens (\DeleteFleetResponse' {httpStatus} -> httpStatus) (\s@DeleteFleetResponse' {} a -> s {httpStatus = a} :: DeleteFleetResponse)++instance Prelude.NFData DeleteFleetResponse where+  rnf DeleteFleetResponse' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/IoTFleetWise/DeleteModelManifest.hs view
@@ -0,0 +1,190 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.DeleteModelManifest+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes a vehicle model (model manifest).+--+-- If the vehicle model is successfully deleted, Amazon Web Services IoT+-- FleetWise sends back an HTTP 200 response with an empty body.+module Amazonka.IoTFleetWise.DeleteModelManifest+  ( -- * Creating a Request+    DeleteModelManifest (..),+    newDeleteModelManifest,++    -- * Request Lenses+    deleteModelManifest_name,++    -- * Destructuring the Response+    DeleteModelManifestResponse (..),+    newDeleteModelManifestResponse,++    -- * Response Lenses+    deleteModelManifestResponse_httpStatus,+    deleteModelManifestResponse_name,+    deleteModelManifestResponse_arn,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTFleetWise.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteModelManifest' smart constructor.+data DeleteModelManifest = DeleteModelManifest'+  { -- | The name of the model manifest to delete.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteModelManifest' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'name', 'deleteModelManifest_name' - The name of the model manifest to delete.+newDeleteModelManifest ::+  -- | 'name'+  Prelude.Text ->+  DeleteModelManifest+newDeleteModelManifest pName_ =+  DeleteModelManifest' {name = pName_}++-- | The name of the model manifest to delete.+deleteModelManifest_name :: Lens.Lens' DeleteModelManifest Prelude.Text+deleteModelManifest_name = Lens.lens (\DeleteModelManifest' {name} -> name) (\s@DeleteModelManifest' {} a -> s {name = a} :: DeleteModelManifest)++instance Core.AWSRequest DeleteModelManifest where+  type+    AWSResponse DeleteModelManifest =+      DeleteModelManifestResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DeleteModelManifestResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "name")+            Prelude.<*> (x Data..:> "arn")+      )++instance Prelude.Hashable DeleteModelManifest where+  hashWithSalt _salt DeleteModelManifest' {..} =+    _salt `Prelude.hashWithSalt` name++instance Prelude.NFData DeleteModelManifest where+  rnf DeleteModelManifest' {..} = Prelude.rnf name++instance Data.ToHeaders DeleteModelManifest where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "IoTAutobahnControlPlane.DeleteModelManifest" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DeleteModelManifest where+  toJSON DeleteModelManifest' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("name" Data..= name)]+      )++instance Data.ToPath DeleteModelManifest where+  toPath = Prelude.const "/"++instance Data.ToQuery DeleteModelManifest where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteModelManifestResponse' smart constructor.+data DeleteModelManifestResponse = DeleteModelManifestResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The name of the deleted model manifest.+    name :: Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the deleted model manifest.+    arn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteModelManifestResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'deleteModelManifestResponse_httpStatus' - The response's http status code.+--+-- 'name', 'deleteModelManifestResponse_name' - The name of the deleted model manifest.+--+-- 'arn', 'deleteModelManifestResponse_arn' - The Amazon Resource Name (ARN) of the deleted model manifest.+newDeleteModelManifestResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'name'+  Prelude.Text ->+  -- | 'arn'+  Prelude.Text ->+  DeleteModelManifestResponse+newDeleteModelManifestResponse+  pHttpStatus_+  pName_+  pArn_ =+    DeleteModelManifestResponse'+      { httpStatus =+          pHttpStatus_,+        name = pName_,+        arn = pArn_+      }++-- | The response's http status code.+deleteModelManifestResponse_httpStatus :: Lens.Lens' DeleteModelManifestResponse Prelude.Int+deleteModelManifestResponse_httpStatus = Lens.lens (\DeleteModelManifestResponse' {httpStatus} -> httpStatus) (\s@DeleteModelManifestResponse' {} a -> s {httpStatus = a} :: DeleteModelManifestResponse)++-- | The name of the deleted model manifest.+deleteModelManifestResponse_name :: Lens.Lens' DeleteModelManifestResponse Prelude.Text+deleteModelManifestResponse_name = Lens.lens (\DeleteModelManifestResponse' {name} -> name) (\s@DeleteModelManifestResponse' {} a -> s {name = a} :: DeleteModelManifestResponse)++-- | The Amazon Resource Name (ARN) of the deleted model manifest.+deleteModelManifestResponse_arn :: Lens.Lens' DeleteModelManifestResponse Prelude.Text+deleteModelManifestResponse_arn = Lens.lens (\DeleteModelManifestResponse' {arn} -> arn) (\s@DeleteModelManifestResponse' {} a -> s {arn = a} :: DeleteModelManifestResponse)++instance Prelude.NFData DeleteModelManifestResponse where+  rnf DeleteModelManifestResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf arn
+ gen/Amazonka/IoTFleetWise/DeleteSignalCatalog.hs view
@@ -0,0 +1,190 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.DeleteSignalCatalog+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes a signal catalog.+--+-- If the signal catalog is successfully deleted, Amazon Web Services IoT+-- FleetWise sends back an HTTP 200 response with an empty body.+module Amazonka.IoTFleetWise.DeleteSignalCatalog+  ( -- * Creating a Request+    DeleteSignalCatalog (..),+    newDeleteSignalCatalog,++    -- * Request Lenses+    deleteSignalCatalog_name,++    -- * Destructuring the Response+    DeleteSignalCatalogResponse (..),+    newDeleteSignalCatalogResponse,++    -- * Response Lenses+    deleteSignalCatalogResponse_httpStatus,+    deleteSignalCatalogResponse_name,+    deleteSignalCatalogResponse_arn,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTFleetWise.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteSignalCatalog' smart constructor.+data DeleteSignalCatalog = DeleteSignalCatalog'+  { -- | The name of the signal catalog to delete.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteSignalCatalog' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'name', 'deleteSignalCatalog_name' - The name of the signal catalog to delete.+newDeleteSignalCatalog ::+  -- | 'name'+  Prelude.Text ->+  DeleteSignalCatalog+newDeleteSignalCatalog pName_ =+  DeleteSignalCatalog' {name = pName_}++-- | The name of the signal catalog to delete.+deleteSignalCatalog_name :: Lens.Lens' DeleteSignalCatalog Prelude.Text+deleteSignalCatalog_name = Lens.lens (\DeleteSignalCatalog' {name} -> name) (\s@DeleteSignalCatalog' {} a -> s {name = a} :: DeleteSignalCatalog)++instance Core.AWSRequest DeleteSignalCatalog where+  type+    AWSResponse DeleteSignalCatalog =+      DeleteSignalCatalogResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DeleteSignalCatalogResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "name")+            Prelude.<*> (x Data..:> "arn")+      )++instance Prelude.Hashable DeleteSignalCatalog where+  hashWithSalt _salt DeleteSignalCatalog' {..} =+    _salt `Prelude.hashWithSalt` name++instance Prelude.NFData DeleteSignalCatalog where+  rnf DeleteSignalCatalog' {..} = Prelude.rnf name++instance Data.ToHeaders DeleteSignalCatalog where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "IoTAutobahnControlPlane.DeleteSignalCatalog" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DeleteSignalCatalog where+  toJSON DeleteSignalCatalog' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("name" Data..= name)]+      )++instance Data.ToPath DeleteSignalCatalog where+  toPath = Prelude.const "/"++instance Data.ToQuery DeleteSignalCatalog where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteSignalCatalogResponse' smart constructor.+data DeleteSignalCatalogResponse = DeleteSignalCatalogResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The name of the deleted signal catalog.+    name :: Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the deleted signal catalog.+    arn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteSignalCatalogResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'deleteSignalCatalogResponse_httpStatus' - The response's http status code.+--+-- 'name', 'deleteSignalCatalogResponse_name' - The name of the deleted signal catalog.+--+-- 'arn', 'deleteSignalCatalogResponse_arn' - The Amazon Resource Name (ARN) of the deleted signal catalog.+newDeleteSignalCatalogResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'name'+  Prelude.Text ->+  -- | 'arn'+  Prelude.Text ->+  DeleteSignalCatalogResponse+newDeleteSignalCatalogResponse+  pHttpStatus_+  pName_+  pArn_ =+    DeleteSignalCatalogResponse'+      { httpStatus =+          pHttpStatus_,+        name = pName_,+        arn = pArn_+      }++-- | The response's http status code.+deleteSignalCatalogResponse_httpStatus :: Lens.Lens' DeleteSignalCatalogResponse Prelude.Int+deleteSignalCatalogResponse_httpStatus = Lens.lens (\DeleteSignalCatalogResponse' {httpStatus} -> httpStatus) (\s@DeleteSignalCatalogResponse' {} a -> s {httpStatus = a} :: DeleteSignalCatalogResponse)++-- | The name of the deleted signal catalog.+deleteSignalCatalogResponse_name :: Lens.Lens' DeleteSignalCatalogResponse Prelude.Text+deleteSignalCatalogResponse_name = Lens.lens (\DeleteSignalCatalogResponse' {name} -> name) (\s@DeleteSignalCatalogResponse' {} a -> s {name = a} :: DeleteSignalCatalogResponse)++-- | The Amazon Resource Name (ARN) of the deleted signal catalog.+deleteSignalCatalogResponse_arn :: Lens.Lens' DeleteSignalCatalogResponse Prelude.Text+deleteSignalCatalogResponse_arn = Lens.lens (\DeleteSignalCatalogResponse' {arn} -> arn) (\s@DeleteSignalCatalogResponse' {} a -> s {arn = a} :: DeleteSignalCatalogResponse)++instance Prelude.NFData DeleteSignalCatalogResponse where+  rnf DeleteSignalCatalogResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf arn
+ gen/Amazonka/IoTFleetWise/DeleteVehicle.hs view
@@ -0,0 +1,189 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.DeleteVehicle+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes a vehicle and removes it from any campaigns.+--+-- If the vehicle is successfully deleted, Amazon Web Services IoT+-- FleetWise sends back an HTTP 200 response with an empty body.+module Amazonka.IoTFleetWise.DeleteVehicle+  ( -- * Creating a Request+    DeleteVehicle (..),+    newDeleteVehicle,++    -- * Request Lenses+    deleteVehicle_vehicleName,++    -- * Destructuring the Response+    DeleteVehicleResponse (..),+    newDeleteVehicleResponse,++    -- * Response Lenses+    deleteVehicleResponse_httpStatus,+    deleteVehicleResponse_vehicleName,+    deleteVehicleResponse_arn,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTFleetWise.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteVehicle' smart constructor.+data DeleteVehicle = DeleteVehicle'+  { -- | The ID of the vehicle to delete.+    vehicleName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteVehicle' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'vehicleName', 'deleteVehicle_vehicleName' - The ID of the vehicle to delete.+newDeleteVehicle ::+  -- | 'vehicleName'+  Prelude.Text ->+  DeleteVehicle+newDeleteVehicle pVehicleName_ =+  DeleteVehicle' {vehicleName = pVehicleName_}++-- | The ID of the vehicle to delete.+deleteVehicle_vehicleName :: Lens.Lens' DeleteVehicle Prelude.Text+deleteVehicle_vehicleName = Lens.lens (\DeleteVehicle' {vehicleName} -> vehicleName) (\s@DeleteVehicle' {} a -> s {vehicleName = a} :: DeleteVehicle)++instance Core.AWSRequest DeleteVehicle where+  type+    AWSResponse DeleteVehicle =+      DeleteVehicleResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DeleteVehicleResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "vehicleName")+            Prelude.<*> (x Data..:> "arn")+      )++instance Prelude.Hashable DeleteVehicle where+  hashWithSalt _salt DeleteVehicle' {..} =+    _salt `Prelude.hashWithSalt` vehicleName++instance Prelude.NFData DeleteVehicle where+  rnf DeleteVehicle' {..} = Prelude.rnf vehicleName++instance Data.ToHeaders DeleteVehicle where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "IoTAutobahnControlPlane.DeleteVehicle" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DeleteVehicle where+  toJSON DeleteVehicle' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("vehicleName" Data..= vehicleName)]+      )++instance Data.ToPath DeleteVehicle where+  toPath = Prelude.const "/"++instance Data.ToQuery DeleteVehicle where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteVehicleResponse' smart constructor.+data DeleteVehicleResponse = DeleteVehicleResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The ID of the deleted vehicle.+    vehicleName :: Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the deleted vehicle.+    arn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteVehicleResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'deleteVehicleResponse_httpStatus' - The response's http status code.+--+-- 'vehicleName', 'deleteVehicleResponse_vehicleName' - The ID of the deleted vehicle.+--+-- 'arn', 'deleteVehicleResponse_arn' - The Amazon Resource Name (ARN) of the deleted vehicle.+newDeleteVehicleResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'vehicleName'+  Prelude.Text ->+  -- | 'arn'+  Prelude.Text ->+  DeleteVehicleResponse+newDeleteVehicleResponse+  pHttpStatus_+  pVehicleName_+  pArn_ =+    DeleteVehicleResponse'+      { httpStatus = pHttpStatus_,+        vehicleName = pVehicleName_,+        arn = pArn_+      }++-- | The response's http status code.+deleteVehicleResponse_httpStatus :: Lens.Lens' DeleteVehicleResponse Prelude.Int+deleteVehicleResponse_httpStatus = Lens.lens (\DeleteVehicleResponse' {httpStatus} -> httpStatus) (\s@DeleteVehicleResponse' {} a -> s {httpStatus = a} :: DeleteVehicleResponse)++-- | The ID of the deleted vehicle.+deleteVehicleResponse_vehicleName :: Lens.Lens' DeleteVehicleResponse Prelude.Text+deleteVehicleResponse_vehicleName = Lens.lens (\DeleteVehicleResponse' {vehicleName} -> vehicleName) (\s@DeleteVehicleResponse' {} a -> s {vehicleName = a} :: DeleteVehicleResponse)++-- | The Amazon Resource Name (ARN) of the deleted vehicle.+deleteVehicleResponse_arn :: Lens.Lens' DeleteVehicleResponse Prelude.Text+deleteVehicleResponse_arn = Lens.lens (\DeleteVehicleResponse' {arn} -> arn) (\s@DeleteVehicleResponse' {} a -> s {arn = a} :: DeleteVehicleResponse)++instance Prelude.NFData DeleteVehicleResponse where+  rnf DeleteVehicleResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf vehicleName+      `Prelude.seq` Prelude.rnf arn
+ gen/Amazonka/IoTFleetWise/DisassociateVehicleFleet.hs view
@@ -0,0 +1,185 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.DisassociateVehicleFleet+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Removes, or disassociates, a vehicle from a fleet. Disassociating a+-- vehicle from a fleet doesn\'t delete the vehicle.+--+-- If the vehicle is successfully dissociated from a fleet, Amazon Web+-- Services IoT FleetWise sends back an HTTP 200 response with an empty+-- body.+module Amazonka.IoTFleetWise.DisassociateVehicleFleet+  ( -- * Creating a Request+    DisassociateVehicleFleet (..),+    newDisassociateVehicleFleet,++    -- * Request Lenses+    disassociateVehicleFleet_vehicleName,+    disassociateVehicleFleet_fleetId,++    -- * Destructuring the Response+    DisassociateVehicleFleetResponse (..),+    newDisassociateVehicleFleetResponse,++    -- * Response Lenses+    disassociateVehicleFleetResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTFleetWise.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDisassociateVehicleFleet' smart constructor.+data DisassociateVehicleFleet = DisassociateVehicleFleet'+  { -- | The unique ID of the vehicle to disassociate from the fleet.+    vehicleName :: Prelude.Text,+    -- | The unique ID of a fleet.+    fleetId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DisassociateVehicleFleet' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'vehicleName', 'disassociateVehicleFleet_vehicleName' - The unique ID of the vehicle to disassociate from the fleet.+--+-- 'fleetId', 'disassociateVehicleFleet_fleetId' - The unique ID of a fleet.+newDisassociateVehicleFleet ::+  -- | 'vehicleName'+  Prelude.Text ->+  -- | 'fleetId'+  Prelude.Text ->+  DisassociateVehicleFleet+newDisassociateVehicleFleet pVehicleName_ pFleetId_ =+  DisassociateVehicleFleet'+    { vehicleName =+        pVehicleName_,+      fleetId = pFleetId_+    }++-- | The unique ID of the vehicle to disassociate from the fleet.+disassociateVehicleFleet_vehicleName :: Lens.Lens' DisassociateVehicleFleet Prelude.Text+disassociateVehicleFleet_vehicleName = Lens.lens (\DisassociateVehicleFleet' {vehicleName} -> vehicleName) (\s@DisassociateVehicleFleet' {} a -> s {vehicleName = a} :: DisassociateVehicleFleet)++-- | The unique ID of a fleet.+disassociateVehicleFleet_fleetId :: Lens.Lens' DisassociateVehicleFleet Prelude.Text+disassociateVehicleFleet_fleetId = Lens.lens (\DisassociateVehicleFleet' {fleetId} -> fleetId) (\s@DisassociateVehicleFleet' {} a -> s {fleetId = a} :: DisassociateVehicleFleet)++instance Core.AWSRequest DisassociateVehicleFleet where+  type+    AWSResponse DisassociateVehicleFleet =+      DisassociateVehicleFleetResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          DisassociateVehicleFleetResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DisassociateVehicleFleet where+  hashWithSalt _salt DisassociateVehicleFleet' {..} =+    _salt+      `Prelude.hashWithSalt` vehicleName+      `Prelude.hashWithSalt` fleetId++instance Prelude.NFData DisassociateVehicleFleet where+  rnf DisassociateVehicleFleet' {..} =+    Prelude.rnf vehicleName+      `Prelude.seq` Prelude.rnf fleetId++instance Data.ToHeaders DisassociateVehicleFleet where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "IoTAutobahnControlPlane.DisassociateVehicleFleet" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DisassociateVehicleFleet where+  toJSON DisassociateVehicleFleet' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("vehicleName" Data..= vehicleName),+            Prelude.Just ("fleetId" Data..= fleetId)+          ]+      )++instance Data.ToPath DisassociateVehicleFleet where+  toPath = Prelude.const "/"++instance Data.ToQuery DisassociateVehicleFleet where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDisassociateVehicleFleetResponse' smart constructor.+data DisassociateVehicleFleetResponse = DisassociateVehicleFleetResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DisassociateVehicleFleetResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'disassociateVehicleFleetResponse_httpStatus' - The response's http status code.+newDisassociateVehicleFleetResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DisassociateVehicleFleetResponse+newDisassociateVehicleFleetResponse pHttpStatus_ =+  DisassociateVehicleFleetResponse'+    { httpStatus =+        pHttpStatus_+    }++-- | The response's http status code.+disassociateVehicleFleetResponse_httpStatus :: Lens.Lens' DisassociateVehicleFleetResponse Prelude.Int+disassociateVehicleFleetResponse_httpStatus = Lens.lens (\DisassociateVehicleFleetResponse' {httpStatus} -> httpStatus) (\s@DisassociateVehicleFleetResponse' {} a -> s {httpStatus = a} :: DisassociateVehicleFleetResponse)++instance+  Prelude.NFData+    DisassociateVehicleFleetResponse+  where+  rnf DisassociateVehicleFleetResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/IoTFleetWise/GetCampaign.hs view
@@ -0,0 +1,413 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.GetCampaign+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves information about a campaign.+module Amazonka.IoTFleetWise.GetCampaign+  ( -- * Creating a Request+    GetCampaign (..),+    newGetCampaign,++    -- * Request Lenses+    getCampaign_name,++    -- * Destructuring the Response+    GetCampaignResponse (..),+    newGetCampaignResponse,++    -- * Response Lenses+    getCampaignResponse_arn,+    getCampaignResponse_collectionScheme,+    getCampaignResponse_compression,+    getCampaignResponse_creationTime,+    getCampaignResponse_dataExtraDimensions,+    getCampaignResponse_description,+    getCampaignResponse_diagnosticsMode,+    getCampaignResponse_expiryTime,+    getCampaignResponse_lastModificationTime,+    getCampaignResponse_name,+    getCampaignResponse_postTriggerCollectionDuration,+    getCampaignResponse_priority,+    getCampaignResponse_signalCatalogArn,+    getCampaignResponse_signalsToCollect,+    getCampaignResponse_spoolingMode,+    getCampaignResponse_startTime,+    getCampaignResponse_status,+    getCampaignResponse_targetArn,+    getCampaignResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTFleetWise.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetCampaign' smart constructor.+data GetCampaign = GetCampaign'+  { -- | The name of the campaign to retrieve information about.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetCampaign' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'name', 'getCampaign_name' - The name of the campaign to retrieve information about.+newGetCampaign ::+  -- | 'name'+  Prelude.Text ->+  GetCampaign+newGetCampaign pName_ = GetCampaign' {name = pName_}++-- | The name of the campaign to retrieve information about.+getCampaign_name :: Lens.Lens' GetCampaign Prelude.Text+getCampaign_name = Lens.lens (\GetCampaign' {name} -> name) (\s@GetCampaign' {} a -> s {name = a} :: GetCampaign)++instance Core.AWSRequest GetCampaign where+  type AWSResponse GetCampaign = GetCampaignResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetCampaignResponse'+            Prelude.<$> (x Data..?> "arn")+            Prelude.<*> (x Data..?> "collectionScheme")+            Prelude.<*> (x Data..?> "compression")+            Prelude.<*> (x Data..?> "creationTime")+            Prelude.<*> ( x+                            Data..?> "dataExtraDimensions"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "description")+            Prelude.<*> (x Data..?> "diagnosticsMode")+            Prelude.<*> (x Data..?> "expiryTime")+            Prelude.<*> (x Data..?> "lastModificationTime")+            Prelude.<*> (x Data..?> "name")+            Prelude.<*> (x Data..?> "postTriggerCollectionDuration")+            Prelude.<*> (x Data..?> "priority")+            Prelude.<*> (x Data..?> "signalCatalogArn")+            Prelude.<*> ( x+                            Data..?> "signalsToCollect"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "spoolingMode")+            Prelude.<*> (x Data..?> "startTime")+            Prelude.<*> (x Data..?> "status")+            Prelude.<*> (x Data..?> "targetArn")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetCampaign where+  hashWithSalt _salt GetCampaign' {..} =+    _salt `Prelude.hashWithSalt` name++instance Prelude.NFData GetCampaign where+  rnf GetCampaign' {..} = Prelude.rnf name++instance Data.ToHeaders GetCampaign where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "IoTAutobahnControlPlane.GetCampaign" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON GetCampaign where+  toJSON GetCampaign' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("name" Data..= name)]+      )++instance Data.ToPath GetCampaign where+  toPath = Prelude.const "/"++instance Data.ToQuery GetCampaign where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetCampaignResponse' smart constructor.+data GetCampaignResponse = GetCampaignResponse'+  { -- | The Amazon Resource Name (ARN) of the campaign.+    arn :: Prelude.Maybe Prelude.Text,+    -- | Information about the data collection scheme associated with the+    -- campaign.+    collectionScheme :: Prelude.Maybe CollectionScheme,+    -- | Whether to compress signals before transmitting data to Amazon Web+    -- Services IoT FleetWise. If @OFF@ is specified, the signals aren\'t+    -- compressed. If it\'s not specified, @SNAPPY@ is used.+    compression :: Prelude.Maybe Compression,+    -- | The time the campaign was created in seconds since epoch (January 1,+    -- 1970 at midnight UTC time).+    creationTime :: Prelude.Maybe Data.POSIX,+    -- | A list of vehicle attributes associated with the campaign.+    dataExtraDimensions :: Prelude.Maybe [Prelude.Text],+    -- | The description of the campaign.+    description :: Prelude.Maybe Prelude.Text,+    -- | Option for a vehicle to send diagnostic trouble codes to Amazon Web+    -- Services IoT FleetWise.+    diagnosticsMode :: Prelude.Maybe DiagnosticsMode,+    -- | The time the campaign expires, in seconds since epoch (January 1, 1970+    -- at midnight UTC time). Vehicle data won\'t be collected after the+    -- campaign expires.+    expiryTime :: Prelude.Maybe Data.POSIX,+    -- | The last time the campaign was modified.+    lastModificationTime :: Prelude.Maybe Data.POSIX,+    -- | The name of the campaign.+    name :: Prelude.Maybe Prelude.Text,+    -- | How long (in seconds) to collect raw data after a triggering event+    -- initiates the collection.+    postTriggerCollectionDuration :: Prelude.Maybe Prelude.Natural,+    -- | A number indicating the priority of one campaign over another campaign+    -- for a certain vehicle or fleet. A campaign with the lowest value is+    -- deployed to vehicles before any other campaigns.+    priority :: Prelude.Maybe Prelude.Natural,+    -- | The ARN of a signal catalog.+    signalCatalogArn :: Prelude.Maybe Prelude.Text,+    -- | Information about a list of signals to collect data on.+    signalsToCollect :: Prelude.Maybe [SignalInformation],+    -- | Whether to store collected data after a vehicle lost a connection with+    -- the cloud. After a connection is re-established, the data is+    -- automatically forwarded to Amazon Web Services IoT FleetWise.+    spoolingMode :: Prelude.Maybe SpoolingMode,+    -- | The time, in milliseconds, to deliver a campaign after it was approved.+    startTime :: Prelude.Maybe Data.POSIX,+    -- | The state of the campaign. The status can be one of: @CREATING@,+    -- @WAITING_FOR_APPROVAL@, @RUNNING@, and @SUSPENDED@.+    status :: Prelude.Maybe CampaignStatus,+    -- | The ARN of the vehicle or the fleet targeted by the campaign.+    targetArn :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetCampaignResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'getCampaignResponse_arn' - The Amazon Resource Name (ARN) of the campaign.+--+-- 'collectionScheme', 'getCampaignResponse_collectionScheme' - Information about the data collection scheme associated with the+-- campaign.+--+-- 'compression', 'getCampaignResponse_compression' - Whether to compress signals before transmitting data to Amazon Web+-- Services IoT FleetWise. If @OFF@ is specified, the signals aren\'t+-- compressed. If it\'s not specified, @SNAPPY@ is used.+--+-- 'creationTime', 'getCampaignResponse_creationTime' - The time the campaign was created in seconds since epoch (January 1,+-- 1970 at midnight UTC time).+--+-- 'dataExtraDimensions', 'getCampaignResponse_dataExtraDimensions' - A list of vehicle attributes associated with the campaign.+--+-- 'description', 'getCampaignResponse_description' - The description of the campaign.+--+-- 'diagnosticsMode', 'getCampaignResponse_diagnosticsMode' - Option for a vehicle to send diagnostic trouble codes to Amazon Web+-- Services IoT FleetWise.+--+-- 'expiryTime', 'getCampaignResponse_expiryTime' - The time the campaign expires, in seconds since epoch (January 1, 1970+-- at midnight UTC time). Vehicle data won\'t be collected after the+-- campaign expires.+--+-- 'lastModificationTime', 'getCampaignResponse_lastModificationTime' - The last time the campaign was modified.+--+-- 'name', 'getCampaignResponse_name' - The name of the campaign.+--+-- 'postTriggerCollectionDuration', 'getCampaignResponse_postTriggerCollectionDuration' - How long (in seconds) to collect raw data after a triggering event+-- initiates the collection.+--+-- 'priority', 'getCampaignResponse_priority' - A number indicating the priority of one campaign over another campaign+-- for a certain vehicle or fleet. A campaign with the lowest value is+-- deployed to vehicles before any other campaigns.+--+-- 'signalCatalogArn', 'getCampaignResponse_signalCatalogArn' - The ARN of a signal catalog.+--+-- 'signalsToCollect', 'getCampaignResponse_signalsToCollect' - Information about a list of signals to collect data on.+--+-- 'spoolingMode', 'getCampaignResponse_spoolingMode' - Whether to store collected data after a vehicle lost a connection with+-- the cloud. After a connection is re-established, the data is+-- automatically forwarded to Amazon Web Services IoT FleetWise.+--+-- 'startTime', 'getCampaignResponse_startTime' - The time, in milliseconds, to deliver a campaign after it was approved.+--+-- 'status', 'getCampaignResponse_status' - The state of the campaign. The status can be one of: @CREATING@,+-- @WAITING_FOR_APPROVAL@, @RUNNING@, and @SUSPENDED@.+--+-- 'targetArn', 'getCampaignResponse_targetArn' - The ARN of the vehicle or the fleet targeted by the campaign.+--+-- 'httpStatus', 'getCampaignResponse_httpStatus' - The response's http status code.+newGetCampaignResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetCampaignResponse+newGetCampaignResponse pHttpStatus_ =+  GetCampaignResponse'+    { arn = Prelude.Nothing,+      collectionScheme = Prelude.Nothing,+      compression = Prelude.Nothing,+      creationTime = Prelude.Nothing,+      dataExtraDimensions = Prelude.Nothing,+      description = Prelude.Nothing,+      diagnosticsMode = Prelude.Nothing,+      expiryTime = Prelude.Nothing,+      lastModificationTime = Prelude.Nothing,+      name = Prelude.Nothing,+      postTriggerCollectionDuration = Prelude.Nothing,+      priority = Prelude.Nothing,+      signalCatalogArn = Prelude.Nothing,+      signalsToCollect = Prelude.Nothing,+      spoolingMode = Prelude.Nothing,+      startTime = Prelude.Nothing,+      status = Prelude.Nothing,+      targetArn = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The Amazon Resource Name (ARN) of the campaign.+getCampaignResponse_arn :: Lens.Lens' GetCampaignResponse (Prelude.Maybe Prelude.Text)+getCampaignResponse_arn = Lens.lens (\GetCampaignResponse' {arn} -> arn) (\s@GetCampaignResponse' {} a -> s {arn = a} :: GetCampaignResponse)++-- | Information about the data collection scheme associated with the+-- campaign.+getCampaignResponse_collectionScheme :: Lens.Lens' GetCampaignResponse (Prelude.Maybe CollectionScheme)+getCampaignResponse_collectionScheme = Lens.lens (\GetCampaignResponse' {collectionScheme} -> collectionScheme) (\s@GetCampaignResponse' {} a -> s {collectionScheme = a} :: GetCampaignResponse)++-- | Whether to compress signals before transmitting data to Amazon Web+-- Services IoT FleetWise. If @OFF@ is specified, the signals aren\'t+-- compressed. If it\'s not specified, @SNAPPY@ is used.+getCampaignResponse_compression :: Lens.Lens' GetCampaignResponse (Prelude.Maybe Compression)+getCampaignResponse_compression = Lens.lens (\GetCampaignResponse' {compression} -> compression) (\s@GetCampaignResponse' {} a -> s {compression = a} :: GetCampaignResponse)++-- | The time the campaign was created in seconds since epoch (January 1,+-- 1970 at midnight UTC time).+getCampaignResponse_creationTime :: Lens.Lens' GetCampaignResponse (Prelude.Maybe Prelude.UTCTime)+getCampaignResponse_creationTime = Lens.lens (\GetCampaignResponse' {creationTime} -> creationTime) (\s@GetCampaignResponse' {} a -> s {creationTime = a} :: GetCampaignResponse) Prelude.. Lens.mapping Data._Time++-- | A list of vehicle attributes associated with the campaign.+getCampaignResponse_dataExtraDimensions :: Lens.Lens' GetCampaignResponse (Prelude.Maybe [Prelude.Text])+getCampaignResponse_dataExtraDimensions = Lens.lens (\GetCampaignResponse' {dataExtraDimensions} -> dataExtraDimensions) (\s@GetCampaignResponse' {} a -> s {dataExtraDimensions = a} :: GetCampaignResponse) Prelude.. Lens.mapping Lens.coerced++-- | The description of the campaign.+getCampaignResponse_description :: Lens.Lens' GetCampaignResponse (Prelude.Maybe Prelude.Text)+getCampaignResponse_description = Lens.lens (\GetCampaignResponse' {description} -> description) (\s@GetCampaignResponse' {} a -> s {description = a} :: GetCampaignResponse)++-- | Option for a vehicle to send diagnostic trouble codes to Amazon Web+-- Services IoT FleetWise.+getCampaignResponse_diagnosticsMode :: Lens.Lens' GetCampaignResponse (Prelude.Maybe DiagnosticsMode)+getCampaignResponse_diagnosticsMode = Lens.lens (\GetCampaignResponse' {diagnosticsMode} -> diagnosticsMode) (\s@GetCampaignResponse' {} a -> s {diagnosticsMode = a} :: GetCampaignResponse)++-- | The time the campaign expires, in seconds since epoch (January 1, 1970+-- at midnight UTC time). Vehicle data won\'t be collected after the+-- campaign expires.+getCampaignResponse_expiryTime :: Lens.Lens' GetCampaignResponse (Prelude.Maybe Prelude.UTCTime)+getCampaignResponse_expiryTime = Lens.lens (\GetCampaignResponse' {expiryTime} -> expiryTime) (\s@GetCampaignResponse' {} a -> s {expiryTime = a} :: GetCampaignResponse) Prelude.. Lens.mapping Data._Time++-- | The last time the campaign was modified.+getCampaignResponse_lastModificationTime :: Lens.Lens' GetCampaignResponse (Prelude.Maybe Prelude.UTCTime)+getCampaignResponse_lastModificationTime = Lens.lens (\GetCampaignResponse' {lastModificationTime} -> lastModificationTime) (\s@GetCampaignResponse' {} a -> s {lastModificationTime = a} :: GetCampaignResponse) Prelude.. Lens.mapping Data._Time++-- | The name of the campaign.+getCampaignResponse_name :: Lens.Lens' GetCampaignResponse (Prelude.Maybe Prelude.Text)+getCampaignResponse_name = Lens.lens (\GetCampaignResponse' {name} -> name) (\s@GetCampaignResponse' {} a -> s {name = a} :: GetCampaignResponse)++-- | How long (in seconds) to collect raw data after a triggering event+-- initiates the collection.+getCampaignResponse_postTriggerCollectionDuration :: Lens.Lens' GetCampaignResponse (Prelude.Maybe Prelude.Natural)+getCampaignResponse_postTriggerCollectionDuration = Lens.lens (\GetCampaignResponse' {postTriggerCollectionDuration} -> postTriggerCollectionDuration) (\s@GetCampaignResponse' {} a -> s {postTriggerCollectionDuration = a} :: GetCampaignResponse)++-- | A number indicating the priority of one campaign over another campaign+-- for a certain vehicle or fleet. A campaign with the lowest value is+-- deployed to vehicles before any other campaigns.+getCampaignResponse_priority :: Lens.Lens' GetCampaignResponse (Prelude.Maybe Prelude.Natural)+getCampaignResponse_priority = Lens.lens (\GetCampaignResponse' {priority} -> priority) (\s@GetCampaignResponse' {} a -> s {priority = a} :: GetCampaignResponse)++-- | The ARN of a signal catalog.+getCampaignResponse_signalCatalogArn :: Lens.Lens' GetCampaignResponse (Prelude.Maybe Prelude.Text)+getCampaignResponse_signalCatalogArn = Lens.lens (\GetCampaignResponse' {signalCatalogArn} -> signalCatalogArn) (\s@GetCampaignResponse' {} a -> s {signalCatalogArn = a} :: GetCampaignResponse)++-- | Information about a list of signals to collect data on.+getCampaignResponse_signalsToCollect :: Lens.Lens' GetCampaignResponse (Prelude.Maybe [SignalInformation])+getCampaignResponse_signalsToCollect = Lens.lens (\GetCampaignResponse' {signalsToCollect} -> signalsToCollect) (\s@GetCampaignResponse' {} a -> s {signalsToCollect = a} :: GetCampaignResponse) Prelude.. Lens.mapping Lens.coerced++-- | Whether to store collected data after a vehicle lost a connection with+-- the cloud. After a connection is re-established, the data is+-- automatically forwarded to Amazon Web Services IoT FleetWise.+getCampaignResponse_spoolingMode :: Lens.Lens' GetCampaignResponse (Prelude.Maybe SpoolingMode)+getCampaignResponse_spoolingMode = Lens.lens (\GetCampaignResponse' {spoolingMode} -> spoolingMode) (\s@GetCampaignResponse' {} a -> s {spoolingMode = a} :: GetCampaignResponse)++-- | The time, in milliseconds, to deliver a campaign after it was approved.+getCampaignResponse_startTime :: Lens.Lens' GetCampaignResponse (Prelude.Maybe Prelude.UTCTime)+getCampaignResponse_startTime = Lens.lens (\GetCampaignResponse' {startTime} -> startTime) (\s@GetCampaignResponse' {} a -> s {startTime = a} :: GetCampaignResponse) Prelude.. Lens.mapping Data._Time++-- | The state of the campaign. The status can be one of: @CREATING@,+-- @WAITING_FOR_APPROVAL@, @RUNNING@, and @SUSPENDED@.+getCampaignResponse_status :: Lens.Lens' GetCampaignResponse (Prelude.Maybe CampaignStatus)+getCampaignResponse_status = Lens.lens (\GetCampaignResponse' {status} -> status) (\s@GetCampaignResponse' {} a -> s {status = a} :: GetCampaignResponse)++-- | The ARN of the vehicle or the fleet targeted by the campaign.+getCampaignResponse_targetArn :: Lens.Lens' GetCampaignResponse (Prelude.Maybe Prelude.Text)+getCampaignResponse_targetArn = Lens.lens (\GetCampaignResponse' {targetArn} -> targetArn) (\s@GetCampaignResponse' {} a -> s {targetArn = a} :: GetCampaignResponse)++-- | The response's http status code.+getCampaignResponse_httpStatus :: Lens.Lens' GetCampaignResponse Prelude.Int+getCampaignResponse_httpStatus = Lens.lens (\GetCampaignResponse' {httpStatus} -> httpStatus) (\s@GetCampaignResponse' {} a -> s {httpStatus = a} :: GetCampaignResponse)++instance Prelude.NFData GetCampaignResponse where+  rnf GetCampaignResponse' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf collectionScheme+      `Prelude.seq` Prelude.rnf compression+      `Prelude.seq` Prelude.rnf creationTime+      `Prelude.seq` Prelude.rnf dataExtraDimensions+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf diagnosticsMode+      `Prelude.seq` Prelude.rnf expiryTime+      `Prelude.seq` Prelude.rnf lastModificationTime+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf postTriggerCollectionDuration+      `Prelude.seq` Prelude.rnf priority+      `Prelude.seq` Prelude.rnf signalCatalogArn+      `Prelude.seq` Prelude.rnf signalsToCollect+      `Prelude.seq` Prelude.rnf spoolingMode+      `Prelude.seq` Prelude.rnf startTime+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf targetArn+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/IoTFleetWise/GetDecoderManifest.hs view
@@ -0,0 +1,269 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.GetDecoderManifest+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves information about a created decoder manifest.+module Amazonka.IoTFleetWise.GetDecoderManifest+  ( -- * Creating a Request+    GetDecoderManifest (..),+    newGetDecoderManifest,++    -- * Request Lenses+    getDecoderManifest_name,++    -- * Destructuring the Response+    GetDecoderManifestResponse (..),+    newGetDecoderManifestResponse,++    -- * Response Lenses+    getDecoderManifestResponse_description,+    getDecoderManifestResponse_modelManifestArn,+    getDecoderManifestResponse_status,+    getDecoderManifestResponse_httpStatus,+    getDecoderManifestResponse_name,+    getDecoderManifestResponse_arn,+    getDecoderManifestResponse_creationTime,+    getDecoderManifestResponse_lastModificationTime,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTFleetWise.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetDecoderManifest' smart constructor.+data GetDecoderManifest = GetDecoderManifest'+  { -- | The name of the decoder manifest to retrieve information about.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetDecoderManifest' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'name', 'getDecoderManifest_name' - The name of the decoder manifest to retrieve information about.+newGetDecoderManifest ::+  -- | 'name'+  Prelude.Text ->+  GetDecoderManifest+newGetDecoderManifest pName_ =+  GetDecoderManifest' {name = pName_}++-- | The name of the decoder manifest to retrieve information about.+getDecoderManifest_name :: Lens.Lens' GetDecoderManifest Prelude.Text+getDecoderManifest_name = Lens.lens (\GetDecoderManifest' {name} -> name) (\s@GetDecoderManifest' {} a -> s {name = a} :: GetDecoderManifest)++instance Core.AWSRequest GetDecoderManifest where+  type+    AWSResponse GetDecoderManifest =+      GetDecoderManifestResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetDecoderManifestResponse'+            Prelude.<$> (x Data..?> "description")+            Prelude.<*> (x Data..?> "modelManifestArn")+            Prelude.<*> (x Data..?> "status")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "name")+            Prelude.<*> (x Data..:> "arn")+            Prelude.<*> (x Data..:> "creationTime")+            Prelude.<*> (x Data..:> "lastModificationTime")+      )++instance Prelude.Hashable GetDecoderManifest where+  hashWithSalt _salt GetDecoderManifest' {..} =+    _salt `Prelude.hashWithSalt` name++instance Prelude.NFData GetDecoderManifest where+  rnf GetDecoderManifest' {..} = Prelude.rnf name++instance Data.ToHeaders GetDecoderManifest where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "IoTAutobahnControlPlane.GetDecoderManifest" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON GetDecoderManifest where+  toJSON GetDecoderManifest' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("name" Data..= name)]+      )++instance Data.ToPath GetDecoderManifest where+  toPath = Prelude.const "/"++instance Data.ToQuery GetDecoderManifest where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetDecoderManifestResponse' smart constructor.+data GetDecoderManifestResponse = GetDecoderManifestResponse'+  { -- | A brief description of the decoder manifest.+    description :: Prelude.Maybe Prelude.Text,+    -- | The ARN of a vehicle model (model manifest) associated with the decoder+    -- manifest.+    modelManifestArn :: Prelude.Maybe Prelude.Text,+    -- | The state of the decoder manifest. If the status is @ACTIVE@, the+    -- decoder manifest can\'t be edited. If the status is marked @DRAFT@, you+    -- can edit the decoder manifest.+    status :: Prelude.Maybe ManifestStatus,+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The name of the decoder manifest.+    name :: Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the decoder manifest.+    arn :: Prelude.Text,+    -- | The time the decoder manifest was created in seconds since epoch+    -- (January 1, 1970 at midnight UTC time).+    creationTime :: Data.POSIX,+    -- | The time the decoder manifest was last updated in seconds since epoch+    -- (January 1, 1970 at midnight UTC time).+    lastModificationTime :: Data.POSIX+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetDecoderManifestResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'description', 'getDecoderManifestResponse_description' - A brief description of the decoder manifest.+--+-- 'modelManifestArn', 'getDecoderManifestResponse_modelManifestArn' - The ARN of a vehicle model (model manifest) associated with the decoder+-- manifest.+--+-- 'status', 'getDecoderManifestResponse_status' - The state of the decoder manifest. If the status is @ACTIVE@, the+-- decoder manifest can\'t be edited. If the status is marked @DRAFT@, you+-- can edit the decoder manifest.+--+-- 'httpStatus', 'getDecoderManifestResponse_httpStatus' - The response's http status code.+--+-- 'name', 'getDecoderManifestResponse_name' - The name of the decoder manifest.+--+-- 'arn', 'getDecoderManifestResponse_arn' - The Amazon Resource Name (ARN) of the decoder manifest.+--+-- 'creationTime', 'getDecoderManifestResponse_creationTime' - The time the decoder manifest was created in seconds since epoch+-- (January 1, 1970 at midnight UTC time).+--+-- 'lastModificationTime', 'getDecoderManifestResponse_lastModificationTime' - The time the decoder manifest was last updated in seconds since epoch+-- (January 1, 1970 at midnight UTC time).+newGetDecoderManifestResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'name'+  Prelude.Text ->+  -- | 'arn'+  Prelude.Text ->+  -- | 'creationTime'+  Prelude.UTCTime ->+  -- | 'lastModificationTime'+  Prelude.UTCTime ->+  GetDecoderManifestResponse+newGetDecoderManifestResponse+  pHttpStatus_+  pName_+  pArn_+  pCreationTime_+  pLastModificationTime_ =+    GetDecoderManifestResponse'+      { description =+          Prelude.Nothing,+        modelManifestArn = Prelude.Nothing,+        status = Prelude.Nothing,+        httpStatus = pHttpStatus_,+        name = pName_,+        arn = pArn_,+        creationTime = Data._Time Lens.# pCreationTime_,+        lastModificationTime =+          Data._Time Lens.# pLastModificationTime_+      }++-- | A brief description of the decoder manifest.+getDecoderManifestResponse_description :: Lens.Lens' GetDecoderManifestResponse (Prelude.Maybe Prelude.Text)+getDecoderManifestResponse_description = Lens.lens (\GetDecoderManifestResponse' {description} -> description) (\s@GetDecoderManifestResponse' {} a -> s {description = a} :: GetDecoderManifestResponse)++-- | The ARN of a vehicle model (model manifest) associated with the decoder+-- manifest.+getDecoderManifestResponse_modelManifestArn :: Lens.Lens' GetDecoderManifestResponse (Prelude.Maybe Prelude.Text)+getDecoderManifestResponse_modelManifestArn = Lens.lens (\GetDecoderManifestResponse' {modelManifestArn} -> modelManifestArn) (\s@GetDecoderManifestResponse' {} a -> s {modelManifestArn = a} :: GetDecoderManifestResponse)++-- | The state of the decoder manifest. If the status is @ACTIVE@, the+-- decoder manifest can\'t be edited. If the status is marked @DRAFT@, you+-- can edit the decoder manifest.+getDecoderManifestResponse_status :: Lens.Lens' GetDecoderManifestResponse (Prelude.Maybe ManifestStatus)+getDecoderManifestResponse_status = Lens.lens (\GetDecoderManifestResponse' {status} -> status) (\s@GetDecoderManifestResponse' {} a -> s {status = a} :: GetDecoderManifestResponse)++-- | The response's http status code.+getDecoderManifestResponse_httpStatus :: Lens.Lens' GetDecoderManifestResponse Prelude.Int+getDecoderManifestResponse_httpStatus = Lens.lens (\GetDecoderManifestResponse' {httpStatus} -> httpStatus) (\s@GetDecoderManifestResponse' {} a -> s {httpStatus = a} :: GetDecoderManifestResponse)++-- | The name of the decoder manifest.+getDecoderManifestResponse_name :: Lens.Lens' GetDecoderManifestResponse Prelude.Text+getDecoderManifestResponse_name = Lens.lens (\GetDecoderManifestResponse' {name} -> name) (\s@GetDecoderManifestResponse' {} a -> s {name = a} :: GetDecoderManifestResponse)++-- | The Amazon Resource Name (ARN) of the decoder manifest.+getDecoderManifestResponse_arn :: Lens.Lens' GetDecoderManifestResponse Prelude.Text+getDecoderManifestResponse_arn = Lens.lens (\GetDecoderManifestResponse' {arn} -> arn) (\s@GetDecoderManifestResponse' {} a -> s {arn = a} :: GetDecoderManifestResponse)++-- | The time the decoder manifest was created in seconds since epoch+-- (January 1, 1970 at midnight UTC time).+getDecoderManifestResponse_creationTime :: Lens.Lens' GetDecoderManifestResponse Prelude.UTCTime+getDecoderManifestResponse_creationTime = Lens.lens (\GetDecoderManifestResponse' {creationTime} -> creationTime) (\s@GetDecoderManifestResponse' {} a -> s {creationTime = a} :: GetDecoderManifestResponse) Prelude.. Data._Time++-- | The time the decoder manifest was last updated in seconds since epoch+-- (January 1, 1970 at midnight UTC time).+getDecoderManifestResponse_lastModificationTime :: Lens.Lens' GetDecoderManifestResponse Prelude.UTCTime+getDecoderManifestResponse_lastModificationTime = Lens.lens (\GetDecoderManifestResponse' {lastModificationTime} -> lastModificationTime) (\s@GetDecoderManifestResponse' {} a -> s {lastModificationTime = a} :: GetDecoderManifestResponse) Prelude.. Data._Time++instance Prelude.NFData GetDecoderManifestResponse where+  rnf GetDecoderManifestResponse' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf modelManifestArn+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf arn+      `Prelude.seq` Prelude.rnf creationTime+      `Prelude.seq` Prelude.rnf lastModificationTime
+ gen/Amazonka/IoTFleetWise/GetFleet.hs view
@@ -0,0 +1,248 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.GetFleet+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves information about a fleet.+module Amazonka.IoTFleetWise.GetFleet+  ( -- * Creating a Request+    GetFleet (..),+    newGetFleet,++    -- * Request Lenses+    getFleet_fleetId,++    -- * Destructuring the Response+    GetFleetResponse (..),+    newGetFleetResponse,++    -- * Response Lenses+    getFleetResponse_description,+    getFleetResponse_httpStatus,+    getFleetResponse_id,+    getFleetResponse_arn,+    getFleetResponse_signalCatalogArn,+    getFleetResponse_creationTime,+    getFleetResponse_lastModificationTime,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTFleetWise.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetFleet' smart constructor.+data GetFleet = GetFleet'+  { -- | The ID of the fleet to retrieve information about.+    fleetId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetFleet' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'fleetId', 'getFleet_fleetId' - The ID of the fleet to retrieve information about.+newGetFleet ::+  -- | 'fleetId'+  Prelude.Text ->+  GetFleet+newGetFleet pFleetId_ =+  GetFleet' {fleetId = pFleetId_}++-- | The ID of the fleet to retrieve information about.+getFleet_fleetId :: Lens.Lens' GetFleet Prelude.Text+getFleet_fleetId = Lens.lens (\GetFleet' {fleetId} -> fleetId) (\s@GetFleet' {} a -> s {fleetId = a} :: GetFleet)++instance Core.AWSRequest GetFleet where+  type AWSResponse GetFleet = GetFleetResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetFleetResponse'+            Prelude.<$> (x Data..?> "description")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "id")+            Prelude.<*> (x Data..:> "arn")+            Prelude.<*> (x Data..:> "signalCatalogArn")+            Prelude.<*> (x Data..:> "creationTime")+            Prelude.<*> (x Data..:> "lastModificationTime")+      )++instance Prelude.Hashable GetFleet where+  hashWithSalt _salt GetFleet' {..} =+    _salt `Prelude.hashWithSalt` fleetId++instance Prelude.NFData GetFleet where+  rnf GetFleet' {..} = Prelude.rnf fleetId++instance Data.ToHeaders GetFleet where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "IoTAutobahnControlPlane.GetFleet" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON GetFleet where+  toJSON GetFleet' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("fleetId" Data..= fleetId)]+      )++instance Data.ToPath GetFleet where+  toPath = Prelude.const "/"++instance Data.ToQuery GetFleet where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetFleetResponse' smart constructor.+data GetFleetResponse = GetFleetResponse'+  { -- | A brief description of the fleet.+    description :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The ID of the fleet.+    id :: Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the fleet.+    arn :: Prelude.Text,+    -- | The ARN of a signal catalog associated with the fleet.+    signalCatalogArn :: Prelude.Text,+    -- | The time the fleet was created in seconds since epoch (January 1, 1970+    -- at midnight UTC time).+    creationTime :: Data.POSIX,+    -- | The time the fleet was last updated, in seconds since epoch (January 1,+    -- 1970 at midnight UTC time).+    lastModificationTime :: Data.POSIX+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetFleetResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'description', 'getFleetResponse_description' - A brief description of the fleet.+--+-- 'httpStatus', 'getFleetResponse_httpStatus' - The response's http status code.+--+-- 'id', 'getFleetResponse_id' - The ID of the fleet.+--+-- 'arn', 'getFleetResponse_arn' - The Amazon Resource Name (ARN) of the fleet.+--+-- 'signalCatalogArn', 'getFleetResponse_signalCatalogArn' - The ARN of a signal catalog associated with the fleet.+--+-- 'creationTime', 'getFleetResponse_creationTime' - The time the fleet was created in seconds since epoch (January 1, 1970+-- at midnight UTC time).+--+-- 'lastModificationTime', 'getFleetResponse_lastModificationTime' - The time the fleet was last updated, in seconds since epoch (January 1,+-- 1970 at midnight UTC time).+newGetFleetResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'id'+  Prelude.Text ->+  -- | 'arn'+  Prelude.Text ->+  -- | 'signalCatalogArn'+  Prelude.Text ->+  -- | 'creationTime'+  Prelude.UTCTime ->+  -- | 'lastModificationTime'+  Prelude.UTCTime ->+  GetFleetResponse+newGetFleetResponse+  pHttpStatus_+  pId_+  pArn_+  pSignalCatalogArn_+  pCreationTime_+  pLastModificationTime_ =+    GetFleetResponse'+      { description = Prelude.Nothing,+        httpStatus = pHttpStatus_,+        id = pId_,+        arn = pArn_,+        signalCatalogArn = pSignalCatalogArn_,+        creationTime = Data._Time Lens.# pCreationTime_,+        lastModificationTime =+          Data._Time Lens.# pLastModificationTime_+      }++-- | A brief description of the fleet.+getFleetResponse_description :: Lens.Lens' GetFleetResponse (Prelude.Maybe Prelude.Text)+getFleetResponse_description = Lens.lens (\GetFleetResponse' {description} -> description) (\s@GetFleetResponse' {} a -> s {description = a} :: GetFleetResponse)++-- | The response's http status code.+getFleetResponse_httpStatus :: Lens.Lens' GetFleetResponse Prelude.Int+getFleetResponse_httpStatus = Lens.lens (\GetFleetResponse' {httpStatus} -> httpStatus) (\s@GetFleetResponse' {} a -> s {httpStatus = a} :: GetFleetResponse)++-- | The ID of the fleet.+getFleetResponse_id :: Lens.Lens' GetFleetResponse Prelude.Text+getFleetResponse_id = Lens.lens (\GetFleetResponse' {id} -> id) (\s@GetFleetResponse' {} a -> s {id = a} :: GetFleetResponse)++-- | The Amazon Resource Name (ARN) of the fleet.+getFleetResponse_arn :: Lens.Lens' GetFleetResponse Prelude.Text+getFleetResponse_arn = Lens.lens (\GetFleetResponse' {arn} -> arn) (\s@GetFleetResponse' {} a -> s {arn = a} :: GetFleetResponse)++-- | The ARN of a signal catalog associated with the fleet.+getFleetResponse_signalCatalogArn :: Lens.Lens' GetFleetResponse Prelude.Text+getFleetResponse_signalCatalogArn = Lens.lens (\GetFleetResponse' {signalCatalogArn} -> signalCatalogArn) (\s@GetFleetResponse' {} a -> s {signalCatalogArn = a} :: GetFleetResponse)++-- | The time the fleet was created in seconds since epoch (January 1, 1970+-- at midnight UTC time).+getFleetResponse_creationTime :: Lens.Lens' GetFleetResponse Prelude.UTCTime+getFleetResponse_creationTime = Lens.lens (\GetFleetResponse' {creationTime} -> creationTime) (\s@GetFleetResponse' {} a -> s {creationTime = a} :: GetFleetResponse) Prelude.. Data._Time++-- | The time the fleet was last updated, in seconds since epoch (January 1,+-- 1970 at midnight UTC time).+getFleetResponse_lastModificationTime :: Lens.Lens' GetFleetResponse Prelude.UTCTime+getFleetResponse_lastModificationTime = Lens.lens (\GetFleetResponse' {lastModificationTime} -> lastModificationTime) (\s@GetFleetResponse' {} a -> s {lastModificationTime = a} :: GetFleetResponse) Prelude.. Data._Time++instance Prelude.NFData GetFleetResponse where+  rnf GetFleetResponse' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf arn+      `Prelude.seq` Prelude.rnf signalCatalogArn+      `Prelude.seq` Prelude.rnf creationTime+      `Prelude.seq` Prelude.rnf lastModificationTime
+ gen/Amazonka/IoTFleetWise/GetLoggingOptions.hs view
@@ -0,0 +1,152 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.GetLoggingOptions+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves the logging options.+module Amazonka.IoTFleetWise.GetLoggingOptions+  ( -- * Creating a Request+    GetLoggingOptions (..),+    newGetLoggingOptions,++    -- * Destructuring the Response+    GetLoggingOptionsResponse (..),+    newGetLoggingOptionsResponse,++    -- * Response Lenses+    getLoggingOptionsResponse_httpStatus,+    getLoggingOptionsResponse_cloudWatchLogDelivery,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTFleetWise.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetLoggingOptions' smart constructor.+data GetLoggingOptions = GetLoggingOptions'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetLoggingOptions' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newGetLoggingOptions ::+  GetLoggingOptions+newGetLoggingOptions = GetLoggingOptions'++instance Core.AWSRequest GetLoggingOptions where+  type+    AWSResponse GetLoggingOptions =+      GetLoggingOptionsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetLoggingOptionsResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "cloudWatchLogDelivery")+      )++instance Prelude.Hashable GetLoggingOptions where+  hashWithSalt _salt _ =+    _salt `Prelude.hashWithSalt` ()++instance Prelude.NFData GetLoggingOptions where+  rnf _ = ()++instance Data.ToHeaders GetLoggingOptions where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "IoTAutobahnControlPlane.GetLoggingOptions" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON GetLoggingOptions where+  toJSON = Prelude.const (Data.Object Prelude.mempty)++instance Data.ToPath GetLoggingOptions where+  toPath = Prelude.const "/"++instance Data.ToQuery GetLoggingOptions where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetLoggingOptionsResponse' smart constructor.+data GetLoggingOptionsResponse = GetLoggingOptionsResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | Returns information about log delivery to Amazon CloudWatch Logs.+    cloudWatchLogDelivery :: CloudWatchLogDeliveryOptions+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetLoggingOptionsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'getLoggingOptionsResponse_httpStatus' - The response's http status code.+--+-- 'cloudWatchLogDelivery', 'getLoggingOptionsResponse_cloudWatchLogDelivery' - Returns information about log delivery to Amazon CloudWatch Logs.+newGetLoggingOptionsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'cloudWatchLogDelivery'+  CloudWatchLogDeliveryOptions ->+  GetLoggingOptionsResponse+newGetLoggingOptionsResponse+  pHttpStatus_+  pCloudWatchLogDelivery_ =+    GetLoggingOptionsResponse'+      { httpStatus =+          pHttpStatus_,+        cloudWatchLogDelivery = pCloudWatchLogDelivery_+      }++-- | The response's http status code.+getLoggingOptionsResponse_httpStatus :: Lens.Lens' GetLoggingOptionsResponse Prelude.Int+getLoggingOptionsResponse_httpStatus = Lens.lens (\GetLoggingOptionsResponse' {httpStatus} -> httpStatus) (\s@GetLoggingOptionsResponse' {} a -> s {httpStatus = a} :: GetLoggingOptionsResponse)++-- | Returns information about log delivery to Amazon CloudWatch Logs.+getLoggingOptionsResponse_cloudWatchLogDelivery :: Lens.Lens' GetLoggingOptionsResponse CloudWatchLogDeliveryOptions+getLoggingOptionsResponse_cloudWatchLogDelivery = Lens.lens (\GetLoggingOptionsResponse' {cloudWatchLogDelivery} -> cloudWatchLogDelivery) (\s@GetLoggingOptionsResponse' {} a -> s {cloudWatchLogDelivery = a} :: GetLoggingOptionsResponse)++instance Prelude.NFData GetLoggingOptionsResponse where+  rnf GetLoggingOptionsResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf cloudWatchLogDelivery
+ gen/Amazonka/IoTFleetWise/GetModelManifest.hs view
@@ -0,0 +1,263 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.GetModelManifest+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves information about a vehicle model (model manifest).+module Amazonka.IoTFleetWise.GetModelManifest+  ( -- * Creating a Request+    GetModelManifest (..),+    newGetModelManifest,++    -- * Request Lenses+    getModelManifest_name,++    -- * Destructuring the Response+    GetModelManifestResponse (..),+    newGetModelManifestResponse,++    -- * Response Lenses+    getModelManifestResponse_description,+    getModelManifestResponse_signalCatalogArn,+    getModelManifestResponse_status,+    getModelManifestResponse_httpStatus,+    getModelManifestResponse_name,+    getModelManifestResponse_arn,+    getModelManifestResponse_creationTime,+    getModelManifestResponse_lastModificationTime,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTFleetWise.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetModelManifest' smart constructor.+data GetModelManifest = GetModelManifest'+  { -- | The name of the vehicle model to retrieve information about.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetModelManifest' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'name', 'getModelManifest_name' - The name of the vehicle model to retrieve information about.+newGetModelManifest ::+  -- | 'name'+  Prelude.Text ->+  GetModelManifest+newGetModelManifest pName_ =+  GetModelManifest' {name = pName_}++-- | The name of the vehicle model to retrieve information about.+getModelManifest_name :: Lens.Lens' GetModelManifest Prelude.Text+getModelManifest_name = Lens.lens (\GetModelManifest' {name} -> name) (\s@GetModelManifest' {} a -> s {name = a} :: GetModelManifest)++instance Core.AWSRequest GetModelManifest where+  type+    AWSResponse GetModelManifest =+      GetModelManifestResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetModelManifestResponse'+            Prelude.<$> (x Data..?> "description")+            Prelude.<*> (x Data..?> "signalCatalogArn")+            Prelude.<*> (x Data..?> "status")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "name")+            Prelude.<*> (x Data..:> "arn")+            Prelude.<*> (x Data..:> "creationTime")+            Prelude.<*> (x Data..:> "lastModificationTime")+      )++instance Prelude.Hashable GetModelManifest where+  hashWithSalt _salt GetModelManifest' {..} =+    _salt `Prelude.hashWithSalt` name++instance Prelude.NFData GetModelManifest where+  rnf GetModelManifest' {..} = Prelude.rnf name++instance Data.ToHeaders GetModelManifest where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "IoTAutobahnControlPlane.GetModelManifest" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON GetModelManifest where+  toJSON GetModelManifest' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("name" Data..= name)]+      )++instance Data.ToPath GetModelManifest where+  toPath = Prelude.const "/"++instance Data.ToQuery GetModelManifest where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetModelManifestResponse' smart constructor.+data GetModelManifestResponse = GetModelManifestResponse'+  { -- | A brief description of the vehicle model.+    description :: Prelude.Maybe Prelude.Text,+    -- | The ARN of the signal catalog associated with the vehicle model.+    signalCatalogArn :: Prelude.Maybe Prelude.Text,+    -- | The state of the vehicle model. If the status is @ACTIVE@, the vehicle+    -- model can\'t be edited. You can edit the vehicle model if the status is+    -- marked @DRAFT@.+    status :: Prelude.Maybe ManifestStatus,+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The name of the vehicle model.+    name :: Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the vehicle model.+    arn :: Prelude.Text,+    -- | The time the vehicle model was created, in seconds since epoch (January+    -- 1, 1970 at midnight UTC time).+    creationTime :: Data.POSIX,+    -- | The last time the vehicle model was modified.+    lastModificationTime :: Data.POSIX+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetModelManifestResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'description', 'getModelManifestResponse_description' - A brief description of the vehicle model.+--+-- 'signalCatalogArn', 'getModelManifestResponse_signalCatalogArn' - The ARN of the signal catalog associated with the vehicle model.+--+-- 'status', 'getModelManifestResponse_status' - The state of the vehicle model. If the status is @ACTIVE@, the vehicle+-- model can\'t be edited. You can edit the vehicle model if the status is+-- marked @DRAFT@.+--+-- 'httpStatus', 'getModelManifestResponse_httpStatus' - The response's http status code.+--+-- 'name', 'getModelManifestResponse_name' - The name of the vehicle model.+--+-- 'arn', 'getModelManifestResponse_arn' - The Amazon Resource Name (ARN) of the vehicle model.+--+-- 'creationTime', 'getModelManifestResponse_creationTime' - The time the vehicle model was created, in seconds since epoch (January+-- 1, 1970 at midnight UTC time).+--+-- 'lastModificationTime', 'getModelManifestResponse_lastModificationTime' - The last time the vehicle model was modified.+newGetModelManifestResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'name'+  Prelude.Text ->+  -- | 'arn'+  Prelude.Text ->+  -- | 'creationTime'+  Prelude.UTCTime ->+  -- | 'lastModificationTime'+  Prelude.UTCTime ->+  GetModelManifestResponse+newGetModelManifestResponse+  pHttpStatus_+  pName_+  pArn_+  pCreationTime_+  pLastModificationTime_ =+    GetModelManifestResponse'+      { description =+          Prelude.Nothing,+        signalCatalogArn = Prelude.Nothing,+        status = Prelude.Nothing,+        httpStatus = pHttpStatus_,+        name = pName_,+        arn = pArn_,+        creationTime = Data._Time Lens.# pCreationTime_,+        lastModificationTime =+          Data._Time Lens.# pLastModificationTime_+      }++-- | A brief description of the vehicle model.+getModelManifestResponse_description :: Lens.Lens' GetModelManifestResponse (Prelude.Maybe Prelude.Text)+getModelManifestResponse_description = Lens.lens (\GetModelManifestResponse' {description} -> description) (\s@GetModelManifestResponse' {} a -> s {description = a} :: GetModelManifestResponse)++-- | The ARN of the signal catalog associated with the vehicle model.+getModelManifestResponse_signalCatalogArn :: Lens.Lens' GetModelManifestResponse (Prelude.Maybe Prelude.Text)+getModelManifestResponse_signalCatalogArn = Lens.lens (\GetModelManifestResponse' {signalCatalogArn} -> signalCatalogArn) (\s@GetModelManifestResponse' {} a -> s {signalCatalogArn = a} :: GetModelManifestResponse)++-- | The state of the vehicle model. If the status is @ACTIVE@, the vehicle+-- model can\'t be edited. You can edit the vehicle model if the status is+-- marked @DRAFT@.+getModelManifestResponse_status :: Lens.Lens' GetModelManifestResponse (Prelude.Maybe ManifestStatus)+getModelManifestResponse_status = Lens.lens (\GetModelManifestResponse' {status} -> status) (\s@GetModelManifestResponse' {} a -> s {status = a} :: GetModelManifestResponse)++-- | The response's http status code.+getModelManifestResponse_httpStatus :: Lens.Lens' GetModelManifestResponse Prelude.Int+getModelManifestResponse_httpStatus = Lens.lens (\GetModelManifestResponse' {httpStatus} -> httpStatus) (\s@GetModelManifestResponse' {} a -> s {httpStatus = a} :: GetModelManifestResponse)++-- | The name of the vehicle model.+getModelManifestResponse_name :: Lens.Lens' GetModelManifestResponse Prelude.Text+getModelManifestResponse_name = Lens.lens (\GetModelManifestResponse' {name} -> name) (\s@GetModelManifestResponse' {} a -> s {name = a} :: GetModelManifestResponse)++-- | The Amazon Resource Name (ARN) of the vehicle model.+getModelManifestResponse_arn :: Lens.Lens' GetModelManifestResponse Prelude.Text+getModelManifestResponse_arn = Lens.lens (\GetModelManifestResponse' {arn} -> arn) (\s@GetModelManifestResponse' {} a -> s {arn = a} :: GetModelManifestResponse)++-- | The time the vehicle model was created, in seconds since epoch (January+-- 1, 1970 at midnight UTC time).+getModelManifestResponse_creationTime :: Lens.Lens' GetModelManifestResponse Prelude.UTCTime+getModelManifestResponse_creationTime = Lens.lens (\GetModelManifestResponse' {creationTime} -> creationTime) (\s@GetModelManifestResponse' {} a -> s {creationTime = a} :: GetModelManifestResponse) Prelude.. Data._Time++-- | The last time the vehicle model was modified.+getModelManifestResponse_lastModificationTime :: Lens.Lens' GetModelManifestResponse Prelude.UTCTime+getModelManifestResponse_lastModificationTime = Lens.lens (\GetModelManifestResponse' {lastModificationTime} -> lastModificationTime) (\s@GetModelManifestResponse' {} a -> s {lastModificationTime = a} :: GetModelManifestResponse) Prelude.. Data._Time++instance Prelude.NFData GetModelManifestResponse where+  rnf GetModelManifestResponse' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf signalCatalogArn+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf arn+      `Prelude.seq` Prelude.rnf creationTime+      `Prelude.seq` Prelude.rnf lastModificationTime
+ gen/Amazonka/IoTFleetWise/GetRegisterAccountStatus.hs view
@@ -0,0 +1,289 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.GetRegisterAccountStatus+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves information about the status of registering your Amazon Web+-- Services account, IAM, and Amazon Timestream resources so that Amazon+-- Web Services IoT FleetWise can transfer your vehicle data to the Amazon+-- Web Services Cloud.+--+-- For more information, including step-by-step procedures, see+-- <https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/setting-up.html Setting up Amazon Web Services IoT FleetWise>.+--+-- This API operation doesn\'t require input parameters.+module Amazonka.IoTFleetWise.GetRegisterAccountStatus+  ( -- * Creating a Request+    GetRegisterAccountStatus (..),+    newGetRegisterAccountStatus,++    -- * Destructuring the Response+    GetRegisterAccountStatusResponse (..),+    newGetRegisterAccountStatusResponse,++    -- * Response Lenses+    getRegisterAccountStatusResponse_httpStatus,+    getRegisterAccountStatusResponse_customerAccountId,+    getRegisterAccountStatusResponse_accountStatus,+    getRegisterAccountStatusResponse_timestreamRegistrationResponse,+    getRegisterAccountStatusResponse_iamRegistrationResponse,+    getRegisterAccountStatusResponse_creationTime,+    getRegisterAccountStatusResponse_lastModificationTime,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTFleetWise.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetRegisterAccountStatus' smart constructor.+data GetRegisterAccountStatus = GetRegisterAccountStatus'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetRegisterAccountStatus' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newGetRegisterAccountStatus ::+  GetRegisterAccountStatus+newGetRegisterAccountStatus =+  GetRegisterAccountStatus'++instance Core.AWSRequest GetRegisterAccountStatus where+  type+    AWSResponse GetRegisterAccountStatus =+      GetRegisterAccountStatusResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetRegisterAccountStatusResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "customerAccountId")+            Prelude.<*> (x Data..:> "accountStatus")+            Prelude.<*> (x Data..:> "timestreamRegistrationResponse")+            Prelude.<*> (x Data..:> "iamRegistrationResponse")+            Prelude.<*> (x Data..:> "creationTime")+            Prelude.<*> (x Data..:> "lastModificationTime")+      )++instance Prelude.Hashable GetRegisterAccountStatus where+  hashWithSalt _salt _ =+    _salt `Prelude.hashWithSalt` ()++instance Prelude.NFData GetRegisterAccountStatus where+  rnf _ = ()++instance Data.ToHeaders GetRegisterAccountStatus where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "IoTAutobahnControlPlane.GetRegisterAccountStatus" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON GetRegisterAccountStatus where+  toJSON = Prelude.const (Data.Object Prelude.mempty)++instance Data.ToPath GetRegisterAccountStatus where+  toPath = Prelude.const "/"++instance Data.ToQuery GetRegisterAccountStatus where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetRegisterAccountStatusResponse' smart constructor.+data GetRegisterAccountStatusResponse = GetRegisterAccountStatusResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The unique ID of the Amazon Web Services account, provided at account+    -- creation.+    customerAccountId :: Prelude.Text,+    -- | The status of registering your account and resources. The status can be+    -- one of:+    --+    -- -   @REGISTRATION_SUCCESS@ - The Amazon Web Services resource is+    --     successfully registered.+    --+    -- -   @REGISTRATION_PENDING@ - Amazon Web Services IoT FleetWise is+    --     processing the registration request. This process takes+    --     approximately five minutes to complete.+    --+    -- -   @REGISTRATION_FAILURE@ - Amazon Web Services IoT FleetWise can\'t+    --     register the AWS resource. Try again later.+    accountStatus :: RegistrationStatus,+    -- | Information about the registered Amazon Timestream resources or errors,+    -- if any.+    timestreamRegistrationResponse :: TimestreamRegistrationResponse,+    -- | Information about the registered IAM resources or errors, if any.+    iamRegistrationResponse :: IamRegistrationResponse,+    -- | The time the account was registered, in seconds since epoch (January 1,+    -- 1970 at midnight UTC time).+    creationTime :: Data.POSIX,+    -- | The time this registration was last updated, in seconds since epoch+    -- (January 1, 1970 at midnight UTC time).+    lastModificationTime :: Data.POSIX+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetRegisterAccountStatusResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'getRegisterAccountStatusResponse_httpStatus' - The response's http status code.+--+-- 'customerAccountId', 'getRegisterAccountStatusResponse_customerAccountId' - The unique ID of the Amazon Web Services account, provided at account+-- creation.+--+-- 'accountStatus', 'getRegisterAccountStatusResponse_accountStatus' - The status of registering your account and resources. The status can be+-- one of:+--+-- -   @REGISTRATION_SUCCESS@ - The Amazon Web Services resource is+--     successfully registered.+--+-- -   @REGISTRATION_PENDING@ - Amazon Web Services IoT FleetWise is+--     processing the registration request. This process takes+--     approximately five minutes to complete.+--+-- -   @REGISTRATION_FAILURE@ - Amazon Web Services IoT FleetWise can\'t+--     register the AWS resource. Try again later.+--+-- 'timestreamRegistrationResponse', 'getRegisterAccountStatusResponse_timestreamRegistrationResponse' - Information about the registered Amazon Timestream resources or errors,+-- if any.+--+-- 'iamRegistrationResponse', 'getRegisterAccountStatusResponse_iamRegistrationResponse' - Information about the registered IAM resources or errors, if any.+--+-- 'creationTime', 'getRegisterAccountStatusResponse_creationTime' - The time the account was registered, in seconds since epoch (January 1,+-- 1970 at midnight UTC time).+--+-- 'lastModificationTime', 'getRegisterAccountStatusResponse_lastModificationTime' - The time this registration was last updated, in seconds since epoch+-- (January 1, 1970 at midnight UTC time).+newGetRegisterAccountStatusResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'customerAccountId'+  Prelude.Text ->+  -- | 'accountStatus'+  RegistrationStatus ->+  -- | 'timestreamRegistrationResponse'+  TimestreamRegistrationResponse ->+  -- | 'iamRegistrationResponse'+  IamRegistrationResponse ->+  -- | 'creationTime'+  Prelude.UTCTime ->+  -- | 'lastModificationTime'+  Prelude.UTCTime ->+  GetRegisterAccountStatusResponse+newGetRegisterAccountStatusResponse+  pHttpStatus_+  pCustomerAccountId_+  pAccountStatus_+  pTimestreamRegistrationResponse_+  pIamRegistrationResponse_+  pCreationTime_+  pLastModificationTime_ =+    GetRegisterAccountStatusResponse'+      { httpStatus =+          pHttpStatus_,+        customerAccountId = pCustomerAccountId_,+        accountStatus = pAccountStatus_,+        timestreamRegistrationResponse =+          pTimestreamRegistrationResponse_,+        iamRegistrationResponse =+          pIamRegistrationResponse_,+        creationTime =+          Data._Time Lens.# pCreationTime_,+        lastModificationTime =+          Data._Time+            Lens.# pLastModificationTime_+      }++-- | The response's http status code.+getRegisterAccountStatusResponse_httpStatus :: Lens.Lens' GetRegisterAccountStatusResponse Prelude.Int+getRegisterAccountStatusResponse_httpStatus = Lens.lens (\GetRegisterAccountStatusResponse' {httpStatus} -> httpStatus) (\s@GetRegisterAccountStatusResponse' {} a -> s {httpStatus = a} :: GetRegisterAccountStatusResponse)++-- | The unique ID of the Amazon Web Services account, provided at account+-- creation.+getRegisterAccountStatusResponse_customerAccountId :: Lens.Lens' GetRegisterAccountStatusResponse Prelude.Text+getRegisterAccountStatusResponse_customerAccountId = Lens.lens (\GetRegisterAccountStatusResponse' {customerAccountId} -> customerAccountId) (\s@GetRegisterAccountStatusResponse' {} a -> s {customerAccountId = a} :: GetRegisterAccountStatusResponse)++-- | The status of registering your account and resources. The status can be+-- one of:+--+-- -   @REGISTRATION_SUCCESS@ - The Amazon Web Services resource is+--     successfully registered.+--+-- -   @REGISTRATION_PENDING@ - Amazon Web Services IoT FleetWise is+--     processing the registration request. This process takes+--     approximately five minutes to complete.+--+-- -   @REGISTRATION_FAILURE@ - Amazon Web Services IoT FleetWise can\'t+--     register the AWS resource. Try again later.+getRegisterAccountStatusResponse_accountStatus :: Lens.Lens' GetRegisterAccountStatusResponse RegistrationStatus+getRegisterAccountStatusResponse_accountStatus = Lens.lens (\GetRegisterAccountStatusResponse' {accountStatus} -> accountStatus) (\s@GetRegisterAccountStatusResponse' {} a -> s {accountStatus = a} :: GetRegisterAccountStatusResponse)++-- | Information about the registered Amazon Timestream resources or errors,+-- if any.+getRegisterAccountStatusResponse_timestreamRegistrationResponse :: Lens.Lens' GetRegisterAccountStatusResponse TimestreamRegistrationResponse+getRegisterAccountStatusResponse_timestreamRegistrationResponse = Lens.lens (\GetRegisterAccountStatusResponse' {timestreamRegistrationResponse} -> timestreamRegistrationResponse) (\s@GetRegisterAccountStatusResponse' {} a -> s {timestreamRegistrationResponse = a} :: GetRegisterAccountStatusResponse)++-- | Information about the registered IAM resources or errors, if any.+getRegisterAccountStatusResponse_iamRegistrationResponse :: Lens.Lens' GetRegisterAccountStatusResponse IamRegistrationResponse+getRegisterAccountStatusResponse_iamRegistrationResponse = Lens.lens (\GetRegisterAccountStatusResponse' {iamRegistrationResponse} -> iamRegistrationResponse) (\s@GetRegisterAccountStatusResponse' {} a -> s {iamRegistrationResponse = a} :: GetRegisterAccountStatusResponse)++-- | The time the account was registered, in seconds since epoch (January 1,+-- 1970 at midnight UTC time).+getRegisterAccountStatusResponse_creationTime :: Lens.Lens' GetRegisterAccountStatusResponse Prelude.UTCTime+getRegisterAccountStatusResponse_creationTime = Lens.lens (\GetRegisterAccountStatusResponse' {creationTime} -> creationTime) (\s@GetRegisterAccountStatusResponse' {} a -> s {creationTime = a} :: GetRegisterAccountStatusResponse) Prelude.. Data._Time++-- | The time this registration was last updated, in seconds since epoch+-- (January 1, 1970 at midnight UTC time).+getRegisterAccountStatusResponse_lastModificationTime :: Lens.Lens' GetRegisterAccountStatusResponse Prelude.UTCTime+getRegisterAccountStatusResponse_lastModificationTime = Lens.lens (\GetRegisterAccountStatusResponse' {lastModificationTime} -> lastModificationTime) (\s@GetRegisterAccountStatusResponse' {} a -> s {lastModificationTime = a} :: GetRegisterAccountStatusResponse) Prelude.. Data._Time++instance+  Prelude.NFData+    GetRegisterAccountStatusResponse+  where+  rnf GetRegisterAccountStatusResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf customerAccountId+      `Prelude.seq` Prelude.rnf accountStatus+      `Prelude.seq` Prelude.rnf timestreamRegistrationResponse+      `Prelude.seq` Prelude.rnf iamRegistrationResponse+      `Prelude.seq` Prelude.rnf creationTime+      `Prelude.seq` Prelude.rnf lastModificationTime
+ gen/Amazonka/IoTFleetWise/GetSignalCatalog.hs view
@@ -0,0 +1,245 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.GetSignalCatalog+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves information about a signal catalog.+module Amazonka.IoTFleetWise.GetSignalCatalog+  ( -- * Creating a Request+    GetSignalCatalog (..),+    newGetSignalCatalog,++    -- * Request Lenses+    getSignalCatalog_name,++    -- * Destructuring the Response+    GetSignalCatalogResponse (..),+    newGetSignalCatalogResponse,++    -- * Response Lenses+    getSignalCatalogResponse_description,+    getSignalCatalogResponse_nodeCounts,+    getSignalCatalogResponse_httpStatus,+    getSignalCatalogResponse_name,+    getSignalCatalogResponse_arn,+    getSignalCatalogResponse_creationTime,+    getSignalCatalogResponse_lastModificationTime,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTFleetWise.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetSignalCatalog' smart constructor.+data GetSignalCatalog = GetSignalCatalog'+  { -- | The name of the signal catalog to retrieve information about.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetSignalCatalog' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'name', 'getSignalCatalog_name' - The name of the signal catalog to retrieve information about.+newGetSignalCatalog ::+  -- | 'name'+  Prelude.Text ->+  GetSignalCatalog+newGetSignalCatalog pName_ =+  GetSignalCatalog' {name = pName_}++-- | The name of the signal catalog to retrieve information about.+getSignalCatalog_name :: Lens.Lens' GetSignalCatalog Prelude.Text+getSignalCatalog_name = Lens.lens (\GetSignalCatalog' {name} -> name) (\s@GetSignalCatalog' {} a -> s {name = a} :: GetSignalCatalog)++instance Core.AWSRequest GetSignalCatalog where+  type+    AWSResponse GetSignalCatalog =+      GetSignalCatalogResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetSignalCatalogResponse'+            Prelude.<$> (x Data..?> "description")+            Prelude.<*> (x Data..?> "nodeCounts")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "name")+            Prelude.<*> (x Data..:> "arn")+            Prelude.<*> (x Data..:> "creationTime")+            Prelude.<*> (x Data..:> "lastModificationTime")+      )++instance Prelude.Hashable GetSignalCatalog where+  hashWithSalt _salt GetSignalCatalog' {..} =+    _salt `Prelude.hashWithSalt` name++instance Prelude.NFData GetSignalCatalog where+  rnf GetSignalCatalog' {..} = Prelude.rnf name++instance Data.ToHeaders GetSignalCatalog where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "IoTAutobahnControlPlane.GetSignalCatalog" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON GetSignalCatalog where+  toJSON GetSignalCatalog' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("name" Data..= name)]+      )++instance Data.ToPath GetSignalCatalog where+  toPath = Prelude.const "/"++instance Data.ToQuery GetSignalCatalog where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetSignalCatalogResponse' smart constructor.+data GetSignalCatalogResponse = GetSignalCatalogResponse'+  { -- | A brief description of the signal catalog.+    description :: Prelude.Maybe Prelude.Text,+    -- | The total number of network nodes specified in a signal catalog.+    nodeCounts :: Prelude.Maybe NodeCounts,+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The name of the signal catalog.+    name :: Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the signal catalog.+    arn :: Prelude.Text,+    -- | The time the signal catalog was created in seconds since epoch (January+    -- 1, 1970 at midnight UTC time).+    creationTime :: Data.POSIX,+    -- | The last time the signal catalog was modified.+    lastModificationTime :: Data.POSIX+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetSignalCatalogResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'description', 'getSignalCatalogResponse_description' - A brief description of the signal catalog.+--+-- 'nodeCounts', 'getSignalCatalogResponse_nodeCounts' - The total number of network nodes specified in a signal catalog.+--+-- 'httpStatus', 'getSignalCatalogResponse_httpStatus' - The response's http status code.+--+-- 'name', 'getSignalCatalogResponse_name' - The name of the signal catalog.+--+-- 'arn', 'getSignalCatalogResponse_arn' - The Amazon Resource Name (ARN) of the signal catalog.+--+-- 'creationTime', 'getSignalCatalogResponse_creationTime' - The time the signal catalog was created in seconds since epoch (January+-- 1, 1970 at midnight UTC time).+--+-- 'lastModificationTime', 'getSignalCatalogResponse_lastModificationTime' - The last time the signal catalog was modified.+newGetSignalCatalogResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'name'+  Prelude.Text ->+  -- | 'arn'+  Prelude.Text ->+  -- | 'creationTime'+  Prelude.UTCTime ->+  -- | 'lastModificationTime'+  Prelude.UTCTime ->+  GetSignalCatalogResponse+newGetSignalCatalogResponse+  pHttpStatus_+  pName_+  pArn_+  pCreationTime_+  pLastModificationTime_ =+    GetSignalCatalogResponse'+      { description =+          Prelude.Nothing,+        nodeCounts = Prelude.Nothing,+        httpStatus = pHttpStatus_,+        name = pName_,+        arn = pArn_,+        creationTime = Data._Time Lens.# pCreationTime_,+        lastModificationTime =+          Data._Time Lens.# pLastModificationTime_+      }++-- | A brief description of the signal catalog.+getSignalCatalogResponse_description :: Lens.Lens' GetSignalCatalogResponse (Prelude.Maybe Prelude.Text)+getSignalCatalogResponse_description = Lens.lens (\GetSignalCatalogResponse' {description} -> description) (\s@GetSignalCatalogResponse' {} a -> s {description = a} :: GetSignalCatalogResponse)++-- | The total number of network nodes specified in a signal catalog.+getSignalCatalogResponse_nodeCounts :: Lens.Lens' GetSignalCatalogResponse (Prelude.Maybe NodeCounts)+getSignalCatalogResponse_nodeCounts = Lens.lens (\GetSignalCatalogResponse' {nodeCounts} -> nodeCounts) (\s@GetSignalCatalogResponse' {} a -> s {nodeCounts = a} :: GetSignalCatalogResponse)++-- | The response's http status code.+getSignalCatalogResponse_httpStatus :: Lens.Lens' GetSignalCatalogResponse Prelude.Int+getSignalCatalogResponse_httpStatus = Lens.lens (\GetSignalCatalogResponse' {httpStatus} -> httpStatus) (\s@GetSignalCatalogResponse' {} a -> s {httpStatus = a} :: GetSignalCatalogResponse)++-- | The name of the signal catalog.+getSignalCatalogResponse_name :: Lens.Lens' GetSignalCatalogResponse Prelude.Text+getSignalCatalogResponse_name = Lens.lens (\GetSignalCatalogResponse' {name} -> name) (\s@GetSignalCatalogResponse' {} a -> s {name = a} :: GetSignalCatalogResponse)++-- | The Amazon Resource Name (ARN) of the signal catalog.+getSignalCatalogResponse_arn :: Lens.Lens' GetSignalCatalogResponse Prelude.Text+getSignalCatalogResponse_arn = Lens.lens (\GetSignalCatalogResponse' {arn} -> arn) (\s@GetSignalCatalogResponse' {} a -> s {arn = a} :: GetSignalCatalogResponse)++-- | The time the signal catalog was created in seconds since epoch (January+-- 1, 1970 at midnight UTC time).+getSignalCatalogResponse_creationTime :: Lens.Lens' GetSignalCatalogResponse Prelude.UTCTime+getSignalCatalogResponse_creationTime = Lens.lens (\GetSignalCatalogResponse' {creationTime} -> creationTime) (\s@GetSignalCatalogResponse' {} a -> s {creationTime = a} :: GetSignalCatalogResponse) Prelude.. Data._Time++-- | The last time the signal catalog was modified.+getSignalCatalogResponse_lastModificationTime :: Lens.Lens' GetSignalCatalogResponse Prelude.UTCTime+getSignalCatalogResponse_lastModificationTime = Lens.lens (\GetSignalCatalogResponse' {lastModificationTime} -> lastModificationTime) (\s@GetSignalCatalogResponse' {} a -> s {lastModificationTime = a} :: GetSignalCatalogResponse) Prelude.. Data._Time++instance Prelude.NFData GetSignalCatalogResponse where+  rnf GetSignalCatalogResponse' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf nodeCounts+      `Prelude.seq` Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf arn+      `Prelude.seq` Prelude.rnf creationTime+      `Prelude.seq` Prelude.rnf lastModificationTime
+ gen/Amazonka/IoTFleetWise/GetVehicle.hs view
@@ -0,0 +1,252 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.GetVehicle+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves information about a vehicle.+module Amazonka.IoTFleetWise.GetVehicle+  ( -- * Creating a Request+    GetVehicle (..),+    newGetVehicle,++    -- * Request Lenses+    getVehicle_vehicleName,++    -- * Destructuring the Response+    GetVehicleResponse (..),+    newGetVehicleResponse,++    -- * Response Lenses+    getVehicleResponse_arn,+    getVehicleResponse_attributes,+    getVehicleResponse_creationTime,+    getVehicleResponse_decoderManifestArn,+    getVehicleResponse_lastModificationTime,+    getVehicleResponse_modelManifestArn,+    getVehicleResponse_vehicleName,+    getVehicleResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTFleetWise.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetVehicle' smart constructor.+data GetVehicle = GetVehicle'+  { -- | The ID of the vehicle to retrieve information about.+    vehicleName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetVehicle' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'vehicleName', 'getVehicle_vehicleName' - The ID of the vehicle to retrieve information about.+newGetVehicle ::+  -- | 'vehicleName'+  Prelude.Text ->+  GetVehicle+newGetVehicle pVehicleName_ =+  GetVehicle' {vehicleName = pVehicleName_}++-- | The ID of the vehicle to retrieve information about.+getVehicle_vehicleName :: Lens.Lens' GetVehicle Prelude.Text+getVehicle_vehicleName = Lens.lens (\GetVehicle' {vehicleName} -> vehicleName) (\s@GetVehicle' {} a -> s {vehicleName = a} :: GetVehicle)++instance Core.AWSRequest GetVehicle where+  type AWSResponse GetVehicle = GetVehicleResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetVehicleResponse'+            Prelude.<$> (x Data..?> "arn")+            Prelude.<*> (x Data..?> "attributes" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "creationTime")+            Prelude.<*> (x Data..?> "decoderManifestArn")+            Prelude.<*> (x Data..?> "lastModificationTime")+            Prelude.<*> (x Data..?> "modelManifestArn")+            Prelude.<*> (x Data..?> "vehicleName")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetVehicle where+  hashWithSalt _salt GetVehicle' {..} =+    _salt `Prelude.hashWithSalt` vehicleName++instance Prelude.NFData GetVehicle where+  rnf GetVehicle' {..} = Prelude.rnf vehicleName++instance Data.ToHeaders GetVehicle where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "IoTAutobahnControlPlane.GetVehicle" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON GetVehicle where+  toJSON GetVehicle' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("vehicleName" Data..= vehicleName)]+      )++instance Data.ToPath GetVehicle where+  toPath = Prelude.const "/"++instance Data.ToQuery GetVehicle where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetVehicleResponse' smart constructor.+data GetVehicleResponse = GetVehicleResponse'+  { -- | The Amazon Resource Name (ARN) of the vehicle to retrieve information+    -- about.+    arn :: Prelude.Maybe Prelude.Text,+    -- | Static information about a vehicle in a key-value pair. For example:+    --+    -- @\"engineType\"@ : @\"1.3 L R2\"@+    attributes :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The time the vehicle was created in seconds since epoch (January 1, 1970+    -- at midnight UTC time).+    creationTime :: Prelude.Maybe Data.POSIX,+    -- | The ARN of a decoder manifest associated with the vehicle.+    decoderManifestArn :: Prelude.Maybe Prelude.Text,+    -- | The time the vehicle was last updated in seconds since epoch (January 1,+    -- 1970 at midnight UTC time).+    lastModificationTime :: Prelude.Maybe Data.POSIX,+    -- | The ARN of a vehicle model (model manifest) associated with the vehicle.+    modelManifestArn :: Prelude.Maybe Prelude.Text,+    -- | The ID of the vehicle.+    vehicleName :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetVehicleResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'getVehicleResponse_arn' - The Amazon Resource Name (ARN) of the vehicle to retrieve information+-- about.+--+-- 'attributes', 'getVehicleResponse_attributes' - Static information about a vehicle in a key-value pair. For example:+--+-- @\"engineType\"@ : @\"1.3 L R2\"@+--+-- 'creationTime', 'getVehicleResponse_creationTime' - The time the vehicle was created in seconds since epoch (January 1, 1970+-- at midnight UTC time).+--+-- 'decoderManifestArn', 'getVehicleResponse_decoderManifestArn' - The ARN of a decoder manifest associated with the vehicle.+--+-- 'lastModificationTime', 'getVehicleResponse_lastModificationTime' - The time the vehicle was last updated in seconds since epoch (January 1,+-- 1970 at midnight UTC time).+--+-- 'modelManifestArn', 'getVehicleResponse_modelManifestArn' - The ARN of a vehicle model (model manifest) associated with the vehicle.+--+-- 'vehicleName', 'getVehicleResponse_vehicleName' - The ID of the vehicle.+--+-- 'httpStatus', 'getVehicleResponse_httpStatus' - The response's http status code.+newGetVehicleResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetVehicleResponse+newGetVehicleResponse pHttpStatus_ =+  GetVehicleResponse'+    { arn = Prelude.Nothing,+      attributes = Prelude.Nothing,+      creationTime = Prelude.Nothing,+      decoderManifestArn = Prelude.Nothing,+      lastModificationTime = Prelude.Nothing,+      modelManifestArn = Prelude.Nothing,+      vehicleName = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The Amazon Resource Name (ARN) of the vehicle to retrieve information+-- about.+getVehicleResponse_arn :: Lens.Lens' GetVehicleResponse (Prelude.Maybe Prelude.Text)+getVehicleResponse_arn = Lens.lens (\GetVehicleResponse' {arn} -> arn) (\s@GetVehicleResponse' {} a -> s {arn = a} :: GetVehicleResponse)++-- | Static information about a vehicle in a key-value pair. For example:+--+-- @\"engineType\"@ : @\"1.3 L R2\"@+getVehicleResponse_attributes :: Lens.Lens' GetVehicleResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+getVehicleResponse_attributes = Lens.lens (\GetVehicleResponse' {attributes} -> attributes) (\s@GetVehicleResponse' {} a -> s {attributes = a} :: GetVehicleResponse) Prelude.. Lens.mapping Lens.coerced++-- | The time the vehicle was created in seconds since epoch (January 1, 1970+-- at midnight UTC time).+getVehicleResponse_creationTime :: Lens.Lens' GetVehicleResponse (Prelude.Maybe Prelude.UTCTime)+getVehicleResponse_creationTime = Lens.lens (\GetVehicleResponse' {creationTime} -> creationTime) (\s@GetVehicleResponse' {} a -> s {creationTime = a} :: GetVehicleResponse) Prelude.. Lens.mapping Data._Time++-- | The ARN of a decoder manifest associated with the vehicle.+getVehicleResponse_decoderManifestArn :: Lens.Lens' GetVehicleResponse (Prelude.Maybe Prelude.Text)+getVehicleResponse_decoderManifestArn = Lens.lens (\GetVehicleResponse' {decoderManifestArn} -> decoderManifestArn) (\s@GetVehicleResponse' {} a -> s {decoderManifestArn = a} :: GetVehicleResponse)++-- | The time the vehicle was last updated in seconds since epoch (January 1,+-- 1970 at midnight UTC time).+getVehicleResponse_lastModificationTime :: Lens.Lens' GetVehicleResponse (Prelude.Maybe Prelude.UTCTime)+getVehicleResponse_lastModificationTime = Lens.lens (\GetVehicleResponse' {lastModificationTime} -> lastModificationTime) (\s@GetVehicleResponse' {} a -> s {lastModificationTime = a} :: GetVehicleResponse) Prelude.. Lens.mapping Data._Time++-- | The ARN of a vehicle model (model manifest) associated with the vehicle.+getVehicleResponse_modelManifestArn :: Lens.Lens' GetVehicleResponse (Prelude.Maybe Prelude.Text)+getVehicleResponse_modelManifestArn = Lens.lens (\GetVehicleResponse' {modelManifestArn} -> modelManifestArn) (\s@GetVehicleResponse' {} a -> s {modelManifestArn = a} :: GetVehicleResponse)++-- | The ID of the vehicle.+getVehicleResponse_vehicleName :: Lens.Lens' GetVehicleResponse (Prelude.Maybe Prelude.Text)+getVehicleResponse_vehicleName = Lens.lens (\GetVehicleResponse' {vehicleName} -> vehicleName) (\s@GetVehicleResponse' {} a -> s {vehicleName = a} :: GetVehicleResponse)++-- | The response's http status code.+getVehicleResponse_httpStatus :: Lens.Lens' GetVehicleResponse Prelude.Int+getVehicleResponse_httpStatus = Lens.lens (\GetVehicleResponse' {httpStatus} -> httpStatus) (\s@GetVehicleResponse' {} a -> s {httpStatus = a} :: GetVehicleResponse)++instance Prelude.NFData GetVehicleResponse where+  rnf GetVehicleResponse' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf attributes+      `Prelude.seq` Prelude.rnf creationTime+      `Prelude.seq` Prelude.rnf decoderManifestArn+      `Prelude.seq` Prelude.rnf lastModificationTime+      `Prelude.seq` Prelude.rnf modelManifestArn+      `Prelude.seq` Prelude.rnf vehicleName+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/IoTFleetWise/GetVehicleStatus.hs view
@@ -0,0 +1,260 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.GetVehicleStatus+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves information about the status of a vehicle with any associated+-- campaigns.+--+-- This operation returns paginated results.+module Amazonka.IoTFleetWise.GetVehicleStatus+  ( -- * Creating a Request+    GetVehicleStatus (..),+    newGetVehicleStatus,++    -- * Request Lenses+    getVehicleStatus_maxResults,+    getVehicleStatus_nextToken,+    getVehicleStatus_vehicleName,++    -- * Destructuring the Response+    GetVehicleStatusResponse (..),+    newGetVehicleStatusResponse,++    -- * Response Lenses+    getVehicleStatusResponse_campaigns,+    getVehicleStatusResponse_nextToken,+    getVehicleStatusResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTFleetWise.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetVehicleStatus' smart constructor.+data GetVehicleStatus = GetVehicleStatus'+  { -- | The maximum number of items to return, between 1 and 100, inclusive.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | A pagination token for the next set of results.+    --+    -- If the results of a search are large, only a portion of the results are+    -- returned, and a @nextToken@ pagination token is returned in the+    -- response. To retrieve the next set of results, reissue the search+    -- request and include the returned token. When all results have been+    -- returned, the response does not contain a pagination token value.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The ID of the vehicle to retrieve information about.+    vehicleName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetVehicleStatus' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'maxResults', 'getVehicleStatus_maxResults' - The maximum number of items to return, between 1 and 100, inclusive.+--+-- 'nextToken', 'getVehicleStatus_nextToken' - A pagination token for the next set of results.+--+-- If the results of a search are large, only a portion of the results are+-- returned, and a @nextToken@ pagination token is returned in the+-- response. To retrieve the next set of results, reissue the search+-- request and include the returned token. When all results have been+-- returned, the response does not contain a pagination token value.+--+-- 'vehicleName', 'getVehicleStatus_vehicleName' - The ID of the vehicle to retrieve information about.+newGetVehicleStatus ::+  -- | 'vehicleName'+  Prelude.Text ->+  GetVehicleStatus+newGetVehicleStatus pVehicleName_ =+  GetVehicleStatus'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      vehicleName = pVehicleName_+    }++-- | The maximum number of items to return, between 1 and 100, inclusive.+getVehicleStatus_maxResults :: Lens.Lens' GetVehicleStatus (Prelude.Maybe Prelude.Natural)+getVehicleStatus_maxResults = Lens.lens (\GetVehicleStatus' {maxResults} -> maxResults) (\s@GetVehicleStatus' {} a -> s {maxResults = a} :: GetVehicleStatus)++-- | A pagination token for the next set of results.+--+-- If the results of a search are large, only a portion of the results are+-- returned, and a @nextToken@ pagination token is returned in the+-- response. To retrieve the next set of results, reissue the search+-- request and include the returned token. When all results have been+-- returned, the response does not contain a pagination token value.+getVehicleStatus_nextToken :: Lens.Lens' GetVehicleStatus (Prelude.Maybe Prelude.Text)+getVehicleStatus_nextToken = Lens.lens (\GetVehicleStatus' {nextToken} -> nextToken) (\s@GetVehicleStatus' {} a -> s {nextToken = a} :: GetVehicleStatus)++-- | The ID of the vehicle to retrieve information about.+getVehicleStatus_vehicleName :: Lens.Lens' GetVehicleStatus Prelude.Text+getVehicleStatus_vehicleName = Lens.lens (\GetVehicleStatus' {vehicleName} -> vehicleName) (\s@GetVehicleStatus' {} a -> s {vehicleName = a} :: GetVehicleStatus)++instance Core.AWSPager GetVehicleStatus where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? getVehicleStatusResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? getVehicleStatusResponse_campaigns+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& getVehicleStatus_nextToken+          Lens..~ rs+          Lens.^? getVehicleStatusResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest GetVehicleStatus where+  type+    AWSResponse GetVehicleStatus =+      GetVehicleStatusResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetVehicleStatusResponse'+            Prelude.<$> (x Data..?> "campaigns" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetVehicleStatus where+  hashWithSalt _salt GetVehicleStatus' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` vehicleName++instance Prelude.NFData GetVehicleStatus where+  rnf GetVehicleStatus' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf vehicleName++instance Data.ToHeaders GetVehicleStatus where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "IoTAutobahnControlPlane.GetVehicleStatus" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON GetVehicleStatus where+  toJSON GetVehicleStatus' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken,+            Prelude.Just ("vehicleName" Data..= vehicleName)+          ]+      )++instance Data.ToPath GetVehicleStatus where+  toPath = Prelude.const "/"++instance Data.ToQuery GetVehicleStatus where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetVehicleStatusResponse' smart constructor.+data GetVehicleStatusResponse = GetVehicleStatusResponse'+  { -- | Lists information about the state of the vehicle with deployed+    -- campaigns.+    campaigns :: Prelude.Maybe [VehicleStatus],+    -- | The token to retrieve the next set of results, or @null@ if there are no+    -- more results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetVehicleStatusResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'campaigns', 'getVehicleStatusResponse_campaigns' - Lists information about the state of the vehicle with deployed+-- campaigns.+--+-- 'nextToken', 'getVehicleStatusResponse_nextToken' - The token to retrieve the next set of results, or @null@ if there are no+-- more results.+--+-- 'httpStatus', 'getVehicleStatusResponse_httpStatus' - The response's http status code.+newGetVehicleStatusResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetVehicleStatusResponse+newGetVehicleStatusResponse pHttpStatus_ =+  GetVehicleStatusResponse'+    { campaigns =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Lists information about the state of the vehicle with deployed+-- campaigns.+getVehicleStatusResponse_campaigns :: Lens.Lens' GetVehicleStatusResponse (Prelude.Maybe [VehicleStatus])+getVehicleStatusResponse_campaigns = Lens.lens (\GetVehicleStatusResponse' {campaigns} -> campaigns) (\s@GetVehicleStatusResponse' {} a -> s {campaigns = a} :: GetVehicleStatusResponse) Prelude.. Lens.mapping Lens.coerced++-- | The token to retrieve the next set of results, or @null@ if there are no+-- more results.+getVehicleStatusResponse_nextToken :: Lens.Lens' GetVehicleStatusResponse (Prelude.Maybe Prelude.Text)+getVehicleStatusResponse_nextToken = Lens.lens (\GetVehicleStatusResponse' {nextToken} -> nextToken) (\s@GetVehicleStatusResponse' {} a -> s {nextToken = a} :: GetVehicleStatusResponse)++-- | The response's http status code.+getVehicleStatusResponse_httpStatus :: Lens.Lens' GetVehicleStatusResponse Prelude.Int+getVehicleStatusResponse_httpStatus = Lens.lens (\GetVehicleStatusResponse' {httpStatus} -> httpStatus) (\s@GetVehicleStatusResponse' {} a -> s {httpStatus = a} :: GetVehicleStatusResponse)++instance Prelude.NFData GetVehicleStatusResponse where+  rnf GetVehicleStatusResponse' {..} =+    Prelude.rnf campaigns+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/IoTFleetWise/ImportDecoderManifest.hs view
@@ -0,0 +1,212 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.ImportDecoderManifest+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a decoder manifest using your existing CAN DBC file from your+-- local device.+module Amazonka.IoTFleetWise.ImportDecoderManifest+  ( -- * Creating a Request+    ImportDecoderManifest (..),+    newImportDecoderManifest,++    -- * Request Lenses+    importDecoderManifest_name,+    importDecoderManifest_networkFileDefinitions,++    -- * Destructuring the Response+    ImportDecoderManifestResponse (..),+    newImportDecoderManifestResponse,++    -- * Response Lenses+    importDecoderManifestResponse_httpStatus,+    importDecoderManifestResponse_name,+    importDecoderManifestResponse_arn,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTFleetWise.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newImportDecoderManifest' smart constructor.+data ImportDecoderManifest = ImportDecoderManifest'+  { -- | The name of the decoder manifest to import.+    name :: Prelude.Text,+    -- | The file to load into an Amazon Web Services account.+    networkFileDefinitions :: [NetworkFileDefinition]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ImportDecoderManifest' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'name', 'importDecoderManifest_name' - The name of the decoder manifest to import.+--+-- 'networkFileDefinitions', 'importDecoderManifest_networkFileDefinitions' - The file to load into an Amazon Web Services account.+newImportDecoderManifest ::+  -- | 'name'+  Prelude.Text ->+  ImportDecoderManifest+newImportDecoderManifest pName_ =+  ImportDecoderManifest'+    { name = pName_,+      networkFileDefinitions = Prelude.mempty+    }++-- | The name of the decoder manifest to import.+importDecoderManifest_name :: Lens.Lens' ImportDecoderManifest Prelude.Text+importDecoderManifest_name = Lens.lens (\ImportDecoderManifest' {name} -> name) (\s@ImportDecoderManifest' {} a -> s {name = a} :: ImportDecoderManifest)++-- | The file to load into an Amazon Web Services account.+importDecoderManifest_networkFileDefinitions :: Lens.Lens' ImportDecoderManifest [NetworkFileDefinition]+importDecoderManifest_networkFileDefinitions = Lens.lens (\ImportDecoderManifest' {networkFileDefinitions} -> networkFileDefinitions) (\s@ImportDecoderManifest' {} a -> s {networkFileDefinitions = a} :: ImportDecoderManifest) Prelude.. Lens.coerced++instance Core.AWSRequest ImportDecoderManifest where+  type+    AWSResponse ImportDecoderManifest =+      ImportDecoderManifestResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ImportDecoderManifestResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "name")+            Prelude.<*> (x Data..:> "arn")+      )++instance Prelude.Hashable ImportDecoderManifest where+  hashWithSalt _salt ImportDecoderManifest' {..} =+    _salt+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` networkFileDefinitions++instance Prelude.NFData ImportDecoderManifest where+  rnf ImportDecoderManifest' {..} =+    Prelude.rnf name+      `Prelude.seq` Prelude.rnf networkFileDefinitions++instance Data.ToHeaders ImportDecoderManifest where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "IoTAutobahnControlPlane.ImportDecoderManifest" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ImportDecoderManifest where+  toJSON ImportDecoderManifest' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("name" Data..= name),+            Prelude.Just+              ( "networkFileDefinitions"+                  Data..= networkFileDefinitions+              )+          ]+      )++instance Data.ToPath ImportDecoderManifest where+  toPath = Prelude.const "/"++instance Data.ToQuery ImportDecoderManifest where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newImportDecoderManifestResponse' smart constructor.+data ImportDecoderManifestResponse = ImportDecoderManifestResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The name of the imported decoder manifest.+    name :: Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the decoder manifest that was+    -- imported.+    arn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ImportDecoderManifestResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'importDecoderManifestResponse_httpStatus' - The response's http status code.+--+-- 'name', 'importDecoderManifestResponse_name' - The name of the imported decoder manifest.+--+-- 'arn', 'importDecoderManifestResponse_arn' - The Amazon Resource Name (ARN) of the decoder manifest that was+-- imported.+newImportDecoderManifestResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'name'+  Prelude.Text ->+  -- | 'arn'+  Prelude.Text ->+  ImportDecoderManifestResponse+newImportDecoderManifestResponse+  pHttpStatus_+  pName_+  pArn_ =+    ImportDecoderManifestResponse'+      { httpStatus =+          pHttpStatus_,+        name = pName_,+        arn = pArn_+      }++-- | The response's http status code.+importDecoderManifestResponse_httpStatus :: Lens.Lens' ImportDecoderManifestResponse Prelude.Int+importDecoderManifestResponse_httpStatus = Lens.lens (\ImportDecoderManifestResponse' {httpStatus} -> httpStatus) (\s@ImportDecoderManifestResponse' {} a -> s {httpStatus = a} :: ImportDecoderManifestResponse)++-- | The name of the imported decoder manifest.+importDecoderManifestResponse_name :: Lens.Lens' ImportDecoderManifestResponse Prelude.Text+importDecoderManifestResponse_name = Lens.lens (\ImportDecoderManifestResponse' {name} -> name) (\s@ImportDecoderManifestResponse' {} a -> s {name = a} :: ImportDecoderManifestResponse)++-- | The Amazon Resource Name (ARN) of the decoder manifest that was+-- imported.+importDecoderManifestResponse_arn :: Lens.Lens' ImportDecoderManifestResponse Prelude.Text+importDecoderManifestResponse_arn = Lens.lens (\ImportDecoderManifestResponse' {arn} -> arn) (\s@ImportDecoderManifestResponse' {} a -> s {arn = a} :: ImportDecoderManifestResponse)++instance Prelude.NFData ImportDecoderManifestResponse where+  rnf ImportDecoderManifestResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf arn
+ gen/Amazonka/IoTFleetWise/ImportSignalCatalog.hs view
@@ -0,0 +1,238 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.ImportSignalCatalog+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a signal catalog using your existing VSS formatted content from+-- your local device.+module Amazonka.IoTFleetWise.ImportSignalCatalog+  ( -- * Creating a Request+    ImportSignalCatalog (..),+    newImportSignalCatalog,++    -- * Request Lenses+    importSignalCatalog_description,+    importSignalCatalog_tags,+    importSignalCatalog_vss,+    importSignalCatalog_name,++    -- * Destructuring the Response+    ImportSignalCatalogResponse (..),+    newImportSignalCatalogResponse,++    -- * Response Lenses+    importSignalCatalogResponse_httpStatus,+    importSignalCatalogResponse_name,+    importSignalCatalogResponse_arn,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTFleetWise.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newImportSignalCatalog' smart constructor.+data ImportSignalCatalog = ImportSignalCatalog'+  { -- | A brief description of the signal catalog.+    description :: Prelude.Maybe Prelude.Text,+    -- | Metadata that can be used to manage the signal catalog.+    tags :: Prelude.Maybe [Tag],+    -- | The contents of the Vehicle Signal Specification (VSS) configuration.+    -- VSS is a precise language used to describe and model signals in vehicle+    -- networks.+    vss :: Prelude.Maybe FormattedVss,+    -- | The name of the signal catalog to import.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ImportSignalCatalog' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'description', 'importSignalCatalog_description' - A brief description of the signal catalog.+--+-- 'tags', 'importSignalCatalog_tags' - Metadata that can be used to manage the signal catalog.+--+-- 'vss', 'importSignalCatalog_vss' - The contents of the Vehicle Signal Specification (VSS) configuration.+-- VSS is a precise language used to describe and model signals in vehicle+-- networks.+--+-- 'name', 'importSignalCatalog_name' - The name of the signal catalog to import.+newImportSignalCatalog ::+  -- | 'name'+  Prelude.Text ->+  ImportSignalCatalog+newImportSignalCatalog pName_ =+  ImportSignalCatalog'+    { description = Prelude.Nothing,+      tags = Prelude.Nothing,+      vss = Prelude.Nothing,+      name = pName_+    }++-- | A brief description of the signal catalog.+importSignalCatalog_description :: Lens.Lens' ImportSignalCatalog (Prelude.Maybe Prelude.Text)+importSignalCatalog_description = Lens.lens (\ImportSignalCatalog' {description} -> description) (\s@ImportSignalCatalog' {} a -> s {description = a} :: ImportSignalCatalog)++-- | Metadata that can be used to manage the signal catalog.+importSignalCatalog_tags :: Lens.Lens' ImportSignalCatalog (Prelude.Maybe [Tag])+importSignalCatalog_tags = Lens.lens (\ImportSignalCatalog' {tags} -> tags) (\s@ImportSignalCatalog' {} a -> s {tags = a} :: ImportSignalCatalog) Prelude.. Lens.mapping Lens.coerced++-- | The contents of the Vehicle Signal Specification (VSS) configuration.+-- VSS is a precise language used to describe and model signals in vehicle+-- networks.+importSignalCatalog_vss :: Lens.Lens' ImportSignalCatalog (Prelude.Maybe FormattedVss)+importSignalCatalog_vss = Lens.lens (\ImportSignalCatalog' {vss} -> vss) (\s@ImportSignalCatalog' {} a -> s {vss = a} :: ImportSignalCatalog)++-- | The name of the signal catalog to import.+importSignalCatalog_name :: Lens.Lens' ImportSignalCatalog Prelude.Text+importSignalCatalog_name = Lens.lens (\ImportSignalCatalog' {name} -> name) (\s@ImportSignalCatalog' {} a -> s {name = a} :: ImportSignalCatalog)++instance Core.AWSRequest ImportSignalCatalog where+  type+    AWSResponse ImportSignalCatalog =+      ImportSignalCatalogResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ImportSignalCatalogResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "name")+            Prelude.<*> (x Data..:> "arn")+      )++instance Prelude.Hashable ImportSignalCatalog where+  hashWithSalt _salt ImportSignalCatalog' {..} =+    _salt+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` vss+      `Prelude.hashWithSalt` name++instance Prelude.NFData ImportSignalCatalog where+  rnf ImportSignalCatalog' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf vss+      `Prelude.seq` Prelude.rnf name++instance Data.ToHeaders ImportSignalCatalog where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "IoTAutobahnControlPlane.ImportSignalCatalog" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ImportSignalCatalog where+  toJSON ImportSignalCatalog' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("description" Data..=) Prelude.<$> description,+            ("tags" Data..=) Prelude.<$> tags,+            ("vss" Data..=) Prelude.<$> vss,+            Prelude.Just ("name" Data..= name)+          ]+      )++instance Data.ToPath ImportSignalCatalog where+  toPath = Prelude.const "/"++instance Data.ToQuery ImportSignalCatalog where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newImportSignalCatalogResponse' smart constructor.+data ImportSignalCatalogResponse = ImportSignalCatalogResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The name of the imported signal catalog.+    name :: Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the imported signal catalog.+    arn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ImportSignalCatalogResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'importSignalCatalogResponse_httpStatus' - The response's http status code.+--+-- 'name', 'importSignalCatalogResponse_name' - The name of the imported signal catalog.+--+-- 'arn', 'importSignalCatalogResponse_arn' - The Amazon Resource Name (ARN) of the imported signal catalog.+newImportSignalCatalogResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'name'+  Prelude.Text ->+  -- | 'arn'+  Prelude.Text ->+  ImportSignalCatalogResponse+newImportSignalCatalogResponse+  pHttpStatus_+  pName_+  pArn_ =+    ImportSignalCatalogResponse'+      { httpStatus =+          pHttpStatus_,+        name = pName_,+        arn = pArn_+      }++-- | The response's http status code.+importSignalCatalogResponse_httpStatus :: Lens.Lens' ImportSignalCatalogResponse Prelude.Int+importSignalCatalogResponse_httpStatus = Lens.lens (\ImportSignalCatalogResponse' {httpStatus} -> httpStatus) (\s@ImportSignalCatalogResponse' {} a -> s {httpStatus = a} :: ImportSignalCatalogResponse)++-- | The name of the imported signal catalog.+importSignalCatalogResponse_name :: Lens.Lens' ImportSignalCatalogResponse Prelude.Text+importSignalCatalogResponse_name = Lens.lens (\ImportSignalCatalogResponse' {name} -> name) (\s@ImportSignalCatalogResponse' {} a -> s {name = a} :: ImportSignalCatalogResponse)++-- | The Amazon Resource Name (ARN) of the imported signal catalog.+importSignalCatalogResponse_arn :: Lens.Lens' ImportSignalCatalogResponse Prelude.Text+importSignalCatalogResponse_arn = Lens.lens (\ImportSignalCatalogResponse' {arn} -> arn) (\s@ImportSignalCatalogResponse' {} a -> s {arn = a} :: ImportSignalCatalogResponse)++instance Prelude.NFData ImportSignalCatalogResponse where+  rnf ImportSignalCatalogResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf arn
+ gen/Amazonka/IoTFleetWise/Lens.hs view
@@ -0,0 +1,774 @@+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.Lens+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTFleetWise.Lens+  ( -- * Operations++    -- ** AssociateVehicleFleet+    associateVehicleFleet_vehicleName,+    associateVehicleFleet_fleetId,+    associateVehicleFleetResponse_httpStatus,++    -- ** BatchCreateVehicle+    batchCreateVehicle_vehicles,+    batchCreateVehicleResponse_errors,+    batchCreateVehicleResponse_vehicles,+    batchCreateVehicleResponse_httpStatus,++    -- ** BatchUpdateVehicle+    batchUpdateVehicle_vehicles,+    batchUpdateVehicleResponse_errors,+    batchUpdateVehicleResponse_vehicles,+    batchUpdateVehicleResponse_httpStatus,++    -- ** CreateCampaign+    createCampaign_compression,+    createCampaign_dataExtraDimensions,+    createCampaign_description,+    createCampaign_diagnosticsMode,+    createCampaign_expiryTime,+    createCampaign_postTriggerCollectionDuration,+    createCampaign_priority,+    createCampaign_signalsToCollect,+    createCampaign_spoolingMode,+    createCampaign_startTime,+    createCampaign_tags,+    createCampaign_name,+    createCampaign_signalCatalogArn,+    createCampaign_targetArn,+    createCampaign_collectionScheme,+    createCampaignResponse_arn,+    createCampaignResponse_name,+    createCampaignResponse_httpStatus,++    -- ** CreateDecoderManifest+    createDecoderManifest_description,+    createDecoderManifest_networkInterfaces,+    createDecoderManifest_signalDecoders,+    createDecoderManifest_tags,+    createDecoderManifest_name,+    createDecoderManifest_modelManifestArn,+    createDecoderManifestResponse_httpStatus,+    createDecoderManifestResponse_name,+    createDecoderManifestResponse_arn,++    -- ** CreateFleet+    createFleet_description,+    createFleet_tags,+    createFleet_fleetId,+    createFleet_signalCatalogArn,+    createFleetResponse_httpStatus,+    createFleetResponse_id,+    createFleetResponse_arn,++    -- ** CreateModelManifest+    createModelManifest_description,+    createModelManifest_tags,+    createModelManifest_name,+    createModelManifest_nodes,+    createModelManifest_signalCatalogArn,+    createModelManifestResponse_httpStatus,+    createModelManifestResponse_name,+    createModelManifestResponse_arn,++    -- ** CreateSignalCatalog+    createSignalCatalog_description,+    createSignalCatalog_nodes,+    createSignalCatalog_tags,+    createSignalCatalog_name,+    createSignalCatalogResponse_httpStatus,+    createSignalCatalogResponse_name,+    createSignalCatalogResponse_arn,++    -- ** CreateVehicle+    createVehicle_associationBehavior,+    createVehicle_attributes,+    createVehicle_tags,+    createVehicle_vehicleName,+    createVehicle_modelManifestArn,+    createVehicle_decoderManifestArn,+    createVehicleResponse_arn,+    createVehicleResponse_thingArn,+    createVehicleResponse_vehicleName,+    createVehicleResponse_httpStatus,++    -- ** DeleteCampaign+    deleteCampaign_name,+    deleteCampaignResponse_arn,+    deleteCampaignResponse_name,+    deleteCampaignResponse_httpStatus,++    -- ** DeleteDecoderManifest+    deleteDecoderManifest_name,+    deleteDecoderManifestResponse_httpStatus,+    deleteDecoderManifestResponse_name,+    deleteDecoderManifestResponse_arn,++    -- ** DeleteFleet+    deleteFleet_fleetId,+    deleteFleetResponse_arn,+    deleteFleetResponse_id,+    deleteFleetResponse_httpStatus,++    -- ** DeleteModelManifest+    deleteModelManifest_name,+    deleteModelManifestResponse_httpStatus,+    deleteModelManifestResponse_name,+    deleteModelManifestResponse_arn,++    -- ** DeleteSignalCatalog+    deleteSignalCatalog_name,+    deleteSignalCatalogResponse_httpStatus,+    deleteSignalCatalogResponse_name,+    deleteSignalCatalogResponse_arn,++    -- ** DeleteVehicle+    deleteVehicle_vehicleName,+    deleteVehicleResponse_httpStatus,+    deleteVehicleResponse_vehicleName,+    deleteVehicleResponse_arn,++    -- ** DisassociateVehicleFleet+    disassociateVehicleFleet_vehicleName,+    disassociateVehicleFleet_fleetId,+    disassociateVehicleFleetResponse_httpStatus,++    -- ** GetCampaign+    getCampaign_name,+    getCampaignResponse_arn,+    getCampaignResponse_collectionScheme,+    getCampaignResponse_compression,+    getCampaignResponse_creationTime,+    getCampaignResponse_dataExtraDimensions,+    getCampaignResponse_description,+    getCampaignResponse_diagnosticsMode,+    getCampaignResponse_expiryTime,+    getCampaignResponse_lastModificationTime,+    getCampaignResponse_name,+    getCampaignResponse_postTriggerCollectionDuration,+    getCampaignResponse_priority,+    getCampaignResponse_signalCatalogArn,+    getCampaignResponse_signalsToCollect,+    getCampaignResponse_spoolingMode,+    getCampaignResponse_startTime,+    getCampaignResponse_status,+    getCampaignResponse_targetArn,+    getCampaignResponse_httpStatus,++    -- ** GetDecoderManifest+    getDecoderManifest_name,+    getDecoderManifestResponse_description,+    getDecoderManifestResponse_modelManifestArn,+    getDecoderManifestResponse_status,+    getDecoderManifestResponse_httpStatus,+    getDecoderManifestResponse_name,+    getDecoderManifestResponse_arn,+    getDecoderManifestResponse_creationTime,+    getDecoderManifestResponse_lastModificationTime,++    -- ** GetFleet+    getFleet_fleetId,+    getFleetResponse_description,+    getFleetResponse_httpStatus,+    getFleetResponse_id,+    getFleetResponse_arn,+    getFleetResponse_signalCatalogArn,+    getFleetResponse_creationTime,+    getFleetResponse_lastModificationTime,++    -- ** GetLoggingOptions+    getLoggingOptionsResponse_httpStatus,+    getLoggingOptionsResponse_cloudWatchLogDelivery,++    -- ** GetModelManifest+    getModelManifest_name,+    getModelManifestResponse_description,+    getModelManifestResponse_signalCatalogArn,+    getModelManifestResponse_status,+    getModelManifestResponse_httpStatus,+    getModelManifestResponse_name,+    getModelManifestResponse_arn,+    getModelManifestResponse_creationTime,+    getModelManifestResponse_lastModificationTime,++    -- ** GetRegisterAccountStatus+    getRegisterAccountStatusResponse_httpStatus,+    getRegisterAccountStatusResponse_customerAccountId,+    getRegisterAccountStatusResponse_accountStatus,+    getRegisterAccountStatusResponse_timestreamRegistrationResponse,+    getRegisterAccountStatusResponse_iamRegistrationResponse,+    getRegisterAccountStatusResponse_creationTime,+    getRegisterAccountStatusResponse_lastModificationTime,++    -- ** GetSignalCatalog+    getSignalCatalog_name,+    getSignalCatalogResponse_description,+    getSignalCatalogResponse_nodeCounts,+    getSignalCatalogResponse_httpStatus,+    getSignalCatalogResponse_name,+    getSignalCatalogResponse_arn,+    getSignalCatalogResponse_creationTime,+    getSignalCatalogResponse_lastModificationTime,++    -- ** GetVehicle+    getVehicle_vehicleName,+    getVehicleResponse_arn,+    getVehicleResponse_attributes,+    getVehicleResponse_creationTime,+    getVehicleResponse_decoderManifestArn,+    getVehicleResponse_lastModificationTime,+    getVehicleResponse_modelManifestArn,+    getVehicleResponse_vehicleName,+    getVehicleResponse_httpStatus,++    -- ** GetVehicleStatus+    getVehicleStatus_maxResults,+    getVehicleStatus_nextToken,+    getVehicleStatus_vehicleName,+    getVehicleStatusResponse_campaigns,+    getVehicleStatusResponse_nextToken,+    getVehicleStatusResponse_httpStatus,++    -- ** ImportDecoderManifest+    importDecoderManifest_name,+    importDecoderManifest_networkFileDefinitions,+    importDecoderManifestResponse_httpStatus,+    importDecoderManifestResponse_name,+    importDecoderManifestResponse_arn,++    -- ** ImportSignalCatalog+    importSignalCatalog_description,+    importSignalCatalog_tags,+    importSignalCatalog_vss,+    importSignalCatalog_name,+    importSignalCatalogResponse_httpStatus,+    importSignalCatalogResponse_name,+    importSignalCatalogResponse_arn,++    -- ** ListCampaigns+    listCampaigns_maxResults,+    listCampaigns_nextToken,+    listCampaigns_status,+    listCampaignsResponse_campaignSummaries,+    listCampaignsResponse_nextToken,+    listCampaignsResponse_httpStatus,++    -- ** ListDecoderManifestNetworkInterfaces+    listDecoderManifestNetworkInterfaces_maxResults,+    listDecoderManifestNetworkInterfaces_nextToken,+    listDecoderManifestNetworkInterfaces_name,+    listDecoderManifestNetworkInterfacesResponse_networkInterfaces,+    listDecoderManifestNetworkInterfacesResponse_nextToken,+    listDecoderManifestNetworkInterfacesResponse_httpStatus,++    -- ** ListDecoderManifestSignals+    listDecoderManifestSignals_maxResults,+    listDecoderManifestSignals_nextToken,+    listDecoderManifestSignals_name,+    listDecoderManifestSignalsResponse_nextToken,+    listDecoderManifestSignalsResponse_signalDecoders,+    listDecoderManifestSignalsResponse_httpStatus,++    -- ** ListDecoderManifests+    listDecoderManifests_maxResults,+    listDecoderManifests_modelManifestArn,+    listDecoderManifests_nextToken,+    listDecoderManifestsResponse_nextToken,+    listDecoderManifestsResponse_summaries,+    listDecoderManifestsResponse_httpStatus,++    -- ** ListFleets+    listFleets_maxResults,+    listFleets_nextToken,+    listFleetsResponse_fleetSummaries,+    listFleetsResponse_nextToken,+    listFleetsResponse_httpStatus,++    -- ** ListFleetsForVehicle+    listFleetsForVehicle_maxResults,+    listFleetsForVehicle_nextToken,+    listFleetsForVehicle_vehicleName,+    listFleetsForVehicleResponse_fleets,+    listFleetsForVehicleResponse_nextToken,+    listFleetsForVehicleResponse_httpStatus,++    -- ** ListModelManifestNodes+    listModelManifestNodes_maxResults,+    listModelManifestNodes_nextToken,+    listModelManifestNodes_name,+    listModelManifestNodesResponse_nextToken,+    listModelManifestNodesResponse_nodes,+    listModelManifestNodesResponse_httpStatus,++    -- ** ListModelManifests+    listModelManifests_maxResults,+    listModelManifests_nextToken,+    listModelManifests_signalCatalogArn,+    listModelManifestsResponse_nextToken,+    listModelManifestsResponse_summaries,+    listModelManifestsResponse_httpStatus,++    -- ** ListSignalCatalogNodes+    listSignalCatalogNodes_maxResults,+    listSignalCatalogNodes_nextToken,+    listSignalCatalogNodes_name,+    listSignalCatalogNodesResponse_nextToken,+    listSignalCatalogNodesResponse_nodes,+    listSignalCatalogNodesResponse_httpStatus,++    -- ** ListSignalCatalogs+    listSignalCatalogs_maxResults,+    listSignalCatalogs_nextToken,+    listSignalCatalogsResponse_nextToken,+    listSignalCatalogsResponse_summaries,+    listSignalCatalogsResponse_httpStatus,++    -- ** ListTagsForResource+    listTagsForResource_resourceARN,+    listTagsForResourceResponse_tags,+    listTagsForResourceResponse_httpStatus,++    -- ** ListVehicles+    listVehicles_maxResults,+    listVehicles_modelManifestArn,+    listVehicles_nextToken,+    listVehiclesResponse_nextToken,+    listVehiclesResponse_vehicleSummaries,+    listVehiclesResponse_httpStatus,++    -- ** ListVehiclesInFleet+    listVehiclesInFleet_maxResults,+    listVehiclesInFleet_nextToken,+    listVehiclesInFleet_fleetId,+    listVehiclesInFleetResponse_nextToken,+    listVehiclesInFleetResponse_vehicles,+    listVehiclesInFleetResponse_httpStatus,++    -- ** PutLoggingOptions+    putLoggingOptions_cloudWatchLogDelivery,+    putLoggingOptionsResponse_httpStatus,++    -- ** RegisterAccount+    registerAccount_iamResources,+    registerAccount_timestreamResources,+    registerAccountResponse_httpStatus,+    registerAccountResponse_registerAccountStatus,+    registerAccountResponse_timestreamResources,+    registerAccountResponse_iamResources,+    registerAccountResponse_creationTime,+    registerAccountResponse_lastModificationTime,++    -- ** TagResource+    tagResource_resourceARN,+    tagResource_tags,+    tagResourceResponse_httpStatus,++    -- ** UntagResource+    untagResource_resourceARN,+    untagResource_tagKeys,+    untagResourceResponse_httpStatus,++    -- ** UpdateCampaign+    updateCampaign_dataExtraDimensions,+    updateCampaign_description,+    updateCampaign_name,+    updateCampaign_action,+    updateCampaignResponse_arn,+    updateCampaignResponse_name,+    updateCampaignResponse_status,+    updateCampaignResponse_httpStatus,++    -- ** UpdateDecoderManifest+    updateDecoderManifest_description,+    updateDecoderManifest_networkInterfacesToAdd,+    updateDecoderManifest_networkInterfacesToRemove,+    updateDecoderManifest_networkInterfacesToUpdate,+    updateDecoderManifest_signalDecodersToAdd,+    updateDecoderManifest_signalDecodersToRemove,+    updateDecoderManifest_signalDecodersToUpdate,+    updateDecoderManifest_status,+    updateDecoderManifest_name,+    updateDecoderManifestResponse_httpStatus,+    updateDecoderManifestResponse_name,+    updateDecoderManifestResponse_arn,++    -- ** UpdateFleet+    updateFleet_description,+    updateFleet_fleetId,+    updateFleetResponse_arn,+    updateFleetResponse_id,+    updateFleetResponse_httpStatus,++    -- ** UpdateModelManifest+    updateModelManifest_description,+    updateModelManifest_nodesToAdd,+    updateModelManifest_nodesToRemove,+    updateModelManifest_status,+    updateModelManifest_name,+    updateModelManifestResponse_httpStatus,+    updateModelManifestResponse_name,+    updateModelManifestResponse_arn,++    -- ** UpdateSignalCatalog+    updateSignalCatalog_description,+    updateSignalCatalog_nodesToAdd,+    updateSignalCatalog_nodesToRemove,+    updateSignalCatalog_nodesToUpdate,+    updateSignalCatalog_name,+    updateSignalCatalogResponse_httpStatus,+    updateSignalCatalogResponse_name,+    updateSignalCatalogResponse_arn,++    -- ** UpdateVehicle+    updateVehicle_attributeUpdateMode,+    updateVehicle_attributes,+    updateVehicle_decoderManifestArn,+    updateVehicle_modelManifestArn,+    updateVehicle_vehicleName,+    updateVehicleResponse_arn,+    updateVehicleResponse_vehicleName,+    updateVehicleResponse_httpStatus,++    -- * Types++    -- ** Actuator+    actuator_allowedValues,+    actuator_assignedValue,+    actuator_description,+    actuator_max,+    actuator_min,+    actuator_unit,+    actuator_fullyQualifiedName,+    actuator_dataType,++    -- ** Attribute+    attribute_allowedValues,+    attribute_assignedValue,+    attribute_defaultValue,+    attribute_description,+    attribute_max,+    attribute_min,+    attribute_unit,+    attribute_fullyQualifiedName,+    attribute_dataType,++    -- ** Branch+    branch_description,+    branch_fullyQualifiedName,++    -- ** CampaignSummary+    campaignSummary_arn,+    campaignSummary_description,+    campaignSummary_name,+    campaignSummary_signalCatalogArn,+    campaignSummary_status,+    campaignSummary_targetArn,+    campaignSummary_creationTime,+    campaignSummary_lastModificationTime,++    -- ** CanDbcDefinition+    canDbcDefinition_signalsMap,+    canDbcDefinition_networkInterface,+    canDbcDefinition_canDbcFiles,++    -- ** CanInterface+    canInterface_protocolName,+    canInterface_protocolVersion,+    canInterface_name,++    -- ** CanSignal+    canSignal_name,+    canSignal_messageId,+    canSignal_isBigEndian,+    canSignal_isSigned,+    canSignal_startBit,+    canSignal_offset,+    canSignal_factor,+    canSignal_length,++    -- ** CloudWatchLogDeliveryOptions+    cloudWatchLogDeliveryOptions_logGroupName,+    cloudWatchLogDeliveryOptions_logType,++    -- ** CollectionScheme+    collectionScheme_conditionBasedCollectionScheme,+    collectionScheme_timeBasedCollectionScheme,++    -- ** ConditionBasedCollectionScheme+    conditionBasedCollectionScheme_conditionLanguageVersion,+    conditionBasedCollectionScheme_minimumTriggerIntervalMs,+    conditionBasedCollectionScheme_triggerMode,+    conditionBasedCollectionScheme_expression,++    -- ** CreateVehicleError+    createVehicleError_code,+    createVehicleError_message,+    createVehicleError_vehicleName,++    -- ** CreateVehicleRequestItem+    createVehicleRequestItem_associationBehavior,+    createVehicleRequestItem_attributes,+    createVehicleRequestItem_tags,+    createVehicleRequestItem_vehicleName,+    createVehicleRequestItem_modelManifestArn,+    createVehicleRequestItem_decoderManifestArn,++    -- ** CreateVehicleResponseItem+    createVehicleResponseItem_arn,+    createVehicleResponseItem_thingArn,+    createVehicleResponseItem_vehicleName,++    -- ** DecoderManifestSummary+    decoderManifestSummary_arn,+    decoderManifestSummary_description,+    decoderManifestSummary_modelManifestArn,+    decoderManifestSummary_name,+    decoderManifestSummary_status,+    decoderManifestSummary_creationTime,+    decoderManifestSummary_lastModificationTime,++    -- ** FleetSummary+    fleetSummary_description,+    fleetSummary_lastModificationTime,+    fleetSummary_id,+    fleetSummary_arn,+    fleetSummary_signalCatalogArn,+    fleetSummary_creationTime,++    -- ** FormattedVss+    formattedVss_vssJson,++    -- ** IamRegistrationResponse+    iamRegistrationResponse_errorMessage,+    iamRegistrationResponse_roleArn,+    iamRegistrationResponse_registrationStatus,++    -- ** IamResources+    iamResources_roleArn,++    -- ** ModelManifestSummary+    modelManifestSummary_arn,+    modelManifestSummary_description,+    modelManifestSummary_name,+    modelManifestSummary_signalCatalogArn,+    modelManifestSummary_status,+    modelManifestSummary_creationTime,+    modelManifestSummary_lastModificationTime,++    -- ** NetworkFileDefinition+    networkFileDefinition_canDbc,++    -- ** NetworkInterface+    networkInterface_canInterface,+    networkInterface_obdInterface,+    networkInterface_interfaceId,+    networkInterface_type,++    -- ** Node+    node_actuator,+    node_attribute,+    node_branch,+    node_sensor,++    -- ** NodeCounts+    nodeCounts_totalActuators,+    nodeCounts_totalAttributes,+    nodeCounts_totalBranches,+    nodeCounts_totalNodes,+    nodeCounts_totalSensors,++    -- ** ObdInterface+    obdInterface_dtcRequestIntervalSeconds,+    obdInterface_hasTransmissionEcu,+    obdInterface_obdStandard,+    obdInterface_pidRequestIntervalSeconds,+    obdInterface_useExtendedIds,+    obdInterface_name,+    obdInterface_requestMessageId,++    -- ** ObdSignal+    obdSignal_bitMaskLength,+    obdSignal_bitRightShift,+    obdSignal_pidResponseLength,+    obdSignal_serviceMode,+    obdSignal_pid,+    obdSignal_scaling,+    obdSignal_offset,+    obdSignal_startByte,+    obdSignal_byteLength,++    -- ** Sensor+    sensor_allowedValues,+    sensor_description,+    sensor_max,+    sensor_min,+    sensor_unit,+    sensor_fullyQualifiedName,+    sensor_dataType,++    -- ** SignalCatalogSummary+    signalCatalogSummary_arn,+    signalCatalogSummary_creationTime,+    signalCatalogSummary_lastModificationTime,+    signalCatalogSummary_name,++    -- ** SignalDecoder+    signalDecoder_canSignal,+    signalDecoder_obdSignal,+    signalDecoder_fullyQualifiedName,+    signalDecoder_type,+    signalDecoder_interfaceId,++    -- ** SignalInformation+    signalInformation_maxSampleCount,+    signalInformation_minimumSamplingIntervalMs,+    signalInformation_name,++    -- ** Tag+    tag_key,+    tag_value,++    -- ** TimeBasedCollectionScheme+    timeBasedCollectionScheme_periodMs,++    -- ** TimestreamRegistrationResponse+    timestreamRegistrationResponse_errorMessage,+    timestreamRegistrationResponse_timestreamDatabaseArn,+    timestreamRegistrationResponse_timestreamTableArn,+    timestreamRegistrationResponse_timestreamDatabaseName,+    timestreamRegistrationResponse_timestreamTableName,+    timestreamRegistrationResponse_registrationStatus,++    -- ** TimestreamResources+    timestreamResources_timestreamDatabaseName,+    timestreamResources_timestreamTableName,++    -- ** UpdateVehicleError+    updateVehicleError_code,+    updateVehicleError_message,+    updateVehicleError_vehicleName,++    -- ** UpdateVehicleRequestItem+    updateVehicleRequestItem_attributeUpdateMode,+    updateVehicleRequestItem_attributes,+    updateVehicleRequestItem_decoderManifestArn,+    updateVehicleRequestItem_modelManifestArn,+    updateVehicleRequestItem_vehicleName,++    -- ** UpdateVehicleResponseItem+    updateVehicleResponseItem_arn,+    updateVehicleResponseItem_vehicleName,++    -- ** VehicleStatus+    vehicleStatus_campaignName,+    vehicleStatus_status,+    vehicleStatus_vehicleName,++    -- ** VehicleSummary+    vehicleSummary_vehicleName,+    vehicleSummary_arn,+    vehicleSummary_modelManifestArn,+    vehicleSummary_decoderManifestArn,+    vehicleSummary_creationTime,+    vehicleSummary_lastModificationTime,+  )+where++import Amazonka.IoTFleetWise.AssociateVehicleFleet+import Amazonka.IoTFleetWise.BatchCreateVehicle+import Amazonka.IoTFleetWise.BatchUpdateVehicle+import Amazonka.IoTFleetWise.CreateCampaign+import Amazonka.IoTFleetWise.CreateDecoderManifest+import Amazonka.IoTFleetWise.CreateFleet+import Amazonka.IoTFleetWise.CreateModelManifest+import Amazonka.IoTFleetWise.CreateSignalCatalog+import Amazonka.IoTFleetWise.CreateVehicle+import Amazonka.IoTFleetWise.DeleteCampaign+import Amazonka.IoTFleetWise.DeleteDecoderManifest+import Amazonka.IoTFleetWise.DeleteFleet+import Amazonka.IoTFleetWise.DeleteModelManifest+import Amazonka.IoTFleetWise.DeleteSignalCatalog+import Amazonka.IoTFleetWise.DeleteVehicle+import Amazonka.IoTFleetWise.DisassociateVehicleFleet+import Amazonka.IoTFleetWise.GetCampaign+import Amazonka.IoTFleetWise.GetDecoderManifest+import Amazonka.IoTFleetWise.GetFleet+import Amazonka.IoTFleetWise.GetLoggingOptions+import Amazonka.IoTFleetWise.GetModelManifest+import Amazonka.IoTFleetWise.GetRegisterAccountStatus+import Amazonka.IoTFleetWise.GetSignalCatalog+import Amazonka.IoTFleetWise.GetVehicle+import Amazonka.IoTFleetWise.GetVehicleStatus+import Amazonka.IoTFleetWise.ImportDecoderManifest+import Amazonka.IoTFleetWise.ImportSignalCatalog+import Amazonka.IoTFleetWise.ListCampaigns+import Amazonka.IoTFleetWise.ListDecoderManifestNetworkInterfaces+import Amazonka.IoTFleetWise.ListDecoderManifestSignals+import Amazonka.IoTFleetWise.ListDecoderManifests+import Amazonka.IoTFleetWise.ListFleets+import Amazonka.IoTFleetWise.ListFleetsForVehicle+import Amazonka.IoTFleetWise.ListModelManifestNodes+import Amazonka.IoTFleetWise.ListModelManifests+import Amazonka.IoTFleetWise.ListSignalCatalogNodes+import Amazonka.IoTFleetWise.ListSignalCatalogs+import Amazonka.IoTFleetWise.ListTagsForResource+import Amazonka.IoTFleetWise.ListVehicles+import Amazonka.IoTFleetWise.ListVehiclesInFleet+import Amazonka.IoTFleetWise.PutLoggingOptions+import Amazonka.IoTFleetWise.RegisterAccount+import Amazonka.IoTFleetWise.TagResource+import Amazonka.IoTFleetWise.Types.Actuator+import Amazonka.IoTFleetWise.Types.Attribute+import Amazonka.IoTFleetWise.Types.Branch+import Amazonka.IoTFleetWise.Types.CampaignSummary+import Amazonka.IoTFleetWise.Types.CanDbcDefinition+import Amazonka.IoTFleetWise.Types.CanInterface+import Amazonka.IoTFleetWise.Types.CanSignal+import Amazonka.IoTFleetWise.Types.CloudWatchLogDeliveryOptions+import Amazonka.IoTFleetWise.Types.CollectionScheme+import Amazonka.IoTFleetWise.Types.ConditionBasedCollectionScheme+import Amazonka.IoTFleetWise.Types.CreateVehicleError+import Amazonka.IoTFleetWise.Types.CreateVehicleRequestItem+import Amazonka.IoTFleetWise.Types.CreateVehicleResponseItem+import Amazonka.IoTFleetWise.Types.DecoderManifestSummary+import Amazonka.IoTFleetWise.Types.FleetSummary+import Amazonka.IoTFleetWise.Types.FormattedVss+import Amazonka.IoTFleetWise.Types.IamRegistrationResponse+import Amazonka.IoTFleetWise.Types.IamResources+import Amazonka.IoTFleetWise.Types.ModelManifestSummary+import Amazonka.IoTFleetWise.Types.NetworkFileDefinition+import Amazonka.IoTFleetWise.Types.NetworkInterface+import Amazonka.IoTFleetWise.Types.Node+import Amazonka.IoTFleetWise.Types.NodeCounts+import Amazonka.IoTFleetWise.Types.ObdInterface+import Amazonka.IoTFleetWise.Types.ObdSignal+import Amazonka.IoTFleetWise.Types.Sensor+import Amazonka.IoTFleetWise.Types.SignalCatalogSummary+import Amazonka.IoTFleetWise.Types.SignalDecoder+import Amazonka.IoTFleetWise.Types.SignalInformation+import Amazonka.IoTFleetWise.Types.Tag+import Amazonka.IoTFleetWise.Types.TimeBasedCollectionScheme+import Amazonka.IoTFleetWise.Types.TimestreamRegistrationResponse+import Amazonka.IoTFleetWise.Types.TimestreamResources+import Amazonka.IoTFleetWise.Types.UpdateVehicleError+import Amazonka.IoTFleetWise.Types.UpdateVehicleRequestItem+import Amazonka.IoTFleetWise.Types.UpdateVehicleResponseItem+import Amazonka.IoTFleetWise.Types.VehicleStatus+import Amazonka.IoTFleetWise.Types.VehicleSummary+import Amazonka.IoTFleetWise.UntagResource+import Amazonka.IoTFleetWise.UpdateCampaign+import Amazonka.IoTFleetWise.UpdateDecoderManifest+import Amazonka.IoTFleetWise.UpdateFleet+import Amazonka.IoTFleetWise.UpdateModelManifest+import Amazonka.IoTFleetWise.UpdateSignalCatalog+import Amazonka.IoTFleetWise.UpdateVehicle
+ gen/Amazonka/IoTFleetWise/ListCampaigns.hs view
@@ -0,0 +1,266 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.ListCampaigns+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists information about created campaigns.+--+-- This API operation uses pagination. Specify the @nextToken@ parameter in+-- the request to return more results.+--+-- This operation returns paginated results.+module Amazonka.IoTFleetWise.ListCampaigns+  ( -- * Creating a Request+    ListCampaigns (..),+    newListCampaigns,++    -- * Request Lenses+    listCampaigns_maxResults,+    listCampaigns_nextToken,+    listCampaigns_status,++    -- * Destructuring the Response+    ListCampaignsResponse (..),+    newListCampaignsResponse,++    -- * Response Lenses+    listCampaignsResponse_campaignSummaries,+    listCampaignsResponse_nextToken,+    listCampaignsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTFleetWise.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListCampaigns' smart constructor.+data ListCampaigns = ListCampaigns'+  { -- | The maximum number of items to return, between 1 and 100, inclusive.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | A pagination token for the next set of results.+    --+    -- If the results of a search are large, only a portion of the results are+    -- returned, and a @nextToken@ pagination token is returned in the+    -- response. To retrieve the next set of results, reissue the search+    -- request and include the returned token. When all results have been+    -- returned, the response does not contain a pagination token value.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | Optional parameter to filter the results by the status of each created+    -- campaign in your account. The status can be one of: @CREATING@,+    -- @WAITING_FOR_APPROVAL@, @RUNNING@, or @SUSPENDED@.+    status :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListCampaigns' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'maxResults', 'listCampaigns_maxResults' - The maximum number of items to return, between 1 and 100, inclusive.+--+-- 'nextToken', 'listCampaigns_nextToken' - A pagination token for the next set of results.+--+-- If the results of a search are large, only a portion of the results are+-- returned, and a @nextToken@ pagination token is returned in the+-- response. To retrieve the next set of results, reissue the search+-- request and include the returned token. When all results have been+-- returned, the response does not contain a pagination token value.+--+-- 'status', 'listCampaigns_status' - Optional parameter to filter the results by the status of each created+-- campaign in your account. The status can be one of: @CREATING@,+-- @WAITING_FOR_APPROVAL@, @RUNNING@, or @SUSPENDED@.+newListCampaigns ::+  ListCampaigns+newListCampaigns =+  ListCampaigns'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      status = Prelude.Nothing+    }++-- | The maximum number of items to return, between 1 and 100, inclusive.+listCampaigns_maxResults :: Lens.Lens' ListCampaigns (Prelude.Maybe Prelude.Natural)+listCampaigns_maxResults = Lens.lens (\ListCampaigns' {maxResults} -> maxResults) (\s@ListCampaigns' {} a -> s {maxResults = a} :: ListCampaigns)++-- | A pagination token for the next set of results.+--+-- If the results of a search are large, only a portion of the results are+-- returned, and a @nextToken@ pagination token is returned in the+-- response. To retrieve the next set of results, reissue the search+-- request and include the returned token. When all results have been+-- returned, the response does not contain a pagination token value.+listCampaigns_nextToken :: Lens.Lens' ListCampaigns (Prelude.Maybe Prelude.Text)+listCampaigns_nextToken = Lens.lens (\ListCampaigns' {nextToken} -> nextToken) (\s@ListCampaigns' {} a -> s {nextToken = a} :: ListCampaigns)++-- | Optional parameter to filter the results by the status of each created+-- campaign in your account. The status can be one of: @CREATING@,+-- @WAITING_FOR_APPROVAL@, @RUNNING@, or @SUSPENDED@.+listCampaigns_status :: Lens.Lens' ListCampaigns (Prelude.Maybe Prelude.Text)+listCampaigns_status = Lens.lens (\ListCampaigns' {status} -> status) (\s@ListCampaigns' {} a -> s {status = a} :: ListCampaigns)++instance Core.AWSPager ListCampaigns where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listCampaignsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listCampaignsResponse_campaignSummaries+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listCampaigns_nextToken+          Lens..~ rs+          Lens.^? listCampaignsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListCampaigns where+  type+    AWSResponse ListCampaigns =+      ListCampaignsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListCampaignsResponse'+            Prelude.<$> ( x+                            Data..?> "campaignSummaries"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListCampaigns where+  hashWithSalt _salt ListCampaigns' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` status++instance Prelude.NFData ListCampaigns where+  rnf ListCampaigns' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf status++instance Data.ToHeaders ListCampaigns where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "IoTAutobahnControlPlane.ListCampaigns" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListCampaigns where+  toJSON ListCampaigns' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken,+            ("status" Data..=) Prelude.<$> status+          ]+      )++instance Data.ToPath ListCampaigns where+  toPath = Prelude.const "/"++instance Data.ToQuery ListCampaigns where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListCampaignsResponse' smart constructor.+data ListCampaignsResponse = ListCampaignsResponse'+  { -- | A summary of information about each campaign.+    campaignSummaries :: Prelude.Maybe [CampaignSummary],+    -- | The token to retrieve the next set of results, or @null@ if there are no+    -- more results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListCampaignsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'campaignSummaries', 'listCampaignsResponse_campaignSummaries' - A summary of information about each campaign.+--+-- 'nextToken', 'listCampaignsResponse_nextToken' - The token to retrieve the next set of results, or @null@ if there are no+-- more results.+--+-- 'httpStatus', 'listCampaignsResponse_httpStatus' - The response's http status code.+newListCampaignsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListCampaignsResponse+newListCampaignsResponse pHttpStatus_ =+  ListCampaignsResponse'+    { campaignSummaries =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A summary of information about each campaign.+listCampaignsResponse_campaignSummaries :: Lens.Lens' ListCampaignsResponse (Prelude.Maybe [CampaignSummary])+listCampaignsResponse_campaignSummaries = Lens.lens (\ListCampaignsResponse' {campaignSummaries} -> campaignSummaries) (\s@ListCampaignsResponse' {} a -> s {campaignSummaries = a} :: ListCampaignsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The token to retrieve the next set of results, or @null@ if there are no+-- more results.+listCampaignsResponse_nextToken :: Lens.Lens' ListCampaignsResponse (Prelude.Maybe Prelude.Text)+listCampaignsResponse_nextToken = Lens.lens (\ListCampaignsResponse' {nextToken} -> nextToken) (\s@ListCampaignsResponse' {} a -> s {nextToken = a} :: ListCampaignsResponse)++-- | The response's http status code.+listCampaignsResponse_httpStatus :: Lens.Lens' ListCampaignsResponse Prelude.Int+listCampaignsResponse_httpStatus = Lens.lens (\ListCampaignsResponse' {httpStatus} -> httpStatus) (\s@ListCampaignsResponse' {} a -> s {httpStatus = a} :: ListCampaignsResponse)++instance Prelude.NFData ListCampaignsResponse where+  rnf ListCampaignsResponse' {..} =+    Prelude.rnf campaignSummaries+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/IoTFleetWise/ListDecoderManifestNetworkInterfaces.hs view
@@ -0,0 +1,291 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.ListDecoderManifestNetworkInterfaces+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists the network interfaces specified in a decoder manifest.+--+-- This API operation uses pagination. Specify the @nextToken@ parameter in+-- the request to return more results.+--+-- This operation returns paginated results.+module Amazonka.IoTFleetWise.ListDecoderManifestNetworkInterfaces+  ( -- * Creating a Request+    ListDecoderManifestNetworkInterfaces (..),+    newListDecoderManifestNetworkInterfaces,++    -- * Request Lenses+    listDecoderManifestNetworkInterfaces_maxResults,+    listDecoderManifestNetworkInterfaces_nextToken,+    listDecoderManifestNetworkInterfaces_name,++    -- * Destructuring the Response+    ListDecoderManifestNetworkInterfacesResponse (..),+    newListDecoderManifestNetworkInterfacesResponse,++    -- * Response Lenses+    listDecoderManifestNetworkInterfacesResponse_networkInterfaces,+    listDecoderManifestNetworkInterfacesResponse_nextToken,+    listDecoderManifestNetworkInterfacesResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTFleetWise.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListDecoderManifestNetworkInterfaces' smart constructor.+data ListDecoderManifestNetworkInterfaces = ListDecoderManifestNetworkInterfaces'+  { -- | The maximum number of items to return, between 1 and 100, inclusive.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | A pagination token for the next set of results.+    --+    -- If the results of a search are large, only a portion of the results are+    -- returned, and a @nextToken@ pagination token is returned in the+    -- response. To retrieve the next set of results, reissue the search+    -- request and include the returned token. When all results have been+    -- returned, the response does not contain a pagination token value.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The name of the decoder manifest to list information about.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListDecoderManifestNetworkInterfaces' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'maxResults', 'listDecoderManifestNetworkInterfaces_maxResults' - The maximum number of items to return, between 1 and 100, inclusive.+--+-- 'nextToken', 'listDecoderManifestNetworkInterfaces_nextToken' - A pagination token for the next set of results.+--+-- If the results of a search are large, only a portion of the results are+-- returned, and a @nextToken@ pagination token is returned in the+-- response. To retrieve the next set of results, reissue the search+-- request and include the returned token. When all results have been+-- returned, the response does not contain a pagination token value.+--+-- 'name', 'listDecoderManifestNetworkInterfaces_name' - The name of the decoder manifest to list information about.+newListDecoderManifestNetworkInterfaces ::+  -- | 'name'+  Prelude.Text ->+  ListDecoderManifestNetworkInterfaces+newListDecoderManifestNetworkInterfaces pName_ =+  ListDecoderManifestNetworkInterfaces'+    { maxResults =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      name = pName_+    }++-- | The maximum number of items to return, between 1 and 100, inclusive.+listDecoderManifestNetworkInterfaces_maxResults :: Lens.Lens' ListDecoderManifestNetworkInterfaces (Prelude.Maybe Prelude.Natural)+listDecoderManifestNetworkInterfaces_maxResults = Lens.lens (\ListDecoderManifestNetworkInterfaces' {maxResults} -> maxResults) (\s@ListDecoderManifestNetworkInterfaces' {} a -> s {maxResults = a} :: ListDecoderManifestNetworkInterfaces)++-- | A pagination token for the next set of results.+--+-- If the results of a search are large, only a portion of the results are+-- returned, and a @nextToken@ pagination token is returned in the+-- response. To retrieve the next set of results, reissue the search+-- request and include the returned token. When all results have been+-- returned, the response does not contain a pagination token value.+listDecoderManifestNetworkInterfaces_nextToken :: Lens.Lens' ListDecoderManifestNetworkInterfaces (Prelude.Maybe Prelude.Text)+listDecoderManifestNetworkInterfaces_nextToken = Lens.lens (\ListDecoderManifestNetworkInterfaces' {nextToken} -> nextToken) (\s@ListDecoderManifestNetworkInterfaces' {} a -> s {nextToken = a} :: ListDecoderManifestNetworkInterfaces)++-- | The name of the decoder manifest to list information about.+listDecoderManifestNetworkInterfaces_name :: Lens.Lens' ListDecoderManifestNetworkInterfaces Prelude.Text+listDecoderManifestNetworkInterfaces_name = Lens.lens (\ListDecoderManifestNetworkInterfaces' {name} -> name) (\s@ListDecoderManifestNetworkInterfaces' {} a -> s {name = a} :: ListDecoderManifestNetworkInterfaces)++instance+  Core.AWSPager+    ListDecoderManifestNetworkInterfaces+  where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listDecoderManifestNetworkInterfacesResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listDecoderManifestNetworkInterfacesResponse_networkInterfaces+            Prelude.. Lens._Just+            Prelude.. Lens.to Prelude.toList+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listDecoderManifestNetworkInterfaces_nextToken+          Lens..~ rs+          Lens.^? listDecoderManifestNetworkInterfacesResponse_nextToken+          Prelude.. Lens._Just++instance+  Core.AWSRequest+    ListDecoderManifestNetworkInterfaces+  where+  type+    AWSResponse ListDecoderManifestNetworkInterfaces =+      ListDecoderManifestNetworkInterfacesResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListDecoderManifestNetworkInterfacesResponse'+            Prelude.<$> (x Data..?> "networkInterfaces")+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    ListDecoderManifestNetworkInterfaces+  where+  hashWithSalt+    _salt+    ListDecoderManifestNetworkInterfaces' {..} =+      _salt+        `Prelude.hashWithSalt` maxResults+        `Prelude.hashWithSalt` nextToken+        `Prelude.hashWithSalt` name++instance+  Prelude.NFData+    ListDecoderManifestNetworkInterfaces+  where+  rnf ListDecoderManifestNetworkInterfaces' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf name++instance+  Data.ToHeaders+    ListDecoderManifestNetworkInterfaces+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "IoTAutobahnControlPlane.ListDecoderManifestNetworkInterfaces" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance+  Data.ToJSON+    ListDecoderManifestNetworkInterfaces+  where+  toJSON ListDecoderManifestNetworkInterfaces' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken,+            Prelude.Just ("name" Data..= name)+          ]+      )++instance+  Data.ToPath+    ListDecoderManifestNetworkInterfaces+  where+  toPath = Prelude.const "/"++instance+  Data.ToQuery+    ListDecoderManifestNetworkInterfaces+  where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListDecoderManifestNetworkInterfacesResponse' smart constructor.+data ListDecoderManifestNetworkInterfacesResponse = ListDecoderManifestNetworkInterfacesResponse'+  { -- | A list of information about network interfaces.+    networkInterfaces :: Prelude.Maybe (Prelude.NonEmpty NetworkInterface),+    -- | The token to retrieve the next set of results, or @null@ if there are no+    -- more results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListDecoderManifestNetworkInterfacesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'networkInterfaces', 'listDecoderManifestNetworkInterfacesResponse_networkInterfaces' - A list of information about network interfaces.+--+-- 'nextToken', 'listDecoderManifestNetworkInterfacesResponse_nextToken' - The token to retrieve the next set of results, or @null@ if there are no+-- more results.+--+-- 'httpStatus', 'listDecoderManifestNetworkInterfacesResponse_httpStatus' - The response's http status code.+newListDecoderManifestNetworkInterfacesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListDecoderManifestNetworkInterfacesResponse+newListDecoderManifestNetworkInterfacesResponse+  pHttpStatus_ =+    ListDecoderManifestNetworkInterfacesResponse'+      { networkInterfaces =+          Prelude.Nothing,+        nextToken = Prelude.Nothing,+        httpStatus = pHttpStatus_+      }++-- | A list of information about network interfaces.+listDecoderManifestNetworkInterfacesResponse_networkInterfaces :: Lens.Lens' ListDecoderManifestNetworkInterfacesResponse (Prelude.Maybe (Prelude.NonEmpty NetworkInterface))+listDecoderManifestNetworkInterfacesResponse_networkInterfaces = Lens.lens (\ListDecoderManifestNetworkInterfacesResponse' {networkInterfaces} -> networkInterfaces) (\s@ListDecoderManifestNetworkInterfacesResponse' {} a -> s {networkInterfaces = a} :: ListDecoderManifestNetworkInterfacesResponse) Prelude.. Lens.mapping Lens.coerced++-- | The token to retrieve the next set of results, or @null@ if there are no+-- more results.+listDecoderManifestNetworkInterfacesResponse_nextToken :: Lens.Lens' ListDecoderManifestNetworkInterfacesResponse (Prelude.Maybe Prelude.Text)+listDecoderManifestNetworkInterfacesResponse_nextToken = Lens.lens (\ListDecoderManifestNetworkInterfacesResponse' {nextToken} -> nextToken) (\s@ListDecoderManifestNetworkInterfacesResponse' {} a -> s {nextToken = a} :: ListDecoderManifestNetworkInterfacesResponse)++-- | The response's http status code.+listDecoderManifestNetworkInterfacesResponse_httpStatus :: Lens.Lens' ListDecoderManifestNetworkInterfacesResponse Prelude.Int+listDecoderManifestNetworkInterfacesResponse_httpStatus = Lens.lens (\ListDecoderManifestNetworkInterfacesResponse' {httpStatus} -> httpStatus) (\s@ListDecoderManifestNetworkInterfacesResponse' {} a -> s {httpStatus = a} :: ListDecoderManifestNetworkInterfacesResponse)++instance+  Prelude.NFData+    ListDecoderManifestNetworkInterfacesResponse+  where+  rnf ListDecoderManifestNetworkInterfacesResponse' {..} =+    Prelude.rnf networkInterfaces+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/IoTFleetWise/ListDecoderManifestSignals.hs view
@@ -0,0 +1,265 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.ListDecoderManifestSignals+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- A list of information about signal decoders specified in a decoder+-- manifest.+--+-- This API operation uses pagination. Specify the @nextToken@ parameter in+-- the request to return more results.+--+-- This operation returns paginated results.+module Amazonka.IoTFleetWise.ListDecoderManifestSignals+  ( -- * Creating a Request+    ListDecoderManifestSignals (..),+    newListDecoderManifestSignals,++    -- * Request Lenses+    listDecoderManifestSignals_maxResults,+    listDecoderManifestSignals_nextToken,+    listDecoderManifestSignals_name,++    -- * Destructuring the Response+    ListDecoderManifestSignalsResponse (..),+    newListDecoderManifestSignalsResponse,++    -- * Response Lenses+    listDecoderManifestSignalsResponse_nextToken,+    listDecoderManifestSignalsResponse_signalDecoders,+    listDecoderManifestSignalsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTFleetWise.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListDecoderManifestSignals' smart constructor.+data ListDecoderManifestSignals = ListDecoderManifestSignals'+  { -- | The maximum number of items to return, between 1 and 100, inclusive.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | A pagination token for the next set of results.+    --+    -- If the results of a search are large, only a portion of the results are+    -- returned, and a @nextToken@ pagination token is returned in the+    -- response. To retrieve the next set of results, reissue the search+    -- request and include the returned token. When all results have been+    -- returned, the response does not contain a pagination token value.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The name of the decoder manifest to list information about.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListDecoderManifestSignals' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'maxResults', 'listDecoderManifestSignals_maxResults' - The maximum number of items to return, between 1 and 100, inclusive.+--+-- 'nextToken', 'listDecoderManifestSignals_nextToken' - A pagination token for the next set of results.+--+-- If the results of a search are large, only a portion of the results are+-- returned, and a @nextToken@ pagination token is returned in the+-- response. To retrieve the next set of results, reissue the search+-- request and include the returned token. When all results have been+-- returned, the response does not contain a pagination token value.+--+-- 'name', 'listDecoderManifestSignals_name' - The name of the decoder manifest to list information about.+newListDecoderManifestSignals ::+  -- | 'name'+  Prelude.Text ->+  ListDecoderManifestSignals+newListDecoderManifestSignals pName_ =+  ListDecoderManifestSignals'+    { maxResults =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      name = pName_+    }++-- | The maximum number of items to return, between 1 and 100, inclusive.+listDecoderManifestSignals_maxResults :: Lens.Lens' ListDecoderManifestSignals (Prelude.Maybe Prelude.Natural)+listDecoderManifestSignals_maxResults = Lens.lens (\ListDecoderManifestSignals' {maxResults} -> maxResults) (\s@ListDecoderManifestSignals' {} a -> s {maxResults = a} :: ListDecoderManifestSignals)++-- | A pagination token for the next set of results.+--+-- If the results of a search are large, only a portion of the results are+-- returned, and a @nextToken@ pagination token is returned in the+-- response. To retrieve the next set of results, reissue the search+-- request and include the returned token. When all results have been+-- returned, the response does not contain a pagination token value.+listDecoderManifestSignals_nextToken :: Lens.Lens' ListDecoderManifestSignals (Prelude.Maybe Prelude.Text)+listDecoderManifestSignals_nextToken = Lens.lens (\ListDecoderManifestSignals' {nextToken} -> nextToken) (\s@ListDecoderManifestSignals' {} a -> s {nextToken = a} :: ListDecoderManifestSignals)++-- | The name of the decoder manifest to list information about.+listDecoderManifestSignals_name :: Lens.Lens' ListDecoderManifestSignals Prelude.Text+listDecoderManifestSignals_name = Lens.lens (\ListDecoderManifestSignals' {name} -> name) (\s@ListDecoderManifestSignals' {} a -> s {name = a} :: ListDecoderManifestSignals)++instance Core.AWSPager ListDecoderManifestSignals where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listDecoderManifestSignalsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listDecoderManifestSignalsResponse_signalDecoders+            Prelude.. Lens._Just+            Prelude.. Lens.to Prelude.toList+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listDecoderManifestSignals_nextToken+          Lens..~ rs+          Lens.^? listDecoderManifestSignalsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListDecoderManifestSignals where+  type+    AWSResponse ListDecoderManifestSignals =+      ListDecoderManifestSignalsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListDecoderManifestSignalsResponse'+            Prelude.<$> (x Data..?> "nextToken")+            Prelude.<*> (x Data..?> "signalDecoders")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListDecoderManifestSignals where+  hashWithSalt _salt ListDecoderManifestSignals' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` name++instance Prelude.NFData ListDecoderManifestSignals where+  rnf ListDecoderManifestSignals' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf name++instance Data.ToHeaders ListDecoderManifestSignals where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "IoTAutobahnControlPlane.ListDecoderManifestSignals" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListDecoderManifestSignals where+  toJSON ListDecoderManifestSignals' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken,+            Prelude.Just ("name" Data..= name)+          ]+      )++instance Data.ToPath ListDecoderManifestSignals where+  toPath = Prelude.const "/"++instance Data.ToQuery ListDecoderManifestSignals where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListDecoderManifestSignalsResponse' smart constructor.+data ListDecoderManifestSignalsResponse = ListDecoderManifestSignalsResponse'+  { -- | The token to retrieve the next set of results, or @null@ if there are no+    -- more results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | Information about a list of signals to decode.+    signalDecoders :: Prelude.Maybe (Prelude.NonEmpty SignalDecoder),+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListDecoderManifestSignalsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextToken', 'listDecoderManifestSignalsResponse_nextToken' - The token to retrieve the next set of results, or @null@ if there are no+-- more results.+--+-- 'signalDecoders', 'listDecoderManifestSignalsResponse_signalDecoders' - Information about a list of signals to decode.+--+-- 'httpStatus', 'listDecoderManifestSignalsResponse_httpStatus' - The response's http status code.+newListDecoderManifestSignalsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListDecoderManifestSignalsResponse+newListDecoderManifestSignalsResponse pHttpStatus_ =+  ListDecoderManifestSignalsResponse'+    { nextToken =+        Prelude.Nothing,+      signalDecoders = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The token to retrieve the next set of results, or @null@ if there are no+-- more results.+listDecoderManifestSignalsResponse_nextToken :: Lens.Lens' ListDecoderManifestSignalsResponse (Prelude.Maybe Prelude.Text)+listDecoderManifestSignalsResponse_nextToken = Lens.lens (\ListDecoderManifestSignalsResponse' {nextToken} -> nextToken) (\s@ListDecoderManifestSignalsResponse' {} a -> s {nextToken = a} :: ListDecoderManifestSignalsResponse)++-- | Information about a list of signals to decode.+listDecoderManifestSignalsResponse_signalDecoders :: Lens.Lens' ListDecoderManifestSignalsResponse (Prelude.Maybe (Prelude.NonEmpty SignalDecoder))+listDecoderManifestSignalsResponse_signalDecoders = Lens.lens (\ListDecoderManifestSignalsResponse' {signalDecoders} -> signalDecoders) (\s@ListDecoderManifestSignalsResponse' {} a -> s {signalDecoders = a} :: ListDecoderManifestSignalsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listDecoderManifestSignalsResponse_httpStatus :: Lens.Lens' ListDecoderManifestSignalsResponse Prelude.Int+listDecoderManifestSignalsResponse_httpStatus = Lens.lens (\ListDecoderManifestSignalsResponse' {httpStatus} -> httpStatus) (\s@ListDecoderManifestSignalsResponse' {} a -> s {httpStatus = a} :: ListDecoderManifestSignalsResponse)++instance+  Prelude.NFData+    ListDecoderManifestSignalsResponse+  where+  rnf ListDecoderManifestSignalsResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf signalDecoders+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/IoTFleetWise/ListDecoderManifests.hs view
@@ -0,0 +1,261 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.ListDecoderManifests+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists decoder manifests.+--+-- This API operation uses pagination. Specify the @nextToken@ parameter in+-- the request to return more results.+--+-- This operation returns paginated results.+module Amazonka.IoTFleetWise.ListDecoderManifests+  ( -- * Creating a Request+    ListDecoderManifests (..),+    newListDecoderManifests,++    -- * Request Lenses+    listDecoderManifests_maxResults,+    listDecoderManifests_modelManifestArn,+    listDecoderManifests_nextToken,++    -- * Destructuring the Response+    ListDecoderManifestsResponse (..),+    newListDecoderManifestsResponse,++    -- * Response Lenses+    listDecoderManifestsResponse_nextToken,+    listDecoderManifestsResponse_summaries,+    listDecoderManifestsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTFleetWise.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListDecoderManifests' smart constructor.+data ListDecoderManifests = ListDecoderManifests'+  { -- | The maximum number of items to return, between 1 and 100, inclusive.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The Amazon Resource Name (ARN) of a vehicle model (model manifest)+    -- associated with the decoder manifest.+    modelManifestArn :: Prelude.Maybe Prelude.Text,+    -- | A pagination token for the next set of results.+    --+    -- If the results of a search are large, only a portion of the results are+    -- returned, and a @nextToken@ pagination token is returned in the+    -- response. To retrieve the next set of results, reissue the search+    -- request and include the returned token. When all results have been+    -- returned, the response does not contain a pagination token value.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListDecoderManifests' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'maxResults', 'listDecoderManifests_maxResults' - The maximum number of items to return, between 1 and 100, inclusive.+--+-- 'modelManifestArn', 'listDecoderManifests_modelManifestArn' - The Amazon Resource Name (ARN) of a vehicle model (model manifest)+-- associated with the decoder manifest.+--+-- 'nextToken', 'listDecoderManifests_nextToken' - A pagination token for the next set of results.+--+-- If the results of a search are large, only a portion of the results are+-- returned, and a @nextToken@ pagination token is returned in the+-- response. To retrieve the next set of results, reissue the search+-- request and include the returned token. When all results have been+-- returned, the response does not contain a pagination token value.+newListDecoderManifests ::+  ListDecoderManifests+newListDecoderManifests =+  ListDecoderManifests'+    { maxResults = Prelude.Nothing,+      modelManifestArn = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | The maximum number of items to return, between 1 and 100, inclusive.+listDecoderManifests_maxResults :: Lens.Lens' ListDecoderManifests (Prelude.Maybe Prelude.Natural)+listDecoderManifests_maxResults = Lens.lens (\ListDecoderManifests' {maxResults} -> maxResults) (\s@ListDecoderManifests' {} a -> s {maxResults = a} :: ListDecoderManifests)++-- | The Amazon Resource Name (ARN) of a vehicle model (model manifest)+-- associated with the decoder manifest.+listDecoderManifests_modelManifestArn :: Lens.Lens' ListDecoderManifests (Prelude.Maybe Prelude.Text)+listDecoderManifests_modelManifestArn = Lens.lens (\ListDecoderManifests' {modelManifestArn} -> modelManifestArn) (\s@ListDecoderManifests' {} a -> s {modelManifestArn = a} :: ListDecoderManifests)++-- | A pagination token for the next set of results.+--+-- If the results of a search are large, only a portion of the results are+-- returned, and a @nextToken@ pagination token is returned in the+-- response. To retrieve the next set of results, reissue the search+-- request and include the returned token. When all results have been+-- returned, the response does not contain a pagination token value.+listDecoderManifests_nextToken :: Lens.Lens' ListDecoderManifests (Prelude.Maybe Prelude.Text)+listDecoderManifests_nextToken = Lens.lens (\ListDecoderManifests' {nextToken} -> nextToken) (\s@ListDecoderManifests' {} a -> s {nextToken = a} :: ListDecoderManifests)++instance Core.AWSPager ListDecoderManifests where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listDecoderManifestsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listDecoderManifestsResponse_summaries+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listDecoderManifests_nextToken+          Lens..~ rs+          Lens.^? listDecoderManifestsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListDecoderManifests where+  type+    AWSResponse ListDecoderManifests =+      ListDecoderManifestsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListDecoderManifestsResponse'+            Prelude.<$> (x Data..?> "nextToken")+            Prelude.<*> (x Data..?> "summaries" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListDecoderManifests where+  hashWithSalt _salt ListDecoderManifests' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` modelManifestArn+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListDecoderManifests where+  rnf ListDecoderManifests' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf modelManifestArn+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListDecoderManifests where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "IoTAutobahnControlPlane.ListDecoderManifests" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListDecoderManifests where+  toJSON ListDecoderManifests' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("maxResults" Data..=) Prelude.<$> maxResults,+            ("modelManifestArn" Data..=)+              Prelude.<$> modelManifestArn,+            ("nextToken" Data..=) Prelude.<$> nextToken+          ]+      )++instance Data.ToPath ListDecoderManifests where+  toPath = Prelude.const "/"++instance Data.ToQuery ListDecoderManifests where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListDecoderManifestsResponse' smart constructor.+data ListDecoderManifestsResponse = ListDecoderManifestsResponse'+  { -- | The token to retrieve the next set of results, or @null@ if there are no+    -- more results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | A list of information about each decoder manifest.+    summaries :: Prelude.Maybe [DecoderManifestSummary],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListDecoderManifestsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextToken', 'listDecoderManifestsResponse_nextToken' - The token to retrieve the next set of results, or @null@ if there are no+-- more results.+--+-- 'summaries', 'listDecoderManifestsResponse_summaries' - A list of information about each decoder manifest.+--+-- 'httpStatus', 'listDecoderManifestsResponse_httpStatus' - The response's http status code.+newListDecoderManifestsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListDecoderManifestsResponse+newListDecoderManifestsResponse pHttpStatus_ =+  ListDecoderManifestsResponse'+    { nextToken =+        Prelude.Nothing,+      summaries = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The token to retrieve the next set of results, or @null@ if there are no+-- more results.+listDecoderManifestsResponse_nextToken :: Lens.Lens' ListDecoderManifestsResponse (Prelude.Maybe Prelude.Text)+listDecoderManifestsResponse_nextToken = Lens.lens (\ListDecoderManifestsResponse' {nextToken} -> nextToken) (\s@ListDecoderManifestsResponse' {} a -> s {nextToken = a} :: ListDecoderManifestsResponse)++-- | A list of information about each decoder manifest.+listDecoderManifestsResponse_summaries :: Lens.Lens' ListDecoderManifestsResponse (Prelude.Maybe [DecoderManifestSummary])+listDecoderManifestsResponse_summaries = Lens.lens (\ListDecoderManifestsResponse' {summaries} -> summaries) (\s@ListDecoderManifestsResponse' {} a -> s {summaries = a} :: ListDecoderManifestsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listDecoderManifestsResponse_httpStatus :: Lens.Lens' ListDecoderManifestsResponse Prelude.Int+listDecoderManifestsResponse_httpStatus = Lens.lens (\ListDecoderManifestsResponse' {httpStatus} -> httpStatus) (\s@ListDecoderManifestsResponse' {} a -> s {httpStatus = a} :: ListDecoderManifestsResponse)++instance Prelude.NFData ListDecoderManifestsResponse where+  rnf ListDecoderManifestsResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf summaries+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/IoTFleetWise/ListFleets.hs view
@@ -0,0 +1,243 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.ListFleets+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves information for each created fleet in an Amazon Web Services+-- account.+--+-- This API operation uses pagination. Specify the @nextToken@ parameter in+-- the request to return more results.+--+-- This operation returns paginated results.+module Amazonka.IoTFleetWise.ListFleets+  ( -- * Creating a Request+    ListFleets (..),+    newListFleets,++    -- * Request Lenses+    listFleets_maxResults,+    listFleets_nextToken,++    -- * Destructuring the Response+    ListFleetsResponse (..),+    newListFleetsResponse,++    -- * Response Lenses+    listFleetsResponse_fleetSummaries,+    listFleetsResponse_nextToken,+    listFleetsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTFleetWise.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListFleets' smart constructor.+data ListFleets = ListFleets'+  { -- | The maximum number of items to return, between 1 and 100, inclusive.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | A pagination token for the next set of results.+    --+    -- If the results of a search are large, only a portion of the results are+    -- returned, and a @nextToken@ pagination token is returned in the+    -- response. To retrieve the next set of results, reissue the search+    -- request and include the returned token. When all results have been+    -- returned, the response does not contain a pagination token value.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListFleets' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'maxResults', 'listFleets_maxResults' - The maximum number of items to return, between 1 and 100, inclusive.+--+-- 'nextToken', 'listFleets_nextToken' - A pagination token for the next set of results.+--+-- If the results of a search are large, only a portion of the results are+-- returned, and a @nextToken@ pagination token is returned in the+-- response. To retrieve the next set of results, reissue the search+-- request and include the returned token. When all results have been+-- returned, the response does not contain a pagination token value.+newListFleets ::+  ListFleets+newListFleets =+  ListFleets'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | The maximum number of items to return, between 1 and 100, inclusive.+listFleets_maxResults :: Lens.Lens' ListFleets (Prelude.Maybe Prelude.Natural)+listFleets_maxResults = Lens.lens (\ListFleets' {maxResults} -> maxResults) (\s@ListFleets' {} a -> s {maxResults = a} :: ListFleets)++-- | A pagination token for the next set of results.+--+-- If the results of a search are large, only a portion of the results are+-- returned, and a @nextToken@ pagination token is returned in the+-- response. To retrieve the next set of results, reissue the search+-- request and include the returned token. When all results have been+-- returned, the response does not contain a pagination token value.+listFleets_nextToken :: Lens.Lens' ListFleets (Prelude.Maybe Prelude.Text)+listFleets_nextToken = Lens.lens (\ListFleets' {nextToken} -> nextToken) (\s@ListFleets' {} a -> s {nextToken = a} :: ListFleets)++instance Core.AWSPager ListFleets where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listFleetsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listFleetsResponse_fleetSummaries+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listFleets_nextToken+          Lens..~ rs+          Lens.^? listFleetsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListFleets where+  type AWSResponse ListFleets = ListFleetsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListFleetsResponse'+            Prelude.<$> (x Data..?> "fleetSummaries" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListFleets where+  hashWithSalt _salt ListFleets' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListFleets where+  rnf ListFleets' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListFleets where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "IoTAutobahnControlPlane.ListFleets" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListFleets where+  toJSON ListFleets' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken+          ]+      )++instance Data.ToPath ListFleets where+  toPath = Prelude.const "/"++instance Data.ToQuery ListFleets where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListFleetsResponse' smart constructor.+data ListFleetsResponse = ListFleetsResponse'+  { -- | A list of information for each fleet.+    fleetSummaries :: Prelude.Maybe [FleetSummary],+    -- | The token to retrieve the next set of results, or @null@ if there are no+    -- more results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListFleetsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'fleetSummaries', 'listFleetsResponse_fleetSummaries' - A list of information for each fleet.+--+-- 'nextToken', 'listFleetsResponse_nextToken' - The token to retrieve the next set of results, or @null@ if there are no+-- more results.+--+-- 'httpStatus', 'listFleetsResponse_httpStatus' - The response's http status code.+newListFleetsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListFleetsResponse+newListFleetsResponse pHttpStatus_ =+  ListFleetsResponse'+    { fleetSummaries =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A list of information for each fleet.+listFleetsResponse_fleetSummaries :: Lens.Lens' ListFleetsResponse (Prelude.Maybe [FleetSummary])+listFleetsResponse_fleetSummaries = Lens.lens (\ListFleetsResponse' {fleetSummaries} -> fleetSummaries) (\s@ListFleetsResponse' {} a -> s {fleetSummaries = a} :: ListFleetsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The token to retrieve the next set of results, or @null@ if there are no+-- more results.+listFleetsResponse_nextToken :: Lens.Lens' ListFleetsResponse (Prelude.Maybe Prelude.Text)+listFleetsResponse_nextToken = Lens.lens (\ListFleetsResponse' {nextToken} -> nextToken) (\s@ListFleetsResponse' {} a -> s {nextToken = a} :: ListFleetsResponse)++-- | The response's http status code.+listFleetsResponse_httpStatus :: Lens.Lens' ListFleetsResponse Prelude.Int+listFleetsResponse_httpStatus = Lens.lens (\ListFleetsResponse' {httpStatus} -> httpStatus) (\s@ListFleetsResponse' {} a -> s {httpStatus = a} :: ListFleetsResponse)++instance Prelude.NFData ListFleetsResponse where+  rnf ListFleetsResponse' {..} =+    Prelude.rnf fleetSummaries+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/IoTFleetWise/ListFleetsForVehicle.hs view
@@ -0,0 +1,260 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.ListFleetsForVehicle+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves a list of IDs for all fleets that the vehicle is associated+-- with.+--+-- This API operation uses pagination. Specify the @nextToken@ parameter in+-- the request to return more results.+--+-- This operation returns paginated results.+module Amazonka.IoTFleetWise.ListFleetsForVehicle+  ( -- * Creating a Request+    ListFleetsForVehicle (..),+    newListFleetsForVehicle,++    -- * Request Lenses+    listFleetsForVehicle_maxResults,+    listFleetsForVehicle_nextToken,+    listFleetsForVehicle_vehicleName,++    -- * Destructuring the Response+    ListFleetsForVehicleResponse (..),+    newListFleetsForVehicleResponse,++    -- * Response Lenses+    listFleetsForVehicleResponse_fleets,+    listFleetsForVehicleResponse_nextToken,+    listFleetsForVehicleResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTFleetWise.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListFleetsForVehicle' smart constructor.+data ListFleetsForVehicle = ListFleetsForVehicle'+  { -- | The maximum number of items to return, between 1 and 100, inclusive.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | A pagination token for the next set of results.+    --+    -- If the results of a search are large, only a portion of the results are+    -- returned, and a @nextToken@ pagination token is returned in the+    -- response. To retrieve the next set of results, reissue the search+    -- request and include the returned token. When all results have been+    -- returned, the response does not contain a pagination token value.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The ID of the vehicle to retrieve information about.+    vehicleName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListFleetsForVehicle' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'maxResults', 'listFleetsForVehicle_maxResults' - The maximum number of items to return, between 1 and 100, inclusive.+--+-- 'nextToken', 'listFleetsForVehicle_nextToken' - A pagination token for the next set of results.+--+-- If the results of a search are large, only a portion of the results are+-- returned, and a @nextToken@ pagination token is returned in the+-- response. To retrieve the next set of results, reissue the search+-- request and include the returned token. When all results have been+-- returned, the response does not contain a pagination token value.+--+-- 'vehicleName', 'listFleetsForVehicle_vehicleName' - The ID of the vehicle to retrieve information about.+newListFleetsForVehicle ::+  -- | 'vehicleName'+  Prelude.Text ->+  ListFleetsForVehicle+newListFleetsForVehicle pVehicleName_ =+  ListFleetsForVehicle'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      vehicleName = pVehicleName_+    }++-- | The maximum number of items to return, between 1 and 100, inclusive.+listFleetsForVehicle_maxResults :: Lens.Lens' ListFleetsForVehicle (Prelude.Maybe Prelude.Natural)+listFleetsForVehicle_maxResults = Lens.lens (\ListFleetsForVehicle' {maxResults} -> maxResults) (\s@ListFleetsForVehicle' {} a -> s {maxResults = a} :: ListFleetsForVehicle)++-- | A pagination token for the next set of results.+--+-- If the results of a search are large, only a portion of the results are+-- returned, and a @nextToken@ pagination token is returned in the+-- response. To retrieve the next set of results, reissue the search+-- request and include the returned token. When all results have been+-- returned, the response does not contain a pagination token value.+listFleetsForVehicle_nextToken :: Lens.Lens' ListFleetsForVehicle (Prelude.Maybe Prelude.Text)+listFleetsForVehicle_nextToken = Lens.lens (\ListFleetsForVehicle' {nextToken} -> nextToken) (\s@ListFleetsForVehicle' {} a -> s {nextToken = a} :: ListFleetsForVehicle)++-- | The ID of the vehicle to retrieve information about.+listFleetsForVehicle_vehicleName :: Lens.Lens' ListFleetsForVehicle Prelude.Text+listFleetsForVehicle_vehicleName = Lens.lens (\ListFleetsForVehicle' {vehicleName} -> vehicleName) (\s@ListFleetsForVehicle' {} a -> s {vehicleName = a} :: ListFleetsForVehicle)++instance Core.AWSPager ListFleetsForVehicle where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listFleetsForVehicleResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listFleetsForVehicleResponse_fleets+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listFleetsForVehicle_nextToken+          Lens..~ rs+          Lens.^? listFleetsForVehicleResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListFleetsForVehicle where+  type+    AWSResponse ListFleetsForVehicle =+      ListFleetsForVehicleResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListFleetsForVehicleResponse'+            Prelude.<$> (x Data..?> "fleets" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListFleetsForVehicle where+  hashWithSalt _salt ListFleetsForVehicle' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` vehicleName++instance Prelude.NFData ListFleetsForVehicle where+  rnf ListFleetsForVehicle' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf vehicleName++instance Data.ToHeaders ListFleetsForVehicle where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "IoTAutobahnControlPlane.ListFleetsForVehicle" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListFleetsForVehicle where+  toJSON ListFleetsForVehicle' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken,+            Prelude.Just ("vehicleName" Data..= vehicleName)+          ]+      )++instance Data.ToPath ListFleetsForVehicle where+  toPath = Prelude.const "/"++instance Data.ToQuery ListFleetsForVehicle where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListFleetsForVehicleResponse' smart constructor.+data ListFleetsForVehicleResponse = ListFleetsForVehicleResponse'+  { -- | A list of fleet IDs that the vehicle is associated with.+    fleets :: Prelude.Maybe [Prelude.Text],+    -- | The token to retrieve the next set of results, or @null@ if there are no+    -- more results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListFleetsForVehicleResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'fleets', 'listFleetsForVehicleResponse_fleets' - A list of fleet IDs that the vehicle is associated with.+--+-- 'nextToken', 'listFleetsForVehicleResponse_nextToken' - The token to retrieve the next set of results, or @null@ if there are no+-- more results.+--+-- 'httpStatus', 'listFleetsForVehicleResponse_httpStatus' - The response's http status code.+newListFleetsForVehicleResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListFleetsForVehicleResponse+newListFleetsForVehicleResponse pHttpStatus_ =+  ListFleetsForVehicleResponse'+    { fleets =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A list of fleet IDs that the vehicle is associated with.+listFleetsForVehicleResponse_fleets :: Lens.Lens' ListFleetsForVehicleResponse (Prelude.Maybe [Prelude.Text])+listFleetsForVehicleResponse_fleets = Lens.lens (\ListFleetsForVehicleResponse' {fleets} -> fleets) (\s@ListFleetsForVehicleResponse' {} a -> s {fleets = a} :: ListFleetsForVehicleResponse) Prelude.. Lens.mapping Lens.coerced++-- | The token to retrieve the next set of results, or @null@ if there are no+-- more results.+listFleetsForVehicleResponse_nextToken :: Lens.Lens' ListFleetsForVehicleResponse (Prelude.Maybe Prelude.Text)+listFleetsForVehicleResponse_nextToken = Lens.lens (\ListFleetsForVehicleResponse' {nextToken} -> nextToken) (\s@ListFleetsForVehicleResponse' {} a -> s {nextToken = a} :: ListFleetsForVehicleResponse)++-- | The response's http status code.+listFleetsForVehicleResponse_httpStatus :: Lens.Lens' ListFleetsForVehicleResponse Prelude.Int+listFleetsForVehicleResponse_httpStatus = Lens.lens (\ListFleetsForVehicleResponse' {httpStatus} -> httpStatus) (\s@ListFleetsForVehicleResponse' {} a -> s {httpStatus = a} :: ListFleetsForVehicleResponse)++instance Prelude.NFData ListFleetsForVehicleResponse where+  rnf ListFleetsForVehicleResponse' {..} =+    Prelude.rnf fleets+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/IoTFleetWise/ListModelManifestNodes.hs view
@@ -0,0 +1,264 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.ListModelManifestNodes+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists information about nodes specified in a vehicle model (model+-- manifest).+--+-- This API operation uses pagination. Specify the @nextToken@ parameter in+-- the request to return more results.+--+-- This operation returns paginated results.+module Amazonka.IoTFleetWise.ListModelManifestNodes+  ( -- * Creating a Request+    ListModelManifestNodes (..),+    newListModelManifestNodes,++    -- * Request Lenses+    listModelManifestNodes_maxResults,+    listModelManifestNodes_nextToken,+    listModelManifestNodes_name,++    -- * Destructuring the Response+    ListModelManifestNodesResponse (..),+    newListModelManifestNodesResponse,++    -- * Response Lenses+    listModelManifestNodesResponse_nextToken,+    listModelManifestNodesResponse_nodes,+    listModelManifestNodesResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTFleetWise.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListModelManifestNodes' smart constructor.+data ListModelManifestNodes = ListModelManifestNodes'+  { -- | The maximum number of items to return, between 1 and 100, inclusive.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | A pagination token for the next set of results.+    --+    -- If the results of a search are large, only a portion of the results are+    -- returned, and a @nextToken@ pagination token is returned in the+    -- response. To retrieve the next set of results, reissue the search+    -- request and include the returned token. When all results have been+    -- returned, the response does not contain a pagination token value.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The name of the vehicle model to list information about.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListModelManifestNodes' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'maxResults', 'listModelManifestNodes_maxResults' - The maximum number of items to return, between 1 and 100, inclusive.+--+-- 'nextToken', 'listModelManifestNodes_nextToken' - A pagination token for the next set of results.+--+-- If the results of a search are large, only a portion of the results are+-- returned, and a @nextToken@ pagination token is returned in the+-- response. To retrieve the next set of results, reissue the search+-- request and include the returned token. When all results have been+-- returned, the response does not contain a pagination token value.+--+-- 'name', 'listModelManifestNodes_name' - The name of the vehicle model to list information about.+newListModelManifestNodes ::+  -- | 'name'+  Prelude.Text ->+  ListModelManifestNodes+newListModelManifestNodes pName_ =+  ListModelManifestNodes'+    { maxResults =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      name = pName_+    }++-- | The maximum number of items to return, between 1 and 100, inclusive.+listModelManifestNodes_maxResults :: Lens.Lens' ListModelManifestNodes (Prelude.Maybe Prelude.Natural)+listModelManifestNodes_maxResults = Lens.lens (\ListModelManifestNodes' {maxResults} -> maxResults) (\s@ListModelManifestNodes' {} a -> s {maxResults = a} :: ListModelManifestNodes)++-- | A pagination token for the next set of results.+--+-- If the results of a search are large, only a portion of the results are+-- returned, and a @nextToken@ pagination token is returned in the+-- response. To retrieve the next set of results, reissue the search+-- request and include the returned token. When all results have been+-- returned, the response does not contain a pagination token value.+listModelManifestNodes_nextToken :: Lens.Lens' ListModelManifestNodes (Prelude.Maybe Prelude.Text)+listModelManifestNodes_nextToken = Lens.lens (\ListModelManifestNodes' {nextToken} -> nextToken) (\s@ListModelManifestNodes' {} a -> s {nextToken = a} :: ListModelManifestNodes)++-- | The name of the vehicle model to list information about.+listModelManifestNodes_name :: Lens.Lens' ListModelManifestNodes Prelude.Text+listModelManifestNodes_name = Lens.lens (\ListModelManifestNodes' {name} -> name) (\s@ListModelManifestNodes' {} a -> s {name = a} :: ListModelManifestNodes)++instance Core.AWSPager ListModelManifestNodes where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listModelManifestNodesResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listModelManifestNodesResponse_nodes+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listModelManifestNodes_nextToken+          Lens..~ rs+          Lens.^? listModelManifestNodesResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListModelManifestNodes where+  type+    AWSResponse ListModelManifestNodes =+      ListModelManifestNodesResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListModelManifestNodesResponse'+            Prelude.<$> (x Data..?> "nextToken")+            Prelude.<*> (x Data..?> "nodes" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListModelManifestNodes where+  hashWithSalt _salt ListModelManifestNodes' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` name++instance Prelude.NFData ListModelManifestNodes where+  rnf ListModelManifestNodes' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf name++instance Data.ToHeaders ListModelManifestNodes where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "IoTAutobahnControlPlane.ListModelManifestNodes" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListModelManifestNodes where+  toJSON ListModelManifestNodes' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken,+            Prelude.Just ("name" Data..= name)+          ]+      )++instance Data.ToPath ListModelManifestNodes where+  toPath = Prelude.const "/"++instance Data.ToQuery ListModelManifestNodes where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListModelManifestNodesResponse' smart constructor.+data ListModelManifestNodesResponse = ListModelManifestNodesResponse'+  { -- | The token to retrieve the next set of results, or @null@ if there are no+    -- more results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | A list of information about nodes.+    nodes :: Prelude.Maybe [Node],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListModelManifestNodesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextToken', 'listModelManifestNodesResponse_nextToken' - The token to retrieve the next set of results, or @null@ if there are no+-- more results.+--+-- 'nodes', 'listModelManifestNodesResponse_nodes' - A list of information about nodes.+--+-- 'httpStatus', 'listModelManifestNodesResponse_httpStatus' - The response's http status code.+newListModelManifestNodesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListModelManifestNodesResponse+newListModelManifestNodesResponse pHttpStatus_ =+  ListModelManifestNodesResponse'+    { nextToken =+        Prelude.Nothing,+      nodes = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The token to retrieve the next set of results, or @null@ if there are no+-- more results.+listModelManifestNodesResponse_nextToken :: Lens.Lens' ListModelManifestNodesResponse (Prelude.Maybe Prelude.Text)+listModelManifestNodesResponse_nextToken = Lens.lens (\ListModelManifestNodesResponse' {nextToken} -> nextToken) (\s@ListModelManifestNodesResponse' {} a -> s {nextToken = a} :: ListModelManifestNodesResponse)++-- | A list of information about nodes.+listModelManifestNodesResponse_nodes :: Lens.Lens' ListModelManifestNodesResponse (Prelude.Maybe [Node])+listModelManifestNodesResponse_nodes = Lens.lens (\ListModelManifestNodesResponse' {nodes} -> nodes) (\s@ListModelManifestNodesResponse' {} a -> s {nodes = a} :: ListModelManifestNodesResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listModelManifestNodesResponse_httpStatus :: Lens.Lens' ListModelManifestNodesResponse Prelude.Int+listModelManifestNodesResponse_httpStatus = Lens.lens (\ListModelManifestNodesResponse' {httpStatus} -> httpStatus) (\s@ListModelManifestNodesResponse' {} a -> s {httpStatus = a} :: ListModelManifestNodesResponse)++instance+  Prelude.NFData+    ListModelManifestNodesResponse+  where+  rnf ListModelManifestNodesResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf nodes+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/IoTFleetWise/ListModelManifests.hs view
@@ -0,0 +1,261 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.ListModelManifests+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves a list of vehicle models (model manifests).+--+-- This API operation uses pagination. Specify the @nextToken@ parameter in+-- the request to return more results.+--+-- This operation returns paginated results.+module Amazonka.IoTFleetWise.ListModelManifests+  ( -- * Creating a Request+    ListModelManifests (..),+    newListModelManifests,++    -- * Request Lenses+    listModelManifests_maxResults,+    listModelManifests_nextToken,+    listModelManifests_signalCatalogArn,++    -- * Destructuring the Response+    ListModelManifestsResponse (..),+    newListModelManifestsResponse,++    -- * Response Lenses+    listModelManifestsResponse_nextToken,+    listModelManifestsResponse_summaries,+    listModelManifestsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTFleetWise.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListModelManifests' smart constructor.+data ListModelManifests = ListModelManifests'+  { -- | The maximum number of items to return, between 1 and 100, inclusive.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | A pagination token for the next set of results.+    --+    -- If the results of a search are large, only a portion of the results are+    -- returned, and a @nextToken@ pagination token is returned in the+    -- response. To retrieve the next set of results, reissue the search+    -- request and include the returned token. When all results have been+    -- returned, the response does not contain a pagination token value.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The ARN of a signal catalog. If you specify a signal catalog, only the+    -- vehicle models associated with it are returned.+    signalCatalogArn :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListModelManifests' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'maxResults', 'listModelManifests_maxResults' - The maximum number of items to return, between 1 and 100, inclusive.+--+-- 'nextToken', 'listModelManifests_nextToken' - A pagination token for the next set of results.+--+-- If the results of a search are large, only a portion of the results are+-- returned, and a @nextToken@ pagination token is returned in the+-- response. To retrieve the next set of results, reissue the search+-- request and include the returned token. When all results have been+-- returned, the response does not contain a pagination token value.+--+-- 'signalCatalogArn', 'listModelManifests_signalCatalogArn' - The ARN of a signal catalog. If you specify a signal catalog, only the+-- vehicle models associated with it are returned.+newListModelManifests ::+  ListModelManifests+newListModelManifests =+  ListModelManifests'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      signalCatalogArn = Prelude.Nothing+    }++-- | The maximum number of items to return, between 1 and 100, inclusive.+listModelManifests_maxResults :: Lens.Lens' ListModelManifests (Prelude.Maybe Prelude.Natural)+listModelManifests_maxResults = Lens.lens (\ListModelManifests' {maxResults} -> maxResults) (\s@ListModelManifests' {} a -> s {maxResults = a} :: ListModelManifests)++-- | A pagination token for the next set of results.+--+-- If the results of a search are large, only a portion of the results are+-- returned, and a @nextToken@ pagination token is returned in the+-- response. To retrieve the next set of results, reissue the search+-- request and include the returned token. When all results have been+-- returned, the response does not contain a pagination token value.+listModelManifests_nextToken :: Lens.Lens' ListModelManifests (Prelude.Maybe Prelude.Text)+listModelManifests_nextToken = Lens.lens (\ListModelManifests' {nextToken} -> nextToken) (\s@ListModelManifests' {} a -> s {nextToken = a} :: ListModelManifests)++-- | The ARN of a signal catalog. If you specify a signal catalog, only the+-- vehicle models associated with it are returned.+listModelManifests_signalCatalogArn :: Lens.Lens' ListModelManifests (Prelude.Maybe Prelude.Text)+listModelManifests_signalCatalogArn = Lens.lens (\ListModelManifests' {signalCatalogArn} -> signalCatalogArn) (\s@ListModelManifests' {} a -> s {signalCatalogArn = a} :: ListModelManifests)++instance Core.AWSPager ListModelManifests where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listModelManifestsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listModelManifestsResponse_summaries+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listModelManifests_nextToken+          Lens..~ rs+          Lens.^? listModelManifestsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListModelManifests where+  type+    AWSResponse ListModelManifests =+      ListModelManifestsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListModelManifestsResponse'+            Prelude.<$> (x Data..?> "nextToken")+            Prelude.<*> (x Data..?> "summaries" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListModelManifests where+  hashWithSalt _salt ListModelManifests' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` signalCatalogArn++instance Prelude.NFData ListModelManifests where+  rnf ListModelManifests' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf signalCatalogArn++instance Data.ToHeaders ListModelManifests where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "IoTAutobahnControlPlane.ListModelManifests" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListModelManifests where+  toJSON ListModelManifests' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken,+            ("signalCatalogArn" Data..=)+              Prelude.<$> signalCatalogArn+          ]+      )++instance Data.ToPath ListModelManifests where+  toPath = Prelude.const "/"++instance Data.ToQuery ListModelManifests where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListModelManifestsResponse' smart constructor.+data ListModelManifestsResponse = ListModelManifestsResponse'+  { -- | The token to retrieve the next set of results, or @null@ if there are no+    -- more results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | A list of information about vehicle models.+    summaries :: Prelude.Maybe [ModelManifestSummary],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListModelManifestsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextToken', 'listModelManifestsResponse_nextToken' - The token to retrieve the next set of results, or @null@ if there are no+-- more results.+--+-- 'summaries', 'listModelManifestsResponse_summaries' - A list of information about vehicle models.+--+-- 'httpStatus', 'listModelManifestsResponse_httpStatus' - The response's http status code.+newListModelManifestsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListModelManifestsResponse+newListModelManifestsResponse pHttpStatus_ =+  ListModelManifestsResponse'+    { nextToken =+        Prelude.Nothing,+      summaries = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The token to retrieve the next set of results, or @null@ if there are no+-- more results.+listModelManifestsResponse_nextToken :: Lens.Lens' ListModelManifestsResponse (Prelude.Maybe Prelude.Text)+listModelManifestsResponse_nextToken = Lens.lens (\ListModelManifestsResponse' {nextToken} -> nextToken) (\s@ListModelManifestsResponse' {} a -> s {nextToken = a} :: ListModelManifestsResponse)++-- | A list of information about vehicle models.+listModelManifestsResponse_summaries :: Lens.Lens' ListModelManifestsResponse (Prelude.Maybe [ModelManifestSummary])+listModelManifestsResponse_summaries = Lens.lens (\ListModelManifestsResponse' {summaries} -> summaries) (\s@ListModelManifestsResponse' {} a -> s {summaries = a} :: ListModelManifestsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listModelManifestsResponse_httpStatus :: Lens.Lens' ListModelManifestsResponse Prelude.Int+listModelManifestsResponse_httpStatus = Lens.lens (\ListModelManifestsResponse' {httpStatus} -> httpStatus) (\s@ListModelManifestsResponse' {} a -> s {httpStatus = a} :: ListModelManifestsResponse)++instance Prelude.NFData ListModelManifestsResponse where+  rnf ListModelManifestsResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf summaries+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/IoTFleetWise/ListSignalCatalogNodes.hs view
@@ -0,0 +1,264 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.ListSignalCatalogNodes+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists of information about the signals (nodes) specified in a signal+-- catalog.+--+-- This API operation uses pagination. Specify the @nextToken@ parameter in+-- the request to return more results.+--+-- This operation returns paginated results.+module Amazonka.IoTFleetWise.ListSignalCatalogNodes+  ( -- * Creating a Request+    ListSignalCatalogNodes (..),+    newListSignalCatalogNodes,++    -- * Request Lenses+    listSignalCatalogNodes_maxResults,+    listSignalCatalogNodes_nextToken,+    listSignalCatalogNodes_name,++    -- * Destructuring the Response+    ListSignalCatalogNodesResponse (..),+    newListSignalCatalogNodesResponse,++    -- * Response Lenses+    listSignalCatalogNodesResponse_nextToken,+    listSignalCatalogNodesResponse_nodes,+    listSignalCatalogNodesResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTFleetWise.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListSignalCatalogNodes' smart constructor.+data ListSignalCatalogNodes = ListSignalCatalogNodes'+  { -- | The maximum number of items to return, between 1 and 100, inclusive.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | A pagination token for the next set of results.+    --+    -- If the results of a search are large, only a portion of the results are+    -- returned, and a @nextToken@ pagination token is returned in the+    -- response. To retrieve the next set of results, reissue the search+    -- request and include the returned token. When all results have been+    -- returned, the response does not contain a pagination token value.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The name of the signal catalog to list information about.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListSignalCatalogNodes' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'maxResults', 'listSignalCatalogNodes_maxResults' - The maximum number of items to return, between 1 and 100, inclusive.+--+-- 'nextToken', 'listSignalCatalogNodes_nextToken' - A pagination token for the next set of results.+--+-- If the results of a search are large, only a portion of the results are+-- returned, and a @nextToken@ pagination token is returned in the+-- response. To retrieve the next set of results, reissue the search+-- request and include the returned token. When all results have been+-- returned, the response does not contain a pagination token value.+--+-- 'name', 'listSignalCatalogNodes_name' - The name of the signal catalog to list information about.+newListSignalCatalogNodes ::+  -- | 'name'+  Prelude.Text ->+  ListSignalCatalogNodes+newListSignalCatalogNodes pName_ =+  ListSignalCatalogNodes'+    { maxResults =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      name = pName_+    }++-- | The maximum number of items to return, between 1 and 100, inclusive.+listSignalCatalogNodes_maxResults :: Lens.Lens' ListSignalCatalogNodes (Prelude.Maybe Prelude.Natural)+listSignalCatalogNodes_maxResults = Lens.lens (\ListSignalCatalogNodes' {maxResults} -> maxResults) (\s@ListSignalCatalogNodes' {} a -> s {maxResults = a} :: ListSignalCatalogNodes)++-- | A pagination token for the next set of results.+--+-- If the results of a search are large, only a portion of the results are+-- returned, and a @nextToken@ pagination token is returned in the+-- response. To retrieve the next set of results, reissue the search+-- request and include the returned token. When all results have been+-- returned, the response does not contain a pagination token value.+listSignalCatalogNodes_nextToken :: Lens.Lens' ListSignalCatalogNodes (Prelude.Maybe Prelude.Text)+listSignalCatalogNodes_nextToken = Lens.lens (\ListSignalCatalogNodes' {nextToken} -> nextToken) (\s@ListSignalCatalogNodes' {} a -> s {nextToken = a} :: ListSignalCatalogNodes)++-- | The name of the signal catalog to list information about.+listSignalCatalogNodes_name :: Lens.Lens' ListSignalCatalogNodes Prelude.Text+listSignalCatalogNodes_name = Lens.lens (\ListSignalCatalogNodes' {name} -> name) (\s@ListSignalCatalogNodes' {} a -> s {name = a} :: ListSignalCatalogNodes)++instance Core.AWSPager ListSignalCatalogNodes where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listSignalCatalogNodesResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listSignalCatalogNodesResponse_nodes+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listSignalCatalogNodes_nextToken+          Lens..~ rs+          Lens.^? listSignalCatalogNodesResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListSignalCatalogNodes where+  type+    AWSResponse ListSignalCatalogNodes =+      ListSignalCatalogNodesResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListSignalCatalogNodesResponse'+            Prelude.<$> (x Data..?> "nextToken")+            Prelude.<*> (x Data..?> "nodes" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListSignalCatalogNodes where+  hashWithSalt _salt ListSignalCatalogNodes' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` name++instance Prelude.NFData ListSignalCatalogNodes where+  rnf ListSignalCatalogNodes' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf name++instance Data.ToHeaders ListSignalCatalogNodes where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "IoTAutobahnControlPlane.ListSignalCatalogNodes" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListSignalCatalogNodes where+  toJSON ListSignalCatalogNodes' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken,+            Prelude.Just ("name" Data..= name)+          ]+      )++instance Data.ToPath ListSignalCatalogNodes where+  toPath = Prelude.const "/"++instance Data.ToQuery ListSignalCatalogNodes where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListSignalCatalogNodesResponse' smart constructor.+data ListSignalCatalogNodesResponse = ListSignalCatalogNodesResponse'+  { -- | The token to retrieve the next set of results, or @null@ if there are no+    -- more results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | A list of information about nodes.+    nodes :: Prelude.Maybe [Node],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListSignalCatalogNodesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextToken', 'listSignalCatalogNodesResponse_nextToken' - The token to retrieve the next set of results, or @null@ if there are no+-- more results.+--+-- 'nodes', 'listSignalCatalogNodesResponse_nodes' - A list of information about nodes.+--+-- 'httpStatus', 'listSignalCatalogNodesResponse_httpStatus' - The response's http status code.+newListSignalCatalogNodesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListSignalCatalogNodesResponse+newListSignalCatalogNodesResponse pHttpStatus_ =+  ListSignalCatalogNodesResponse'+    { nextToken =+        Prelude.Nothing,+      nodes = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The token to retrieve the next set of results, or @null@ if there are no+-- more results.+listSignalCatalogNodesResponse_nextToken :: Lens.Lens' ListSignalCatalogNodesResponse (Prelude.Maybe Prelude.Text)+listSignalCatalogNodesResponse_nextToken = Lens.lens (\ListSignalCatalogNodesResponse' {nextToken} -> nextToken) (\s@ListSignalCatalogNodesResponse' {} a -> s {nextToken = a} :: ListSignalCatalogNodesResponse)++-- | A list of information about nodes.+listSignalCatalogNodesResponse_nodes :: Lens.Lens' ListSignalCatalogNodesResponse (Prelude.Maybe [Node])+listSignalCatalogNodesResponse_nodes = Lens.lens (\ListSignalCatalogNodesResponse' {nodes} -> nodes) (\s@ListSignalCatalogNodesResponse' {} a -> s {nodes = a} :: ListSignalCatalogNodesResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listSignalCatalogNodesResponse_httpStatus :: Lens.Lens' ListSignalCatalogNodesResponse Prelude.Int+listSignalCatalogNodesResponse_httpStatus = Lens.lens (\ListSignalCatalogNodesResponse' {httpStatus} -> httpStatus) (\s@ListSignalCatalogNodesResponse' {} a -> s {httpStatus = a} :: ListSignalCatalogNodesResponse)++instance+  Prelude.NFData+    ListSignalCatalogNodesResponse+  where+  rnf ListSignalCatalogNodesResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf nodes+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/IoTFleetWise/ListSignalCatalogs.hs view
@@ -0,0 +1,247 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.ListSignalCatalogs+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists all the created signal catalogs in an Amazon Web Services account.+--+-- You can use to list information about each signal (node) specified in a+-- signal catalog.+--+-- This API operation uses pagination. Specify the @nextToken@ parameter in+-- the request to return more results.+--+-- This operation returns paginated results.+module Amazonka.IoTFleetWise.ListSignalCatalogs+  ( -- * Creating a Request+    ListSignalCatalogs (..),+    newListSignalCatalogs,++    -- * Request Lenses+    listSignalCatalogs_maxResults,+    listSignalCatalogs_nextToken,++    -- * Destructuring the Response+    ListSignalCatalogsResponse (..),+    newListSignalCatalogsResponse,++    -- * Response Lenses+    listSignalCatalogsResponse_nextToken,+    listSignalCatalogsResponse_summaries,+    listSignalCatalogsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTFleetWise.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListSignalCatalogs' smart constructor.+data ListSignalCatalogs = ListSignalCatalogs'+  { -- | The maximum number of items to return, between 1 and 100, inclusive.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | A pagination token for the next set of results.+    --+    -- If the results of a search are large, only a portion of the results are+    -- returned, and a @nextToken@ pagination token is returned in the+    -- response. To retrieve the next set of results, reissue the search+    -- request and include the returned token. When all results have been+    -- returned, the response does not contain a pagination token value.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListSignalCatalogs' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'maxResults', 'listSignalCatalogs_maxResults' - The maximum number of items to return, between 1 and 100, inclusive.+--+-- 'nextToken', 'listSignalCatalogs_nextToken' - A pagination token for the next set of results.+--+-- If the results of a search are large, only a portion of the results are+-- returned, and a @nextToken@ pagination token is returned in the+-- response. To retrieve the next set of results, reissue the search+-- request and include the returned token. When all results have been+-- returned, the response does not contain a pagination token value.+newListSignalCatalogs ::+  ListSignalCatalogs+newListSignalCatalogs =+  ListSignalCatalogs'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | The maximum number of items to return, between 1 and 100, inclusive.+listSignalCatalogs_maxResults :: Lens.Lens' ListSignalCatalogs (Prelude.Maybe Prelude.Natural)+listSignalCatalogs_maxResults = Lens.lens (\ListSignalCatalogs' {maxResults} -> maxResults) (\s@ListSignalCatalogs' {} a -> s {maxResults = a} :: ListSignalCatalogs)++-- | A pagination token for the next set of results.+--+-- If the results of a search are large, only a portion of the results are+-- returned, and a @nextToken@ pagination token is returned in the+-- response. To retrieve the next set of results, reissue the search+-- request and include the returned token. When all results have been+-- returned, the response does not contain a pagination token value.+listSignalCatalogs_nextToken :: Lens.Lens' ListSignalCatalogs (Prelude.Maybe Prelude.Text)+listSignalCatalogs_nextToken = Lens.lens (\ListSignalCatalogs' {nextToken} -> nextToken) (\s@ListSignalCatalogs' {} a -> s {nextToken = a} :: ListSignalCatalogs)++instance Core.AWSPager ListSignalCatalogs where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listSignalCatalogsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listSignalCatalogsResponse_summaries+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listSignalCatalogs_nextToken+          Lens..~ rs+          Lens.^? listSignalCatalogsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListSignalCatalogs where+  type+    AWSResponse ListSignalCatalogs =+      ListSignalCatalogsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListSignalCatalogsResponse'+            Prelude.<$> (x Data..?> "nextToken")+            Prelude.<*> (x Data..?> "summaries" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListSignalCatalogs where+  hashWithSalt _salt ListSignalCatalogs' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListSignalCatalogs where+  rnf ListSignalCatalogs' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListSignalCatalogs where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "IoTAutobahnControlPlane.ListSignalCatalogs" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListSignalCatalogs where+  toJSON ListSignalCatalogs' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken+          ]+      )++instance Data.ToPath ListSignalCatalogs where+  toPath = Prelude.const "/"++instance Data.ToQuery ListSignalCatalogs where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListSignalCatalogsResponse' smart constructor.+data ListSignalCatalogsResponse = ListSignalCatalogsResponse'+  { -- | The token to retrieve the next set of results, or @null@ if there are no+    -- more results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | A list of information about each signal catalog.+    summaries :: Prelude.Maybe [SignalCatalogSummary],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListSignalCatalogsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextToken', 'listSignalCatalogsResponse_nextToken' - The token to retrieve the next set of results, or @null@ if there are no+-- more results.+--+-- 'summaries', 'listSignalCatalogsResponse_summaries' - A list of information about each signal catalog.+--+-- 'httpStatus', 'listSignalCatalogsResponse_httpStatus' - The response's http status code.+newListSignalCatalogsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListSignalCatalogsResponse+newListSignalCatalogsResponse pHttpStatus_ =+  ListSignalCatalogsResponse'+    { nextToken =+        Prelude.Nothing,+      summaries = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The token to retrieve the next set of results, or @null@ if there are no+-- more results.+listSignalCatalogsResponse_nextToken :: Lens.Lens' ListSignalCatalogsResponse (Prelude.Maybe Prelude.Text)+listSignalCatalogsResponse_nextToken = Lens.lens (\ListSignalCatalogsResponse' {nextToken} -> nextToken) (\s@ListSignalCatalogsResponse' {} a -> s {nextToken = a} :: ListSignalCatalogsResponse)++-- | A list of information about each signal catalog.+listSignalCatalogsResponse_summaries :: Lens.Lens' ListSignalCatalogsResponse (Prelude.Maybe [SignalCatalogSummary])+listSignalCatalogsResponse_summaries = Lens.lens (\ListSignalCatalogsResponse' {summaries} -> summaries) (\s@ListSignalCatalogsResponse' {} a -> s {summaries = a} :: ListSignalCatalogsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listSignalCatalogsResponse_httpStatus :: Lens.Lens' ListSignalCatalogsResponse Prelude.Int+listSignalCatalogsResponse_httpStatus = Lens.lens (\ListSignalCatalogsResponse' {httpStatus} -> httpStatus) (\s@ListSignalCatalogsResponse' {} a -> s {httpStatus = a} :: ListSignalCatalogsResponse)++instance Prelude.NFData ListSignalCatalogsResponse where+  rnf ListSignalCatalogsResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf summaries+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/IoTFleetWise/ListTagsForResource.hs view
@@ -0,0 +1,169 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.ListTagsForResource+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists the tags (metadata) you have assigned to the resource.+module Amazonka.IoTFleetWise.ListTagsForResource+  ( -- * Creating a Request+    ListTagsForResource (..),+    newListTagsForResource,++    -- * Request Lenses+    listTagsForResource_resourceARN,++    -- * Destructuring the Response+    ListTagsForResourceResponse (..),+    newListTagsForResourceResponse,++    -- * Response Lenses+    listTagsForResourceResponse_tags,+    listTagsForResourceResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTFleetWise.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListTagsForResource' smart constructor.+data ListTagsForResource = ListTagsForResource'+  { -- | The ARN of the resource.+    resourceARN :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListTagsForResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceARN', 'listTagsForResource_resourceARN' - The ARN of the resource.+newListTagsForResource ::+  -- | 'resourceARN'+  Prelude.Text ->+  ListTagsForResource+newListTagsForResource pResourceARN_ =+  ListTagsForResource' {resourceARN = pResourceARN_}++-- | The ARN of the resource.+listTagsForResource_resourceARN :: Lens.Lens' ListTagsForResource Prelude.Text+listTagsForResource_resourceARN = Lens.lens (\ListTagsForResource' {resourceARN} -> resourceARN) (\s@ListTagsForResource' {} a -> s {resourceARN = a} :: ListTagsForResource)++instance Core.AWSRequest ListTagsForResource where+  type+    AWSResponse ListTagsForResource =+      ListTagsForResourceResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListTagsForResourceResponse'+            Prelude.<$> (x Data..?> "Tags" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListTagsForResource where+  hashWithSalt _salt ListTagsForResource' {..} =+    _salt `Prelude.hashWithSalt` resourceARN++instance Prelude.NFData ListTagsForResource where+  rnf ListTagsForResource' {..} =+    Prelude.rnf resourceARN++instance Data.ToHeaders ListTagsForResource where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "IoTAutobahnControlPlane.ListTagsForResource" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListTagsForResource where+  toJSON ListTagsForResource' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("ResourceARN" Data..= resourceARN)]+      )++instance Data.ToPath ListTagsForResource where+  toPath = Prelude.const "/"++instance Data.ToQuery ListTagsForResource where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListTagsForResourceResponse' smart constructor.+data ListTagsForResourceResponse = ListTagsForResourceResponse'+  { -- | The list of tags assigned to the resource.+    tags :: Prelude.Maybe [Tag],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListTagsForResourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'tags', 'listTagsForResourceResponse_tags' - The list of tags assigned to the resource.+--+-- 'httpStatus', 'listTagsForResourceResponse_httpStatus' - The response's http status code.+newListTagsForResourceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListTagsForResourceResponse+newListTagsForResourceResponse pHttpStatus_ =+  ListTagsForResourceResponse'+    { tags =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The list of tags assigned to the resource.+listTagsForResourceResponse_tags :: Lens.Lens' ListTagsForResourceResponse (Prelude.Maybe [Tag])+listTagsForResourceResponse_tags = Lens.lens (\ListTagsForResourceResponse' {tags} -> tags) (\s@ListTagsForResourceResponse' {} a -> s {tags = a} :: ListTagsForResourceResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listTagsForResourceResponse_httpStatus :: Lens.Lens' ListTagsForResourceResponse Prelude.Int+listTagsForResourceResponse_httpStatus = Lens.lens (\ListTagsForResourceResponse' {httpStatus} -> httpStatus) (\s@ListTagsForResourceResponse' {} a -> s {httpStatus = a} :: ListTagsForResourceResponse)++instance Prelude.NFData ListTagsForResourceResponse where+  rnf ListTagsForResourceResponse' {..} =+    Prelude.rnf tags+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/IoTFleetWise/ListVehicles.hs view
@@ -0,0 +1,264 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.ListVehicles+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves a list of summaries of created vehicles.+--+-- This API operation uses pagination. Specify the @nextToken@ parameter in+-- the request to return more results.+--+-- This operation returns paginated results.+module Amazonka.IoTFleetWise.ListVehicles+  ( -- * Creating a Request+    ListVehicles (..),+    newListVehicles,++    -- * Request Lenses+    listVehicles_maxResults,+    listVehicles_modelManifestArn,+    listVehicles_nextToken,++    -- * Destructuring the Response+    ListVehiclesResponse (..),+    newListVehiclesResponse,++    -- * Response Lenses+    listVehiclesResponse_nextToken,+    listVehiclesResponse_vehicleSummaries,+    listVehiclesResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTFleetWise.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListVehicles' smart constructor.+data ListVehicles = ListVehicles'+  { -- | The maximum number of items to return, between 1 and 100, inclusive.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The Amazon Resource Name (ARN) of a vehicle model (model manifest). You+    -- can use this optional parameter to list only the vehicles created from a+    -- certain vehicle model.+    modelManifestArn :: Prelude.Maybe Prelude.Text,+    -- | A pagination token for the next set of results.+    --+    -- If the results of a search are large, only a portion of the results are+    -- returned, and a @nextToken@ pagination token is returned in the+    -- response. To retrieve the next set of results, reissue the search+    -- request and include the returned token. When all results have been+    -- returned, the response does not contain a pagination token value.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListVehicles' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'maxResults', 'listVehicles_maxResults' - The maximum number of items to return, between 1 and 100, inclusive.+--+-- 'modelManifestArn', 'listVehicles_modelManifestArn' - The Amazon Resource Name (ARN) of a vehicle model (model manifest). You+-- can use this optional parameter to list only the vehicles created from a+-- certain vehicle model.+--+-- 'nextToken', 'listVehicles_nextToken' - A pagination token for the next set of results.+--+-- If the results of a search are large, only a portion of the results are+-- returned, and a @nextToken@ pagination token is returned in the+-- response. To retrieve the next set of results, reissue the search+-- request and include the returned token. When all results have been+-- returned, the response does not contain a pagination token value.+newListVehicles ::+  ListVehicles+newListVehicles =+  ListVehicles'+    { maxResults = Prelude.Nothing,+      modelManifestArn = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | The maximum number of items to return, between 1 and 100, inclusive.+listVehicles_maxResults :: Lens.Lens' ListVehicles (Prelude.Maybe Prelude.Natural)+listVehicles_maxResults = Lens.lens (\ListVehicles' {maxResults} -> maxResults) (\s@ListVehicles' {} a -> s {maxResults = a} :: ListVehicles)++-- | The Amazon Resource Name (ARN) of a vehicle model (model manifest). You+-- can use this optional parameter to list only the vehicles created from a+-- certain vehicle model.+listVehicles_modelManifestArn :: Lens.Lens' ListVehicles (Prelude.Maybe Prelude.Text)+listVehicles_modelManifestArn = Lens.lens (\ListVehicles' {modelManifestArn} -> modelManifestArn) (\s@ListVehicles' {} a -> s {modelManifestArn = a} :: ListVehicles)++-- | A pagination token for the next set of results.+--+-- If the results of a search are large, only a portion of the results are+-- returned, and a @nextToken@ pagination token is returned in the+-- response. To retrieve the next set of results, reissue the search+-- request and include the returned token. When all results have been+-- returned, the response does not contain a pagination token value.+listVehicles_nextToken :: Lens.Lens' ListVehicles (Prelude.Maybe Prelude.Text)+listVehicles_nextToken = Lens.lens (\ListVehicles' {nextToken} -> nextToken) (\s@ListVehicles' {} a -> s {nextToken = a} :: ListVehicles)++instance Core.AWSPager ListVehicles where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listVehiclesResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listVehiclesResponse_vehicleSummaries+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listVehicles_nextToken+          Lens..~ rs+          Lens.^? listVehiclesResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListVehicles where+  type AWSResponse ListVehicles = ListVehiclesResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListVehiclesResponse'+            Prelude.<$> (x Data..?> "nextToken")+            Prelude.<*> ( x+                            Data..?> "vehicleSummaries"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListVehicles where+  hashWithSalt _salt ListVehicles' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` modelManifestArn+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListVehicles where+  rnf ListVehicles' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf modelManifestArn+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListVehicles where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "IoTAutobahnControlPlane.ListVehicles" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListVehicles where+  toJSON ListVehicles' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("maxResults" Data..=) Prelude.<$> maxResults,+            ("modelManifestArn" Data..=)+              Prelude.<$> modelManifestArn,+            ("nextToken" Data..=) Prelude.<$> nextToken+          ]+      )++instance Data.ToPath ListVehicles where+  toPath = Prelude.const "/"++instance Data.ToQuery ListVehicles where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListVehiclesResponse' smart constructor.+data ListVehiclesResponse = ListVehiclesResponse'+  { -- | The token to retrieve the next set of results, or @null@ if there are no+    -- more results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | A list of vehicles and information about them.+    vehicleSummaries :: Prelude.Maybe [VehicleSummary],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListVehiclesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextToken', 'listVehiclesResponse_nextToken' - The token to retrieve the next set of results, or @null@ if there are no+-- more results.+--+-- 'vehicleSummaries', 'listVehiclesResponse_vehicleSummaries' - A list of vehicles and information about them.+--+-- 'httpStatus', 'listVehiclesResponse_httpStatus' - The response's http status code.+newListVehiclesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListVehiclesResponse+newListVehiclesResponse pHttpStatus_ =+  ListVehiclesResponse'+    { nextToken = Prelude.Nothing,+      vehicleSummaries = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The token to retrieve the next set of results, or @null@ if there are no+-- more results.+listVehiclesResponse_nextToken :: Lens.Lens' ListVehiclesResponse (Prelude.Maybe Prelude.Text)+listVehiclesResponse_nextToken = Lens.lens (\ListVehiclesResponse' {nextToken} -> nextToken) (\s@ListVehiclesResponse' {} a -> s {nextToken = a} :: ListVehiclesResponse)++-- | A list of vehicles and information about them.+listVehiclesResponse_vehicleSummaries :: Lens.Lens' ListVehiclesResponse (Prelude.Maybe [VehicleSummary])+listVehiclesResponse_vehicleSummaries = Lens.lens (\ListVehiclesResponse' {vehicleSummaries} -> vehicleSummaries) (\s@ListVehiclesResponse' {} a -> s {vehicleSummaries = a} :: ListVehiclesResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listVehiclesResponse_httpStatus :: Lens.Lens' ListVehiclesResponse Prelude.Int+listVehiclesResponse_httpStatus = Lens.lens (\ListVehiclesResponse' {httpStatus} -> httpStatus) (\s@ListVehiclesResponse' {} a -> s {httpStatus = a} :: ListVehiclesResponse)++instance Prelude.NFData ListVehiclesResponse where+  rnf ListVehiclesResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf vehicleSummaries+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/IoTFleetWise/ListVehiclesInFleet.hs view
@@ -0,0 +1,259 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.ListVehiclesInFleet+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves a list of summaries of all vehicles associated with a fleet.+--+-- This API operation uses pagination. Specify the @nextToken@ parameter in+-- the request to return more results.+--+-- This operation returns paginated results.+module Amazonka.IoTFleetWise.ListVehiclesInFleet+  ( -- * Creating a Request+    ListVehiclesInFleet (..),+    newListVehiclesInFleet,++    -- * Request Lenses+    listVehiclesInFleet_maxResults,+    listVehiclesInFleet_nextToken,+    listVehiclesInFleet_fleetId,++    -- * Destructuring the Response+    ListVehiclesInFleetResponse (..),+    newListVehiclesInFleetResponse,++    -- * Response Lenses+    listVehiclesInFleetResponse_nextToken,+    listVehiclesInFleetResponse_vehicles,+    listVehiclesInFleetResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTFleetWise.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListVehiclesInFleet' smart constructor.+data ListVehiclesInFleet = ListVehiclesInFleet'+  { -- | The maximum number of items to return, between 1 and 100, inclusive.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | A pagination token for the next set of results.+    --+    -- If the results of a search are large, only a portion of the results are+    -- returned, and a @nextToken@ pagination token is returned in the+    -- response. To retrieve the next set of results, reissue the search+    -- request and include the returned token. When all results have been+    -- returned, the response does not contain a pagination token value.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The ID of a fleet.+    fleetId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListVehiclesInFleet' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'maxResults', 'listVehiclesInFleet_maxResults' - The maximum number of items to return, between 1 and 100, inclusive.+--+-- 'nextToken', 'listVehiclesInFleet_nextToken' - A pagination token for the next set of results.+--+-- If the results of a search are large, only a portion of the results are+-- returned, and a @nextToken@ pagination token is returned in the+-- response. To retrieve the next set of results, reissue the search+-- request and include the returned token. When all results have been+-- returned, the response does not contain a pagination token value.+--+-- 'fleetId', 'listVehiclesInFleet_fleetId' - The ID of a fleet.+newListVehiclesInFleet ::+  -- | 'fleetId'+  Prelude.Text ->+  ListVehiclesInFleet+newListVehiclesInFleet pFleetId_ =+  ListVehiclesInFleet'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      fleetId = pFleetId_+    }++-- | The maximum number of items to return, between 1 and 100, inclusive.+listVehiclesInFleet_maxResults :: Lens.Lens' ListVehiclesInFleet (Prelude.Maybe Prelude.Natural)+listVehiclesInFleet_maxResults = Lens.lens (\ListVehiclesInFleet' {maxResults} -> maxResults) (\s@ListVehiclesInFleet' {} a -> s {maxResults = a} :: ListVehiclesInFleet)++-- | A pagination token for the next set of results.+--+-- If the results of a search are large, only a portion of the results are+-- returned, and a @nextToken@ pagination token is returned in the+-- response. To retrieve the next set of results, reissue the search+-- request and include the returned token. When all results have been+-- returned, the response does not contain a pagination token value.+listVehiclesInFleet_nextToken :: Lens.Lens' ListVehiclesInFleet (Prelude.Maybe Prelude.Text)+listVehiclesInFleet_nextToken = Lens.lens (\ListVehiclesInFleet' {nextToken} -> nextToken) (\s@ListVehiclesInFleet' {} a -> s {nextToken = a} :: ListVehiclesInFleet)++-- | The ID of a fleet.+listVehiclesInFleet_fleetId :: Lens.Lens' ListVehiclesInFleet Prelude.Text+listVehiclesInFleet_fleetId = Lens.lens (\ListVehiclesInFleet' {fleetId} -> fleetId) (\s@ListVehiclesInFleet' {} a -> s {fleetId = a} :: ListVehiclesInFleet)++instance Core.AWSPager ListVehiclesInFleet where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listVehiclesInFleetResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listVehiclesInFleetResponse_vehicles+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listVehiclesInFleet_nextToken+          Lens..~ rs+          Lens.^? listVehiclesInFleetResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListVehiclesInFleet where+  type+    AWSResponse ListVehiclesInFleet =+      ListVehiclesInFleetResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListVehiclesInFleetResponse'+            Prelude.<$> (x Data..?> "nextToken")+            Prelude.<*> (x Data..?> "vehicles" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListVehiclesInFleet where+  hashWithSalt _salt ListVehiclesInFleet' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` fleetId++instance Prelude.NFData ListVehiclesInFleet where+  rnf ListVehiclesInFleet' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf fleetId++instance Data.ToHeaders ListVehiclesInFleet where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "IoTAutobahnControlPlane.ListVehiclesInFleet" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListVehiclesInFleet where+  toJSON ListVehiclesInFleet' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken,+            Prelude.Just ("fleetId" Data..= fleetId)+          ]+      )++instance Data.ToPath ListVehiclesInFleet where+  toPath = Prelude.const "/"++instance Data.ToQuery ListVehiclesInFleet where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListVehiclesInFleetResponse' smart constructor.+data ListVehiclesInFleetResponse = ListVehiclesInFleetResponse'+  { -- | The token to retrieve the next set of results, or @null@ if there are no+    -- more results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | A list of vehicles associated with the fleet.+    vehicles :: Prelude.Maybe [Prelude.Text],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListVehiclesInFleetResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextToken', 'listVehiclesInFleetResponse_nextToken' - The token to retrieve the next set of results, or @null@ if there are no+-- more results.+--+-- 'vehicles', 'listVehiclesInFleetResponse_vehicles' - A list of vehicles associated with the fleet.+--+-- 'httpStatus', 'listVehiclesInFleetResponse_httpStatus' - The response's http status code.+newListVehiclesInFleetResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListVehiclesInFleetResponse+newListVehiclesInFleetResponse pHttpStatus_ =+  ListVehiclesInFleetResponse'+    { nextToken =+        Prelude.Nothing,+      vehicles = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The token to retrieve the next set of results, or @null@ if there are no+-- more results.+listVehiclesInFleetResponse_nextToken :: Lens.Lens' ListVehiclesInFleetResponse (Prelude.Maybe Prelude.Text)+listVehiclesInFleetResponse_nextToken = Lens.lens (\ListVehiclesInFleetResponse' {nextToken} -> nextToken) (\s@ListVehiclesInFleetResponse' {} a -> s {nextToken = a} :: ListVehiclesInFleetResponse)++-- | A list of vehicles associated with the fleet.+listVehiclesInFleetResponse_vehicles :: Lens.Lens' ListVehiclesInFleetResponse (Prelude.Maybe [Prelude.Text])+listVehiclesInFleetResponse_vehicles = Lens.lens (\ListVehiclesInFleetResponse' {vehicles} -> vehicles) (\s@ListVehiclesInFleetResponse' {} a -> s {vehicles = a} :: ListVehiclesInFleetResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listVehiclesInFleetResponse_httpStatus :: Lens.Lens' ListVehiclesInFleetResponse Prelude.Int+listVehiclesInFleetResponse_httpStatus = Lens.lens (\ListVehiclesInFleetResponse' {httpStatus} -> httpStatus) (\s@ListVehiclesInFleetResponse' {} a -> s {httpStatus = a} :: ListVehiclesInFleetResponse)++instance Prelude.NFData ListVehiclesInFleetResponse where+  rnf ListVehiclesInFleetResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf vehicles+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/IoTFleetWise/PutLoggingOptions.hs view
@@ -0,0 +1,164 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.PutLoggingOptions+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates or updates the logging option.+module Amazonka.IoTFleetWise.PutLoggingOptions+  ( -- * Creating a Request+    PutLoggingOptions (..),+    newPutLoggingOptions,++    -- * Request Lenses+    putLoggingOptions_cloudWatchLogDelivery,++    -- * Destructuring the Response+    PutLoggingOptionsResponse (..),+    newPutLoggingOptionsResponse,++    -- * Response Lenses+    putLoggingOptionsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTFleetWise.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newPutLoggingOptions' smart constructor.+data PutLoggingOptions = PutLoggingOptions'+  { -- | Creates or updates the log delivery option to Amazon CloudWatch Logs.+    cloudWatchLogDelivery :: CloudWatchLogDeliveryOptions+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutLoggingOptions' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'cloudWatchLogDelivery', 'putLoggingOptions_cloudWatchLogDelivery' - Creates or updates the log delivery option to Amazon CloudWatch Logs.+newPutLoggingOptions ::+  -- | 'cloudWatchLogDelivery'+  CloudWatchLogDeliveryOptions ->+  PutLoggingOptions+newPutLoggingOptions pCloudWatchLogDelivery_ =+  PutLoggingOptions'+    { cloudWatchLogDelivery =+        pCloudWatchLogDelivery_+    }++-- | Creates or updates the log delivery option to Amazon CloudWatch Logs.+putLoggingOptions_cloudWatchLogDelivery :: Lens.Lens' PutLoggingOptions CloudWatchLogDeliveryOptions+putLoggingOptions_cloudWatchLogDelivery = Lens.lens (\PutLoggingOptions' {cloudWatchLogDelivery} -> cloudWatchLogDelivery) (\s@PutLoggingOptions' {} a -> s {cloudWatchLogDelivery = a} :: PutLoggingOptions)++instance Core.AWSRequest PutLoggingOptions where+  type+    AWSResponse PutLoggingOptions =+      PutLoggingOptionsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          PutLoggingOptionsResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable PutLoggingOptions where+  hashWithSalt _salt PutLoggingOptions' {..} =+    _salt `Prelude.hashWithSalt` cloudWatchLogDelivery++instance Prelude.NFData PutLoggingOptions where+  rnf PutLoggingOptions' {..} =+    Prelude.rnf cloudWatchLogDelivery++instance Data.ToHeaders PutLoggingOptions where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "IoTAutobahnControlPlane.PutLoggingOptions" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON PutLoggingOptions where+  toJSON PutLoggingOptions' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ( "cloudWatchLogDelivery"+                  Data..= cloudWatchLogDelivery+              )+          ]+      )++instance Data.ToPath PutLoggingOptions where+  toPath = Prelude.const "/"++instance Data.ToQuery PutLoggingOptions where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newPutLoggingOptionsResponse' smart constructor.+data PutLoggingOptionsResponse = PutLoggingOptionsResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutLoggingOptionsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'putLoggingOptionsResponse_httpStatus' - The response's http status code.+newPutLoggingOptionsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  PutLoggingOptionsResponse+newPutLoggingOptionsResponse pHttpStatus_ =+  PutLoggingOptionsResponse'+    { httpStatus =+        pHttpStatus_+    }++-- | The response's http status code.+putLoggingOptionsResponse_httpStatus :: Lens.Lens' PutLoggingOptionsResponse Prelude.Int+putLoggingOptionsResponse_httpStatus = Lens.lens (\PutLoggingOptionsResponse' {httpStatus} -> httpStatus) (\s@PutLoggingOptionsResponse' {} a -> s {httpStatus = a} :: PutLoggingOptionsResponse)++instance Prelude.NFData PutLoggingOptionsResponse where+  rnf PutLoggingOptionsResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/IoTFleetWise/RegisterAccount.hs view
@@ -0,0 +1,279 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.RegisterAccount+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Registers your Amazon Web Services account, IAM, and Amazon Timestream+-- resources so Amazon Web Services IoT FleetWise can transfer your vehicle+-- data to the Amazon Web Services Cloud. For more information, including+-- step-by-step procedures, see+-- <https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/setting-up.html Setting up Amazon Web Services IoT FleetWise>.+--+-- An Amazon Web Services account is __not__ the same thing as a \"user+-- account\". An+-- <https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_identity-management.html#intro-identity-users Amazon Web Services user>+-- is an identity that you create using Identity and Access Management+-- (IAM) and takes the form of either an+-- <https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html IAM user>+-- or an+-- <https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html IAM role, both with credentials>.+-- A single Amazon Web Services account can, and typically does, contain+-- many users and roles.+module Amazonka.IoTFleetWise.RegisterAccount+  ( -- * Creating a Request+    RegisterAccount (..),+    newRegisterAccount,++    -- * Request Lenses+    registerAccount_iamResources,+    registerAccount_timestreamResources,++    -- * Destructuring the Response+    RegisterAccountResponse (..),+    newRegisterAccountResponse,++    -- * Response Lenses+    registerAccountResponse_httpStatus,+    registerAccountResponse_registerAccountStatus,+    registerAccountResponse_timestreamResources,+    registerAccountResponse_iamResources,+    registerAccountResponse_creationTime,+    registerAccountResponse_lastModificationTime,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTFleetWise.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newRegisterAccount' smart constructor.+data RegisterAccount = RegisterAccount'+  { -- | The IAM resource that allows Amazon Web Services IoT FleetWise to send+    -- data to Amazon Timestream.+    iamResources :: Prelude.Maybe IamResources,+    timestreamResources :: TimestreamResources+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RegisterAccount' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'iamResources', 'registerAccount_iamResources' - The IAM resource that allows Amazon Web Services IoT FleetWise to send+-- data to Amazon Timestream.+--+-- 'timestreamResources', 'registerAccount_timestreamResources' - Undocumented member.+newRegisterAccount ::+  -- | 'timestreamResources'+  TimestreamResources ->+  RegisterAccount+newRegisterAccount pTimestreamResources_ =+  RegisterAccount'+    { iamResources = Prelude.Nothing,+      timestreamResources = pTimestreamResources_+    }++-- | The IAM resource that allows Amazon Web Services IoT FleetWise to send+-- data to Amazon Timestream.+registerAccount_iamResources :: Lens.Lens' RegisterAccount (Prelude.Maybe IamResources)+registerAccount_iamResources = Lens.lens (\RegisterAccount' {iamResources} -> iamResources) (\s@RegisterAccount' {} a -> s {iamResources = a} :: RegisterAccount)++-- | Undocumented member.+registerAccount_timestreamResources :: Lens.Lens' RegisterAccount TimestreamResources+registerAccount_timestreamResources = Lens.lens (\RegisterAccount' {timestreamResources} -> timestreamResources) (\s@RegisterAccount' {} a -> s {timestreamResources = a} :: RegisterAccount)++instance Core.AWSRequest RegisterAccount where+  type+    AWSResponse RegisterAccount =+      RegisterAccountResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          RegisterAccountResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "registerAccountStatus")+            Prelude.<*> (x Data..:> "timestreamResources")+            Prelude.<*> (x Data..:> "iamResources")+            Prelude.<*> (x Data..:> "creationTime")+            Prelude.<*> (x Data..:> "lastModificationTime")+      )++instance Prelude.Hashable RegisterAccount where+  hashWithSalt _salt RegisterAccount' {..} =+    _salt+      `Prelude.hashWithSalt` iamResources+      `Prelude.hashWithSalt` timestreamResources++instance Prelude.NFData RegisterAccount where+  rnf RegisterAccount' {..} =+    Prelude.rnf iamResources+      `Prelude.seq` Prelude.rnf timestreamResources++instance Data.ToHeaders RegisterAccount where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "IoTAutobahnControlPlane.RegisterAccount" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON RegisterAccount where+  toJSON RegisterAccount' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("iamResources" Data..=) Prelude.<$> iamResources,+            Prelude.Just+              ("timestreamResources" Data..= timestreamResources)+          ]+      )++instance Data.ToPath RegisterAccount where+  toPath = Prelude.const "/"++instance Data.ToQuery RegisterAccount where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newRegisterAccountResponse' smart constructor.+data RegisterAccountResponse = RegisterAccountResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The status of registering your Amazon Web Services account, IAM role,+    -- and Timestream resources.+    registerAccountStatus :: RegistrationStatus,+    timestreamResources :: TimestreamResources,+    -- | The registered IAM resource that allows Amazon Web Services IoT+    -- FleetWise to send data to Amazon Timestream.+    iamResources :: IamResources,+    -- | The time the account was registered, in seconds since epoch (January 1,+    -- 1970 at midnight UTC time).+    creationTime :: Data.POSIX,+    -- | The time this registration was last updated, in seconds since epoch+    -- (January 1, 1970 at midnight UTC time).+    lastModificationTime :: Data.POSIX+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RegisterAccountResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'registerAccountResponse_httpStatus' - The response's http status code.+--+-- 'registerAccountStatus', 'registerAccountResponse_registerAccountStatus' - The status of registering your Amazon Web Services account, IAM role,+-- and Timestream resources.+--+-- 'timestreamResources', 'registerAccountResponse_timestreamResources' - Undocumented member.+--+-- 'iamResources', 'registerAccountResponse_iamResources' - The registered IAM resource that allows Amazon Web Services IoT+-- FleetWise to send data to Amazon Timestream.+--+-- 'creationTime', 'registerAccountResponse_creationTime' - The time the account was registered, in seconds since epoch (January 1,+-- 1970 at midnight UTC time).+--+-- 'lastModificationTime', 'registerAccountResponse_lastModificationTime' - The time this registration was last updated, in seconds since epoch+-- (January 1, 1970 at midnight UTC time).+newRegisterAccountResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'registerAccountStatus'+  RegistrationStatus ->+  -- | 'timestreamResources'+  TimestreamResources ->+  -- | 'iamResources'+  IamResources ->+  -- | 'creationTime'+  Prelude.UTCTime ->+  -- | 'lastModificationTime'+  Prelude.UTCTime ->+  RegisterAccountResponse+newRegisterAccountResponse+  pHttpStatus_+  pRegisterAccountStatus_+  pTimestreamResources_+  pIamResources_+  pCreationTime_+  pLastModificationTime_ =+    RegisterAccountResponse'+      { httpStatus = pHttpStatus_,+        registerAccountStatus = pRegisterAccountStatus_,+        timestreamResources = pTimestreamResources_,+        iamResources = pIamResources_,+        creationTime = Data._Time Lens.# pCreationTime_,+        lastModificationTime =+          Data._Time Lens.# pLastModificationTime_+      }++-- | The response's http status code.+registerAccountResponse_httpStatus :: Lens.Lens' RegisterAccountResponse Prelude.Int+registerAccountResponse_httpStatus = Lens.lens (\RegisterAccountResponse' {httpStatus} -> httpStatus) (\s@RegisterAccountResponse' {} a -> s {httpStatus = a} :: RegisterAccountResponse)++-- | The status of registering your Amazon Web Services account, IAM role,+-- and Timestream resources.+registerAccountResponse_registerAccountStatus :: Lens.Lens' RegisterAccountResponse RegistrationStatus+registerAccountResponse_registerAccountStatus = Lens.lens (\RegisterAccountResponse' {registerAccountStatus} -> registerAccountStatus) (\s@RegisterAccountResponse' {} a -> s {registerAccountStatus = a} :: RegisterAccountResponse)++-- | Undocumented member.+registerAccountResponse_timestreamResources :: Lens.Lens' RegisterAccountResponse TimestreamResources+registerAccountResponse_timestreamResources = Lens.lens (\RegisterAccountResponse' {timestreamResources} -> timestreamResources) (\s@RegisterAccountResponse' {} a -> s {timestreamResources = a} :: RegisterAccountResponse)++-- | The registered IAM resource that allows Amazon Web Services IoT+-- FleetWise to send data to Amazon Timestream.+registerAccountResponse_iamResources :: Lens.Lens' RegisterAccountResponse IamResources+registerAccountResponse_iamResources = Lens.lens (\RegisterAccountResponse' {iamResources} -> iamResources) (\s@RegisterAccountResponse' {} a -> s {iamResources = a} :: RegisterAccountResponse)++-- | The time the account was registered, in seconds since epoch (January 1,+-- 1970 at midnight UTC time).+registerAccountResponse_creationTime :: Lens.Lens' RegisterAccountResponse Prelude.UTCTime+registerAccountResponse_creationTime = Lens.lens (\RegisterAccountResponse' {creationTime} -> creationTime) (\s@RegisterAccountResponse' {} a -> s {creationTime = a} :: RegisterAccountResponse) Prelude.. Data._Time++-- | The time this registration was last updated, in seconds since epoch+-- (January 1, 1970 at midnight UTC time).+registerAccountResponse_lastModificationTime :: Lens.Lens' RegisterAccountResponse Prelude.UTCTime+registerAccountResponse_lastModificationTime = Lens.lens (\RegisterAccountResponse' {lastModificationTime} -> lastModificationTime) (\s@RegisterAccountResponse' {} a -> s {lastModificationTime = a} :: RegisterAccountResponse) Prelude.. Data._Time++instance Prelude.NFData RegisterAccountResponse where+  rnf RegisterAccountResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf registerAccountStatus+      `Prelude.seq` Prelude.rnf timestreamResources+      `Prelude.seq` Prelude.rnf iamResources+      `Prelude.seq` Prelude.rnf creationTime+      `Prelude.seq` Prelude.rnf lastModificationTime
+ gen/Amazonka/IoTFleetWise/TagResource.hs view
@@ -0,0 +1,169 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.TagResource+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Adds to or modifies the tags of the given resource. Tags are metadata+-- which can be used to manage a resource.+module Amazonka.IoTFleetWise.TagResource+  ( -- * Creating a Request+    TagResource (..),+    newTagResource,++    -- * Request Lenses+    tagResource_resourceARN,+    tagResource_tags,++    -- * Destructuring the Response+    TagResourceResponse (..),+    newTagResourceResponse,++    -- * Response Lenses+    tagResourceResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTFleetWise.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newTagResource' smart constructor.+data TagResource = TagResource'+  { -- | The ARN of the resource.+    resourceARN :: Prelude.Text,+    -- | The new or modified tags for the resource.+    tags :: [Tag]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TagResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceARN', 'tagResource_resourceARN' - The ARN of the resource.+--+-- 'tags', 'tagResource_tags' - The new or modified tags for the resource.+newTagResource ::+  -- | 'resourceARN'+  Prelude.Text ->+  TagResource+newTagResource pResourceARN_ =+  TagResource'+    { resourceARN = pResourceARN_,+      tags = Prelude.mempty+    }++-- | The ARN of the resource.+tagResource_resourceARN :: Lens.Lens' TagResource Prelude.Text+tagResource_resourceARN = Lens.lens (\TagResource' {resourceARN} -> resourceARN) (\s@TagResource' {} a -> s {resourceARN = a} :: TagResource)++-- | The new or modified tags for the resource.+tagResource_tags :: Lens.Lens' TagResource [Tag]+tagResource_tags = Lens.lens (\TagResource' {tags} -> tags) (\s@TagResource' {} a -> s {tags = a} :: TagResource) Prelude.. Lens.coerced++instance Core.AWSRequest TagResource where+  type AWSResponse TagResource = TagResourceResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          TagResourceResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable TagResource where+  hashWithSalt _salt TagResource' {..} =+    _salt+      `Prelude.hashWithSalt` resourceARN+      `Prelude.hashWithSalt` tags++instance Prelude.NFData TagResource where+  rnf TagResource' {..} =+    Prelude.rnf resourceARN+      `Prelude.seq` Prelude.rnf tags++instance Data.ToHeaders TagResource where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "IoTAutobahnControlPlane.TagResource" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON TagResource where+  toJSON TagResource' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("ResourceARN" Data..= resourceARN),+            Prelude.Just ("Tags" Data..= tags)+          ]+      )++instance Data.ToPath TagResource where+  toPath = Prelude.const "/"++instance Data.ToQuery TagResource where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newTagResourceResponse' smart constructor.+data TagResourceResponse = TagResourceResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TagResourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'tagResourceResponse_httpStatus' - The response's http status code.+newTagResourceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  TagResourceResponse+newTagResourceResponse pHttpStatus_ =+  TagResourceResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+tagResourceResponse_httpStatus :: Lens.Lens' TagResourceResponse Prelude.Int+tagResourceResponse_httpStatus = Lens.lens (\TagResourceResponse' {httpStatus} -> httpStatus) (\s@TagResourceResponse' {} a -> s {httpStatus = a} :: TagResourceResponse)++instance Prelude.NFData TagResourceResponse where+  rnf TagResourceResponse' {..} = Prelude.rnf httpStatus
+ gen/Amazonka/IoTFleetWise/Types.hs view
@@ -0,0 +1,600 @@+{-# LANGUAGE DisambiguateRecordFields #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.Types+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTFleetWise.Types+  ( -- * Service Configuration+    defaultService,++    -- * Errors+    _AccessDeniedException,+    _ConflictException,+    _DecoderManifestValidationException,+    _InternalServerException,+    _InvalidNodeException,+    _InvalidSignalsException,+    _LimitExceededException,+    _ResourceNotFoundException,+    _ThrottlingException,+    _ValidationException,++    -- * CampaignStatus+    CampaignStatus (..),++    -- * Compression+    Compression (..),++    -- * DiagnosticsMode+    DiagnosticsMode (..),++    -- * LogType+    LogType (..),++    -- * ManifestStatus+    ManifestStatus (..),++    -- * NetworkInterfaceType+    NetworkInterfaceType (..),++    -- * NodeDataType+    NodeDataType (..),++    -- * RegistrationStatus+    RegistrationStatus (..),++    -- * SignalDecoderType+    SignalDecoderType (..),++    -- * SpoolingMode+    SpoolingMode (..),++    -- * TriggerMode+    TriggerMode (..),++    -- * UpdateCampaignAction+    UpdateCampaignAction (..),++    -- * UpdateMode+    UpdateMode (..),++    -- * VehicleAssociationBehavior+    VehicleAssociationBehavior (..),++    -- * VehicleState+    VehicleState (..),++    -- * Actuator+    Actuator (..),+    newActuator,+    actuator_allowedValues,+    actuator_assignedValue,+    actuator_description,+    actuator_max,+    actuator_min,+    actuator_unit,+    actuator_fullyQualifiedName,+    actuator_dataType,++    -- * Attribute+    Attribute (..),+    newAttribute,+    attribute_allowedValues,+    attribute_assignedValue,+    attribute_defaultValue,+    attribute_description,+    attribute_max,+    attribute_min,+    attribute_unit,+    attribute_fullyQualifiedName,+    attribute_dataType,++    -- * Branch+    Branch (..),+    newBranch,+    branch_description,+    branch_fullyQualifiedName,++    -- * CampaignSummary+    CampaignSummary (..),+    newCampaignSummary,+    campaignSummary_arn,+    campaignSummary_description,+    campaignSummary_name,+    campaignSummary_signalCatalogArn,+    campaignSummary_status,+    campaignSummary_targetArn,+    campaignSummary_creationTime,+    campaignSummary_lastModificationTime,++    -- * CanDbcDefinition+    CanDbcDefinition (..),+    newCanDbcDefinition,+    canDbcDefinition_signalsMap,+    canDbcDefinition_networkInterface,+    canDbcDefinition_canDbcFiles,++    -- * CanInterface+    CanInterface (..),+    newCanInterface,+    canInterface_protocolName,+    canInterface_protocolVersion,+    canInterface_name,++    -- * CanSignal+    CanSignal (..),+    newCanSignal,+    canSignal_name,+    canSignal_messageId,+    canSignal_isBigEndian,+    canSignal_isSigned,+    canSignal_startBit,+    canSignal_offset,+    canSignal_factor,+    canSignal_length,++    -- * CloudWatchLogDeliveryOptions+    CloudWatchLogDeliveryOptions (..),+    newCloudWatchLogDeliveryOptions,+    cloudWatchLogDeliveryOptions_logGroupName,+    cloudWatchLogDeliveryOptions_logType,++    -- * CollectionScheme+    CollectionScheme (..),+    newCollectionScheme,+    collectionScheme_conditionBasedCollectionScheme,+    collectionScheme_timeBasedCollectionScheme,++    -- * ConditionBasedCollectionScheme+    ConditionBasedCollectionScheme (..),+    newConditionBasedCollectionScheme,+    conditionBasedCollectionScheme_conditionLanguageVersion,+    conditionBasedCollectionScheme_minimumTriggerIntervalMs,+    conditionBasedCollectionScheme_triggerMode,+    conditionBasedCollectionScheme_expression,++    -- * CreateVehicleError+    CreateVehicleError (..),+    newCreateVehicleError,+    createVehicleError_code,+    createVehicleError_message,+    createVehicleError_vehicleName,++    -- * CreateVehicleRequestItem+    CreateVehicleRequestItem (..),+    newCreateVehicleRequestItem,+    createVehicleRequestItem_associationBehavior,+    createVehicleRequestItem_attributes,+    createVehicleRequestItem_tags,+    createVehicleRequestItem_vehicleName,+    createVehicleRequestItem_modelManifestArn,+    createVehicleRequestItem_decoderManifestArn,++    -- * CreateVehicleResponseItem+    CreateVehicleResponseItem (..),+    newCreateVehicleResponseItem,+    createVehicleResponseItem_arn,+    createVehicleResponseItem_thingArn,+    createVehicleResponseItem_vehicleName,++    -- * DecoderManifestSummary+    DecoderManifestSummary (..),+    newDecoderManifestSummary,+    decoderManifestSummary_arn,+    decoderManifestSummary_description,+    decoderManifestSummary_modelManifestArn,+    decoderManifestSummary_name,+    decoderManifestSummary_status,+    decoderManifestSummary_creationTime,+    decoderManifestSummary_lastModificationTime,++    -- * FleetSummary+    FleetSummary (..),+    newFleetSummary,+    fleetSummary_description,+    fleetSummary_lastModificationTime,+    fleetSummary_id,+    fleetSummary_arn,+    fleetSummary_signalCatalogArn,+    fleetSummary_creationTime,++    -- * FormattedVss+    FormattedVss (..),+    newFormattedVss,+    formattedVss_vssJson,++    -- * IamRegistrationResponse+    IamRegistrationResponse (..),+    newIamRegistrationResponse,+    iamRegistrationResponse_errorMessage,+    iamRegistrationResponse_roleArn,+    iamRegistrationResponse_registrationStatus,++    -- * IamResources+    IamResources (..),+    newIamResources,+    iamResources_roleArn,++    -- * ModelManifestSummary+    ModelManifestSummary (..),+    newModelManifestSummary,+    modelManifestSummary_arn,+    modelManifestSummary_description,+    modelManifestSummary_name,+    modelManifestSummary_signalCatalogArn,+    modelManifestSummary_status,+    modelManifestSummary_creationTime,+    modelManifestSummary_lastModificationTime,++    -- * NetworkFileDefinition+    NetworkFileDefinition (..),+    newNetworkFileDefinition,+    networkFileDefinition_canDbc,++    -- * NetworkInterface+    NetworkInterface (..),+    newNetworkInterface,+    networkInterface_canInterface,+    networkInterface_obdInterface,+    networkInterface_interfaceId,+    networkInterface_type,++    -- * Node+    Node (..),+    newNode,+    node_actuator,+    node_attribute,+    node_branch,+    node_sensor,++    -- * NodeCounts+    NodeCounts (..),+    newNodeCounts,+    nodeCounts_totalActuators,+    nodeCounts_totalAttributes,+    nodeCounts_totalBranches,+    nodeCounts_totalNodes,+    nodeCounts_totalSensors,++    -- * ObdInterface+    ObdInterface (..),+    newObdInterface,+    obdInterface_dtcRequestIntervalSeconds,+    obdInterface_hasTransmissionEcu,+    obdInterface_obdStandard,+    obdInterface_pidRequestIntervalSeconds,+    obdInterface_useExtendedIds,+    obdInterface_name,+    obdInterface_requestMessageId,++    -- * ObdSignal+    ObdSignal (..),+    newObdSignal,+    obdSignal_bitMaskLength,+    obdSignal_bitRightShift,+    obdSignal_pidResponseLength,+    obdSignal_serviceMode,+    obdSignal_pid,+    obdSignal_scaling,+    obdSignal_offset,+    obdSignal_startByte,+    obdSignal_byteLength,++    -- * Sensor+    Sensor (..),+    newSensor,+    sensor_allowedValues,+    sensor_description,+    sensor_max,+    sensor_min,+    sensor_unit,+    sensor_fullyQualifiedName,+    sensor_dataType,++    -- * SignalCatalogSummary+    SignalCatalogSummary (..),+    newSignalCatalogSummary,+    signalCatalogSummary_arn,+    signalCatalogSummary_creationTime,+    signalCatalogSummary_lastModificationTime,+    signalCatalogSummary_name,++    -- * SignalDecoder+    SignalDecoder (..),+    newSignalDecoder,+    signalDecoder_canSignal,+    signalDecoder_obdSignal,+    signalDecoder_fullyQualifiedName,+    signalDecoder_type,+    signalDecoder_interfaceId,++    -- * SignalInformation+    SignalInformation (..),+    newSignalInformation,+    signalInformation_maxSampleCount,+    signalInformation_minimumSamplingIntervalMs,+    signalInformation_name,++    -- * Tag+    Tag (..),+    newTag,+    tag_key,+    tag_value,++    -- * TimeBasedCollectionScheme+    TimeBasedCollectionScheme (..),+    newTimeBasedCollectionScheme,+    timeBasedCollectionScheme_periodMs,++    -- * TimestreamRegistrationResponse+    TimestreamRegistrationResponse (..),+    newTimestreamRegistrationResponse,+    timestreamRegistrationResponse_errorMessage,+    timestreamRegistrationResponse_timestreamDatabaseArn,+    timestreamRegistrationResponse_timestreamTableArn,+    timestreamRegistrationResponse_timestreamDatabaseName,+    timestreamRegistrationResponse_timestreamTableName,+    timestreamRegistrationResponse_registrationStatus,++    -- * TimestreamResources+    TimestreamResources (..),+    newTimestreamResources,+    timestreamResources_timestreamDatabaseName,+    timestreamResources_timestreamTableName,++    -- * UpdateVehicleError+    UpdateVehicleError (..),+    newUpdateVehicleError,+    updateVehicleError_code,+    updateVehicleError_message,+    updateVehicleError_vehicleName,++    -- * UpdateVehicleRequestItem+    UpdateVehicleRequestItem (..),+    newUpdateVehicleRequestItem,+    updateVehicleRequestItem_attributeUpdateMode,+    updateVehicleRequestItem_attributes,+    updateVehicleRequestItem_decoderManifestArn,+    updateVehicleRequestItem_modelManifestArn,+    updateVehicleRequestItem_vehicleName,++    -- * UpdateVehicleResponseItem+    UpdateVehicleResponseItem (..),+    newUpdateVehicleResponseItem,+    updateVehicleResponseItem_arn,+    updateVehicleResponseItem_vehicleName,++    -- * VehicleStatus+    VehicleStatus (..),+    newVehicleStatus,+    vehicleStatus_campaignName,+    vehicleStatus_status,+    vehicleStatus_vehicleName,++    -- * VehicleSummary+    VehicleSummary (..),+    newVehicleSummary,+    vehicleSummary_vehicleName,+    vehicleSummary_arn,+    vehicleSummary_modelManifestArn,+    vehicleSummary_decoderManifestArn,+    vehicleSummary_creationTime,+    vehicleSummary_lastModificationTime,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.IoTFleetWise.Types.Actuator+import Amazonka.IoTFleetWise.Types.Attribute+import Amazonka.IoTFleetWise.Types.Branch+import Amazonka.IoTFleetWise.Types.CampaignStatus+import Amazonka.IoTFleetWise.Types.CampaignSummary+import Amazonka.IoTFleetWise.Types.CanDbcDefinition+import Amazonka.IoTFleetWise.Types.CanInterface+import Amazonka.IoTFleetWise.Types.CanSignal+import Amazonka.IoTFleetWise.Types.CloudWatchLogDeliveryOptions+import Amazonka.IoTFleetWise.Types.CollectionScheme+import Amazonka.IoTFleetWise.Types.Compression+import Amazonka.IoTFleetWise.Types.ConditionBasedCollectionScheme+import Amazonka.IoTFleetWise.Types.CreateVehicleError+import Amazonka.IoTFleetWise.Types.CreateVehicleRequestItem+import Amazonka.IoTFleetWise.Types.CreateVehicleResponseItem+import Amazonka.IoTFleetWise.Types.DecoderManifestSummary+import Amazonka.IoTFleetWise.Types.DiagnosticsMode+import Amazonka.IoTFleetWise.Types.FleetSummary+import Amazonka.IoTFleetWise.Types.FormattedVss+import Amazonka.IoTFleetWise.Types.IamRegistrationResponse+import Amazonka.IoTFleetWise.Types.IamResources+import Amazonka.IoTFleetWise.Types.LogType+import Amazonka.IoTFleetWise.Types.ManifestStatus+import Amazonka.IoTFleetWise.Types.ModelManifestSummary+import Amazonka.IoTFleetWise.Types.NetworkFileDefinition+import Amazonka.IoTFleetWise.Types.NetworkInterface+import Amazonka.IoTFleetWise.Types.NetworkInterfaceType+import Amazonka.IoTFleetWise.Types.Node+import Amazonka.IoTFleetWise.Types.NodeCounts+import Amazonka.IoTFleetWise.Types.NodeDataType+import Amazonka.IoTFleetWise.Types.ObdInterface+import Amazonka.IoTFleetWise.Types.ObdSignal+import Amazonka.IoTFleetWise.Types.RegistrationStatus+import Amazonka.IoTFleetWise.Types.Sensor+import Amazonka.IoTFleetWise.Types.SignalCatalogSummary+import Amazonka.IoTFleetWise.Types.SignalDecoder+import Amazonka.IoTFleetWise.Types.SignalDecoderType+import Amazonka.IoTFleetWise.Types.SignalInformation+import Amazonka.IoTFleetWise.Types.SpoolingMode+import Amazonka.IoTFleetWise.Types.Tag+import Amazonka.IoTFleetWise.Types.TimeBasedCollectionScheme+import Amazonka.IoTFleetWise.Types.TimestreamRegistrationResponse+import Amazonka.IoTFleetWise.Types.TimestreamResources+import Amazonka.IoTFleetWise.Types.TriggerMode+import Amazonka.IoTFleetWise.Types.UpdateCampaignAction+import Amazonka.IoTFleetWise.Types.UpdateMode+import Amazonka.IoTFleetWise.Types.UpdateVehicleError+import Amazonka.IoTFleetWise.Types.UpdateVehicleRequestItem+import Amazonka.IoTFleetWise.Types.UpdateVehicleResponseItem+import Amazonka.IoTFleetWise.Types.VehicleAssociationBehavior+import Amazonka.IoTFleetWise.Types.VehicleState+import Amazonka.IoTFleetWise.Types.VehicleStatus+import Amazonka.IoTFleetWise.Types.VehicleSummary+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Sign.V4 as Sign++-- | API version @2021-06-17@ of the Amazon IoT FleetWise SDK configuration.+defaultService :: Core.Service+defaultService =+  Core.Service+    { Core.abbrev = "IoTFleetWise",+      Core.signer = Sign.v4,+      Core.endpointPrefix = "iotfleetwise",+      Core.signingName = "iotfleetwise",+      Core.version = "2021-06-17",+      Core.s3AddressingStyle = Core.S3AddressingStyleAuto,+      Core.endpoint = Core.defaultEndpoint defaultService,+      Core.timeout = Prelude.Just 70,+      Core.check = Core.statusSuccess,+      Core.error = Core.parseJSONError "IoTFleetWise",+      Core.retry = retry+    }+  where+    retry =+      Core.Exponential+        { Core.base = 5.0e-2,+          Core.growth = 2,+          Core.attempts = 5,+          Core.check = check+        }+    check e+      | Lens.has (Core.hasStatus 502) e =+          Prelude.Just "bad_gateway"+      | Lens.has (Core.hasStatus 504) e =+          Prelude.Just "gateway_timeout"+      | Lens.has (Core.hasStatus 500) e =+          Prelude.Just "general_server_error"+      | Lens.has (Core.hasStatus 509) e =+          Prelude.Just "limit_exceeded"+      | Lens.has+          ( Core.hasCode "RequestThrottledException"+              Prelude.. Core.hasStatus 400+          )+          e =+          Prelude.Just "request_throttled_exception"+      | Lens.has (Core.hasStatus 503) e =+          Prelude.Just "service_unavailable"+      | Lens.has+          ( Core.hasCode "ThrottledException"+              Prelude.. Core.hasStatus 400+          )+          e =+          Prelude.Just "throttled_exception"+      | Lens.has+          ( Core.hasCode "Throttling"+              Prelude.. Core.hasStatus 400+          )+          e =+          Prelude.Just "throttling"+      | Lens.has+          ( Core.hasCode "ThrottlingException"+              Prelude.. Core.hasStatus 400+          )+          e =+          Prelude.Just "throttling_exception"+      | Lens.has+          ( Core.hasCode+              "ProvisionedThroughputExceededException"+              Prelude.. Core.hasStatus 400+          )+          e =+          Prelude.Just "throughput_exceeded"+      | Lens.has (Core.hasStatus 429) e =+          Prelude.Just "too_many_requests"+      | Prelude.otherwise = Prelude.Nothing++-- | You don\'t have sufficient permission to perform this action.+_AccessDeniedException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_AccessDeniedException =+  Core._MatchServiceError+    defaultService+    "AccessDeniedException"++-- | The request has conflicting operations. This can occur if you\'re trying+-- to perform more than one operation on the same resource at the same+-- time.+_ConflictException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ConflictException =+  Core._MatchServiceError+    defaultService+    "ConflictException"++-- | The request couldn\'t be completed because it contains signal decoders+-- with one or more validation errors.+_DecoderManifestValidationException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_DecoderManifestValidationException =+  Core._MatchServiceError+    defaultService+    "DecoderManifestValidationException"++-- | The request couldn\'t be completed because the server temporarily+-- failed.+_InternalServerException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InternalServerException =+  Core._MatchServiceError+    defaultService+    "InternalServerException"++-- | The specified node type doesn\'t match the expected node type for a+-- node. You can specify the node type as branch, sensor, actuator, or+-- attribute.+_InvalidNodeException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InvalidNodeException =+  Core._MatchServiceError+    defaultService+    "InvalidNodeException"++-- | The request couldn\'t be completed because it contains signals that+-- aren\'t valid.+_InvalidSignalsException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InvalidSignalsException =+  Core._MatchServiceError+    defaultService+    "InvalidSignalsException"++-- | A service quota was exceeded.+_LimitExceededException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_LimitExceededException =+  Core._MatchServiceError+    defaultService+    "LimitExceededException"++-- | The resource wasn\'t found.+_ResourceNotFoundException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ResourceNotFoundException =+  Core._MatchServiceError+    defaultService+    "ResourceNotFoundException"++-- | The request couldn\'t be completed due to throttling.+_ThrottlingException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ThrottlingException =+  Core._MatchServiceError+    defaultService+    "ThrottlingException"++-- | The input fails to satisfy the constraints specified by an Amazon Web+-- Services service.+_ValidationException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ValidationException =+  Core._MatchServiceError+    defaultService+    "ValidationException"
+ gen/Amazonka/IoTFleetWise/Types/Actuator.hs view
@@ -0,0 +1,185 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.Types.Actuator+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTFleetWise.Types.Actuator where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTFleetWise.Types.NodeDataType+import qualified Amazonka.Prelude as Prelude++-- | A signal that represents a vehicle device such as the engine, heater,+-- and door locks. Data from an actuator reports the state of a certain+-- vehicle device.+--+-- Updating actuator data can change the state of a device. For example,+-- you can turn on or off the heater by updating its actuator data.+--+-- /See:/ 'newActuator' smart constructor.+data Actuator = Actuator'+  { -- | A list of possible values an actuator can take.+    allowedValues :: Prelude.Maybe [Prelude.Text],+    -- | A specified value for the actuator.+    assignedValue :: Prelude.Maybe Prelude.Text,+    -- | A brief description of the actuator.+    description :: Prelude.Maybe Prelude.Text,+    -- | The specified possible maximum value of an actuator.+    max :: Prelude.Maybe Prelude.Double,+    -- | The specified possible minimum value of an actuator.+    min :: Prelude.Maybe Prelude.Double,+    -- | The scientific unit for the actuator.+    unit :: Prelude.Maybe Prelude.Text,+    -- | The fully qualified name of the actuator. For example, the fully+    -- qualified name of an actuator might be @Vehicle.Front.Left.Door.Lock@.+    fullyQualifiedName :: Prelude.Text,+    -- | The specified data type of the actuator.+    dataType :: NodeDataType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Actuator' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'allowedValues', 'actuator_allowedValues' - A list of possible values an actuator can take.+--+-- 'assignedValue', 'actuator_assignedValue' - A specified value for the actuator.+--+-- 'description', 'actuator_description' - A brief description of the actuator.+--+-- 'max', 'actuator_max' - The specified possible maximum value of an actuator.+--+-- 'min', 'actuator_min' - The specified possible minimum value of an actuator.+--+-- 'unit', 'actuator_unit' - The scientific unit for the actuator.+--+-- 'fullyQualifiedName', 'actuator_fullyQualifiedName' - The fully qualified name of the actuator. For example, the fully+-- qualified name of an actuator might be @Vehicle.Front.Left.Door.Lock@.+--+-- 'dataType', 'actuator_dataType' - The specified data type of the actuator.+newActuator ::+  -- | 'fullyQualifiedName'+  Prelude.Text ->+  -- | 'dataType'+  NodeDataType ->+  Actuator+newActuator pFullyQualifiedName_ pDataType_ =+  Actuator'+    { allowedValues = Prelude.Nothing,+      assignedValue = Prelude.Nothing,+      description = Prelude.Nothing,+      max = Prelude.Nothing,+      min = Prelude.Nothing,+      unit = Prelude.Nothing,+      fullyQualifiedName = pFullyQualifiedName_,+      dataType = pDataType_+    }++-- | A list of possible values an actuator can take.+actuator_allowedValues :: Lens.Lens' Actuator (Prelude.Maybe [Prelude.Text])+actuator_allowedValues = Lens.lens (\Actuator' {allowedValues} -> allowedValues) (\s@Actuator' {} a -> s {allowedValues = a} :: Actuator) Prelude.. Lens.mapping Lens.coerced++-- | A specified value for the actuator.+actuator_assignedValue :: Lens.Lens' Actuator (Prelude.Maybe Prelude.Text)+actuator_assignedValue = Lens.lens (\Actuator' {assignedValue} -> assignedValue) (\s@Actuator' {} a -> s {assignedValue = a} :: Actuator)++-- | A brief description of the actuator.+actuator_description :: Lens.Lens' Actuator (Prelude.Maybe Prelude.Text)+actuator_description = Lens.lens (\Actuator' {description} -> description) (\s@Actuator' {} a -> s {description = a} :: Actuator)++-- | The specified possible maximum value of an actuator.+actuator_max :: Lens.Lens' Actuator (Prelude.Maybe Prelude.Double)+actuator_max = Lens.lens (\Actuator' {max} -> max) (\s@Actuator' {} a -> s {max = a} :: Actuator)++-- | The specified possible minimum value of an actuator.+actuator_min :: Lens.Lens' Actuator (Prelude.Maybe Prelude.Double)+actuator_min = Lens.lens (\Actuator' {min} -> min) (\s@Actuator' {} a -> s {min = a} :: Actuator)++-- | The scientific unit for the actuator.+actuator_unit :: Lens.Lens' Actuator (Prelude.Maybe Prelude.Text)+actuator_unit = Lens.lens (\Actuator' {unit} -> unit) (\s@Actuator' {} a -> s {unit = a} :: Actuator)++-- | The fully qualified name of the actuator. For example, the fully+-- qualified name of an actuator might be @Vehicle.Front.Left.Door.Lock@.+actuator_fullyQualifiedName :: Lens.Lens' Actuator Prelude.Text+actuator_fullyQualifiedName = Lens.lens (\Actuator' {fullyQualifiedName} -> fullyQualifiedName) (\s@Actuator' {} a -> s {fullyQualifiedName = a} :: Actuator)++-- | The specified data type of the actuator.+actuator_dataType :: Lens.Lens' Actuator NodeDataType+actuator_dataType = Lens.lens (\Actuator' {dataType} -> dataType) (\s@Actuator' {} a -> s {dataType = a} :: Actuator)++instance Data.FromJSON Actuator where+  parseJSON =+    Data.withObject+      "Actuator"+      ( \x ->+          Actuator'+            Prelude.<$> (x Data..:? "allowedValues" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "assignedValue")+            Prelude.<*> (x Data..:? "description")+            Prelude.<*> (x Data..:? "max")+            Prelude.<*> (x Data..:? "min")+            Prelude.<*> (x Data..:? "unit")+            Prelude.<*> (x Data..: "fullyQualifiedName")+            Prelude.<*> (x Data..: "dataType")+      )++instance Prelude.Hashable Actuator where+  hashWithSalt _salt Actuator' {..} =+    _salt+      `Prelude.hashWithSalt` allowedValues+      `Prelude.hashWithSalt` assignedValue+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` max+      `Prelude.hashWithSalt` min+      `Prelude.hashWithSalt` unit+      `Prelude.hashWithSalt` fullyQualifiedName+      `Prelude.hashWithSalt` dataType++instance Prelude.NFData Actuator where+  rnf Actuator' {..} =+    Prelude.rnf allowedValues+      `Prelude.seq` Prelude.rnf assignedValue+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf max+      `Prelude.seq` Prelude.rnf min+      `Prelude.seq` Prelude.rnf unit+      `Prelude.seq` Prelude.rnf fullyQualifiedName+      `Prelude.seq` Prelude.rnf dataType++instance Data.ToJSON Actuator where+  toJSON Actuator' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("allowedValues" Data..=) Prelude.<$> allowedValues,+            ("assignedValue" Data..=) Prelude.<$> assignedValue,+            ("description" Data..=) Prelude.<$> description,+            ("max" Data..=) Prelude.<$> max,+            ("min" Data..=) Prelude.<$> min,+            ("unit" Data..=) Prelude.<$> unit,+            Prelude.Just+              ("fullyQualifiedName" Data..= fullyQualifiedName),+            Prelude.Just ("dataType" Data..= dataType)+          ]+      )
+ gen/Amazonka/IoTFleetWise/Types/Attribute.hs view
@@ -0,0 +1,194 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.Types.Attribute+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTFleetWise.Types.Attribute where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTFleetWise.Types.NodeDataType+import qualified Amazonka.Prelude as Prelude++-- | A signal that represents static information about the vehicle, such as+-- engine type or manufacturing date.+--+-- /See:/ 'newAttribute' smart constructor.+data Attribute = Attribute'+  { -- | A list of possible values an attribute can be assigned.+    allowedValues :: Prelude.Maybe [Prelude.Text],+    -- | A specified value for the attribute.+    assignedValue :: Prelude.Maybe Prelude.Text,+    -- | The default value of the attribute.+    defaultValue :: Prelude.Maybe Prelude.Text,+    -- | A brief description of the attribute.+    description :: Prelude.Maybe Prelude.Text,+    -- | The specified possible maximum value of the attribute.+    max :: Prelude.Maybe Prelude.Double,+    -- | The specified possible minimum value of the attribute.+    min :: Prelude.Maybe Prelude.Double,+    -- | The scientific unit for the attribute.+    unit :: Prelude.Maybe Prelude.Text,+    -- | The fully qualified name of the attribute. For example, the fully+    -- qualified name of an attribute might be @Vehicle.Body.Engine.Type@.+    fullyQualifiedName :: Prelude.Text,+    -- | The specified data type of the attribute.+    dataType :: NodeDataType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Attribute' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'allowedValues', 'attribute_allowedValues' - A list of possible values an attribute can be assigned.+--+-- 'assignedValue', 'attribute_assignedValue' - A specified value for the attribute.+--+-- 'defaultValue', 'attribute_defaultValue' - The default value of the attribute.+--+-- 'description', 'attribute_description' - A brief description of the attribute.+--+-- 'max', 'attribute_max' - The specified possible maximum value of the attribute.+--+-- 'min', 'attribute_min' - The specified possible minimum value of the attribute.+--+-- 'unit', 'attribute_unit' - The scientific unit for the attribute.+--+-- 'fullyQualifiedName', 'attribute_fullyQualifiedName' - The fully qualified name of the attribute. For example, the fully+-- qualified name of an attribute might be @Vehicle.Body.Engine.Type@.+--+-- 'dataType', 'attribute_dataType' - The specified data type of the attribute.+newAttribute ::+  -- | 'fullyQualifiedName'+  Prelude.Text ->+  -- | 'dataType'+  NodeDataType ->+  Attribute+newAttribute pFullyQualifiedName_ pDataType_ =+  Attribute'+    { allowedValues = Prelude.Nothing,+      assignedValue = Prelude.Nothing,+      defaultValue = Prelude.Nothing,+      description = Prelude.Nothing,+      max = Prelude.Nothing,+      min = Prelude.Nothing,+      unit = Prelude.Nothing,+      fullyQualifiedName = pFullyQualifiedName_,+      dataType = pDataType_+    }++-- | A list of possible values an attribute can be assigned.+attribute_allowedValues :: Lens.Lens' Attribute (Prelude.Maybe [Prelude.Text])+attribute_allowedValues = Lens.lens (\Attribute' {allowedValues} -> allowedValues) (\s@Attribute' {} a -> s {allowedValues = a} :: Attribute) Prelude.. Lens.mapping Lens.coerced++-- | A specified value for the attribute.+attribute_assignedValue :: Lens.Lens' Attribute (Prelude.Maybe Prelude.Text)+attribute_assignedValue = Lens.lens (\Attribute' {assignedValue} -> assignedValue) (\s@Attribute' {} a -> s {assignedValue = a} :: Attribute)++-- | The default value of the attribute.+attribute_defaultValue :: Lens.Lens' Attribute (Prelude.Maybe Prelude.Text)+attribute_defaultValue = Lens.lens (\Attribute' {defaultValue} -> defaultValue) (\s@Attribute' {} a -> s {defaultValue = a} :: Attribute)++-- | A brief description of the attribute.+attribute_description :: Lens.Lens' Attribute (Prelude.Maybe Prelude.Text)+attribute_description = Lens.lens (\Attribute' {description} -> description) (\s@Attribute' {} a -> s {description = a} :: Attribute)++-- | The specified possible maximum value of the attribute.+attribute_max :: Lens.Lens' Attribute (Prelude.Maybe Prelude.Double)+attribute_max = Lens.lens (\Attribute' {max} -> max) (\s@Attribute' {} a -> s {max = a} :: Attribute)++-- | The specified possible minimum value of the attribute.+attribute_min :: Lens.Lens' Attribute (Prelude.Maybe Prelude.Double)+attribute_min = Lens.lens (\Attribute' {min} -> min) (\s@Attribute' {} a -> s {min = a} :: Attribute)++-- | The scientific unit for the attribute.+attribute_unit :: Lens.Lens' Attribute (Prelude.Maybe Prelude.Text)+attribute_unit = Lens.lens (\Attribute' {unit} -> unit) (\s@Attribute' {} a -> s {unit = a} :: Attribute)++-- | The fully qualified name of the attribute. For example, the fully+-- qualified name of an attribute might be @Vehicle.Body.Engine.Type@.+attribute_fullyQualifiedName :: Lens.Lens' Attribute Prelude.Text+attribute_fullyQualifiedName = Lens.lens (\Attribute' {fullyQualifiedName} -> fullyQualifiedName) (\s@Attribute' {} a -> s {fullyQualifiedName = a} :: Attribute)++-- | The specified data type of the attribute.+attribute_dataType :: Lens.Lens' Attribute NodeDataType+attribute_dataType = Lens.lens (\Attribute' {dataType} -> dataType) (\s@Attribute' {} a -> s {dataType = a} :: Attribute)++instance Data.FromJSON Attribute where+  parseJSON =+    Data.withObject+      "Attribute"+      ( \x ->+          Attribute'+            Prelude.<$> (x Data..:? "allowedValues" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "assignedValue")+            Prelude.<*> (x Data..:? "defaultValue")+            Prelude.<*> (x Data..:? "description")+            Prelude.<*> (x Data..:? "max")+            Prelude.<*> (x Data..:? "min")+            Prelude.<*> (x Data..:? "unit")+            Prelude.<*> (x Data..: "fullyQualifiedName")+            Prelude.<*> (x Data..: "dataType")+      )++instance Prelude.Hashable Attribute where+  hashWithSalt _salt Attribute' {..} =+    _salt+      `Prelude.hashWithSalt` allowedValues+      `Prelude.hashWithSalt` assignedValue+      `Prelude.hashWithSalt` defaultValue+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` max+      `Prelude.hashWithSalt` min+      `Prelude.hashWithSalt` unit+      `Prelude.hashWithSalt` fullyQualifiedName+      `Prelude.hashWithSalt` dataType++instance Prelude.NFData Attribute where+  rnf Attribute' {..} =+    Prelude.rnf allowedValues+      `Prelude.seq` Prelude.rnf assignedValue+      `Prelude.seq` Prelude.rnf defaultValue+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf max+      `Prelude.seq` Prelude.rnf min+      `Prelude.seq` Prelude.rnf unit+      `Prelude.seq` Prelude.rnf fullyQualifiedName+      `Prelude.seq` Prelude.rnf dataType++instance Data.ToJSON Attribute where+  toJSON Attribute' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("allowedValues" Data..=) Prelude.<$> allowedValues,+            ("assignedValue" Data..=) Prelude.<$> assignedValue,+            ("defaultValue" Data..=) Prelude.<$> defaultValue,+            ("description" Data..=) Prelude.<$> description,+            ("max" Data..=) Prelude.<$> max,+            ("min" Data..=) Prelude.<$> min,+            ("unit" Data..=) Prelude.<$> unit,+            Prelude.Just+              ("fullyQualifiedName" Data..= fullyQualifiedName),+            Prelude.Just ("dataType" Data..= dataType)+          ]+      )
+ gen/Amazonka/IoTFleetWise/Types/Branch.hs view
@@ -0,0 +1,99 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.Types.Branch+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTFleetWise.Types.Branch where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | A group of signals that are defined in a hierarchical structure.+--+-- /See:/ 'newBranch' smart constructor.+data Branch = Branch'+  { -- | A brief description of the branch.+    description :: Prelude.Maybe Prelude.Text,+    -- | The fully qualified name of the branch. For example, the fully qualified+    -- name of a branch might be @Vehicle.Body.Engine@.+    fullyQualifiedName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Branch' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'description', 'branch_description' - A brief description of the branch.+--+-- 'fullyQualifiedName', 'branch_fullyQualifiedName' - The fully qualified name of the branch. For example, the fully qualified+-- name of a branch might be @Vehicle.Body.Engine@.+newBranch ::+  -- | 'fullyQualifiedName'+  Prelude.Text ->+  Branch+newBranch pFullyQualifiedName_ =+  Branch'+    { description = Prelude.Nothing,+      fullyQualifiedName = pFullyQualifiedName_+    }++-- | A brief description of the branch.+branch_description :: Lens.Lens' Branch (Prelude.Maybe Prelude.Text)+branch_description = Lens.lens (\Branch' {description} -> description) (\s@Branch' {} a -> s {description = a} :: Branch)++-- | The fully qualified name of the branch. For example, the fully qualified+-- name of a branch might be @Vehicle.Body.Engine@.+branch_fullyQualifiedName :: Lens.Lens' Branch Prelude.Text+branch_fullyQualifiedName = Lens.lens (\Branch' {fullyQualifiedName} -> fullyQualifiedName) (\s@Branch' {} a -> s {fullyQualifiedName = a} :: Branch)++instance Data.FromJSON Branch where+  parseJSON =+    Data.withObject+      "Branch"+      ( \x ->+          Branch'+            Prelude.<$> (x Data..:? "description")+            Prelude.<*> (x Data..: "fullyQualifiedName")+      )++instance Prelude.Hashable Branch where+  hashWithSalt _salt Branch' {..} =+    _salt+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` fullyQualifiedName++instance Prelude.NFData Branch where+  rnf Branch' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf fullyQualifiedName++instance Data.ToJSON Branch where+  toJSON Branch' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("description" Data..=) Prelude.<$> description,+            Prelude.Just+              ("fullyQualifiedName" Data..= fullyQualifiedName)+          ]+      )
+ gen/Amazonka/IoTFleetWise/Types/CampaignStatus.hs view
@@ -0,0 +1,81 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.Types.CampaignStatus+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTFleetWise.Types.CampaignStatus+  ( CampaignStatus+      ( ..,+        CampaignStatus_CREATING,+        CampaignStatus_RUNNING,+        CampaignStatus_SUSPENDED,+        CampaignStatus_WAITING_FOR_APPROVAL+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype CampaignStatus = CampaignStatus'+  { fromCampaignStatus ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern CampaignStatus_CREATING :: CampaignStatus+pattern CampaignStatus_CREATING = CampaignStatus' "CREATING"++pattern CampaignStatus_RUNNING :: CampaignStatus+pattern CampaignStatus_RUNNING = CampaignStatus' "RUNNING"++pattern CampaignStatus_SUSPENDED :: CampaignStatus+pattern CampaignStatus_SUSPENDED = CampaignStatus' "SUSPENDED"++pattern CampaignStatus_WAITING_FOR_APPROVAL :: CampaignStatus+pattern CampaignStatus_WAITING_FOR_APPROVAL = CampaignStatus' "WAITING_FOR_APPROVAL"++{-# COMPLETE+  CampaignStatus_CREATING,+  CampaignStatus_RUNNING,+  CampaignStatus_SUSPENDED,+  CampaignStatus_WAITING_FOR_APPROVAL,+  CampaignStatus'+  #-}
+ gen/Amazonka/IoTFleetWise/Types/CampaignSummary.hs view
@@ -0,0 +1,206 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.Types.CampaignSummary+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTFleetWise.Types.CampaignSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTFleetWise.Types.CampaignStatus+import qualified Amazonka.Prelude as Prelude++-- | Information about a campaign.+--+-- You can use the API operation to return this information about multiple+-- created campaigns.+--+-- /See:/ 'newCampaignSummary' smart constructor.+data CampaignSummary = CampaignSummary'+  { -- | The Amazon Resource Name (ARN) of a campaign.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The description of the campaign.+    description :: Prelude.Maybe Prelude.Text,+    -- | The name of a campaign.+    name :: Prelude.Maybe Prelude.Text,+    -- | The ARN of the signal catalog associated with the campaign.+    signalCatalogArn :: Prelude.Maybe Prelude.Text,+    -- | The state of a campaign. The status can be one of the following:+    --+    -- -   @CREATING@ - Amazon Web Services IoT FleetWise is processing your+    --     request to create the campaign.+    --+    -- -   @WAITING_FOR_APPROVAL@ - After a campaign is created, it enters the+    --     @WAITING_FOR_APPROVAL@ state. To allow Amazon Web Services IoT+    --     FleetWise to deploy the campaign to the target vehicle or fleet, use+    --     the API operation to approve the campaign.+    --+    -- -   @RUNNING@ - The campaign is active.+    --+    -- -   @SUSPENDED@ - The campaign is suspended. To resume the campaign, use+    --     the API operation.+    status :: Prelude.Maybe CampaignStatus,+    -- | The ARN of a vehicle or fleet to which the campaign is deployed.+    targetArn :: Prelude.Maybe Prelude.Text,+    -- | The time the campaign was created.+    creationTime :: Data.POSIX,+    -- | The last time the campaign was modified.+    lastModificationTime :: Data.POSIX+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CampaignSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'campaignSummary_arn' - The Amazon Resource Name (ARN) of a campaign.+--+-- 'description', 'campaignSummary_description' - The description of the campaign.+--+-- 'name', 'campaignSummary_name' - The name of a campaign.+--+-- 'signalCatalogArn', 'campaignSummary_signalCatalogArn' - The ARN of the signal catalog associated with the campaign.+--+-- 'status', 'campaignSummary_status' - The state of a campaign. The status can be one of the following:+--+-- -   @CREATING@ - Amazon Web Services IoT FleetWise is processing your+--     request to create the campaign.+--+-- -   @WAITING_FOR_APPROVAL@ - After a campaign is created, it enters the+--     @WAITING_FOR_APPROVAL@ state. To allow Amazon Web Services IoT+--     FleetWise to deploy the campaign to the target vehicle or fleet, use+--     the API operation to approve the campaign.+--+-- -   @RUNNING@ - The campaign is active.+--+-- -   @SUSPENDED@ - The campaign is suspended. To resume the campaign, use+--     the API operation.+--+-- 'targetArn', 'campaignSummary_targetArn' - The ARN of a vehicle or fleet to which the campaign is deployed.+--+-- 'creationTime', 'campaignSummary_creationTime' - The time the campaign was created.+--+-- 'lastModificationTime', 'campaignSummary_lastModificationTime' - The last time the campaign was modified.+newCampaignSummary ::+  -- | 'creationTime'+  Prelude.UTCTime ->+  -- | 'lastModificationTime'+  Prelude.UTCTime ->+  CampaignSummary+newCampaignSummary+  pCreationTime_+  pLastModificationTime_ =+    CampaignSummary'+      { arn = Prelude.Nothing,+        description = Prelude.Nothing,+        name = Prelude.Nothing,+        signalCatalogArn = Prelude.Nothing,+        status = Prelude.Nothing,+        targetArn = Prelude.Nothing,+        creationTime = Data._Time Lens.# pCreationTime_,+        lastModificationTime =+          Data._Time Lens.# pLastModificationTime_+      }++-- | The Amazon Resource Name (ARN) of a campaign.+campaignSummary_arn :: Lens.Lens' CampaignSummary (Prelude.Maybe Prelude.Text)+campaignSummary_arn = Lens.lens (\CampaignSummary' {arn} -> arn) (\s@CampaignSummary' {} a -> s {arn = a} :: CampaignSummary)++-- | The description of the campaign.+campaignSummary_description :: Lens.Lens' CampaignSummary (Prelude.Maybe Prelude.Text)+campaignSummary_description = Lens.lens (\CampaignSummary' {description} -> description) (\s@CampaignSummary' {} a -> s {description = a} :: CampaignSummary)++-- | The name of a campaign.+campaignSummary_name :: Lens.Lens' CampaignSummary (Prelude.Maybe Prelude.Text)+campaignSummary_name = Lens.lens (\CampaignSummary' {name} -> name) (\s@CampaignSummary' {} a -> s {name = a} :: CampaignSummary)++-- | The ARN of the signal catalog associated with the campaign.+campaignSummary_signalCatalogArn :: Lens.Lens' CampaignSummary (Prelude.Maybe Prelude.Text)+campaignSummary_signalCatalogArn = Lens.lens (\CampaignSummary' {signalCatalogArn} -> signalCatalogArn) (\s@CampaignSummary' {} a -> s {signalCatalogArn = a} :: CampaignSummary)++-- | The state of a campaign. The status can be one of the following:+--+-- -   @CREATING@ - Amazon Web Services IoT FleetWise is processing your+--     request to create the campaign.+--+-- -   @WAITING_FOR_APPROVAL@ - After a campaign is created, it enters the+--     @WAITING_FOR_APPROVAL@ state. To allow Amazon Web Services IoT+--     FleetWise to deploy the campaign to the target vehicle or fleet, use+--     the API operation to approve the campaign.+--+-- -   @RUNNING@ - The campaign is active.+--+-- -   @SUSPENDED@ - The campaign is suspended. To resume the campaign, use+--     the API operation.+campaignSummary_status :: Lens.Lens' CampaignSummary (Prelude.Maybe CampaignStatus)+campaignSummary_status = Lens.lens (\CampaignSummary' {status} -> status) (\s@CampaignSummary' {} a -> s {status = a} :: CampaignSummary)++-- | The ARN of a vehicle or fleet to which the campaign is deployed.+campaignSummary_targetArn :: Lens.Lens' CampaignSummary (Prelude.Maybe Prelude.Text)+campaignSummary_targetArn = Lens.lens (\CampaignSummary' {targetArn} -> targetArn) (\s@CampaignSummary' {} a -> s {targetArn = a} :: CampaignSummary)++-- | The time the campaign was created.+campaignSummary_creationTime :: Lens.Lens' CampaignSummary Prelude.UTCTime+campaignSummary_creationTime = Lens.lens (\CampaignSummary' {creationTime} -> creationTime) (\s@CampaignSummary' {} a -> s {creationTime = a} :: CampaignSummary) Prelude.. Data._Time++-- | The last time the campaign was modified.+campaignSummary_lastModificationTime :: Lens.Lens' CampaignSummary Prelude.UTCTime+campaignSummary_lastModificationTime = Lens.lens (\CampaignSummary' {lastModificationTime} -> lastModificationTime) (\s@CampaignSummary' {} a -> s {lastModificationTime = a} :: CampaignSummary) Prelude.. Data._Time++instance Data.FromJSON CampaignSummary where+  parseJSON =+    Data.withObject+      "CampaignSummary"+      ( \x ->+          CampaignSummary'+            Prelude.<$> (x Data..:? "arn")+            Prelude.<*> (x Data..:? "description")+            Prelude.<*> (x Data..:? "name")+            Prelude.<*> (x Data..:? "signalCatalogArn")+            Prelude.<*> (x Data..:? "status")+            Prelude.<*> (x Data..:? "targetArn")+            Prelude.<*> (x Data..: "creationTime")+            Prelude.<*> (x Data..: "lastModificationTime")+      )++instance Prelude.Hashable CampaignSummary where+  hashWithSalt _salt CampaignSummary' {..} =+    _salt+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` signalCatalogArn+      `Prelude.hashWithSalt` status+      `Prelude.hashWithSalt` targetArn+      `Prelude.hashWithSalt` creationTime+      `Prelude.hashWithSalt` lastModificationTime++instance Prelude.NFData CampaignSummary where+  rnf CampaignSummary' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf signalCatalogArn+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf targetArn+      `Prelude.seq` Prelude.rnf creationTime+      `Prelude.seq` Prelude.rnf lastModificationTime
+ gen/Amazonka/IoTFleetWise/Types/CanDbcDefinition.hs view
@@ -0,0 +1,106 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.Types.CanDbcDefinition+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTFleetWise.Types.CanDbcDefinition where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Configurations used to create a decoder manifest.+--+-- /See:/ 'newCanDbcDefinition' smart constructor.+data CanDbcDefinition = CanDbcDefinition'+  { -- | Pairs every signal specified in your vehicle model with a signal+    -- decoder.+    signalsMap :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | Contains information about a network interface.+    networkInterface :: Prelude.Text,+    -- | A list of DBC files. You can upload only one DBC file for each network+    -- interface and specify up to five (inclusive) files in the list.+    canDbcFiles :: Prelude.NonEmpty Data.Base64+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CanDbcDefinition' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'signalsMap', 'canDbcDefinition_signalsMap' - Pairs every signal specified in your vehicle model with a signal+-- decoder.+--+-- 'networkInterface', 'canDbcDefinition_networkInterface' - Contains information about a network interface.+--+-- 'canDbcFiles', 'canDbcDefinition_canDbcFiles' - A list of DBC files. You can upload only one DBC file for each network+-- interface and specify up to five (inclusive) files in the list.+newCanDbcDefinition ::+  -- | 'networkInterface'+  Prelude.Text ->+  -- | 'canDbcFiles'+  Prelude.NonEmpty Prelude.ByteString ->+  CanDbcDefinition+newCanDbcDefinition pNetworkInterface_ pCanDbcFiles_ =+  CanDbcDefinition'+    { signalsMap = Prelude.Nothing,+      networkInterface = pNetworkInterface_,+      canDbcFiles = Lens.coerced Lens.# pCanDbcFiles_+    }++-- | Pairs every signal specified in your vehicle model with a signal+-- decoder.+canDbcDefinition_signalsMap :: Lens.Lens' CanDbcDefinition (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+canDbcDefinition_signalsMap = Lens.lens (\CanDbcDefinition' {signalsMap} -> signalsMap) (\s@CanDbcDefinition' {} a -> s {signalsMap = a} :: CanDbcDefinition) Prelude.. Lens.mapping Lens.coerced++-- | Contains information about a network interface.+canDbcDefinition_networkInterface :: Lens.Lens' CanDbcDefinition Prelude.Text+canDbcDefinition_networkInterface = Lens.lens (\CanDbcDefinition' {networkInterface} -> networkInterface) (\s@CanDbcDefinition' {} a -> s {networkInterface = a} :: CanDbcDefinition)++-- | A list of DBC files. You can upload only one DBC file for each network+-- interface and specify up to five (inclusive) files in the list.+canDbcDefinition_canDbcFiles :: Lens.Lens' CanDbcDefinition (Prelude.NonEmpty Prelude.ByteString)+canDbcDefinition_canDbcFiles = Lens.lens (\CanDbcDefinition' {canDbcFiles} -> canDbcFiles) (\s@CanDbcDefinition' {} a -> s {canDbcFiles = a} :: CanDbcDefinition) Prelude.. Lens.coerced++instance Prelude.Hashable CanDbcDefinition where+  hashWithSalt _salt CanDbcDefinition' {..} =+    _salt+      `Prelude.hashWithSalt` signalsMap+      `Prelude.hashWithSalt` networkInterface+      `Prelude.hashWithSalt` canDbcFiles++instance Prelude.NFData CanDbcDefinition where+  rnf CanDbcDefinition' {..} =+    Prelude.rnf signalsMap+      `Prelude.seq` Prelude.rnf networkInterface+      `Prelude.seq` Prelude.rnf canDbcFiles++instance Data.ToJSON CanDbcDefinition where+  toJSON CanDbcDefinition' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("signalsMap" Data..=) Prelude.<$> signalsMap,+            Prelude.Just+              ("networkInterface" Data..= networkInterface),+            Prelude.Just ("canDbcFiles" Data..= canDbcFiles)+          ]+      )
+ gen/Amazonka/IoTFleetWise/Types/CanInterface.hs view
@@ -0,0 +1,109 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.Types.CanInterface+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTFleetWise.Types.CanInterface where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | A single controller area network (CAN) device interface.+--+-- /See:/ 'newCanInterface' smart constructor.+data CanInterface = CanInterface'+  { -- | The name of the communication protocol for the interface.+    protocolName :: Prelude.Maybe Prelude.Text,+    -- | The version of the communication protocol for the interface.+    protocolVersion :: Prelude.Maybe Prelude.Text,+    -- | The unique name of the interface.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CanInterface' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'protocolName', 'canInterface_protocolName' - The name of the communication protocol for the interface.+--+-- 'protocolVersion', 'canInterface_protocolVersion' - The version of the communication protocol for the interface.+--+-- 'name', 'canInterface_name' - The unique name of the interface.+newCanInterface ::+  -- | 'name'+  Prelude.Text ->+  CanInterface+newCanInterface pName_ =+  CanInterface'+    { protocolName = Prelude.Nothing,+      protocolVersion = Prelude.Nothing,+      name = pName_+    }++-- | The name of the communication protocol for the interface.+canInterface_protocolName :: Lens.Lens' CanInterface (Prelude.Maybe Prelude.Text)+canInterface_protocolName = Lens.lens (\CanInterface' {protocolName} -> protocolName) (\s@CanInterface' {} a -> s {protocolName = a} :: CanInterface)++-- | The version of the communication protocol for the interface.+canInterface_protocolVersion :: Lens.Lens' CanInterface (Prelude.Maybe Prelude.Text)+canInterface_protocolVersion = Lens.lens (\CanInterface' {protocolVersion} -> protocolVersion) (\s@CanInterface' {} a -> s {protocolVersion = a} :: CanInterface)++-- | The unique name of the interface.+canInterface_name :: Lens.Lens' CanInterface Prelude.Text+canInterface_name = Lens.lens (\CanInterface' {name} -> name) (\s@CanInterface' {} a -> s {name = a} :: CanInterface)++instance Data.FromJSON CanInterface where+  parseJSON =+    Data.withObject+      "CanInterface"+      ( \x ->+          CanInterface'+            Prelude.<$> (x Data..:? "protocolName")+            Prelude.<*> (x Data..:? "protocolVersion")+            Prelude.<*> (x Data..: "name")+      )++instance Prelude.Hashable CanInterface where+  hashWithSalt _salt CanInterface' {..} =+    _salt+      `Prelude.hashWithSalt` protocolName+      `Prelude.hashWithSalt` protocolVersion+      `Prelude.hashWithSalt` name++instance Prelude.NFData CanInterface where+  rnf CanInterface' {..} =+    Prelude.rnf protocolName+      `Prelude.seq` Prelude.rnf protocolVersion+      `Prelude.seq` Prelude.rnf name++instance Data.ToJSON CanInterface where+  toJSON CanInterface' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("protocolName" Data..=) Prelude.<$> protocolName,+            ("protocolVersion" Data..=)+              Prelude.<$> protocolVersion,+            Prelude.Just ("name" Data..= name)+          ]+      )
+ gen/Amazonka/IoTFleetWise/Types/CanSignal.hs view
@@ -0,0 +1,193 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.Types.CanSignal+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTFleetWise.Types.CanSignal where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Information about a single controller area network (CAN) signal and the+-- messages it receives and transmits.+--+-- /See:/ 'newCanSignal' smart constructor.+data CanSignal = CanSignal'+  { -- | The name of the signal.+    name :: Prelude.Maybe Prelude.Text,+    -- | The ID of the message.+    messageId :: Prelude.Natural,+    -- | Whether the byte ordering of a CAN message is big-endian.+    isBigEndian :: Prelude.Bool,+    -- | Whether the message data is specified as a signed value.+    isSigned :: Prelude.Bool,+    -- | Indicates the beginning of the CAN message.+    startBit :: Prelude.Natural,+    -- | Indicates where data appears in the CAN message.+    offset :: Prelude.Double,+    -- | A multiplier used to decode the CAN message.+    factor :: Prelude.Double,+    -- | How many bytes of data are in the message.+    length :: Prelude.Natural+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CanSignal' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'name', 'canSignal_name' - The name of the signal.+--+-- 'messageId', 'canSignal_messageId' - The ID of the message.+--+-- 'isBigEndian', 'canSignal_isBigEndian' - Whether the byte ordering of a CAN message is big-endian.+--+-- 'isSigned', 'canSignal_isSigned' - Whether the message data is specified as a signed value.+--+-- 'startBit', 'canSignal_startBit' - Indicates the beginning of the CAN message.+--+-- 'offset', 'canSignal_offset' - Indicates where data appears in the CAN message.+--+-- 'factor', 'canSignal_factor' - A multiplier used to decode the CAN message.+--+-- 'length', 'canSignal_length' - How many bytes of data are in the message.+newCanSignal ::+  -- | 'messageId'+  Prelude.Natural ->+  -- | 'isBigEndian'+  Prelude.Bool ->+  -- | 'isSigned'+  Prelude.Bool ->+  -- | 'startBit'+  Prelude.Natural ->+  -- | 'offset'+  Prelude.Double ->+  -- | 'factor'+  Prelude.Double ->+  -- | 'length'+  Prelude.Natural ->+  CanSignal+newCanSignal+  pMessageId_+  pIsBigEndian_+  pIsSigned_+  pStartBit_+  pOffset_+  pFactor_+  pLength_ =+    CanSignal'+      { name = Prelude.Nothing,+        messageId = pMessageId_,+        isBigEndian = pIsBigEndian_,+        isSigned = pIsSigned_,+        startBit = pStartBit_,+        offset = pOffset_,+        factor = pFactor_,+        length = pLength_+      }++-- | The name of the signal.+canSignal_name :: Lens.Lens' CanSignal (Prelude.Maybe Prelude.Text)+canSignal_name = Lens.lens (\CanSignal' {name} -> name) (\s@CanSignal' {} a -> s {name = a} :: CanSignal)++-- | The ID of the message.+canSignal_messageId :: Lens.Lens' CanSignal Prelude.Natural+canSignal_messageId = Lens.lens (\CanSignal' {messageId} -> messageId) (\s@CanSignal' {} a -> s {messageId = a} :: CanSignal)++-- | Whether the byte ordering of a CAN message is big-endian.+canSignal_isBigEndian :: Lens.Lens' CanSignal Prelude.Bool+canSignal_isBigEndian = Lens.lens (\CanSignal' {isBigEndian} -> isBigEndian) (\s@CanSignal' {} a -> s {isBigEndian = a} :: CanSignal)++-- | Whether the message data is specified as a signed value.+canSignal_isSigned :: Lens.Lens' CanSignal Prelude.Bool+canSignal_isSigned = Lens.lens (\CanSignal' {isSigned} -> isSigned) (\s@CanSignal' {} a -> s {isSigned = a} :: CanSignal)++-- | Indicates the beginning of the CAN message.+canSignal_startBit :: Lens.Lens' CanSignal Prelude.Natural+canSignal_startBit = Lens.lens (\CanSignal' {startBit} -> startBit) (\s@CanSignal' {} a -> s {startBit = a} :: CanSignal)++-- | Indicates where data appears in the CAN message.+canSignal_offset :: Lens.Lens' CanSignal Prelude.Double+canSignal_offset = Lens.lens (\CanSignal' {offset} -> offset) (\s@CanSignal' {} a -> s {offset = a} :: CanSignal)++-- | A multiplier used to decode the CAN message.+canSignal_factor :: Lens.Lens' CanSignal Prelude.Double+canSignal_factor = Lens.lens (\CanSignal' {factor} -> factor) (\s@CanSignal' {} a -> s {factor = a} :: CanSignal)++-- | How many bytes of data are in the message.+canSignal_length :: Lens.Lens' CanSignal Prelude.Natural+canSignal_length = Lens.lens (\CanSignal' {length} -> length) (\s@CanSignal' {} a -> s {length = a} :: CanSignal)++instance Data.FromJSON CanSignal where+  parseJSON =+    Data.withObject+      "CanSignal"+      ( \x ->+          CanSignal'+            Prelude.<$> (x Data..:? "name")+            Prelude.<*> (x Data..: "messageId")+            Prelude.<*> (x Data..: "isBigEndian")+            Prelude.<*> (x Data..: "isSigned")+            Prelude.<*> (x Data..: "startBit")+            Prelude.<*> (x Data..: "offset")+            Prelude.<*> (x Data..: "factor")+            Prelude.<*> (x Data..: "length")+      )++instance Prelude.Hashable CanSignal where+  hashWithSalt _salt CanSignal' {..} =+    _salt+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` messageId+      `Prelude.hashWithSalt` isBigEndian+      `Prelude.hashWithSalt` isSigned+      `Prelude.hashWithSalt` startBit+      `Prelude.hashWithSalt` offset+      `Prelude.hashWithSalt` factor+      `Prelude.hashWithSalt` length++instance Prelude.NFData CanSignal where+  rnf CanSignal' {..} =+    Prelude.rnf name+      `Prelude.seq` Prelude.rnf messageId+      `Prelude.seq` Prelude.rnf isBigEndian+      `Prelude.seq` Prelude.rnf isSigned+      `Prelude.seq` Prelude.rnf startBit+      `Prelude.seq` Prelude.rnf offset+      `Prelude.seq` Prelude.rnf factor+      `Prelude.seq` Prelude.rnf length++instance Data.ToJSON CanSignal where+  toJSON CanSignal' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("name" Data..=) Prelude.<$> name,+            Prelude.Just ("messageId" Data..= messageId),+            Prelude.Just ("isBigEndian" Data..= isBigEndian),+            Prelude.Just ("isSigned" Data..= isSigned),+            Prelude.Just ("startBit" Data..= startBit),+            Prelude.Just ("offset" Data..= offset),+            Prelude.Just ("factor" Data..= factor),+            Prelude.Just ("length" Data..= length)+          ]+      )
+ gen/Amazonka/IoTFleetWise/Types/CloudWatchLogDeliveryOptions.hs view
@@ -0,0 +1,100 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.Types.CloudWatchLogDeliveryOptions+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTFleetWise.Types.CloudWatchLogDeliveryOptions where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTFleetWise.Types.LogType+import qualified Amazonka.Prelude as Prelude++-- | The log delivery option to send data to Amazon CloudWatch Logs.+--+-- /See:/ 'newCloudWatchLogDeliveryOptions' smart constructor.+data CloudWatchLogDeliveryOptions = CloudWatchLogDeliveryOptions'+  { -- | The Amazon CloudWatch Logs group the operation sends data to.+    logGroupName :: Prelude.Maybe Prelude.Text,+    -- | The type of log to send data to Amazon CloudWatch Logs.+    logType :: LogType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CloudWatchLogDeliveryOptions' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'logGroupName', 'cloudWatchLogDeliveryOptions_logGroupName' - The Amazon CloudWatch Logs group the operation sends data to.+--+-- 'logType', 'cloudWatchLogDeliveryOptions_logType' - The type of log to send data to Amazon CloudWatch Logs.+newCloudWatchLogDeliveryOptions ::+  -- | 'logType'+  LogType ->+  CloudWatchLogDeliveryOptions+newCloudWatchLogDeliveryOptions pLogType_ =+  CloudWatchLogDeliveryOptions'+    { logGroupName =+        Prelude.Nothing,+      logType = pLogType_+    }++-- | The Amazon CloudWatch Logs group the operation sends data to.+cloudWatchLogDeliveryOptions_logGroupName :: Lens.Lens' CloudWatchLogDeliveryOptions (Prelude.Maybe Prelude.Text)+cloudWatchLogDeliveryOptions_logGroupName = Lens.lens (\CloudWatchLogDeliveryOptions' {logGroupName} -> logGroupName) (\s@CloudWatchLogDeliveryOptions' {} a -> s {logGroupName = a} :: CloudWatchLogDeliveryOptions)++-- | The type of log to send data to Amazon CloudWatch Logs.+cloudWatchLogDeliveryOptions_logType :: Lens.Lens' CloudWatchLogDeliveryOptions LogType+cloudWatchLogDeliveryOptions_logType = Lens.lens (\CloudWatchLogDeliveryOptions' {logType} -> logType) (\s@CloudWatchLogDeliveryOptions' {} a -> s {logType = a} :: CloudWatchLogDeliveryOptions)++instance Data.FromJSON CloudWatchLogDeliveryOptions where+  parseJSON =+    Data.withObject+      "CloudWatchLogDeliveryOptions"+      ( \x ->+          CloudWatchLogDeliveryOptions'+            Prelude.<$> (x Data..:? "logGroupName")+            Prelude.<*> (x Data..: "logType")+      )++instance+  Prelude.Hashable+    CloudWatchLogDeliveryOptions+  where+  hashWithSalt _salt CloudWatchLogDeliveryOptions' {..} =+    _salt+      `Prelude.hashWithSalt` logGroupName+      `Prelude.hashWithSalt` logType++instance Prelude.NFData CloudWatchLogDeliveryOptions where+  rnf CloudWatchLogDeliveryOptions' {..} =+    Prelude.rnf logGroupName+      `Prelude.seq` Prelude.rnf logType++instance Data.ToJSON CloudWatchLogDeliveryOptions where+  toJSON CloudWatchLogDeliveryOptions' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("logGroupName" Data..=) Prelude.<$> logGroupName,+            Prelude.Just ("logType" Data..= logType)+          ]+      )
+ gen/Amazonka/IoTFleetWise/Types/CollectionScheme.hs view
@@ -0,0 +1,104 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.Types.CollectionScheme+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTFleetWise.Types.CollectionScheme where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTFleetWise.Types.ConditionBasedCollectionScheme+import Amazonka.IoTFleetWise.Types.TimeBasedCollectionScheme+import qualified Amazonka.Prelude as Prelude++-- | Specifies what data to collect and how often or when to collect it.+--+-- /See:/ 'newCollectionScheme' smart constructor.+data CollectionScheme = CollectionScheme'+  { -- | Information about a collection scheme that uses a simple logical+    -- expression to recognize what data to collect.+    conditionBasedCollectionScheme :: Prelude.Maybe ConditionBasedCollectionScheme,+    -- | Information about a collection scheme that uses a time period to decide+    -- how often to collect data.+    timeBasedCollectionScheme :: Prelude.Maybe TimeBasedCollectionScheme+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CollectionScheme' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'conditionBasedCollectionScheme', 'collectionScheme_conditionBasedCollectionScheme' - Information about a collection scheme that uses a simple logical+-- expression to recognize what data to collect.+--+-- 'timeBasedCollectionScheme', 'collectionScheme_timeBasedCollectionScheme' - Information about a collection scheme that uses a time period to decide+-- how often to collect data.+newCollectionScheme ::+  CollectionScheme+newCollectionScheme =+  CollectionScheme'+    { conditionBasedCollectionScheme =+        Prelude.Nothing,+      timeBasedCollectionScheme = Prelude.Nothing+    }++-- | Information about a collection scheme that uses a simple logical+-- expression to recognize what data to collect.+collectionScheme_conditionBasedCollectionScheme :: Lens.Lens' CollectionScheme (Prelude.Maybe ConditionBasedCollectionScheme)+collectionScheme_conditionBasedCollectionScheme = Lens.lens (\CollectionScheme' {conditionBasedCollectionScheme} -> conditionBasedCollectionScheme) (\s@CollectionScheme' {} a -> s {conditionBasedCollectionScheme = a} :: CollectionScheme)++-- | Information about a collection scheme that uses a time period to decide+-- how often to collect data.+collectionScheme_timeBasedCollectionScheme :: Lens.Lens' CollectionScheme (Prelude.Maybe TimeBasedCollectionScheme)+collectionScheme_timeBasedCollectionScheme = Lens.lens (\CollectionScheme' {timeBasedCollectionScheme} -> timeBasedCollectionScheme) (\s@CollectionScheme' {} a -> s {timeBasedCollectionScheme = a} :: CollectionScheme)++instance Data.FromJSON CollectionScheme where+  parseJSON =+    Data.withObject+      "CollectionScheme"+      ( \x ->+          CollectionScheme'+            Prelude.<$> (x Data..:? "conditionBasedCollectionScheme")+            Prelude.<*> (x Data..:? "timeBasedCollectionScheme")+      )++instance Prelude.Hashable CollectionScheme where+  hashWithSalt _salt CollectionScheme' {..} =+    _salt+      `Prelude.hashWithSalt` conditionBasedCollectionScheme+      `Prelude.hashWithSalt` timeBasedCollectionScheme++instance Prelude.NFData CollectionScheme where+  rnf CollectionScheme' {..} =+    Prelude.rnf conditionBasedCollectionScheme+      `Prelude.seq` Prelude.rnf timeBasedCollectionScheme++instance Data.ToJSON CollectionScheme where+  toJSON CollectionScheme' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("conditionBasedCollectionScheme" Data..=)+              Prelude.<$> conditionBasedCollectionScheme,+            ("timeBasedCollectionScheme" Data..=)+              Prelude.<$> timeBasedCollectionScheme+          ]+      )
+ gen/Amazonka/IoTFleetWise/Types/Compression.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.Types.Compression+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTFleetWise.Types.Compression+  ( Compression+      ( ..,+        Compression_OFF,+        Compression_SNAPPY+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype Compression = Compression'+  { fromCompression ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern Compression_OFF :: Compression+pattern Compression_OFF = Compression' "OFF"++pattern Compression_SNAPPY :: Compression+pattern Compression_SNAPPY = Compression' "SNAPPY"++{-# COMPLETE+  Compression_OFF,+  Compression_SNAPPY,+  Compression'+  #-}
+ gen/Amazonka/IoTFleetWise/Types/ConditionBasedCollectionScheme.hs view
@@ -0,0 +1,161 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.Types.ConditionBasedCollectionScheme+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTFleetWise.Types.ConditionBasedCollectionScheme where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTFleetWise.Types.TriggerMode+import qualified Amazonka.Prelude as Prelude++-- | Information about a collection scheme that uses a simple logical+-- expression to recognize what data to collect.+--+-- /See:/ 'newConditionBasedCollectionScheme' smart constructor.+data ConditionBasedCollectionScheme = ConditionBasedCollectionScheme'+  { -- | Specifies the version of the conditional expression language.+    conditionLanguageVersion :: Prelude.Maybe Prelude.Natural,+    -- | The minimum duration of time between two triggering events to collect+    -- data, in milliseconds.+    --+    -- If a signal changes often, you might want to collect data at a slower+    -- rate.+    minimumTriggerIntervalMs :: Prelude.Maybe Prelude.Natural,+    -- | Whether to collect data for all triggering events (@ALWAYS@). Specify+    -- (@RISING_EDGE@), or specify only when the condition first evaluates to+    -- false. For example, triggering on \"AirbagDeployed\"; Users aren\'t+    -- interested on triggering when the airbag is already exploded; they only+    -- care about the change from not deployed => deployed.+    triggerMode :: Prelude.Maybe TriggerMode,+    -- | The logical expression used to recognize what data to collect. For+    -- example, @$variable.Vehicle.OutsideAirTemperature >= 105.0@.+    expression :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ConditionBasedCollectionScheme' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'conditionLanguageVersion', 'conditionBasedCollectionScheme_conditionLanguageVersion' - Specifies the version of the conditional expression language.+--+-- 'minimumTriggerIntervalMs', 'conditionBasedCollectionScheme_minimumTriggerIntervalMs' - The minimum duration of time between two triggering events to collect+-- data, in milliseconds.+--+-- If a signal changes often, you might want to collect data at a slower+-- rate.+--+-- 'triggerMode', 'conditionBasedCollectionScheme_triggerMode' - Whether to collect data for all triggering events (@ALWAYS@). Specify+-- (@RISING_EDGE@), or specify only when the condition first evaluates to+-- false. For example, triggering on \"AirbagDeployed\"; Users aren\'t+-- interested on triggering when the airbag is already exploded; they only+-- care about the change from not deployed => deployed.+--+-- 'expression', 'conditionBasedCollectionScheme_expression' - The logical expression used to recognize what data to collect. For+-- example, @$variable.Vehicle.OutsideAirTemperature >= 105.0@.+newConditionBasedCollectionScheme ::+  -- | 'expression'+  Prelude.Text ->+  ConditionBasedCollectionScheme+newConditionBasedCollectionScheme pExpression_ =+  ConditionBasedCollectionScheme'+    { conditionLanguageVersion =+        Prelude.Nothing,+      minimumTriggerIntervalMs = Prelude.Nothing,+      triggerMode = Prelude.Nothing,+      expression = pExpression_+    }++-- | Specifies the version of the conditional expression language.+conditionBasedCollectionScheme_conditionLanguageVersion :: Lens.Lens' ConditionBasedCollectionScheme (Prelude.Maybe Prelude.Natural)+conditionBasedCollectionScheme_conditionLanguageVersion = Lens.lens (\ConditionBasedCollectionScheme' {conditionLanguageVersion} -> conditionLanguageVersion) (\s@ConditionBasedCollectionScheme' {} a -> s {conditionLanguageVersion = a} :: ConditionBasedCollectionScheme)++-- | The minimum duration of time between two triggering events to collect+-- data, in milliseconds.+--+-- If a signal changes often, you might want to collect data at a slower+-- rate.+conditionBasedCollectionScheme_minimumTriggerIntervalMs :: Lens.Lens' ConditionBasedCollectionScheme (Prelude.Maybe Prelude.Natural)+conditionBasedCollectionScheme_minimumTriggerIntervalMs = Lens.lens (\ConditionBasedCollectionScheme' {minimumTriggerIntervalMs} -> minimumTriggerIntervalMs) (\s@ConditionBasedCollectionScheme' {} a -> s {minimumTriggerIntervalMs = a} :: ConditionBasedCollectionScheme)++-- | Whether to collect data for all triggering events (@ALWAYS@). Specify+-- (@RISING_EDGE@), or specify only when the condition first evaluates to+-- false. For example, triggering on \"AirbagDeployed\"; Users aren\'t+-- interested on triggering when the airbag is already exploded; they only+-- care about the change from not deployed => deployed.+conditionBasedCollectionScheme_triggerMode :: Lens.Lens' ConditionBasedCollectionScheme (Prelude.Maybe TriggerMode)+conditionBasedCollectionScheme_triggerMode = Lens.lens (\ConditionBasedCollectionScheme' {triggerMode} -> triggerMode) (\s@ConditionBasedCollectionScheme' {} a -> s {triggerMode = a} :: ConditionBasedCollectionScheme)++-- | The logical expression used to recognize what data to collect. For+-- example, @$variable.Vehicle.OutsideAirTemperature >= 105.0@.+conditionBasedCollectionScheme_expression :: Lens.Lens' ConditionBasedCollectionScheme Prelude.Text+conditionBasedCollectionScheme_expression = Lens.lens (\ConditionBasedCollectionScheme' {expression} -> expression) (\s@ConditionBasedCollectionScheme' {} a -> s {expression = a} :: ConditionBasedCollectionScheme)++instance Data.FromJSON ConditionBasedCollectionScheme where+  parseJSON =+    Data.withObject+      "ConditionBasedCollectionScheme"+      ( \x ->+          ConditionBasedCollectionScheme'+            Prelude.<$> (x Data..:? "conditionLanguageVersion")+            Prelude.<*> (x Data..:? "minimumTriggerIntervalMs")+            Prelude.<*> (x Data..:? "triggerMode")+            Prelude.<*> (x Data..: "expression")+      )++instance+  Prelude.Hashable+    ConditionBasedCollectionScheme+  where+  hashWithSalt+    _salt+    ConditionBasedCollectionScheme' {..} =+      _salt+        `Prelude.hashWithSalt` conditionLanguageVersion+        `Prelude.hashWithSalt` minimumTriggerIntervalMs+        `Prelude.hashWithSalt` triggerMode+        `Prelude.hashWithSalt` expression++instance+  Prelude.NFData+    ConditionBasedCollectionScheme+  where+  rnf ConditionBasedCollectionScheme' {..} =+    Prelude.rnf conditionLanguageVersion+      `Prelude.seq` Prelude.rnf minimumTriggerIntervalMs+      `Prelude.seq` Prelude.rnf triggerMode+      `Prelude.seq` Prelude.rnf expression++instance Data.ToJSON ConditionBasedCollectionScheme where+  toJSON ConditionBasedCollectionScheme' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("conditionLanguageVersion" Data..=)+              Prelude.<$> conditionLanguageVersion,+            ("minimumTriggerIntervalMs" Data..=)+              Prelude.<$> minimumTriggerIntervalMs,+            ("triggerMode" Data..=) Prelude.<$> triggerMode,+            Prelude.Just ("expression" Data..= expression)+          ]+      )
+ gen/Amazonka/IoTFleetWise/Types/CreateVehicleError.hs view
@@ -0,0 +1,96 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.Types.CreateVehicleError+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTFleetWise.Types.CreateVehicleError where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | An HTTP error resulting from creating a vehicle.+--+-- /See:/ 'newCreateVehicleError' smart constructor.+data CreateVehicleError = CreateVehicleError'+  { -- | An HTTP error code.+    code :: Prelude.Maybe Prelude.Text,+    -- | A description of the HTTP error.+    message :: Prelude.Maybe Prelude.Text,+    -- | The ID of the vehicle with the error.+    vehicleName :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateVehicleError' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'code', 'createVehicleError_code' - An HTTP error code.+--+-- 'message', 'createVehicleError_message' - A description of the HTTP error.+--+-- 'vehicleName', 'createVehicleError_vehicleName' - The ID of the vehicle with the error.+newCreateVehicleError ::+  CreateVehicleError+newCreateVehicleError =+  CreateVehicleError'+    { code = Prelude.Nothing,+      message = Prelude.Nothing,+      vehicleName = Prelude.Nothing+    }++-- | An HTTP error code.+createVehicleError_code :: Lens.Lens' CreateVehicleError (Prelude.Maybe Prelude.Text)+createVehicleError_code = Lens.lens (\CreateVehicleError' {code} -> code) (\s@CreateVehicleError' {} a -> s {code = a} :: CreateVehicleError)++-- | A description of the HTTP error.+createVehicleError_message :: Lens.Lens' CreateVehicleError (Prelude.Maybe Prelude.Text)+createVehicleError_message = Lens.lens (\CreateVehicleError' {message} -> message) (\s@CreateVehicleError' {} a -> s {message = a} :: CreateVehicleError)++-- | The ID of the vehicle with the error.+createVehicleError_vehicleName :: Lens.Lens' CreateVehicleError (Prelude.Maybe Prelude.Text)+createVehicleError_vehicleName = Lens.lens (\CreateVehicleError' {vehicleName} -> vehicleName) (\s@CreateVehicleError' {} a -> s {vehicleName = a} :: CreateVehicleError)++instance Data.FromJSON CreateVehicleError where+  parseJSON =+    Data.withObject+      "CreateVehicleError"+      ( \x ->+          CreateVehicleError'+            Prelude.<$> (x Data..:? "code")+            Prelude.<*> (x Data..:? "message")+            Prelude.<*> (x Data..:? "vehicleName")+      )++instance Prelude.Hashable CreateVehicleError where+  hashWithSalt _salt CreateVehicleError' {..} =+    _salt+      `Prelude.hashWithSalt` code+      `Prelude.hashWithSalt` message+      `Prelude.hashWithSalt` vehicleName++instance Prelude.NFData CreateVehicleError where+  rnf CreateVehicleError' {..} =+    Prelude.rnf code+      `Prelude.seq` Prelude.rnf message+      `Prelude.seq` Prelude.rnf vehicleName
+ gen/Amazonka/IoTFleetWise/Types/CreateVehicleRequestItem.hs view
@@ -0,0 +1,158 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.Types.CreateVehicleRequestItem+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTFleetWise.Types.CreateVehicleRequestItem where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTFleetWise.Types.Tag+import Amazonka.IoTFleetWise.Types.VehicleAssociationBehavior+import qualified Amazonka.Prelude as Prelude++-- | Information about the vehicle to create.+--+-- /See:/ 'newCreateVehicleRequestItem' smart constructor.+data CreateVehicleRequestItem = CreateVehicleRequestItem'+  { -- | An option to create a new Amazon Web Services IoT thing when creating a+    -- vehicle, or to validate an existing thing as a vehicle.+    associationBehavior :: Prelude.Maybe VehicleAssociationBehavior,+    -- | Static information about a vehicle in a key-value pair. For example:+    -- @\"engine Type\"@ : @\"v6\"@+    attributes :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | Metadata which can be used to manage the vehicle.+    tags :: Prelude.Maybe [Tag],+    -- | The unique ID of the vehicle to create.+    vehicleName :: Prelude.Text,+    -- | The ARN of the vehicle model (model manifest) to create the vehicle+    -- from.+    modelManifestArn :: Prelude.Text,+    -- | The Amazon Resource Name (ARN) of a decoder manifest associated with the+    -- vehicle to create.+    decoderManifestArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateVehicleRequestItem' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'associationBehavior', 'createVehicleRequestItem_associationBehavior' - An option to create a new Amazon Web Services IoT thing when creating a+-- vehicle, or to validate an existing thing as a vehicle.+--+-- 'attributes', 'createVehicleRequestItem_attributes' - Static information about a vehicle in a key-value pair. For example:+-- @\"engine Type\"@ : @\"v6\"@+--+-- 'tags', 'createVehicleRequestItem_tags' - Metadata which can be used to manage the vehicle.+--+-- 'vehicleName', 'createVehicleRequestItem_vehicleName' - The unique ID of the vehicle to create.+--+-- 'modelManifestArn', 'createVehicleRequestItem_modelManifestArn' - The ARN of the vehicle model (model manifest) to create the vehicle+-- from.+--+-- 'decoderManifestArn', 'createVehicleRequestItem_decoderManifestArn' - The Amazon Resource Name (ARN) of a decoder manifest associated with the+-- vehicle to create.+newCreateVehicleRequestItem ::+  -- | 'vehicleName'+  Prelude.Text ->+  -- | 'modelManifestArn'+  Prelude.Text ->+  -- | 'decoderManifestArn'+  Prelude.Text ->+  CreateVehicleRequestItem+newCreateVehicleRequestItem+  pVehicleName_+  pModelManifestArn_+  pDecoderManifestArn_ =+    CreateVehicleRequestItem'+      { associationBehavior =+          Prelude.Nothing,+        attributes = Prelude.Nothing,+        tags = Prelude.Nothing,+        vehicleName = pVehicleName_,+        modelManifestArn = pModelManifestArn_,+        decoderManifestArn = pDecoderManifestArn_+      }++-- | An option to create a new Amazon Web Services IoT thing when creating a+-- vehicle, or to validate an existing thing as a vehicle.+createVehicleRequestItem_associationBehavior :: Lens.Lens' CreateVehicleRequestItem (Prelude.Maybe VehicleAssociationBehavior)+createVehicleRequestItem_associationBehavior = Lens.lens (\CreateVehicleRequestItem' {associationBehavior} -> associationBehavior) (\s@CreateVehicleRequestItem' {} a -> s {associationBehavior = a} :: CreateVehicleRequestItem)++-- | Static information about a vehicle in a key-value pair. For example:+-- @\"engine Type\"@ : @\"v6\"@+createVehicleRequestItem_attributes :: Lens.Lens' CreateVehicleRequestItem (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createVehicleRequestItem_attributes = Lens.lens (\CreateVehicleRequestItem' {attributes} -> attributes) (\s@CreateVehicleRequestItem' {} a -> s {attributes = a} :: CreateVehicleRequestItem) Prelude.. Lens.mapping Lens.coerced++-- | Metadata which can be used to manage the vehicle.+createVehicleRequestItem_tags :: Lens.Lens' CreateVehicleRequestItem (Prelude.Maybe [Tag])+createVehicleRequestItem_tags = Lens.lens (\CreateVehicleRequestItem' {tags} -> tags) (\s@CreateVehicleRequestItem' {} a -> s {tags = a} :: CreateVehicleRequestItem) Prelude.. Lens.mapping Lens.coerced++-- | The unique ID of the vehicle to create.+createVehicleRequestItem_vehicleName :: Lens.Lens' CreateVehicleRequestItem Prelude.Text+createVehicleRequestItem_vehicleName = Lens.lens (\CreateVehicleRequestItem' {vehicleName} -> vehicleName) (\s@CreateVehicleRequestItem' {} a -> s {vehicleName = a} :: CreateVehicleRequestItem)++-- | The ARN of the vehicle model (model manifest) to create the vehicle+-- from.+createVehicleRequestItem_modelManifestArn :: Lens.Lens' CreateVehicleRequestItem Prelude.Text+createVehicleRequestItem_modelManifestArn = Lens.lens (\CreateVehicleRequestItem' {modelManifestArn} -> modelManifestArn) (\s@CreateVehicleRequestItem' {} a -> s {modelManifestArn = a} :: CreateVehicleRequestItem)++-- | The Amazon Resource Name (ARN) of a decoder manifest associated with the+-- vehicle to create.+createVehicleRequestItem_decoderManifestArn :: Lens.Lens' CreateVehicleRequestItem Prelude.Text+createVehicleRequestItem_decoderManifestArn = Lens.lens (\CreateVehicleRequestItem' {decoderManifestArn} -> decoderManifestArn) (\s@CreateVehicleRequestItem' {} a -> s {decoderManifestArn = a} :: CreateVehicleRequestItem)++instance Prelude.Hashable CreateVehicleRequestItem where+  hashWithSalt _salt CreateVehicleRequestItem' {..} =+    _salt+      `Prelude.hashWithSalt` associationBehavior+      `Prelude.hashWithSalt` attributes+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` vehicleName+      `Prelude.hashWithSalt` modelManifestArn+      `Prelude.hashWithSalt` decoderManifestArn++instance Prelude.NFData CreateVehicleRequestItem where+  rnf CreateVehicleRequestItem' {..} =+    Prelude.rnf associationBehavior+      `Prelude.seq` Prelude.rnf attributes+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf vehicleName+      `Prelude.seq` Prelude.rnf modelManifestArn+      `Prelude.seq` Prelude.rnf decoderManifestArn++instance Data.ToJSON CreateVehicleRequestItem where+  toJSON CreateVehicleRequestItem' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("associationBehavior" Data..=)+              Prelude.<$> associationBehavior,+            ("attributes" Data..=) Prelude.<$> attributes,+            ("tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("vehicleName" Data..= vehicleName),+            Prelude.Just+              ("modelManifestArn" Data..= modelManifestArn),+            Prelude.Just+              ("decoderManifestArn" Data..= decoderManifestArn)+          ]+      )
+ gen/Amazonka/IoTFleetWise/Types/CreateVehicleResponseItem.hs view
@@ -0,0 +1,96 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.Types.CreateVehicleResponseItem+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTFleetWise.Types.CreateVehicleResponseItem where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Information about a created vehicle.+--+-- /See:/ 'newCreateVehicleResponseItem' smart constructor.+data CreateVehicleResponseItem = CreateVehicleResponseItem'+  { -- | The ARN of the created vehicle.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The ARN of a created or validated Amazon Web Services IoT thing.+    thingArn :: Prelude.Maybe Prelude.Text,+    -- | The unique ID of the vehicle to create.+    vehicleName :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateVehicleResponseItem' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'createVehicleResponseItem_arn' - The ARN of the created vehicle.+--+-- 'thingArn', 'createVehicleResponseItem_thingArn' - The ARN of a created or validated Amazon Web Services IoT thing.+--+-- 'vehicleName', 'createVehicleResponseItem_vehicleName' - The unique ID of the vehicle to create.+newCreateVehicleResponseItem ::+  CreateVehicleResponseItem+newCreateVehicleResponseItem =+  CreateVehicleResponseItem'+    { arn = Prelude.Nothing,+      thingArn = Prelude.Nothing,+      vehicleName = Prelude.Nothing+    }++-- | The ARN of the created vehicle.+createVehicleResponseItem_arn :: Lens.Lens' CreateVehicleResponseItem (Prelude.Maybe Prelude.Text)+createVehicleResponseItem_arn = Lens.lens (\CreateVehicleResponseItem' {arn} -> arn) (\s@CreateVehicleResponseItem' {} a -> s {arn = a} :: CreateVehicleResponseItem)++-- | The ARN of a created or validated Amazon Web Services IoT thing.+createVehicleResponseItem_thingArn :: Lens.Lens' CreateVehicleResponseItem (Prelude.Maybe Prelude.Text)+createVehicleResponseItem_thingArn = Lens.lens (\CreateVehicleResponseItem' {thingArn} -> thingArn) (\s@CreateVehicleResponseItem' {} a -> s {thingArn = a} :: CreateVehicleResponseItem)++-- | The unique ID of the vehicle to create.+createVehicleResponseItem_vehicleName :: Lens.Lens' CreateVehicleResponseItem (Prelude.Maybe Prelude.Text)+createVehicleResponseItem_vehicleName = Lens.lens (\CreateVehicleResponseItem' {vehicleName} -> vehicleName) (\s@CreateVehicleResponseItem' {} a -> s {vehicleName = a} :: CreateVehicleResponseItem)++instance Data.FromJSON CreateVehicleResponseItem where+  parseJSON =+    Data.withObject+      "CreateVehicleResponseItem"+      ( \x ->+          CreateVehicleResponseItem'+            Prelude.<$> (x Data..:? "arn")+            Prelude.<*> (x Data..:? "thingArn")+            Prelude.<*> (x Data..:? "vehicleName")+      )++instance Prelude.Hashable CreateVehicleResponseItem where+  hashWithSalt _salt CreateVehicleResponseItem' {..} =+    _salt+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` thingArn+      `Prelude.hashWithSalt` vehicleName++instance Prelude.NFData CreateVehicleResponseItem where+  rnf CreateVehicleResponseItem' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf thingArn+      `Prelude.seq` Prelude.rnf vehicleName
+ gen/Amazonka/IoTFleetWise/Types/DecoderManifestSummary.hs view
@@ -0,0 +1,171 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.Types.DecoderManifestSummary+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTFleetWise.Types.DecoderManifestSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTFleetWise.Types.ManifestStatus+import qualified Amazonka.Prelude as Prelude++-- | Information about a created decoder manifest. You can use the API+-- operation to return this information about multiple decoder manifests.+--+-- /See:/ 'newDecoderManifestSummary' smart constructor.+data DecoderManifestSummary = DecoderManifestSummary'+  { -- | The ARN of a vehicle model (model manifest) associated with the decoder+    -- manifest.+    arn :: Prelude.Maybe Prelude.Text,+    -- | A brief description of the decoder manifest.+    description :: Prelude.Maybe Prelude.Text,+    -- | The ARN of a vehicle model (model manifest) associated with the decoder+    -- manifest.+    modelManifestArn :: Prelude.Maybe Prelude.Text,+    -- | The name of the decoder manifest.+    name :: Prelude.Maybe Prelude.Text,+    -- | The state of the decoder manifest. If the status is @ACTIVE@, the+    -- decoder manifest can\'t be edited. If the status is marked @DRAFT@, you+    -- can edit the decoder manifest.+    status :: Prelude.Maybe ManifestStatus,+    -- | The time the decoder manifest was created in seconds since epoch+    -- (January 1, 1970 at midnight UTC time).+    creationTime :: Data.POSIX,+    -- | The time the decoder manifest was last updated in seconds since epoch+    -- (January 1, 1970 at midnight UTC time).+    lastModificationTime :: Data.POSIX+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DecoderManifestSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'decoderManifestSummary_arn' - The ARN of a vehicle model (model manifest) associated with the decoder+-- manifest.+--+-- 'description', 'decoderManifestSummary_description' - A brief description of the decoder manifest.+--+-- 'modelManifestArn', 'decoderManifestSummary_modelManifestArn' - The ARN of a vehicle model (model manifest) associated with the decoder+-- manifest.+--+-- 'name', 'decoderManifestSummary_name' - The name of the decoder manifest.+--+-- 'status', 'decoderManifestSummary_status' - The state of the decoder manifest. If the status is @ACTIVE@, the+-- decoder manifest can\'t be edited. If the status is marked @DRAFT@, you+-- can edit the decoder manifest.+--+-- 'creationTime', 'decoderManifestSummary_creationTime' - The time the decoder manifest was created in seconds since epoch+-- (January 1, 1970 at midnight UTC time).+--+-- 'lastModificationTime', 'decoderManifestSummary_lastModificationTime' - The time the decoder manifest was last updated in seconds since epoch+-- (January 1, 1970 at midnight UTC time).+newDecoderManifestSummary ::+  -- | 'creationTime'+  Prelude.UTCTime ->+  -- | 'lastModificationTime'+  Prelude.UTCTime ->+  DecoderManifestSummary+newDecoderManifestSummary+  pCreationTime_+  pLastModificationTime_ =+    DecoderManifestSummary'+      { arn = Prelude.Nothing,+        description = Prelude.Nothing,+        modelManifestArn = Prelude.Nothing,+        name = Prelude.Nothing,+        status = Prelude.Nothing,+        creationTime = Data._Time Lens.# pCreationTime_,+        lastModificationTime =+          Data._Time Lens.# pLastModificationTime_+      }++-- | The ARN of a vehicle model (model manifest) associated with the decoder+-- manifest.+decoderManifestSummary_arn :: Lens.Lens' DecoderManifestSummary (Prelude.Maybe Prelude.Text)+decoderManifestSummary_arn = Lens.lens (\DecoderManifestSummary' {arn} -> arn) (\s@DecoderManifestSummary' {} a -> s {arn = a} :: DecoderManifestSummary)++-- | A brief description of the decoder manifest.+decoderManifestSummary_description :: Lens.Lens' DecoderManifestSummary (Prelude.Maybe Prelude.Text)+decoderManifestSummary_description = Lens.lens (\DecoderManifestSummary' {description} -> description) (\s@DecoderManifestSummary' {} a -> s {description = a} :: DecoderManifestSummary)++-- | The ARN of a vehicle model (model manifest) associated with the decoder+-- manifest.+decoderManifestSummary_modelManifestArn :: Lens.Lens' DecoderManifestSummary (Prelude.Maybe Prelude.Text)+decoderManifestSummary_modelManifestArn = Lens.lens (\DecoderManifestSummary' {modelManifestArn} -> modelManifestArn) (\s@DecoderManifestSummary' {} a -> s {modelManifestArn = a} :: DecoderManifestSummary)++-- | The name of the decoder manifest.+decoderManifestSummary_name :: Lens.Lens' DecoderManifestSummary (Prelude.Maybe Prelude.Text)+decoderManifestSummary_name = Lens.lens (\DecoderManifestSummary' {name} -> name) (\s@DecoderManifestSummary' {} a -> s {name = a} :: DecoderManifestSummary)++-- | The state of the decoder manifest. If the status is @ACTIVE@, the+-- decoder manifest can\'t be edited. If the status is marked @DRAFT@, you+-- can edit the decoder manifest.+decoderManifestSummary_status :: Lens.Lens' DecoderManifestSummary (Prelude.Maybe ManifestStatus)+decoderManifestSummary_status = Lens.lens (\DecoderManifestSummary' {status} -> status) (\s@DecoderManifestSummary' {} a -> s {status = a} :: DecoderManifestSummary)++-- | The time the decoder manifest was created in seconds since epoch+-- (January 1, 1970 at midnight UTC time).+decoderManifestSummary_creationTime :: Lens.Lens' DecoderManifestSummary Prelude.UTCTime+decoderManifestSummary_creationTime = Lens.lens (\DecoderManifestSummary' {creationTime} -> creationTime) (\s@DecoderManifestSummary' {} a -> s {creationTime = a} :: DecoderManifestSummary) Prelude.. Data._Time++-- | The time the decoder manifest was last updated in seconds since epoch+-- (January 1, 1970 at midnight UTC time).+decoderManifestSummary_lastModificationTime :: Lens.Lens' DecoderManifestSummary Prelude.UTCTime+decoderManifestSummary_lastModificationTime = Lens.lens (\DecoderManifestSummary' {lastModificationTime} -> lastModificationTime) (\s@DecoderManifestSummary' {} a -> s {lastModificationTime = a} :: DecoderManifestSummary) Prelude.. Data._Time++instance Data.FromJSON DecoderManifestSummary where+  parseJSON =+    Data.withObject+      "DecoderManifestSummary"+      ( \x ->+          DecoderManifestSummary'+            Prelude.<$> (x Data..:? "arn")+            Prelude.<*> (x Data..:? "description")+            Prelude.<*> (x Data..:? "modelManifestArn")+            Prelude.<*> (x Data..:? "name")+            Prelude.<*> (x Data..:? "status")+            Prelude.<*> (x Data..: "creationTime")+            Prelude.<*> (x Data..: "lastModificationTime")+      )++instance Prelude.Hashable DecoderManifestSummary where+  hashWithSalt _salt DecoderManifestSummary' {..} =+    _salt+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` modelManifestArn+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` status+      `Prelude.hashWithSalt` creationTime+      `Prelude.hashWithSalt` lastModificationTime++instance Prelude.NFData DecoderManifestSummary where+  rnf DecoderManifestSummary' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf modelManifestArn+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf creationTime+      `Prelude.seq` Prelude.rnf lastModificationTime
+ gen/Amazonka/IoTFleetWise/Types/DiagnosticsMode.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.Types.DiagnosticsMode+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTFleetWise.Types.DiagnosticsMode+  ( DiagnosticsMode+      ( ..,+        DiagnosticsMode_OFF,+        DiagnosticsMode_SEND_ACTIVE_DTCS+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype DiagnosticsMode = DiagnosticsMode'+  { fromDiagnosticsMode ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern DiagnosticsMode_OFF :: DiagnosticsMode+pattern DiagnosticsMode_OFF = DiagnosticsMode' "OFF"++pattern DiagnosticsMode_SEND_ACTIVE_DTCS :: DiagnosticsMode+pattern DiagnosticsMode_SEND_ACTIVE_DTCS = DiagnosticsMode' "SEND_ACTIVE_DTCS"++{-# COMPLETE+  DiagnosticsMode_OFF,+  DiagnosticsMode_SEND_ACTIVE_DTCS,+  DiagnosticsMode'+  #-}
+ gen/Amazonka/IoTFleetWise/Types/FleetSummary.hs view
@@ -0,0 +1,153 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.Types.FleetSummary+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTFleetWise.Types.FleetSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Information about a fleet.+--+-- You can use the API operation to return this information about multiple+-- fleets.+--+-- /See:/ 'newFleetSummary' smart constructor.+data FleetSummary = FleetSummary'+  { -- | A brief description of the fleet.+    description :: Prelude.Maybe Prelude.Text,+    -- | The time the fleet was last updated in seconds since epoch (January 1,+    -- 1970 at midnight UTC time).+    lastModificationTime :: Prelude.Maybe Data.POSIX,+    -- | The unique ID of the fleet.+    id :: Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the fleet.+    arn :: Prelude.Text,+    -- | The ARN of the signal catalog associated with the fleet.+    signalCatalogArn :: Prelude.Text,+    -- | The time the fleet was created, in seconds since epoch (January 1, 1970+    -- at midnight UTC time).+    creationTime :: Data.POSIX+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'FleetSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'description', 'fleetSummary_description' - A brief description of the fleet.+--+-- 'lastModificationTime', 'fleetSummary_lastModificationTime' - The time the fleet was last updated in seconds since epoch (January 1,+-- 1970 at midnight UTC time).+--+-- 'id', 'fleetSummary_id' - The unique ID of the fleet.+--+-- 'arn', 'fleetSummary_arn' - The Amazon Resource Name (ARN) of the fleet.+--+-- 'signalCatalogArn', 'fleetSummary_signalCatalogArn' - The ARN of the signal catalog associated with the fleet.+--+-- 'creationTime', 'fleetSummary_creationTime' - The time the fleet was created, in seconds since epoch (January 1, 1970+-- at midnight UTC time).+newFleetSummary ::+  -- | 'id'+  Prelude.Text ->+  -- | 'arn'+  Prelude.Text ->+  -- | 'signalCatalogArn'+  Prelude.Text ->+  -- | 'creationTime'+  Prelude.UTCTime ->+  FleetSummary+newFleetSummary+  pId_+  pArn_+  pSignalCatalogArn_+  pCreationTime_ =+    FleetSummary'+      { description = Prelude.Nothing,+        lastModificationTime = Prelude.Nothing,+        id = pId_,+        arn = pArn_,+        signalCatalogArn = pSignalCatalogArn_,+        creationTime = Data._Time Lens.# pCreationTime_+      }++-- | A brief description of the fleet.+fleetSummary_description :: Lens.Lens' FleetSummary (Prelude.Maybe Prelude.Text)+fleetSummary_description = Lens.lens (\FleetSummary' {description} -> description) (\s@FleetSummary' {} a -> s {description = a} :: FleetSummary)++-- | The time the fleet was last updated in seconds since epoch (January 1,+-- 1970 at midnight UTC time).+fleetSummary_lastModificationTime :: Lens.Lens' FleetSummary (Prelude.Maybe Prelude.UTCTime)+fleetSummary_lastModificationTime = Lens.lens (\FleetSummary' {lastModificationTime} -> lastModificationTime) (\s@FleetSummary' {} a -> s {lastModificationTime = a} :: FleetSummary) Prelude.. Lens.mapping Data._Time++-- | The unique ID of the fleet.+fleetSummary_id :: Lens.Lens' FleetSummary Prelude.Text+fleetSummary_id = Lens.lens (\FleetSummary' {id} -> id) (\s@FleetSummary' {} a -> s {id = a} :: FleetSummary)++-- | The Amazon Resource Name (ARN) of the fleet.+fleetSummary_arn :: Lens.Lens' FleetSummary Prelude.Text+fleetSummary_arn = Lens.lens (\FleetSummary' {arn} -> arn) (\s@FleetSummary' {} a -> s {arn = a} :: FleetSummary)++-- | The ARN of the signal catalog associated with the fleet.+fleetSummary_signalCatalogArn :: Lens.Lens' FleetSummary Prelude.Text+fleetSummary_signalCatalogArn = Lens.lens (\FleetSummary' {signalCatalogArn} -> signalCatalogArn) (\s@FleetSummary' {} a -> s {signalCatalogArn = a} :: FleetSummary)++-- | The time the fleet was created, in seconds since epoch (January 1, 1970+-- at midnight UTC time).+fleetSummary_creationTime :: Lens.Lens' FleetSummary Prelude.UTCTime+fleetSummary_creationTime = Lens.lens (\FleetSummary' {creationTime} -> creationTime) (\s@FleetSummary' {} a -> s {creationTime = a} :: FleetSummary) Prelude.. Data._Time++instance Data.FromJSON FleetSummary where+  parseJSON =+    Data.withObject+      "FleetSummary"+      ( \x ->+          FleetSummary'+            Prelude.<$> (x Data..:? "description")+            Prelude.<*> (x Data..:? "lastModificationTime")+            Prelude.<*> (x Data..: "id")+            Prelude.<*> (x Data..: "arn")+            Prelude.<*> (x Data..: "signalCatalogArn")+            Prelude.<*> (x Data..: "creationTime")+      )++instance Prelude.Hashable FleetSummary where+  hashWithSalt _salt FleetSummary' {..} =+    _salt+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` lastModificationTime+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` signalCatalogArn+      `Prelude.hashWithSalt` creationTime++instance Prelude.NFData FleetSummary where+  rnf FleetSummary' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf lastModificationTime+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf arn+      `Prelude.seq` Prelude.rnf signalCatalogArn+      `Prelude.seq` Prelude.rnf creationTime
+ gen/Amazonka/IoTFleetWise/Types/FormattedVss.hs view
@@ -0,0 +1,68 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.Types.FormattedVss+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTFleetWise.Types.FormattedVss where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Vehicle Signal Specification (VSS) is a precise language used to+-- describe and model signals in vehicle networks. The JSON file collects+-- signal specificiations in a VSS format.+--+-- /See:/ 'newFormattedVss' smart constructor.+data FormattedVss = FormattedVss'+  { -- | Provides the VSS in JSON format.+    vssJson :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'FormattedVss' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'vssJson', 'formattedVss_vssJson' - Provides the VSS in JSON format.+newFormattedVss ::+  FormattedVss+newFormattedVss =+  FormattedVss' {vssJson = Prelude.Nothing}++-- | Provides the VSS in JSON format.+formattedVss_vssJson :: Lens.Lens' FormattedVss (Prelude.Maybe Prelude.Text)+formattedVss_vssJson = Lens.lens (\FormattedVss' {vssJson} -> vssJson) (\s@FormattedVss' {} a -> s {vssJson = a} :: FormattedVss)++instance Prelude.Hashable FormattedVss where+  hashWithSalt _salt FormattedVss' {..} =+    _salt `Prelude.hashWithSalt` vssJson++instance Prelude.NFData FormattedVss where+  rnf FormattedVss' {..} = Prelude.rnf vssJson++instance Data.ToJSON FormattedVss where+  toJSON FormattedVss' {..} =+    Data.object+      ( Prelude.catMaybes+          [("vssJson" Data..=) Prelude.<$> vssJson]+      )
+ gen/Amazonka/IoTFleetWise/Types/IamRegistrationResponse.hs view
@@ -0,0 +1,109 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.Types.IamRegistrationResponse+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTFleetWise.Types.IamRegistrationResponse where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTFleetWise.Types.RegistrationStatus+import qualified Amazonka.Prelude as Prelude++-- | Information about registering an Identity and Access Management (IAM)+-- resource so Amazon Web Services IoT FleetWise edge agent software can+-- transfer your vehicle data to Amazon Timestream.+--+-- /See:/ 'newIamRegistrationResponse' smart constructor.+data IamRegistrationResponse = IamRegistrationResponse'+  { -- | A message associated with a registration error.+    errorMessage :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the IAM role to register.+    roleArn :: Prelude.Text,+    -- | The status of registering your IAM resource. The status can be one of+    -- @REGISTRATION_SUCCESS@, @REGISTRATION_PENDING@, @REGISTRATION_FAILURE@.+    registrationStatus :: RegistrationStatus+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'IamRegistrationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'errorMessage', 'iamRegistrationResponse_errorMessage' - A message associated with a registration error.+--+-- 'roleArn', 'iamRegistrationResponse_roleArn' - The Amazon Resource Name (ARN) of the IAM role to register.+--+-- 'registrationStatus', 'iamRegistrationResponse_registrationStatus' - The status of registering your IAM resource. The status can be one of+-- @REGISTRATION_SUCCESS@, @REGISTRATION_PENDING@, @REGISTRATION_FAILURE@.+newIamRegistrationResponse ::+  -- | 'roleArn'+  Prelude.Text ->+  -- | 'registrationStatus'+  RegistrationStatus ->+  IamRegistrationResponse+newIamRegistrationResponse+  pRoleArn_+  pRegistrationStatus_ =+    IamRegistrationResponse'+      { errorMessage =+          Prelude.Nothing,+        roleArn = pRoleArn_,+        registrationStatus = pRegistrationStatus_+      }++-- | A message associated with a registration error.+iamRegistrationResponse_errorMessage :: Lens.Lens' IamRegistrationResponse (Prelude.Maybe Prelude.Text)+iamRegistrationResponse_errorMessage = Lens.lens (\IamRegistrationResponse' {errorMessage} -> errorMessage) (\s@IamRegistrationResponse' {} a -> s {errorMessage = a} :: IamRegistrationResponse)++-- | The Amazon Resource Name (ARN) of the IAM role to register.+iamRegistrationResponse_roleArn :: Lens.Lens' IamRegistrationResponse Prelude.Text+iamRegistrationResponse_roleArn = Lens.lens (\IamRegistrationResponse' {roleArn} -> roleArn) (\s@IamRegistrationResponse' {} a -> s {roleArn = a} :: IamRegistrationResponse)++-- | The status of registering your IAM resource. The status can be one of+-- @REGISTRATION_SUCCESS@, @REGISTRATION_PENDING@, @REGISTRATION_FAILURE@.+iamRegistrationResponse_registrationStatus :: Lens.Lens' IamRegistrationResponse RegistrationStatus+iamRegistrationResponse_registrationStatus = Lens.lens (\IamRegistrationResponse' {registrationStatus} -> registrationStatus) (\s@IamRegistrationResponse' {} a -> s {registrationStatus = a} :: IamRegistrationResponse)++instance Data.FromJSON IamRegistrationResponse where+  parseJSON =+    Data.withObject+      "IamRegistrationResponse"+      ( \x ->+          IamRegistrationResponse'+            Prelude.<$> (x Data..:? "errorMessage")+            Prelude.<*> (x Data..: "roleArn")+            Prelude.<*> (x Data..: "registrationStatus")+      )++instance Prelude.Hashable IamRegistrationResponse where+  hashWithSalt _salt IamRegistrationResponse' {..} =+    _salt+      `Prelude.hashWithSalt` errorMessage+      `Prelude.hashWithSalt` roleArn+      `Prelude.hashWithSalt` registrationStatus++instance Prelude.NFData IamRegistrationResponse where+  rnf IamRegistrationResponse' {..} =+    Prelude.rnf errorMessage+      `Prelude.seq` Prelude.rnf roleArn+      `Prelude.seq` Prelude.rnf registrationStatus
+ gen/Amazonka/IoTFleetWise/Types/IamResources.hs view
@@ -0,0 +1,87 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.Types.IamResources+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTFleetWise.Types.IamResources where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The IAM resource that enables Amazon Web Services IoT FleetWise edge+-- agent software to send data to Amazon Timestream.+--+-- For more information, see+-- <https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html IAM roles>+-- in the /Identity and Access Management User Guide/.+--+-- /See:/ 'newIamResources' smart constructor.+data IamResources = IamResources'+  { -- | The Amazon Resource Name (ARN) of the IAM resource that allows Amazon+    -- Web Services IoT FleetWise to send data to Amazon Timestream. For+    -- example, @arn:aws:iam::123456789012:role\/SERVICE-ROLE-ARN@.+    roleArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'IamResources' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'roleArn', 'iamResources_roleArn' - The Amazon Resource Name (ARN) of the IAM resource that allows Amazon+-- Web Services IoT FleetWise to send data to Amazon Timestream. For+-- example, @arn:aws:iam::123456789012:role\/SERVICE-ROLE-ARN@.+newIamResources ::+  -- | 'roleArn'+  Prelude.Text ->+  IamResources+newIamResources pRoleArn_ =+  IamResources' {roleArn = pRoleArn_}++-- | The Amazon Resource Name (ARN) of the IAM resource that allows Amazon+-- Web Services IoT FleetWise to send data to Amazon Timestream. For+-- example, @arn:aws:iam::123456789012:role\/SERVICE-ROLE-ARN@.+iamResources_roleArn :: Lens.Lens' IamResources Prelude.Text+iamResources_roleArn = Lens.lens (\IamResources' {roleArn} -> roleArn) (\s@IamResources' {} a -> s {roleArn = a} :: IamResources)++instance Data.FromJSON IamResources where+  parseJSON =+    Data.withObject+      "IamResources"+      ( \x ->+          IamResources' Prelude.<$> (x Data..: "roleArn")+      )++instance Prelude.Hashable IamResources where+  hashWithSalt _salt IamResources' {..} =+    _salt `Prelude.hashWithSalt` roleArn++instance Prelude.NFData IamResources where+  rnf IamResources' {..} = Prelude.rnf roleArn++instance Data.ToJSON IamResources where+  toJSON IamResources' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("roleArn" Data..= roleArn)]+      )
+ gen/Amazonka/IoTFleetWise/Types/LogType.hs view
@@ -0,0 +1,68 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.Types.LogType+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTFleetWise.Types.LogType+  ( LogType+      ( ..,+        LogType_ERROR,+        LogType_OFF+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype LogType = LogType' {fromLogType :: Data.Text}+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern LogType_ERROR :: LogType+pattern LogType_ERROR = LogType' "ERROR"++pattern LogType_OFF :: LogType+pattern LogType_OFF = LogType' "OFF"++{-# COMPLETE+  LogType_ERROR,+  LogType_OFF,+  LogType'+  #-}
+ gen/Amazonka/IoTFleetWise/Types/ManifestStatus.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.Types.ManifestStatus+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTFleetWise.Types.ManifestStatus+  ( ManifestStatus+      ( ..,+        ManifestStatus_ACTIVE,+        ManifestStatus_DRAFT+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ManifestStatus = ManifestStatus'+  { fromManifestStatus ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern ManifestStatus_ACTIVE :: ManifestStatus+pattern ManifestStatus_ACTIVE = ManifestStatus' "ACTIVE"++pattern ManifestStatus_DRAFT :: ManifestStatus+pattern ManifestStatus_DRAFT = ManifestStatus' "DRAFT"++{-# COMPLETE+  ManifestStatus_ACTIVE,+  ManifestStatus_DRAFT,+  ManifestStatus'+  #-}
+ gen/Amazonka/IoTFleetWise/Types/ModelManifestSummary.hs view
@@ -0,0 +1,165 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.Types.ModelManifestSummary+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTFleetWise.Types.ModelManifestSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTFleetWise.Types.ManifestStatus+import qualified Amazonka.Prelude as Prelude++-- | Information about a vehicle model (model manifest). You can use the API+-- operation to return this information about multiple vehicle models.+--+-- /See:/ 'newModelManifestSummary' smart constructor.+data ModelManifestSummary = ModelManifestSummary'+  { -- | The Amazon Resource Name (ARN) of the vehicle model.+    arn :: Prelude.Maybe Prelude.Text,+    -- | A brief description of the vehicle model.+    description :: Prelude.Maybe Prelude.Text,+    -- | The name of the vehicle model.+    name :: Prelude.Maybe Prelude.Text,+    -- | The ARN of the signal catalog associated with the vehicle model.+    signalCatalogArn :: Prelude.Maybe Prelude.Text,+    -- | The state of the vehicle model. If the status is @ACTIVE@, the vehicle+    -- model can\'t be edited. If the status is @DRAFT@, you can edit the+    -- vehicle model.+    status :: Prelude.Maybe ManifestStatus,+    -- | The time the vehicle model was created, in seconds since epoch (January+    -- 1, 1970 at midnight UTC time).+    creationTime :: Data.POSIX,+    -- | The time the vehicle model was last updated, in seconds since epoch+    -- (January 1, 1970 at midnight UTC time).+    lastModificationTime :: Data.POSIX+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ModelManifestSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'modelManifestSummary_arn' - The Amazon Resource Name (ARN) of the vehicle model.+--+-- 'description', 'modelManifestSummary_description' - A brief description of the vehicle model.+--+-- 'name', 'modelManifestSummary_name' - The name of the vehicle model.+--+-- 'signalCatalogArn', 'modelManifestSummary_signalCatalogArn' - The ARN of the signal catalog associated with the vehicle model.+--+-- 'status', 'modelManifestSummary_status' - The state of the vehicle model. If the status is @ACTIVE@, the vehicle+-- model can\'t be edited. If the status is @DRAFT@, you can edit the+-- vehicle model.+--+-- 'creationTime', 'modelManifestSummary_creationTime' - The time the vehicle model was created, in seconds since epoch (January+-- 1, 1970 at midnight UTC time).+--+-- 'lastModificationTime', 'modelManifestSummary_lastModificationTime' - The time the vehicle model was last updated, in seconds since epoch+-- (January 1, 1970 at midnight UTC time).+newModelManifestSummary ::+  -- | 'creationTime'+  Prelude.UTCTime ->+  -- | 'lastModificationTime'+  Prelude.UTCTime ->+  ModelManifestSummary+newModelManifestSummary+  pCreationTime_+  pLastModificationTime_ =+    ModelManifestSummary'+      { arn = Prelude.Nothing,+        description = Prelude.Nothing,+        name = Prelude.Nothing,+        signalCatalogArn = Prelude.Nothing,+        status = Prelude.Nothing,+        creationTime = Data._Time Lens.# pCreationTime_,+        lastModificationTime =+          Data._Time Lens.# pLastModificationTime_+      }++-- | The Amazon Resource Name (ARN) of the vehicle model.+modelManifestSummary_arn :: Lens.Lens' ModelManifestSummary (Prelude.Maybe Prelude.Text)+modelManifestSummary_arn = Lens.lens (\ModelManifestSummary' {arn} -> arn) (\s@ModelManifestSummary' {} a -> s {arn = a} :: ModelManifestSummary)++-- | A brief description of the vehicle model.+modelManifestSummary_description :: Lens.Lens' ModelManifestSummary (Prelude.Maybe Prelude.Text)+modelManifestSummary_description = Lens.lens (\ModelManifestSummary' {description} -> description) (\s@ModelManifestSummary' {} a -> s {description = a} :: ModelManifestSummary)++-- | The name of the vehicle model.+modelManifestSummary_name :: Lens.Lens' ModelManifestSummary (Prelude.Maybe Prelude.Text)+modelManifestSummary_name = Lens.lens (\ModelManifestSummary' {name} -> name) (\s@ModelManifestSummary' {} a -> s {name = a} :: ModelManifestSummary)++-- | The ARN of the signal catalog associated with the vehicle model.+modelManifestSummary_signalCatalogArn :: Lens.Lens' ModelManifestSummary (Prelude.Maybe Prelude.Text)+modelManifestSummary_signalCatalogArn = Lens.lens (\ModelManifestSummary' {signalCatalogArn} -> signalCatalogArn) (\s@ModelManifestSummary' {} a -> s {signalCatalogArn = a} :: ModelManifestSummary)++-- | The state of the vehicle model. If the status is @ACTIVE@, the vehicle+-- model can\'t be edited. If the status is @DRAFT@, you can edit the+-- vehicle model.+modelManifestSummary_status :: Lens.Lens' ModelManifestSummary (Prelude.Maybe ManifestStatus)+modelManifestSummary_status = Lens.lens (\ModelManifestSummary' {status} -> status) (\s@ModelManifestSummary' {} a -> s {status = a} :: ModelManifestSummary)++-- | The time the vehicle model was created, in seconds since epoch (January+-- 1, 1970 at midnight UTC time).+modelManifestSummary_creationTime :: Lens.Lens' ModelManifestSummary Prelude.UTCTime+modelManifestSummary_creationTime = Lens.lens (\ModelManifestSummary' {creationTime} -> creationTime) (\s@ModelManifestSummary' {} a -> s {creationTime = a} :: ModelManifestSummary) Prelude.. Data._Time++-- | The time the vehicle model was last updated, in seconds since epoch+-- (January 1, 1970 at midnight UTC time).+modelManifestSummary_lastModificationTime :: Lens.Lens' ModelManifestSummary Prelude.UTCTime+modelManifestSummary_lastModificationTime = Lens.lens (\ModelManifestSummary' {lastModificationTime} -> lastModificationTime) (\s@ModelManifestSummary' {} a -> s {lastModificationTime = a} :: ModelManifestSummary) Prelude.. Data._Time++instance Data.FromJSON ModelManifestSummary where+  parseJSON =+    Data.withObject+      "ModelManifestSummary"+      ( \x ->+          ModelManifestSummary'+            Prelude.<$> (x Data..:? "arn")+            Prelude.<*> (x Data..:? "description")+            Prelude.<*> (x Data..:? "name")+            Prelude.<*> (x Data..:? "signalCatalogArn")+            Prelude.<*> (x Data..:? "status")+            Prelude.<*> (x Data..: "creationTime")+            Prelude.<*> (x Data..: "lastModificationTime")+      )++instance Prelude.Hashable ModelManifestSummary where+  hashWithSalt _salt ModelManifestSummary' {..} =+    _salt+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` signalCatalogArn+      `Prelude.hashWithSalt` status+      `Prelude.hashWithSalt` creationTime+      `Prelude.hashWithSalt` lastModificationTime++instance Prelude.NFData ModelManifestSummary where+  rnf ModelManifestSummary' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf signalCatalogArn+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf creationTime+      `Prelude.seq` Prelude.rnf lastModificationTime
+ gen/Amazonka/IoTFleetWise/Types/NetworkFileDefinition.hs view
@@ -0,0 +1,70 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.Types.NetworkFileDefinition+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTFleetWise.Types.NetworkFileDefinition where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTFleetWise.Types.CanDbcDefinition+import qualified Amazonka.Prelude as Prelude++-- | Specifications for defining a vehicle network.+--+-- /See:/ 'newNetworkFileDefinition' smart constructor.+data NetworkFileDefinition = NetworkFileDefinition'+  { -- | Information, including CAN DBC files, about the configurations used to+    -- create a decoder manifest.+    canDbc :: Prelude.Maybe CanDbcDefinition+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'NetworkFileDefinition' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'canDbc', 'networkFileDefinition_canDbc' - Information, including CAN DBC files, about the configurations used to+-- create a decoder manifest.+newNetworkFileDefinition ::+  NetworkFileDefinition+newNetworkFileDefinition =+  NetworkFileDefinition' {canDbc = Prelude.Nothing}++-- | Information, including CAN DBC files, about the configurations used to+-- create a decoder manifest.+networkFileDefinition_canDbc :: Lens.Lens' NetworkFileDefinition (Prelude.Maybe CanDbcDefinition)+networkFileDefinition_canDbc = Lens.lens (\NetworkFileDefinition' {canDbc} -> canDbc) (\s@NetworkFileDefinition' {} a -> s {canDbc = a} :: NetworkFileDefinition)++instance Prelude.Hashable NetworkFileDefinition where+  hashWithSalt _salt NetworkFileDefinition' {..} =+    _salt `Prelude.hashWithSalt` canDbc++instance Prelude.NFData NetworkFileDefinition where+  rnf NetworkFileDefinition' {..} = Prelude.rnf canDbc++instance Data.ToJSON NetworkFileDefinition where+  toJSON NetworkFileDefinition' {..} =+    Data.object+      ( Prelude.catMaybes+          [("canDbc" Data..=) Prelude.<$> canDbc]+      )
+ gen/Amazonka/IoTFleetWise/Types/NetworkInterface.hs view
@@ -0,0 +1,145 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.Types.NetworkInterface+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTFleetWise.Types.NetworkInterface where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTFleetWise.Types.CanInterface+import Amazonka.IoTFleetWise.Types.NetworkInterfaceType+import Amazonka.IoTFleetWise.Types.ObdInterface+import qualified Amazonka.Prelude as Prelude++-- | Represents a node and its specifications in an in-vehicle communication+-- network. All signal decoders must be associated with a network node.+--+-- To return this information about all the network interfaces specified in+-- a decoder manifest, use the API operation.+--+-- /See:/ 'newNetworkInterface' smart constructor.+data NetworkInterface = NetworkInterface'+  { -- | Information about a network interface specified by the Controller Area+    -- Network (CAN) protocol.+    canInterface :: Prelude.Maybe CanInterface,+    -- | Information about a network interface specified by the On-board+    -- diagnostic (OBD) II protocol.+    obdInterface :: Prelude.Maybe ObdInterface,+    -- | The ID of the network interface.+    interfaceId :: Prelude.Text,+    -- | The network protocol for the vehicle. For example, @CAN_SIGNAL@+    -- specifies a protocol that defines how data is communicated between+    -- electronic control units (ECUs). @OBD_SIGNAL@ specifies a protocol that+    -- defines how self-diagnostic data is communicated between ECUs.+    type' :: NetworkInterfaceType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'NetworkInterface' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'canInterface', 'networkInterface_canInterface' - Information about a network interface specified by the Controller Area+-- Network (CAN) protocol.+--+-- 'obdInterface', 'networkInterface_obdInterface' - Information about a network interface specified by the On-board+-- diagnostic (OBD) II protocol.+--+-- 'interfaceId', 'networkInterface_interfaceId' - The ID of the network interface.+--+-- 'type'', 'networkInterface_type' - The network protocol for the vehicle. For example, @CAN_SIGNAL@+-- specifies a protocol that defines how data is communicated between+-- electronic control units (ECUs). @OBD_SIGNAL@ specifies a protocol that+-- defines how self-diagnostic data is communicated between ECUs.+newNetworkInterface ::+  -- | 'interfaceId'+  Prelude.Text ->+  -- | 'type''+  NetworkInterfaceType ->+  NetworkInterface+newNetworkInterface pInterfaceId_ pType_ =+  NetworkInterface'+    { canInterface = Prelude.Nothing,+      obdInterface = Prelude.Nothing,+      interfaceId = pInterfaceId_,+      type' = pType_+    }++-- | Information about a network interface specified by the Controller Area+-- Network (CAN) protocol.+networkInterface_canInterface :: Lens.Lens' NetworkInterface (Prelude.Maybe CanInterface)+networkInterface_canInterface = Lens.lens (\NetworkInterface' {canInterface} -> canInterface) (\s@NetworkInterface' {} a -> s {canInterface = a} :: NetworkInterface)++-- | Information about a network interface specified by the On-board+-- diagnostic (OBD) II protocol.+networkInterface_obdInterface :: Lens.Lens' NetworkInterface (Prelude.Maybe ObdInterface)+networkInterface_obdInterface = Lens.lens (\NetworkInterface' {obdInterface} -> obdInterface) (\s@NetworkInterface' {} a -> s {obdInterface = a} :: NetworkInterface)++-- | The ID of the network interface.+networkInterface_interfaceId :: Lens.Lens' NetworkInterface Prelude.Text+networkInterface_interfaceId = Lens.lens (\NetworkInterface' {interfaceId} -> interfaceId) (\s@NetworkInterface' {} a -> s {interfaceId = a} :: NetworkInterface)++-- | The network protocol for the vehicle. For example, @CAN_SIGNAL@+-- specifies a protocol that defines how data is communicated between+-- electronic control units (ECUs). @OBD_SIGNAL@ specifies a protocol that+-- defines how self-diagnostic data is communicated between ECUs.+networkInterface_type :: Lens.Lens' NetworkInterface NetworkInterfaceType+networkInterface_type = Lens.lens (\NetworkInterface' {type'} -> type') (\s@NetworkInterface' {} a -> s {type' = a} :: NetworkInterface)++instance Data.FromJSON NetworkInterface where+  parseJSON =+    Data.withObject+      "NetworkInterface"+      ( \x ->+          NetworkInterface'+            Prelude.<$> (x Data..:? "canInterface")+            Prelude.<*> (x Data..:? "obdInterface")+            Prelude.<*> (x Data..: "interfaceId")+            Prelude.<*> (x Data..: "type")+      )++instance Prelude.Hashable NetworkInterface where+  hashWithSalt _salt NetworkInterface' {..} =+    _salt+      `Prelude.hashWithSalt` canInterface+      `Prelude.hashWithSalt` obdInterface+      `Prelude.hashWithSalt` interfaceId+      `Prelude.hashWithSalt` type'++instance Prelude.NFData NetworkInterface where+  rnf NetworkInterface' {..} =+    Prelude.rnf canInterface+      `Prelude.seq` Prelude.rnf obdInterface+      `Prelude.seq` Prelude.rnf interfaceId+      `Prelude.seq` Prelude.rnf type'++instance Data.ToJSON NetworkInterface where+  toJSON NetworkInterface' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("canInterface" Data..=) Prelude.<$> canInterface,+            ("obdInterface" Data..=) Prelude.<$> obdInterface,+            Prelude.Just ("interfaceId" Data..= interfaceId),+            Prelude.Just ("type" Data..= type')+          ]+      )
+ gen/Amazonka/IoTFleetWise/Types/NetworkInterfaceType.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.Types.NetworkInterfaceType+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTFleetWise.Types.NetworkInterfaceType+  ( NetworkInterfaceType+      ( ..,+        NetworkInterfaceType_CAN_INTERFACE,+        NetworkInterfaceType_OBD_INTERFACE+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype NetworkInterfaceType = NetworkInterfaceType'+  { fromNetworkInterfaceType ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern NetworkInterfaceType_CAN_INTERFACE :: NetworkInterfaceType+pattern NetworkInterfaceType_CAN_INTERFACE = NetworkInterfaceType' "CAN_INTERFACE"++pattern NetworkInterfaceType_OBD_INTERFACE :: NetworkInterfaceType+pattern NetworkInterfaceType_OBD_INTERFACE = NetworkInterfaceType' "OBD_INTERFACE"++{-# COMPLETE+  NetworkInterfaceType_CAN_INTERFACE,+  NetworkInterfaceType_OBD_INTERFACE,+  NetworkInterfaceType'+  #-}
+ gen/Amazonka/IoTFleetWise/Types/Node.hs view
@@ -0,0 +1,141 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.Types.Node+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTFleetWise.Types.Node where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTFleetWise.Types.Actuator+import Amazonka.IoTFleetWise.Types.Attribute+import Amazonka.IoTFleetWise.Types.Branch+import Amazonka.IoTFleetWise.Types.Sensor+import qualified Amazonka.Prelude as Prelude++-- | A general abstraction of a signal. A node can be specified as an+-- actuator, attribute, branch, or sensor.+--+-- /See:/ 'newNode' smart constructor.+data Node = Node'+  { -- | Information about a node specified as an actuator.+    --+    -- An actuator is a digital representation of a vehicle device.+    actuator :: Prelude.Maybe Actuator,+    -- | Information about a node specified as an attribute.+    --+    -- An attribute represents static information about a vehicle.+    attribute :: Prelude.Maybe Attribute,+    -- | Information about a node specified as a branch.+    --+    -- A group of signals that are defined in a hierarchical structure.+    branch :: Prelude.Maybe Branch,+    sensor :: Prelude.Maybe Sensor+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Node' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'actuator', 'node_actuator' - Information about a node specified as an actuator.+--+-- An actuator is a digital representation of a vehicle device.+--+-- 'attribute', 'node_attribute' - Information about a node specified as an attribute.+--+-- An attribute represents static information about a vehicle.+--+-- 'branch', 'node_branch' - Information about a node specified as a branch.+--+-- A group of signals that are defined in a hierarchical structure.+--+-- 'sensor', 'node_sensor' - Undocumented member.+newNode ::+  Node+newNode =+  Node'+    { actuator = Prelude.Nothing,+      attribute = Prelude.Nothing,+      branch = Prelude.Nothing,+      sensor = Prelude.Nothing+    }++-- | Information about a node specified as an actuator.+--+-- An actuator is a digital representation of a vehicle device.+node_actuator :: Lens.Lens' Node (Prelude.Maybe Actuator)+node_actuator = Lens.lens (\Node' {actuator} -> actuator) (\s@Node' {} a -> s {actuator = a} :: Node)++-- | Information about a node specified as an attribute.+--+-- An attribute represents static information about a vehicle.+node_attribute :: Lens.Lens' Node (Prelude.Maybe Attribute)+node_attribute = Lens.lens (\Node' {attribute} -> attribute) (\s@Node' {} a -> s {attribute = a} :: Node)++-- | Information about a node specified as a branch.+--+-- A group of signals that are defined in a hierarchical structure.+node_branch :: Lens.Lens' Node (Prelude.Maybe Branch)+node_branch = Lens.lens (\Node' {branch} -> branch) (\s@Node' {} a -> s {branch = a} :: Node)++-- | Undocumented member.+node_sensor :: Lens.Lens' Node (Prelude.Maybe Sensor)+node_sensor = Lens.lens (\Node' {sensor} -> sensor) (\s@Node' {} a -> s {sensor = a} :: Node)++instance Data.FromJSON Node where+  parseJSON =+    Data.withObject+      "Node"+      ( \x ->+          Node'+            Prelude.<$> (x Data..:? "actuator")+            Prelude.<*> (x Data..:? "attribute")+            Prelude.<*> (x Data..:? "branch")+            Prelude.<*> (x Data..:? "sensor")+      )++instance Prelude.Hashable Node where+  hashWithSalt _salt Node' {..} =+    _salt+      `Prelude.hashWithSalt` actuator+      `Prelude.hashWithSalt` attribute+      `Prelude.hashWithSalt` branch+      `Prelude.hashWithSalt` sensor++instance Prelude.NFData Node where+  rnf Node' {..} =+    Prelude.rnf actuator+      `Prelude.seq` Prelude.rnf attribute+      `Prelude.seq` Prelude.rnf branch+      `Prelude.seq` Prelude.rnf sensor++instance Data.ToJSON Node where+  toJSON Node' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("actuator" Data..=) Prelude.<$> actuator,+            ("attribute" Data..=) Prelude.<$> attribute,+            ("branch" Data..=) Prelude.<$> branch,+            ("sensor" Data..=) Prelude.<$> sensor+          ]+      )
+ gen/Amazonka/IoTFleetWise/Types/NodeCounts.hs view
@@ -0,0 +1,124 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.Types.NodeCounts+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTFleetWise.Types.NodeCounts where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Information about the number of nodes and node types in a vehicle+-- network.+--+-- /See:/ 'newNodeCounts' smart constructor.+data NodeCounts = NodeCounts'+  { -- | The total number of nodes in a vehicle network that represent actuators.+    totalActuators :: Prelude.Maybe Prelude.Int,+    -- | The total number of nodes in a vehicle network that represent+    -- attributes.+    totalAttributes :: Prelude.Maybe Prelude.Int,+    -- | The total number of nodes in a vehicle network that represent branches.+    totalBranches :: Prelude.Maybe Prelude.Int,+    -- | The total number of nodes in a vehicle network.+    totalNodes :: Prelude.Maybe Prelude.Int,+    -- | The total number of nodes in a vehicle network that represent sensors.+    totalSensors :: Prelude.Maybe Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'NodeCounts' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'totalActuators', 'nodeCounts_totalActuators' - The total number of nodes in a vehicle network that represent actuators.+--+-- 'totalAttributes', 'nodeCounts_totalAttributes' - The total number of nodes in a vehicle network that represent+-- attributes.+--+-- 'totalBranches', 'nodeCounts_totalBranches' - The total number of nodes in a vehicle network that represent branches.+--+-- 'totalNodes', 'nodeCounts_totalNodes' - The total number of nodes in a vehicle network.+--+-- 'totalSensors', 'nodeCounts_totalSensors' - The total number of nodes in a vehicle network that represent sensors.+newNodeCounts ::+  NodeCounts+newNodeCounts =+  NodeCounts'+    { totalActuators = Prelude.Nothing,+      totalAttributes = Prelude.Nothing,+      totalBranches = Prelude.Nothing,+      totalNodes = Prelude.Nothing,+      totalSensors = Prelude.Nothing+    }++-- | The total number of nodes in a vehicle network that represent actuators.+nodeCounts_totalActuators :: Lens.Lens' NodeCounts (Prelude.Maybe Prelude.Int)+nodeCounts_totalActuators = Lens.lens (\NodeCounts' {totalActuators} -> totalActuators) (\s@NodeCounts' {} a -> s {totalActuators = a} :: NodeCounts)++-- | The total number of nodes in a vehicle network that represent+-- attributes.+nodeCounts_totalAttributes :: Lens.Lens' NodeCounts (Prelude.Maybe Prelude.Int)+nodeCounts_totalAttributes = Lens.lens (\NodeCounts' {totalAttributes} -> totalAttributes) (\s@NodeCounts' {} a -> s {totalAttributes = a} :: NodeCounts)++-- | The total number of nodes in a vehicle network that represent branches.+nodeCounts_totalBranches :: Lens.Lens' NodeCounts (Prelude.Maybe Prelude.Int)+nodeCounts_totalBranches = Lens.lens (\NodeCounts' {totalBranches} -> totalBranches) (\s@NodeCounts' {} a -> s {totalBranches = a} :: NodeCounts)++-- | The total number of nodes in a vehicle network.+nodeCounts_totalNodes :: Lens.Lens' NodeCounts (Prelude.Maybe Prelude.Int)+nodeCounts_totalNodes = Lens.lens (\NodeCounts' {totalNodes} -> totalNodes) (\s@NodeCounts' {} a -> s {totalNodes = a} :: NodeCounts)++-- | The total number of nodes in a vehicle network that represent sensors.+nodeCounts_totalSensors :: Lens.Lens' NodeCounts (Prelude.Maybe Prelude.Int)+nodeCounts_totalSensors = Lens.lens (\NodeCounts' {totalSensors} -> totalSensors) (\s@NodeCounts' {} a -> s {totalSensors = a} :: NodeCounts)++instance Data.FromJSON NodeCounts where+  parseJSON =+    Data.withObject+      "NodeCounts"+      ( \x ->+          NodeCounts'+            Prelude.<$> (x Data..:? "totalActuators")+            Prelude.<*> (x Data..:? "totalAttributes")+            Prelude.<*> (x Data..:? "totalBranches")+            Prelude.<*> (x Data..:? "totalNodes")+            Prelude.<*> (x Data..:? "totalSensors")+      )++instance Prelude.Hashable NodeCounts where+  hashWithSalt _salt NodeCounts' {..} =+    _salt+      `Prelude.hashWithSalt` totalActuators+      `Prelude.hashWithSalt` totalAttributes+      `Prelude.hashWithSalt` totalBranches+      `Prelude.hashWithSalt` totalNodes+      `Prelude.hashWithSalt` totalSensors++instance Prelude.NFData NodeCounts where+  rnf NodeCounts' {..} =+    Prelude.rnf totalActuators+      `Prelude.seq` Prelude.rnf totalAttributes+      `Prelude.seq` Prelude.rnf totalBranches+      `Prelude.seq` Prelude.rnf totalNodes+      `Prelude.seq` Prelude.rnf totalSensors
+ gen/Amazonka/IoTFleetWise/Types/NodeDataType.hs view
@@ -0,0 +1,196 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.Types.NodeDataType+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTFleetWise.Types.NodeDataType+  ( NodeDataType+      ( ..,+        NodeDataType_BOOLEAN,+        NodeDataType_BOOLEAN_ARRAY,+        NodeDataType_DOUBLE,+        NodeDataType_DOUBLE_ARRAY,+        NodeDataType_FLOAT,+        NodeDataType_FLOAT_ARRAY,+        NodeDataType_INT16,+        NodeDataType_INT16_ARRAY,+        NodeDataType_INT32,+        NodeDataType_INT32_ARRAY,+        NodeDataType_INT64,+        NodeDataType_INT64_ARRAY,+        NodeDataType_INT8,+        NodeDataType_INT8_ARRAY,+        NodeDataType_STRING,+        NodeDataType_STRING_ARRAY,+        NodeDataType_UINT16,+        NodeDataType_UINT16_ARRAY,+        NodeDataType_UINT32,+        NodeDataType_UINT32_ARRAY,+        NodeDataType_UINT64,+        NodeDataType_UINT64_ARRAY,+        NodeDataType_UINT8,+        NodeDataType_UINT8_ARRAY,+        NodeDataType_UNIX_TIMESTAMP,+        NodeDataType_UNIX_TIMESTAMP_ARRAY,+        NodeDataType_UNKNOWN+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype NodeDataType = NodeDataType'+  { fromNodeDataType ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern NodeDataType_BOOLEAN :: NodeDataType+pattern NodeDataType_BOOLEAN = NodeDataType' "BOOLEAN"++pattern NodeDataType_BOOLEAN_ARRAY :: NodeDataType+pattern NodeDataType_BOOLEAN_ARRAY = NodeDataType' "BOOLEAN_ARRAY"++pattern NodeDataType_DOUBLE :: NodeDataType+pattern NodeDataType_DOUBLE = NodeDataType' "DOUBLE"++pattern NodeDataType_DOUBLE_ARRAY :: NodeDataType+pattern NodeDataType_DOUBLE_ARRAY = NodeDataType' "DOUBLE_ARRAY"++pattern NodeDataType_FLOAT :: NodeDataType+pattern NodeDataType_FLOAT = NodeDataType' "FLOAT"++pattern NodeDataType_FLOAT_ARRAY :: NodeDataType+pattern NodeDataType_FLOAT_ARRAY = NodeDataType' "FLOAT_ARRAY"++pattern NodeDataType_INT16 :: NodeDataType+pattern NodeDataType_INT16 = NodeDataType' "INT16"++pattern NodeDataType_INT16_ARRAY :: NodeDataType+pattern NodeDataType_INT16_ARRAY = NodeDataType' "INT16_ARRAY"++pattern NodeDataType_INT32 :: NodeDataType+pattern NodeDataType_INT32 = NodeDataType' "INT32"++pattern NodeDataType_INT32_ARRAY :: NodeDataType+pattern NodeDataType_INT32_ARRAY = NodeDataType' "INT32_ARRAY"++pattern NodeDataType_INT64 :: NodeDataType+pattern NodeDataType_INT64 = NodeDataType' "INT64"++pattern NodeDataType_INT64_ARRAY :: NodeDataType+pattern NodeDataType_INT64_ARRAY = NodeDataType' "INT64_ARRAY"++pattern NodeDataType_INT8 :: NodeDataType+pattern NodeDataType_INT8 = NodeDataType' "INT8"++pattern NodeDataType_INT8_ARRAY :: NodeDataType+pattern NodeDataType_INT8_ARRAY = NodeDataType' "INT8_ARRAY"++pattern NodeDataType_STRING :: NodeDataType+pattern NodeDataType_STRING = NodeDataType' "STRING"++pattern NodeDataType_STRING_ARRAY :: NodeDataType+pattern NodeDataType_STRING_ARRAY = NodeDataType' "STRING_ARRAY"++pattern NodeDataType_UINT16 :: NodeDataType+pattern NodeDataType_UINT16 = NodeDataType' "UINT16"++pattern NodeDataType_UINT16_ARRAY :: NodeDataType+pattern NodeDataType_UINT16_ARRAY = NodeDataType' "UINT16_ARRAY"++pattern NodeDataType_UINT32 :: NodeDataType+pattern NodeDataType_UINT32 = NodeDataType' "UINT32"++pattern NodeDataType_UINT32_ARRAY :: NodeDataType+pattern NodeDataType_UINT32_ARRAY = NodeDataType' "UINT32_ARRAY"++pattern NodeDataType_UINT64 :: NodeDataType+pattern NodeDataType_UINT64 = NodeDataType' "UINT64"++pattern NodeDataType_UINT64_ARRAY :: NodeDataType+pattern NodeDataType_UINT64_ARRAY = NodeDataType' "UINT64_ARRAY"++pattern NodeDataType_UINT8 :: NodeDataType+pattern NodeDataType_UINT8 = NodeDataType' "UINT8"++pattern NodeDataType_UINT8_ARRAY :: NodeDataType+pattern NodeDataType_UINT8_ARRAY = NodeDataType' "UINT8_ARRAY"++pattern NodeDataType_UNIX_TIMESTAMP :: NodeDataType+pattern NodeDataType_UNIX_TIMESTAMP = NodeDataType' "UNIX_TIMESTAMP"++pattern NodeDataType_UNIX_TIMESTAMP_ARRAY :: NodeDataType+pattern NodeDataType_UNIX_TIMESTAMP_ARRAY = NodeDataType' "UNIX_TIMESTAMP_ARRAY"++pattern NodeDataType_UNKNOWN :: NodeDataType+pattern NodeDataType_UNKNOWN = NodeDataType' "UNKNOWN"++{-# COMPLETE+  NodeDataType_BOOLEAN,+  NodeDataType_BOOLEAN_ARRAY,+  NodeDataType_DOUBLE,+  NodeDataType_DOUBLE_ARRAY,+  NodeDataType_FLOAT,+  NodeDataType_FLOAT_ARRAY,+  NodeDataType_INT16,+  NodeDataType_INT16_ARRAY,+  NodeDataType_INT32,+  NodeDataType_INT32_ARRAY,+  NodeDataType_INT64,+  NodeDataType_INT64_ARRAY,+  NodeDataType_INT8,+  NodeDataType_INT8_ARRAY,+  NodeDataType_STRING,+  NodeDataType_STRING_ARRAY,+  NodeDataType_UINT16,+  NodeDataType_UINT16_ARRAY,+  NodeDataType_UINT32,+  NodeDataType_UINT32_ARRAY,+  NodeDataType_UINT64,+  NodeDataType_UINT64_ARRAY,+  NodeDataType_UINT8,+  NodeDataType_UINT8_ARRAY,+  NodeDataType_UNIX_TIMESTAMP,+  NodeDataType_UNIX_TIMESTAMP_ARRAY,+  NodeDataType_UNKNOWN,+  NodeDataType'+  #-}
+ gen/Amazonka/IoTFleetWise/Types/ObdInterface.hs view
@@ -0,0 +1,172 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.Types.ObdInterface+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTFleetWise.Types.ObdInterface where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | A network interface that specifies the On-board diagnostic (OBD) II+-- network protocol.+--+-- /See:/ 'newObdInterface' smart constructor.+data ObdInterface = ObdInterface'+  { -- | The maximum number message requests per diagnostic trouble code per+    -- second.+    dtcRequestIntervalSeconds :: Prelude.Maybe Prelude.Natural,+    -- | Whether the vehicle has a transmission control module (TCM).+    hasTransmissionEcu :: Prelude.Maybe Prelude.Bool,+    -- | The standard OBD II PID.+    obdStandard :: Prelude.Maybe Prelude.Text,+    -- | The maximum number message requests per second.+    pidRequestIntervalSeconds :: Prelude.Maybe Prelude.Natural,+    -- | Whether to use extended IDs in the message.+    useExtendedIds :: Prelude.Maybe Prelude.Bool,+    -- | The name of the interface.+    name :: Prelude.Text,+    -- | The ID of the message requesting vehicle data.+    requestMessageId :: Prelude.Natural+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ObdInterface' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dtcRequestIntervalSeconds', 'obdInterface_dtcRequestIntervalSeconds' - The maximum number message requests per diagnostic trouble code per+-- second.+--+-- 'hasTransmissionEcu', 'obdInterface_hasTransmissionEcu' - Whether the vehicle has a transmission control module (TCM).+--+-- 'obdStandard', 'obdInterface_obdStandard' - The standard OBD II PID.+--+-- 'pidRequestIntervalSeconds', 'obdInterface_pidRequestIntervalSeconds' - The maximum number message requests per second.+--+-- 'useExtendedIds', 'obdInterface_useExtendedIds' - Whether to use extended IDs in the message.+--+-- 'name', 'obdInterface_name' - The name of the interface.+--+-- 'requestMessageId', 'obdInterface_requestMessageId' - The ID of the message requesting vehicle data.+newObdInterface ::+  -- | 'name'+  Prelude.Text ->+  -- | 'requestMessageId'+  Prelude.Natural ->+  ObdInterface+newObdInterface pName_ pRequestMessageId_ =+  ObdInterface'+    { dtcRequestIntervalSeconds =+        Prelude.Nothing,+      hasTransmissionEcu = Prelude.Nothing,+      obdStandard = Prelude.Nothing,+      pidRequestIntervalSeconds = Prelude.Nothing,+      useExtendedIds = Prelude.Nothing,+      name = pName_,+      requestMessageId = pRequestMessageId_+    }++-- | The maximum number message requests per diagnostic trouble code per+-- second.+obdInterface_dtcRequestIntervalSeconds :: Lens.Lens' ObdInterface (Prelude.Maybe Prelude.Natural)+obdInterface_dtcRequestIntervalSeconds = Lens.lens (\ObdInterface' {dtcRequestIntervalSeconds} -> dtcRequestIntervalSeconds) (\s@ObdInterface' {} a -> s {dtcRequestIntervalSeconds = a} :: ObdInterface)++-- | Whether the vehicle has a transmission control module (TCM).+obdInterface_hasTransmissionEcu :: Lens.Lens' ObdInterface (Prelude.Maybe Prelude.Bool)+obdInterface_hasTransmissionEcu = Lens.lens (\ObdInterface' {hasTransmissionEcu} -> hasTransmissionEcu) (\s@ObdInterface' {} a -> s {hasTransmissionEcu = a} :: ObdInterface)++-- | The standard OBD II PID.+obdInterface_obdStandard :: Lens.Lens' ObdInterface (Prelude.Maybe Prelude.Text)+obdInterface_obdStandard = Lens.lens (\ObdInterface' {obdStandard} -> obdStandard) (\s@ObdInterface' {} a -> s {obdStandard = a} :: ObdInterface)++-- | The maximum number message requests per second.+obdInterface_pidRequestIntervalSeconds :: Lens.Lens' ObdInterface (Prelude.Maybe Prelude.Natural)+obdInterface_pidRequestIntervalSeconds = Lens.lens (\ObdInterface' {pidRequestIntervalSeconds} -> pidRequestIntervalSeconds) (\s@ObdInterface' {} a -> s {pidRequestIntervalSeconds = a} :: ObdInterface)++-- | Whether to use extended IDs in the message.+obdInterface_useExtendedIds :: Lens.Lens' ObdInterface (Prelude.Maybe Prelude.Bool)+obdInterface_useExtendedIds = Lens.lens (\ObdInterface' {useExtendedIds} -> useExtendedIds) (\s@ObdInterface' {} a -> s {useExtendedIds = a} :: ObdInterface)++-- | The name of the interface.+obdInterface_name :: Lens.Lens' ObdInterface Prelude.Text+obdInterface_name = Lens.lens (\ObdInterface' {name} -> name) (\s@ObdInterface' {} a -> s {name = a} :: ObdInterface)++-- | The ID of the message requesting vehicle data.+obdInterface_requestMessageId :: Lens.Lens' ObdInterface Prelude.Natural+obdInterface_requestMessageId = Lens.lens (\ObdInterface' {requestMessageId} -> requestMessageId) (\s@ObdInterface' {} a -> s {requestMessageId = a} :: ObdInterface)++instance Data.FromJSON ObdInterface where+  parseJSON =+    Data.withObject+      "ObdInterface"+      ( \x ->+          ObdInterface'+            Prelude.<$> (x Data..:? "dtcRequestIntervalSeconds")+            Prelude.<*> (x Data..:? "hasTransmissionEcu")+            Prelude.<*> (x Data..:? "obdStandard")+            Prelude.<*> (x Data..:? "pidRequestIntervalSeconds")+            Prelude.<*> (x Data..:? "useExtendedIds")+            Prelude.<*> (x Data..: "name")+            Prelude.<*> (x Data..: "requestMessageId")+      )++instance Prelude.Hashable ObdInterface where+  hashWithSalt _salt ObdInterface' {..} =+    _salt+      `Prelude.hashWithSalt` dtcRequestIntervalSeconds+      `Prelude.hashWithSalt` hasTransmissionEcu+      `Prelude.hashWithSalt` obdStandard+      `Prelude.hashWithSalt` pidRequestIntervalSeconds+      `Prelude.hashWithSalt` useExtendedIds+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` requestMessageId++instance Prelude.NFData ObdInterface where+  rnf ObdInterface' {..} =+    Prelude.rnf dtcRequestIntervalSeconds+      `Prelude.seq` Prelude.rnf hasTransmissionEcu+      `Prelude.seq` Prelude.rnf obdStandard+      `Prelude.seq` Prelude.rnf pidRequestIntervalSeconds+      `Prelude.seq` Prelude.rnf useExtendedIds+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf requestMessageId++instance Data.ToJSON ObdInterface where+  toJSON ObdInterface' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("dtcRequestIntervalSeconds" Data..=)+              Prelude.<$> dtcRequestIntervalSeconds,+            ("hasTransmissionEcu" Data..=)+              Prelude.<$> hasTransmissionEcu,+            ("obdStandard" Data..=) Prelude.<$> obdStandard,+            ("pidRequestIntervalSeconds" Data..=)+              Prelude.<$> pidRequestIntervalSeconds,+            ("useExtendedIds" Data..=)+              Prelude.<$> useExtendedIds,+            Prelude.Just ("name" Data..= name),+            Prelude.Just+              ("requestMessageId" Data..= requestMessageId)+          ]+      )
+ gen/Amazonka/IoTFleetWise/Types/ObdSignal.hs view
@@ -0,0 +1,207 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.Types.ObdSignal+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTFleetWise.Types.ObdSignal where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Information about signal messages using the on-board diagnostics (OBD)+-- II protocol in a vehicle.+--+-- /See:/ 'newObdSignal' smart constructor.+data ObdSignal = ObdSignal'+  { -- | The number of bits to mask in a message.+    bitMaskLength :: Prelude.Maybe Prelude.Natural,+    -- | The number of positions to shift bits in the message.+    bitRightShift :: Prelude.Maybe Prelude.Natural,+    -- | The length of the requested data.+    pidResponseLength :: Prelude.Natural,+    -- | The mode of operation (diagnostic service) in a message.+    serviceMode :: Prelude.Natural,+    -- | The diagnostic code used to request data from a vehicle for this signal.+    pid :: Prelude.Natural,+    -- | A multiplier used to decode the message.+    scaling :: Prelude.Double,+    -- | Indicates where data appears in the message.+    offset :: Prelude.Double,+    -- | Indicates the beginning of the message.+    startByte :: Prelude.Natural,+    -- | The length of a message.+    byteLength :: Prelude.Natural+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ObdSignal' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'bitMaskLength', 'obdSignal_bitMaskLength' - The number of bits to mask in a message.+--+-- 'bitRightShift', 'obdSignal_bitRightShift' - The number of positions to shift bits in the message.+--+-- 'pidResponseLength', 'obdSignal_pidResponseLength' - The length of the requested data.+--+-- 'serviceMode', 'obdSignal_serviceMode' - The mode of operation (diagnostic service) in a message.+--+-- 'pid', 'obdSignal_pid' - The diagnostic code used to request data from a vehicle for this signal.+--+-- 'scaling', 'obdSignal_scaling' - A multiplier used to decode the message.+--+-- 'offset', 'obdSignal_offset' - Indicates where data appears in the message.+--+-- 'startByte', 'obdSignal_startByte' - Indicates the beginning of the message.+--+-- 'byteLength', 'obdSignal_byteLength' - The length of a message.+newObdSignal ::+  -- | 'pidResponseLength'+  Prelude.Natural ->+  -- | 'serviceMode'+  Prelude.Natural ->+  -- | 'pid'+  Prelude.Natural ->+  -- | 'scaling'+  Prelude.Double ->+  -- | 'offset'+  Prelude.Double ->+  -- | 'startByte'+  Prelude.Natural ->+  -- | 'byteLength'+  Prelude.Natural ->+  ObdSignal+newObdSignal+  pPidResponseLength_+  pServiceMode_+  pPid_+  pScaling_+  pOffset_+  pStartByte_+  pByteLength_ =+    ObdSignal'+      { bitMaskLength = Prelude.Nothing,+        bitRightShift = Prelude.Nothing,+        pidResponseLength = pPidResponseLength_,+        serviceMode = pServiceMode_,+        pid = pPid_,+        scaling = pScaling_,+        offset = pOffset_,+        startByte = pStartByte_,+        byteLength = pByteLength_+      }++-- | The number of bits to mask in a message.+obdSignal_bitMaskLength :: Lens.Lens' ObdSignal (Prelude.Maybe Prelude.Natural)+obdSignal_bitMaskLength = Lens.lens (\ObdSignal' {bitMaskLength} -> bitMaskLength) (\s@ObdSignal' {} a -> s {bitMaskLength = a} :: ObdSignal)++-- | The number of positions to shift bits in the message.+obdSignal_bitRightShift :: Lens.Lens' ObdSignal (Prelude.Maybe Prelude.Natural)+obdSignal_bitRightShift = Lens.lens (\ObdSignal' {bitRightShift} -> bitRightShift) (\s@ObdSignal' {} a -> s {bitRightShift = a} :: ObdSignal)++-- | The length of the requested data.+obdSignal_pidResponseLength :: Lens.Lens' ObdSignal Prelude.Natural+obdSignal_pidResponseLength = Lens.lens (\ObdSignal' {pidResponseLength} -> pidResponseLength) (\s@ObdSignal' {} a -> s {pidResponseLength = a} :: ObdSignal)++-- | The mode of operation (diagnostic service) in a message.+obdSignal_serviceMode :: Lens.Lens' ObdSignal Prelude.Natural+obdSignal_serviceMode = Lens.lens (\ObdSignal' {serviceMode} -> serviceMode) (\s@ObdSignal' {} a -> s {serviceMode = a} :: ObdSignal)++-- | The diagnostic code used to request data from a vehicle for this signal.+obdSignal_pid :: Lens.Lens' ObdSignal Prelude.Natural+obdSignal_pid = Lens.lens (\ObdSignal' {pid} -> pid) (\s@ObdSignal' {} a -> s {pid = a} :: ObdSignal)++-- | A multiplier used to decode the message.+obdSignal_scaling :: Lens.Lens' ObdSignal Prelude.Double+obdSignal_scaling = Lens.lens (\ObdSignal' {scaling} -> scaling) (\s@ObdSignal' {} a -> s {scaling = a} :: ObdSignal)++-- | Indicates where data appears in the message.+obdSignal_offset :: Lens.Lens' ObdSignal Prelude.Double+obdSignal_offset = Lens.lens (\ObdSignal' {offset} -> offset) (\s@ObdSignal' {} a -> s {offset = a} :: ObdSignal)++-- | Indicates the beginning of the message.+obdSignal_startByte :: Lens.Lens' ObdSignal Prelude.Natural+obdSignal_startByte = Lens.lens (\ObdSignal' {startByte} -> startByte) (\s@ObdSignal' {} a -> s {startByte = a} :: ObdSignal)++-- | The length of a message.+obdSignal_byteLength :: Lens.Lens' ObdSignal Prelude.Natural+obdSignal_byteLength = Lens.lens (\ObdSignal' {byteLength} -> byteLength) (\s@ObdSignal' {} a -> s {byteLength = a} :: ObdSignal)++instance Data.FromJSON ObdSignal where+  parseJSON =+    Data.withObject+      "ObdSignal"+      ( \x ->+          ObdSignal'+            Prelude.<$> (x Data..:? "bitMaskLength")+            Prelude.<*> (x Data..:? "bitRightShift")+            Prelude.<*> (x Data..: "pidResponseLength")+            Prelude.<*> (x Data..: "serviceMode")+            Prelude.<*> (x Data..: "pid")+            Prelude.<*> (x Data..: "scaling")+            Prelude.<*> (x Data..: "offset")+            Prelude.<*> (x Data..: "startByte")+            Prelude.<*> (x Data..: "byteLength")+      )++instance Prelude.Hashable ObdSignal where+  hashWithSalt _salt ObdSignal' {..} =+    _salt+      `Prelude.hashWithSalt` bitMaskLength+      `Prelude.hashWithSalt` bitRightShift+      `Prelude.hashWithSalt` pidResponseLength+      `Prelude.hashWithSalt` serviceMode+      `Prelude.hashWithSalt` pid+      `Prelude.hashWithSalt` scaling+      `Prelude.hashWithSalt` offset+      `Prelude.hashWithSalt` startByte+      `Prelude.hashWithSalt` byteLength++instance Prelude.NFData ObdSignal where+  rnf ObdSignal' {..} =+    Prelude.rnf bitMaskLength+      `Prelude.seq` Prelude.rnf bitRightShift+      `Prelude.seq` Prelude.rnf pidResponseLength+      `Prelude.seq` Prelude.rnf serviceMode+      `Prelude.seq` Prelude.rnf pid+      `Prelude.seq` Prelude.rnf scaling+      `Prelude.seq` Prelude.rnf offset+      `Prelude.seq` Prelude.rnf startByte+      `Prelude.seq` Prelude.rnf byteLength++instance Data.ToJSON ObdSignal where+  toJSON ObdSignal' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("bitMaskLength" Data..=) Prelude.<$> bitMaskLength,+            ("bitRightShift" Data..=) Prelude.<$> bitRightShift,+            Prelude.Just+              ("pidResponseLength" Data..= pidResponseLength),+            Prelude.Just ("serviceMode" Data..= serviceMode),+            Prelude.Just ("pid" Data..= pid),+            Prelude.Just ("scaling" Data..= scaling),+            Prelude.Just ("offset" Data..= offset),+            Prelude.Just ("startByte" Data..= startByte),+            Prelude.Just ("byteLength" Data..= byteLength)+          ]+      )
+ gen/Amazonka/IoTFleetWise/Types/RegistrationStatus.hs view
@@ -0,0 +1,76 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.Types.RegistrationStatus+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTFleetWise.Types.RegistrationStatus+  ( RegistrationStatus+      ( ..,+        RegistrationStatus_REGISTRATION_FAILURE,+        RegistrationStatus_REGISTRATION_PENDING,+        RegistrationStatus_REGISTRATION_SUCCESS+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype RegistrationStatus = RegistrationStatus'+  { fromRegistrationStatus ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern RegistrationStatus_REGISTRATION_FAILURE :: RegistrationStatus+pattern RegistrationStatus_REGISTRATION_FAILURE = RegistrationStatus' "REGISTRATION_FAILURE"++pattern RegistrationStatus_REGISTRATION_PENDING :: RegistrationStatus+pattern RegistrationStatus_REGISTRATION_PENDING = RegistrationStatus' "REGISTRATION_PENDING"++pattern RegistrationStatus_REGISTRATION_SUCCESS :: RegistrationStatus+pattern RegistrationStatus_REGISTRATION_SUCCESS = RegistrationStatus' "REGISTRATION_SUCCESS"++{-# COMPLETE+  RegistrationStatus_REGISTRATION_FAILURE,+  RegistrationStatus_REGISTRATION_PENDING,+  RegistrationStatus_REGISTRATION_SUCCESS,+  RegistrationStatus'+  #-}
+ gen/Amazonka/IoTFleetWise/Types/Sensor.hs view
@@ -0,0 +1,171 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.Types.Sensor+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTFleetWise.Types.Sensor where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTFleetWise.Types.NodeDataType+import qualified Amazonka.Prelude as Prelude++-- | An input component that reports the environmental condition of a+-- vehicle.+--+-- You can collect data about fluid levels, temperatures, vibrations, or+-- battery voltage from sensors.+--+-- /See:/ 'newSensor' smart constructor.+data Sensor = Sensor'+  { -- | A list of possible values a sensor can take.+    allowedValues :: Prelude.Maybe [Prelude.Text],+    -- | A brief description of a sensor.+    description :: Prelude.Maybe Prelude.Text,+    -- | The specified possible maximum value of the sensor.+    max :: Prelude.Maybe Prelude.Double,+    -- | The specified possible minimum value of the sensor.+    min :: Prelude.Maybe Prelude.Double,+    -- | The scientific unit of measurement for data collected by the sensor.+    unit :: Prelude.Maybe Prelude.Text,+    -- | The fully qualified name of the sensor. For example, the fully qualified+    -- name of a sensor might be @Vehicle.Body.Engine.Battery@.+    fullyQualifiedName :: Prelude.Text,+    -- | The specified data type of the sensor.+    dataType :: NodeDataType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Sensor' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'allowedValues', 'sensor_allowedValues' - A list of possible values a sensor can take.+--+-- 'description', 'sensor_description' - A brief description of a sensor.+--+-- 'max', 'sensor_max' - The specified possible maximum value of the sensor.+--+-- 'min', 'sensor_min' - The specified possible minimum value of the sensor.+--+-- 'unit', 'sensor_unit' - The scientific unit of measurement for data collected by the sensor.+--+-- 'fullyQualifiedName', 'sensor_fullyQualifiedName' - The fully qualified name of the sensor. For example, the fully qualified+-- name of a sensor might be @Vehicle.Body.Engine.Battery@.+--+-- 'dataType', 'sensor_dataType' - The specified data type of the sensor.+newSensor ::+  -- | 'fullyQualifiedName'+  Prelude.Text ->+  -- | 'dataType'+  NodeDataType ->+  Sensor+newSensor pFullyQualifiedName_ pDataType_ =+  Sensor'+    { allowedValues = Prelude.Nothing,+      description = Prelude.Nothing,+      max = Prelude.Nothing,+      min = Prelude.Nothing,+      unit = Prelude.Nothing,+      fullyQualifiedName = pFullyQualifiedName_,+      dataType = pDataType_+    }++-- | A list of possible values a sensor can take.+sensor_allowedValues :: Lens.Lens' Sensor (Prelude.Maybe [Prelude.Text])+sensor_allowedValues = Lens.lens (\Sensor' {allowedValues} -> allowedValues) (\s@Sensor' {} a -> s {allowedValues = a} :: Sensor) Prelude.. Lens.mapping Lens.coerced++-- | A brief description of a sensor.+sensor_description :: Lens.Lens' Sensor (Prelude.Maybe Prelude.Text)+sensor_description = Lens.lens (\Sensor' {description} -> description) (\s@Sensor' {} a -> s {description = a} :: Sensor)++-- | The specified possible maximum value of the sensor.+sensor_max :: Lens.Lens' Sensor (Prelude.Maybe Prelude.Double)+sensor_max = Lens.lens (\Sensor' {max} -> max) (\s@Sensor' {} a -> s {max = a} :: Sensor)++-- | The specified possible minimum value of the sensor.+sensor_min :: Lens.Lens' Sensor (Prelude.Maybe Prelude.Double)+sensor_min = Lens.lens (\Sensor' {min} -> min) (\s@Sensor' {} a -> s {min = a} :: Sensor)++-- | The scientific unit of measurement for data collected by the sensor.+sensor_unit :: Lens.Lens' Sensor (Prelude.Maybe Prelude.Text)+sensor_unit = Lens.lens (\Sensor' {unit} -> unit) (\s@Sensor' {} a -> s {unit = a} :: Sensor)++-- | The fully qualified name of the sensor. For example, the fully qualified+-- name of a sensor might be @Vehicle.Body.Engine.Battery@.+sensor_fullyQualifiedName :: Lens.Lens' Sensor Prelude.Text+sensor_fullyQualifiedName = Lens.lens (\Sensor' {fullyQualifiedName} -> fullyQualifiedName) (\s@Sensor' {} a -> s {fullyQualifiedName = a} :: Sensor)++-- | The specified data type of the sensor.+sensor_dataType :: Lens.Lens' Sensor NodeDataType+sensor_dataType = Lens.lens (\Sensor' {dataType} -> dataType) (\s@Sensor' {} a -> s {dataType = a} :: Sensor)++instance Data.FromJSON Sensor where+  parseJSON =+    Data.withObject+      "Sensor"+      ( \x ->+          Sensor'+            Prelude.<$> (x Data..:? "allowedValues" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "description")+            Prelude.<*> (x Data..:? "max")+            Prelude.<*> (x Data..:? "min")+            Prelude.<*> (x Data..:? "unit")+            Prelude.<*> (x Data..: "fullyQualifiedName")+            Prelude.<*> (x Data..: "dataType")+      )++instance Prelude.Hashable Sensor where+  hashWithSalt _salt Sensor' {..} =+    _salt+      `Prelude.hashWithSalt` allowedValues+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` max+      `Prelude.hashWithSalt` min+      `Prelude.hashWithSalt` unit+      `Prelude.hashWithSalt` fullyQualifiedName+      `Prelude.hashWithSalt` dataType++instance Prelude.NFData Sensor where+  rnf Sensor' {..} =+    Prelude.rnf allowedValues+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf max+      `Prelude.seq` Prelude.rnf min+      `Prelude.seq` Prelude.rnf unit+      `Prelude.seq` Prelude.rnf fullyQualifiedName+      `Prelude.seq` Prelude.rnf dataType++instance Data.ToJSON Sensor where+  toJSON Sensor' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("allowedValues" Data..=) Prelude.<$> allowedValues,+            ("description" Data..=) Prelude.<$> description,+            ("max" Data..=) Prelude.<$> max,+            ("min" Data..=) Prelude.<$> min,+            ("unit" Data..=) Prelude.<$> unit,+            Prelude.Just+              ("fullyQualifiedName" Data..= fullyQualifiedName),+            Prelude.Just ("dataType" Data..= dataType)+          ]+      )
+ gen/Amazonka/IoTFleetWise/Types/SignalCatalogSummary.hs view
@@ -0,0 +1,115 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.Types.SignalCatalogSummary+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTFleetWise.Types.SignalCatalogSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Information about a collection of standardized signals, which can be+-- attributes, branches, sensors, or actuators.+--+-- /See:/ 'newSignalCatalogSummary' smart constructor.+data SignalCatalogSummary = SignalCatalogSummary'+  { -- | The Amazon Resource Name (ARN) of the signal catalog.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The time the signal catalog was created in seconds since epoch (January+    -- 1, 1970 at midnight UTC time).+    creationTime :: Prelude.Maybe Data.POSIX,+    -- | The time the signal catalog was last updated in seconds since epoch+    -- (January 1, 1970 at midnight UTC time).+    lastModificationTime :: Prelude.Maybe Data.POSIX,+    -- | The name of the signal catalog.+    name :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SignalCatalogSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'signalCatalogSummary_arn' - The Amazon Resource Name (ARN) of the signal catalog.+--+-- 'creationTime', 'signalCatalogSummary_creationTime' - The time the signal catalog was created in seconds since epoch (January+-- 1, 1970 at midnight UTC time).+--+-- 'lastModificationTime', 'signalCatalogSummary_lastModificationTime' - The time the signal catalog was last updated in seconds since epoch+-- (January 1, 1970 at midnight UTC time).+--+-- 'name', 'signalCatalogSummary_name' - The name of the signal catalog.+newSignalCatalogSummary ::+  SignalCatalogSummary+newSignalCatalogSummary =+  SignalCatalogSummary'+    { arn = Prelude.Nothing,+      creationTime = Prelude.Nothing,+      lastModificationTime = Prelude.Nothing,+      name = Prelude.Nothing+    }++-- | The Amazon Resource Name (ARN) of the signal catalog.+signalCatalogSummary_arn :: Lens.Lens' SignalCatalogSummary (Prelude.Maybe Prelude.Text)+signalCatalogSummary_arn = Lens.lens (\SignalCatalogSummary' {arn} -> arn) (\s@SignalCatalogSummary' {} a -> s {arn = a} :: SignalCatalogSummary)++-- | The time the signal catalog was created in seconds since epoch (January+-- 1, 1970 at midnight UTC time).+signalCatalogSummary_creationTime :: Lens.Lens' SignalCatalogSummary (Prelude.Maybe Prelude.UTCTime)+signalCatalogSummary_creationTime = Lens.lens (\SignalCatalogSummary' {creationTime} -> creationTime) (\s@SignalCatalogSummary' {} a -> s {creationTime = a} :: SignalCatalogSummary) Prelude.. Lens.mapping Data._Time++-- | The time the signal catalog was last updated in seconds since epoch+-- (January 1, 1970 at midnight UTC time).+signalCatalogSummary_lastModificationTime :: Lens.Lens' SignalCatalogSummary (Prelude.Maybe Prelude.UTCTime)+signalCatalogSummary_lastModificationTime = Lens.lens (\SignalCatalogSummary' {lastModificationTime} -> lastModificationTime) (\s@SignalCatalogSummary' {} a -> s {lastModificationTime = a} :: SignalCatalogSummary) Prelude.. Lens.mapping Data._Time++-- | The name of the signal catalog.+signalCatalogSummary_name :: Lens.Lens' SignalCatalogSummary (Prelude.Maybe Prelude.Text)+signalCatalogSummary_name = Lens.lens (\SignalCatalogSummary' {name} -> name) (\s@SignalCatalogSummary' {} a -> s {name = a} :: SignalCatalogSummary)++instance Data.FromJSON SignalCatalogSummary where+  parseJSON =+    Data.withObject+      "SignalCatalogSummary"+      ( \x ->+          SignalCatalogSummary'+            Prelude.<$> (x Data..:? "arn")+            Prelude.<*> (x Data..:? "creationTime")+            Prelude.<*> (x Data..:? "lastModificationTime")+            Prelude.<*> (x Data..:? "name")+      )++instance Prelude.Hashable SignalCatalogSummary where+  hashWithSalt _salt SignalCatalogSummary' {..} =+    _salt+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` creationTime+      `Prelude.hashWithSalt` lastModificationTime+      `Prelude.hashWithSalt` name++instance Prelude.NFData SignalCatalogSummary where+  rnf SignalCatalogSummary' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf creationTime+      `Prelude.seq` Prelude.rnf lastModificationTime+      `Prelude.seq` Prelude.rnf name
+ gen/Amazonka/IoTFleetWise/Types/SignalDecoder.hs view
@@ -0,0 +1,166 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.Types.SignalDecoder+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTFleetWise.Types.SignalDecoder where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTFleetWise.Types.CanSignal+import Amazonka.IoTFleetWise.Types.ObdSignal+import Amazonka.IoTFleetWise.Types.SignalDecoderType+import qualified Amazonka.Prelude as Prelude++-- | Information about a signal decoder.+--+-- /See:/ 'newSignalDecoder' smart constructor.+data SignalDecoder = SignalDecoder'+  { -- | Information about signal decoder using the Controller Area Network (CAN)+    -- protocol.+    canSignal :: Prelude.Maybe CanSignal,+    -- | Information about signal decoder using the On-board diagnostic (OBD) II+    -- protocol.+    obdSignal :: Prelude.Maybe ObdSignal,+    -- | The fully qualified name of a signal decoder as defined in a vehicle+    -- model.+    fullyQualifiedName :: Prelude.Text,+    -- | The network protocol for the vehicle. For example, @CAN_SIGNAL@+    -- specifies a protocol that defines how data is communicated between+    -- electronic control units (ECUs). @OBD_SIGNAL@ specifies a protocol that+    -- defines how self-diagnostic data is communicated between ECUs.+    type' :: SignalDecoderType,+    -- | The ID of a network interface that specifies what network protocol a+    -- vehicle follows.+    interfaceId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SignalDecoder' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'canSignal', 'signalDecoder_canSignal' - Information about signal decoder using the Controller Area Network (CAN)+-- protocol.+--+-- 'obdSignal', 'signalDecoder_obdSignal' - Information about signal decoder using the On-board diagnostic (OBD) II+-- protocol.+--+-- 'fullyQualifiedName', 'signalDecoder_fullyQualifiedName' - The fully qualified name of a signal decoder as defined in a vehicle+-- model.+--+-- 'type'', 'signalDecoder_type' - The network protocol for the vehicle. For example, @CAN_SIGNAL@+-- specifies a protocol that defines how data is communicated between+-- electronic control units (ECUs). @OBD_SIGNAL@ specifies a protocol that+-- defines how self-diagnostic data is communicated between ECUs.+--+-- 'interfaceId', 'signalDecoder_interfaceId' - The ID of a network interface that specifies what network protocol a+-- vehicle follows.+newSignalDecoder ::+  -- | 'fullyQualifiedName'+  Prelude.Text ->+  -- | 'type''+  SignalDecoderType ->+  -- | 'interfaceId'+  Prelude.Text ->+  SignalDecoder+newSignalDecoder+  pFullyQualifiedName_+  pType_+  pInterfaceId_ =+    SignalDecoder'+      { canSignal = Prelude.Nothing,+        obdSignal = Prelude.Nothing,+        fullyQualifiedName = pFullyQualifiedName_,+        type' = pType_,+        interfaceId = pInterfaceId_+      }++-- | Information about signal decoder using the Controller Area Network (CAN)+-- protocol.+signalDecoder_canSignal :: Lens.Lens' SignalDecoder (Prelude.Maybe CanSignal)+signalDecoder_canSignal = Lens.lens (\SignalDecoder' {canSignal} -> canSignal) (\s@SignalDecoder' {} a -> s {canSignal = a} :: SignalDecoder)++-- | Information about signal decoder using the On-board diagnostic (OBD) II+-- protocol.+signalDecoder_obdSignal :: Lens.Lens' SignalDecoder (Prelude.Maybe ObdSignal)+signalDecoder_obdSignal = Lens.lens (\SignalDecoder' {obdSignal} -> obdSignal) (\s@SignalDecoder' {} a -> s {obdSignal = a} :: SignalDecoder)++-- | The fully qualified name of a signal decoder as defined in a vehicle+-- model.+signalDecoder_fullyQualifiedName :: Lens.Lens' SignalDecoder Prelude.Text+signalDecoder_fullyQualifiedName = Lens.lens (\SignalDecoder' {fullyQualifiedName} -> fullyQualifiedName) (\s@SignalDecoder' {} a -> s {fullyQualifiedName = a} :: SignalDecoder)++-- | The network protocol for the vehicle. For example, @CAN_SIGNAL@+-- specifies a protocol that defines how data is communicated between+-- electronic control units (ECUs). @OBD_SIGNAL@ specifies a protocol that+-- defines how self-diagnostic data is communicated between ECUs.+signalDecoder_type :: Lens.Lens' SignalDecoder SignalDecoderType+signalDecoder_type = Lens.lens (\SignalDecoder' {type'} -> type') (\s@SignalDecoder' {} a -> s {type' = a} :: SignalDecoder)++-- | The ID of a network interface that specifies what network protocol a+-- vehicle follows.+signalDecoder_interfaceId :: Lens.Lens' SignalDecoder Prelude.Text+signalDecoder_interfaceId = Lens.lens (\SignalDecoder' {interfaceId} -> interfaceId) (\s@SignalDecoder' {} a -> s {interfaceId = a} :: SignalDecoder)++instance Data.FromJSON SignalDecoder where+  parseJSON =+    Data.withObject+      "SignalDecoder"+      ( \x ->+          SignalDecoder'+            Prelude.<$> (x Data..:? "canSignal")+            Prelude.<*> (x Data..:? "obdSignal")+            Prelude.<*> (x Data..: "fullyQualifiedName")+            Prelude.<*> (x Data..: "type")+            Prelude.<*> (x Data..: "interfaceId")+      )++instance Prelude.Hashable SignalDecoder where+  hashWithSalt _salt SignalDecoder' {..} =+    _salt+      `Prelude.hashWithSalt` canSignal+      `Prelude.hashWithSalt` obdSignal+      `Prelude.hashWithSalt` fullyQualifiedName+      `Prelude.hashWithSalt` type'+      `Prelude.hashWithSalt` interfaceId++instance Prelude.NFData SignalDecoder where+  rnf SignalDecoder' {..} =+    Prelude.rnf canSignal+      `Prelude.seq` Prelude.rnf obdSignal+      `Prelude.seq` Prelude.rnf fullyQualifiedName+      `Prelude.seq` Prelude.rnf type'+      `Prelude.seq` Prelude.rnf interfaceId++instance Data.ToJSON SignalDecoder where+  toJSON SignalDecoder' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("canSignal" Data..=) Prelude.<$> canSignal,+            ("obdSignal" Data..=) Prelude.<$> obdSignal,+            Prelude.Just+              ("fullyQualifiedName" Data..= fullyQualifiedName),+            Prelude.Just ("type" Data..= type'),+            Prelude.Just ("interfaceId" Data..= interfaceId)+          ]+      )
+ gen/Amazonka/IoTFleetWise/Types/SignalDecoderType.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.Types.SignalDecoderType+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTFleetWise.Types.SignalDecoderType+  ( SignalDecoderType+      ( ..,+        SignalDecoderType_CAN_SIGNAL,+        SignalDecoderType_OBD_SIGNAL+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype SignalDecoderType = SignalDecoderType'+  { fromSignalDecoderType ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern SignalDecoderType_CAN_SIGNAL :: SignalDecoderType+pattern SignalDecoderType_CAN_SIGNAL = SignalDecoderType' "CAN_SIGNAL"++pattern SignalDecoderType_OBD_SIGNAL :: SignalDecoderType+pattern SignalDecoderType_OBD_SIGNAL = SignalDecoderType' "OBD_SIGNAL"++{-# COMPLETE+  SignalDecoderType_CAN_SIGNAL,+  SignalDecoderType_OBD_SIGNAL,+  SignalDecoderType'+  #-}
+ gen/Amazonka/IoTFleetWise/Types/SignalInformation.hs view
@@ -0,0 +1,123 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.Types.SignalInformation+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTFleetWise.Types.SignalInformation where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Information about a signal.+--+-- /See:/ 'newSignalInformation' smart constructor.+data SignalInformation = SignalInformation'+  { -- | The maximum number of samples to collect.+    maxSampleCount :: Prelude.Maybe Prelude.Natural,+    -- | The minimum duration of time (in milliseconds) between two triggering+    -- events to collect data.+    --+    -- If a signal changes often, you might want to collect data at a slower+    -- rate.+    minimumSamplingIntervalMs :: Prelude.Maybe Prelude.Natural,+    -- | The name of the signal.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SignalInformation' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'maxSampleCount', 'signalInformation_maxSampleCount' - The maximum number of samples to collect.+--+-- 'minimumSamplingIntervalMs', 'signalInformation_minimumSamplingIntervalMs' - The minimum duration of time (in milliseconds) between two triggering+-- events to collect data.+--+-- If a signal changes often, you might want to collect data at a slower+-- rate.+--+-- 'name', 'signalInformation_name' - The name of the signal.+newSignalInformation ::+  -- | 'name'+  Prelude.Text ->+  SignalInformation+newSignalInformation pName_ =+  SignalInformation'+    { maxSampleCount =+        Prelude.Nothing,+      minimumSamplingIntervalMs = Prelude.Nothing,+      name = pName_+    }++-- | The maximum number of samples to collect.+signalInformation_maxSampleCount :: Lens.Lens' SignalInformation (Prelude.Maybe Prelude.Natural)+signalInformation_maxSampleCount = Lens.lens (\SignalInformation' {maxSampleCount} -> maxSampleCount) (\s@SignalInformation' {} a -> s {maxSampleCount = a} :: SignalInformation)++-- | The minimum duration of time (in milliseconds) between two triggering+-- events to collect data.+--+-- If a signal changes often, you might want to collect data at a slower+-- rate.+signalInformation_minimumSamplingIntervalMs :: Lens.Lens' SignalInformation (Prelude.Maybe Prelude.Natural)+signalInformation_minimumSamplingIntervalMs = Lens.lens (\SignalInformation' {minimumSamplingIntervalMs} -> minimumSamplingIntervalMs) (\s@SignalInformation' {} a -> s {minimumSamplingIntervalMs = a} :: SignalInformation)++-- | The name of the signal.+signalInformation_name :: Lens.Lens' SignalInformation Prelude.Text+signalInformation_name = Lens.lens (\SignalInformation' {name} -> name) (\s@SignalInformation' {} a -> s {name = a} :: SignalInformation)++instance Data.FromJSON SignalInformation where+  parseJSON =+    Data.withObject+      "SignalInformation"+      ( \x ->+          SignalInformation'+            Prelude.<$> (x Data..:? "maxSampleCount")+            Prelude.<*> (x Data..:? "minimumSamplingIntervalMs")+            Prelude.<*> (x Data..: "name")+      )++instance Prelude.Hashable SignalInformation where+  hashWithSalt _salt SignalInformation' {..} =+    _salt+      `Prelude.hashWithSalt` maxSampleCount+      `Prelude.hashWithSalt` minimumSamplingIntervalMs+      `Prelude.hashWithSalt` name++instance Prelude.NFData SignalInformation where+  rnf SignalInformation' {..} =+    Prelude.rnf maxSampleCount+      `Prelude.seq` Prelude.rnf minimumSamplingIntervalMs+      `Prelude.seq` Prelude.rnf name++instance Data.ToJSON SignalInformation where+  toJSON SignalInformation' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("maxSampleCount" Data..=)+              Prelude.<$> maxSampleCount,+            ("minimumSamplingIntervalMs" Data..=)+              Prelude.<$> minimumSamplingIntervalMs,+            Prelude.Just ("name" Data..= name)+          ]+      )
+ gen/Amazonka/IoTFleetWise/Types/SpoolingMode.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.Types.SpoolingMode+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTFleetWise.Types.SpoolingMode+  ( SpoolingMode+      ( ..,+        SpoolingMode_OFF,+        SpoolingMode_TO_DISK+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype SpoolingMode = SpoolingMode'+  { fromSpoolingMode ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern SpoolingMode_OFF :: SpoolingMode+pattern SpoolingMode_OFF = SpoolingMode' "OFF"++pattern SpoolingMode_TO_DISK :: SpoolingMode+pattern SpoolingMode_TO_DISK = SpoolingMode' "TO_DISK"++{-# COMPLETE+  SpoolingMode_OFF,+  SpoolingMode_TO_DISK,+  SpoolingMode'+  #-}
+ gen/Amazonka/IoTFleetWise/Types/Tag.hs view
@@ -0,0 +1,93 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.Types.Tag+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTFleetWise.Types.Tag where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | A set of key\/value pairs that are used to manage the resource.+--+-- /See:/ 'newTag' smart constructor.+data Tag = Tag'+  { -- | The tag\'s key.+    key :: Prelude.Text,+    -- | The tag\'s value.+    value :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Tag' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'key', 'tag_key' - The tag\'s key.+--+-- 'value', 'tag_value' - The tag\'s value.+newTag ::+  -- | 'key'+  Prelude.Text ->+  -- | 'value'+  Prelude.Text ->+  Tag+newTag pKey_ pValue_ =+  Tag' {key = pKey_, value = pValue_}++-- | The tag\'s key.+tag_key :: Lens.Lens' Tag Prelude.Text+tag_key = Lens.lens (\Tag' {key} -> key) (\s@Tag' {} a -> s {key = a} :: Tag)++-- | The tag\'s value.+tag_value :: Lens.Lens' Tag Prelude.Text+tag_value = Lens.lens (\Tag' {value} -> value) (\s@Tag' {} a -> s {value = a} :: Tag)++instance Data.FromJSON Tag where+  parseJSON =+    Data.withObject+      "Tag"+      ( \x ->+          Tag'+            Prelude.<$> (x Data..: "Key")+            Prelude.<*> (x Data..: "Value")+      )++instance Prelude.Hashable Tag where+  hashWithSalt _salt Tag' {..} =+    _salt+      `Prelude.hashWithSalt` key+      `Prelude.hashWithSalt` value++instance Prelude.NFData Tag where+  rnf Tag' {..} =+    Prelude.rnf key `Prelude.seq` Prelude.rnf value++instance Data.ToJSON Tag where+  toJSON Tag' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("Key" Data..= key),+            Prelude.Just ("Value" Data..= value)+          ]+      )
+ gen/Amazonka/IoTFleetWise/Types/TimeBasedCollectionScheme.hs view
@@ -0,0 +1,85 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.Types.TimeBasedCollectionScheme+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTFleetWise.Types.TimeBasedCollectionScheme where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Information about a collection scheme that uses a time period to decide+-- how often to collect data.+--+-- /See:/ 'newTimeBasedCollectionScheme' smart constructor.+data TimeBasedCollectionScheme = TimeBasedCollectionScheme'+  { -- | The time period (in milliseconds) to decide how often to collect data.+    -- For example, if the time period is @60000@, the Edge Agent software+    -- collects data once every minute.+    periodMs :: Prelude.Natural+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TimeBasedCollectionScheme' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'periodMs', 'timeBasedCollectionScheme_periodMs' - The time period (in milliseconds) to decide how often to collect data.+-- For example, if the time period is @60000@, the Edge Agent software+-- collects data once every minute.+newTimeBasedCollectionScheme ::+  -- | 'periodMs'+  Prelude.Natural ->+  TimeBasedCollectionScheme+newTimeBasedCollectionScheme pPeriodMs_ =+  TimeBasedCollectionScheme' {periodMs = pPeriodMs_}++-- | The time period (in milliseconds) to decide how often to collect data.+-- For example, if the time period is @60000@, the Edge Agent software+-- collects data once every minute.+timeBasedCollectionScheme_periodMs :: Lens.Lens' TimeBasedCollectionScheme Prelude.Natural+timeBasedCollectionScheme_periodMs = Lens.lens (\TimeBasedCollectionScheme' {periodMs} -> periodMs) (\s@TimeBasedCollectionScheme' {} a -> s {periodMs = a} :: TimeBasedCollectionScheme)++instance Data.FromJSON TimeBasedCollectionScheme where+  parseJSON =+    Data.withObject+      "TimeBasedCollectionScheme"+      ( \x ->+          TimeBasedCollectionScheme'+            Prelude.<$> (x Data..: "periodMs")+      )++instance Prelude.Hashable TimeBasedCollectionScheme where+  hashWithSalt _salt TimeBasedCollectionScheme' {..} =+    _salt `Prelude.hashWithSalt` periodMs++instance Prelude.NFData TimeBasedCollectionScheme where+  rnf TimeBasedCollectionScheme' {..} =+    Prelude.rnf periodMs++instance Data.ToJSON TimeBasedCollectionScheme where+  toJSON TimeBasedCollectionScheme' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("periodMs" Data..= periodMs)]+      )
+ gen/Amazonka/IoTFleetWise/Types/TimestreamRegistrationResponse.hs view
@@ -0,0 +1,159 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.Types.TimestreamRegistrationResponse+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTFleetWise.Types.TimestreamRegistrationResponse where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTFleetWise.Types.RegistrationStatus+import qualified Amazonka.Prelude as Prelude++-- | Information about the registered Amazon Timestream resources or errors,+-- if any.+--+-- /See:/ 'newTimestreamRegistrationResponse' smart constructor.+data TimestreamRegistrationResponse = TimestreamRegistrationResponse'+  { -- | A message associated with a registration error.+    errorMessage :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the Timestream database.+    timestreamDatabaseArn :: Prelude.Maybe Prelude.Text,+    -- | The ARN of the Timestream database table.+    timestreamTableArn :: Prelude.Maybe Prelude.Text,+    -- | The name of the Timestream database.+    timestreamDatabaseName :: Prelude.Text,+    -- | The name of the Timestream database table.+    timestreamTableName :: Prelude.Text,+    -- | The status of registering your Amazon Timestream resources. The status+    -- can be one of @REGISTRATION_SUCCESS@, @REGISTRATION_PENDING@,+    -- @REGISTRATION_FAILURE@.+    registrationStatus :: RegistrationStatus+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TimestreamRegistrationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'errorMessage', 'timestreamRegistrationResponse_errorMessage' - A message associated with a registration error.+--+-- 'timestreamDatabaseArn', 'timestreamRegistrationResponse_timestreamDatabaseArn' - The Amazon Resource Name (ARN) of the Timestream database.+--+-- 'timestreamTableArn', 'timestreamRegistrationResponse_timestreamTableArn' - The ARN of the Timestream database table.+--+-- 'timestreamDatabaseName', 'timestreamRegistrationResponse_timestreamDatabaseName' - The name of the Timestream database.+--+-- 'timestreamTableName', 'timestreamRegistrationResponse_timestreamTableName' - The name of the Timestream database table.+--+-- 'registrationStatus', 'timestreamRegistrationResponse_registrationStatus' - The status of registering your Amazon Timestream resources. The status+-- can be one of @REGISTRATION_SUCCESS@, @REGISTRATION_PENDING@,+-- @REGISTRATION_FAILURE@.+newTimestreamRegistrationResponse ::+  -- | 'timestreamDatabaseName'+  Prelude.Text ->+  -- | 'timestreamTableName'+  Prelude.Text ->+  -- | 'registrationStatus'+  RegistrationStatus ->+  TimestreamRegistrationResponse+newTimestreamRegistrationResponse+  pTimestreamDatabaseName_+  pTimestreamTableName_+  pRegistrationStatus_ =+    TimestreamRegistrationResponse'+      { errorMessage =+          Prelude.Nothing,+        timestreamDatabaseArn = Prelude.Nothing,+        timestreamTableArn = Prelude.Nothing,+        timestreamDatabaseName =+          pTimestreamDatabaseName_,+        timestreamTableName = pTimestreamTableName_,+        registrationStatus = pRegistrationStatus_+      }++-- | A message associated with a registration error.+timestreamRegistrationResponse_errorMessage :: Lens.Lens' TimestreamRegistrationResponse (Prelude.Maybe Prelude.Text)+timestreamRegistrationResponse_errorMessage = Lens.lens (\TimestreamRegistrationResponse' {errorMessage} -> errorMessage) (\s@TimestreamRegistrationResponse' {} a -> s {errorMessage = a} :: TimestreamRegistrationResponse)++-- | The Amazon Resource Name (ARN) of the Timestream database.+timestreamRegistrationResponse_timestreamDatabaseArn :: Lens.Lens' TimestreamRegistrationResponse (Prelude.Maybe Prelude.Text)+timestreamRegistrationResponse_timestreamDatabaseArn = Lens.lens (\TimestreamRegistrationResponse' {timestreamDatabaseArn} -> timestreamDatabaseArn) (\s@TimestreamRegistrationResponse' {} a -> s {timestreamDatabaseArn = a} :: TimestreamRegistrationResponse)++-- | The ARN of the Timestream database table.+timestreamRegistrationResponse_timestreamTableArn :: Lens.Lens' TimestreamRegistrationResponse (Prelude.Maybe Prelude.Text)+timestreamRegistrationResponse_timestreamTableArn = Lens.lens (\TimestreamRegistrationResponse' {timestreamTableArn} -> timestreamTableArn) (\s@TimestreamRegistrationResponse' {} a -> s {timestreamTableArn = a} :: TimestreamRegistrationResponse)++-- | The name of the Timestream database.+timestreamRegistrationResponse_timestreamDatabaseName :: Lens.Lens' TimestreamRegistrationResponse Prelude.Text+timestreamRegistrationResponse_timestreamDatabaseName = Lens.lens (\TimestreamRegistrationResponse' {timestreamDatabaseName} -> timestreamDatabaseName) (\s@TimestreamRegistrationResponse' {} a -> s {timestreamDatabaseName = a} :: TimestreamRegistrationResponse)++-- | The name of the Timestream database table.+timestreamRegistrationResponse_timestreamTableName :: Lens.Lens' TimestreamRegistrationResponse Prelude.Text+timestreamRegistrationResponse_timestreamTableName = Lens.lens (\TimestreamRegistrationResponse' {timestreamTableName} -> timestreamTableName) (\s@TimestreamRegistrationResponse' {} a -> s {timestreamTableName = a} :: TimestreamRegistrationResponse)++-- | The status of registering your Amazon Timestream resources. The status+-- can be one of @REGISTRATION_SUCCESS@, @REGISTRATION_PENDING@,+-- @REGISTRATION_FAILURE@.+timestreamRegistrationResponse_registrationStatus :: Lens.Lens' TimestreamRegistrationResponse RegistrationStatus+timestreamRegistrationResponse_registrationStatus = Lens.lens (\TimestreamRegistrationResponse' {registrationStatus} -> registrationStatus) (\s@TimestreamRegistrationResponse' {} a -> s {registrationStatus = a} :: TimestreamRegistrationResponse)++instance Data.FromJSON TimestreamRegistrationResponse where+  parseJSON =+    Data.withObject+      "TimestreamRegistrationResponse"+      ( \x ->+          TimestreamRegistrationResponse'+            Prelude.<$> (x Data..:? "errorMessage")+            Prelude.<*> (x Data..:? "timestreamDatabaseArn")+            Prelude.<*> (x Data..:? "timestreamTableArn")+            Prelude.<*> (x Data..: "timestreamDatabaseName")+            Prelude.<*> (x Data..: "timestreamTableName")+            Prelude.<*> (x Data..: "registrationStatus")+      )++instance+  Prelude.Hashable+    TimestreamRegistrationResponse+  where+  hashWithSalt+    _salt+    TimestreamRegistrationResponse' {..} =+      _salt+        `Prelude.hashWithSalt` errorMessage+        `Prelude.hashWithSalt` timestreamDatabaseArn+        `Prelude.hashWithSalt` timestreamTableArn+        `Prelude.hashWithSalt` timestreamDatabaseName+        `Prelude.hashWithSalt` timestreamTableName+        `Prelude.hashWithSalt` registrationStatus++instance+  Prelude.NFData+    TimestreamRegistrationResponse+  where+  rnf TimestreamRegistrationResponse' {..} =+    Prelude.rnf errorMessage+      `Prelude.seq` Prelude.rnf timestreamDatabaseArn+      `Prelude.seq` Prelude.rnf timestreamTableArn+      `Prelude.seq` Prelude.rnf timestreamDatabaseName+      `Prelude.seq` Prelude.rnf timestreamTableName+      `Prelude.seq` Prelude.rnf registrationStatus
+ gen/Amazonka/IoTFleetWise/Types/TimestreamResources.hs view
@@ -0,0 +1,105 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.Types.TimestreamResources+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTFleetWise.Types.TimestreamResources where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The registered Amazon Timestream resources that Amazon Web Services IoT+-- FleetWise edge agent software can transfer your vehicle data to.+--+-- /See:/ 'newTimestreamResources' smart constructor.+data TimestreamResources = TimestreamResources'+  { -- | The name of the registered Amazon Timestream database.+    timestreamDatabaseName :: Prelude.Text,+    -- | The name of the registered Amazon Timestream database table.+    timestreamTableName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TimestreamResources' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'timestreamDatabaseName', 'timestreamResources_timestreamDatabaseName' - The name of the registered Amazon Timestream database.+--+-- 'timestreamTableName', 'timestreamResources_timestreamTableName' - The name of the registered Amazon Timestream database table.+newTimestreamResources ::+  -- | 'timestreamDatabaseName'+  Prelude.Text ->+  -- | 'timestreamTableName'+  Prelude.Text ->+  TimestreamResources+newTimestreamResources+  pTimestreamDatabaseName_+  pTimestreamTableName_ =+    TimestreamResources'+      { timestreamDatabaseName =+          pTimestreamDatabaseName_,+        timestreamTableName = pTimestreamTableName_+      }++-- | The name of the registered Amazon Timestream database.+timestreamResources_timestreamDatabaseName :: Lens.Lens' TimestreamResources Prelude.Text+timestreamResources_timestreamDatabaseName = Lens.lens (\TimestreamResources' {timestreamDatabaseName} -> timestreamDatabaseName) (\s@TimestreamResources' {} a -> s {timestreamDatabaseName = a} :: TimestreamResources)++-- | The name of the registered Amazon Timestream database table.+timestreamResources_timestreamTableName :: Lens.Lens' TimestreamResources Prelude.Text+timestreamResources_timestreamTableName = Lens.lens (\TimestreamResources' {timestreamTableName} -> timestreamTableName) (\s@TimestreamResources' {} a -> s {timestreamTableName = a} :: TimestreamResources)++instance Data.FromJSON TimestreamResources where+  parseJSON =+    Data.withObject+      "TimestreamResources"+      ( \x ->+          TimestreamResources'+            Prelude.<$> (x Data..: "timestreamDatabaseName")+            Prelude.<*> (x Data..: "timestreamTableName")+      )++instance Prelude.Hashable TimestreamResources where+  hashWithSalt _salt TimestreamResources' {..} =+    _salt+      `Prelude.hashWithSalt` timestreamDatabaseName+      `Prelude.hashWithSalt` timestreamTableName++instance Prelude.NFData TimestreamResources where+  rnf TimestreamResources' {..} =+    Prelude.rnf timestreamDatabaseName+      `Prelude.seq` Prelude.rnf timestreamTableName++instance Data.ToJSON TimestreamResources where+  toJSON TimestreamResources' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ( "timestreamDatabaseName"+                  Data..= timestreamDatabaseName+              ),+            Prelude.Just+              ("timestreamTableName" Data..= timestreamTableName)+          ]+      )
+ gen/Amazonka/IoTFleetWise/Types/TriggerMode.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.Types.TriggerMode+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTFleetWise.Types.TriggerMode+  ( TriggerMode+      ( ..,+        TriggerMode_ALWAYS,+        TriggerMode_RISING_EDGE+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype TriggerMode = TriggerMode'+  { fromTriggerMode ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern TriggerMode_ALWAYS :: TriggerMode+pattern TriggerMode_ALWAYS = TriggerMode' "ALWAYS"++pattern TriggerMode_RISING_EDGE :: TriggerMode+pattern TriggerMode_RISING_EDGE = TriggerMode' "RISING_EDGE"++{-# COMPLETE+  TriggerMode_ALWAYS,+  TriggerMode_RISING_EDGE,+  TriggerMode'+  #-}
+ gen/Amazonka/IoTFleetWise/Types/UpdateCampaignAction.hs view
@@ -0,0 +1,81 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.Types.UpdateCampaignAction+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTFleetWise.Types.UpdateCampaignAction+  ( UpdateCampaignAction+      ( ..,+        UpdateCampaignAction_APPROVE,+        UpdateCampaignAction_RESUME,+        UpdateCampaignAction_SUSPEND,+        UpdateCampaignAction_UPDATE+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype UpdateCampaignAction = UpdateCampaignAction'+  { fromUpdateCampaignAction ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern UpdateCampaignAction_APPROVE :: UpdateCampaignAction+pattern UpdateCampaignAction_APPROVE = UpdateCampaignAction' "APPROVE"++pattern UpdateCampaignAction_RESUME :: UpdateCampaignAction+pattern UpdateCampaignAction_RESUME = UpdateCampaignAction' "RESUME"++pattern UpdateCampaignAction_SUSPEND :: UpdateCampaignAction+pattern UpdateCampaignAction_SUSPEND = UpdateCampaignAction' "SUSPEND"++pattern UpdateCampaignAction_UPDATE :: UpdateCampaignAction+pattern UpdateCampaignAction_UPDATE = UpdateCampaignAction' "UPDATE"++{-# COMPLETE+  UpdateCampaignAction_APPROVE,+  UpdateCampaignAction_RESUME,+  UpdateCampaignAction_SUSPEND,+  UpdateCampaignAction_UPDATE,+  UpdateCampaignAction'+  #-}
+ gen/Amazonka/IoTFleetWise/Types/UpdateMode.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.Types.UpdateMode+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTFleetWise.Types.UpdateMode+  ( UpdateMode+      ( ..,+        UpdateMode_Merge,+        UpdateMode_Overwrite+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype UpdateMode = UpdateMode'+  { fromUpdateMode ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern UpdateMode_Merge :: UpdateMode+pattern UpdateMode_Merge = UpdateMode' "Merge"++pattern UpdateMode_Overwrite :: UpdateMode+pattern UpdateMode_Overwrite = UpdateMode' "Overwrite"++{-# COMPLETE+  UpdateMode_Merge,+  UpdateMode_Overwrite,+  UpdateMode'+  #-}
+ gen/Amazonka/IoTFleetWise/Types/UpdateVehicleError.hs view
@@ -0,0 +1,96 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.Types.UpdateVehicleError+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTFleetWise.Types.UpdateVehicleError where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | An HTTP error resulting from updating the description for a vehicle.+--+-- /See:/ 'newUpdateVehicleError' smart constructor.+data UpdateVehicleError = UpdateVehicleError'+  { -- | The relevant HTTP error code (400+).+    code :: Prelude.Maybe Prelude.Int,+    -- | A message associated with the error.+    message :: Prelude.Maybe Prelude.Text,+    -- | The ID of the vehicle with the error.+    vehicleName :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateVehicleError' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'code', 'updateVehicleError_code' - The relevant HTTP error code (400+).+--+-- 'message', 'updateVehicleError_message' - A message associated with the error.+--+-- 'vehicleName', 'updateVehicleError_vehicleName' - The ID of the vehicle with the error.+newUpdateVehicleError ::+  UpdateVehicleError+newUpdateVehicleError =+  UpdateVehicleError'+    { code = Prelude.Nothing,+      message = Prelude.Nothing,+      vehicleName = Prelude.Nothing+    }++-- | The relevant HTTP error code (400+).+updateVehicleError_code :: Lens.Lens' UpdateVehicleError (Prelude.Maybe Prelude.Int)+updateVehicleError_code = Lens.lens (\UpdateVehicleError' {code} -> code) (\s@UpdateVehicleError' {} a -> s {code = a} :: UpdateVehicleError)++-- | A message associated with the error.+updateVehicleError_message :: Lens.Lens' UpdateVehicleError (Prelude.Maybe Prelude.Text)+updateVehicleError_message = Lens.lens (\UpdateVehicleError' {message} -> message) (\s@UpdateVehicleError' {} a -> s {message = a} :: UpdateVehicleError)++-- | The ID of the vehicle with the error.+updateVehicleError_vehicleName :: Lens.Lens' UpdateVehicleError (Prelude.Maybe Prelude.Text)+updateVehicleError_vehicleName = Lens.lens (\UpdateVehicleError' {vehicleName} -> vehicleName) (\s@UpdateVehicleError' {} a -> s {vehicleName = a} :: UpdateVehicleError)++instance Data.FromJSON UpdateVehicleError where+  parseJSON =+    Data.withObject+      "UpdateVehicleError"+      ( \x ->+          UpdateVehicleError'+            Prelude.<$> (x Data..:? "code")+            Prelude.<*> (x Data..:? "message")+            Prelude.<*> (x Data..:? "vehicleName")+      )++instance Prelude.Hashable UpdateVehicleError where+  hashWithSalt _salt UpdateVehicleError' {..} =+    _salt+      `Prelude.hashWithSalt` code+      `Prelude.hashWithSalt` message+      `Prelude.hashWithSalt` vehicleName++instance Prelude.NFData UpdateVehicleError where+  rnf UpdateVehicleError' {..} =+    Prelude.rnf code+      `Prelude.seq` Prelude.rnf message+      `Prelude.seq` Prelude.rnf vehicleName
+ gen/Amazonka/IoTFleetWise/Types/UpdateVehicleRequestItem.hs view
@@ -0,0 +1,150 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.Types.UpdateVehicleRequestItem+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTFleetWise.Types.UpdateVehicleRequestItem where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTFleetWise.Types.UpdateMode+import qualified Amazonka.Prelude as Prelude++-- | Information about the vehicle to update.+--+-- /See:/ 'newUpdateVehicleRequestItem' smart constructor.+data UpdateVehicleRequestItem = UpdateVehicleRequestItem'+  { -- | The method the specified attributes will update the existing attributes+    -- on the vehicle. Use@Overwite@ to replace the vehicle attributes with the+    -- specified attributes. Or use @Merge@ to combine all attributes.+    --+    -- This is required if attributes are present in the input.+    attributeUpdateMode :: Prelude.Maybe UpdateMode,+    -- | Static information about a vehicle in a key-value pair. For example:+    --+    -- @\"engineType\"@ : @\"1.3 L R2\"@+    attributes :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The ARN of the signal decoder manifest associated with the vehicle to+    -- update.+    decoderManifestArn :: Prelude.Maybe Prelude.Text,+    -- | The ARN of the vehicle model (model manifest) associated with the+    -- vehicle to update.+    modelManifestArn :: Prelude.Maybe Prelude.Text,+    -- | The unique ID of the vehicle to update.+    vehicleName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateVehicleRequestItem' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'attributeUpdateMode', 'updateVehicleRequestItem_attributeUpdateMode' - The method the specified attributes will update the existing attributes+-- on the vehicle. Use@Overwite@ to replace the vehicle attributes with the+-- specified attributes. Or use @Merge@ to combine all attributes.+--+-- This is required if attributes are present in the input.+--+-- 'attributes', 'updateVehicleRequestItem_attributes' - Static information about a vehicle in a key-value pair. For example:+--+-- @\"engineType\"@ : @\"1.3 L R2\"@+--+-- 'decoderManifestArn', 'updateVehicleRequestItem_decoderManifestArn' - The ARN of the signal decoder manifest associated with the vehicle to+-- update.+--+-- 'modelManifestArn', 'updateVehicleRequestItem_modelManifestArn' - The ARN of the vehicle model (model manifest) associated with the+-- vehicle to update.+--+-- 'vehicleName', 'updateVehicleRequestItem_vehicleName' - The unique ID of the vehicle to update.+newUpdateVehicleRequestItem ::+  -- | 'vehicleName'+  Prelude.Text ->+  UpdateVehicleRequestItem+newUpdateVehicleRequestItem pVehicleName_ =+  UpdateVehicleRequestItem'+    { attributeUpdateMode =+        Prelude.Nothing,+      attributes = Prelude.Nothing,+      decoderManifestArn = Prelude.Nothing,+      modelManifestArn = Prelude.Nothing,+      vehicleName = pVehicleName_+    }++-- | The method the specified attributes will update the existing attributes+-- on the vehicle. Use@Overwite@ to replace the vehicle attributes with the+-- specified attributes. Or use @Merge@ to combine all attributes.+--+-- This is required if attributes are present in the input.+updateVehicleRequestItem_attributeUpdateMode :: Lens.Lens' UpdateVehicleRequestItem (Prelude.Maybe UpdateMode)+updateVehicleRequestItem_attributeUpdateMode = Lens.lens (\UpdateVehicleRequestItem' {attributeUpdateMode} -> attributeUpdateMode) (\s@UpdateVehicleRequestItem' {} a -> s {attributeUpdateMode = a} :: UpdateVehicleRequestItem)++-- | Static information about a vehicle in a key-value pair. For example:+--+-- @\"engineType\"@ : @\"1.3 L R2\"@+updateVehicleRequestItem_attributes :: Lens.Lens' UpdateVehicleRequestItem (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+updateVehicleRequestItem_attributes = Lens.lens (\UpdateVehicleRequestItem' {attributes} -> attributes) (\s@UpdateVehicleRequestItem' {} a -> s {attributes = a} :: UpdateVehicleRequestItem) Prelude.. Lens.mapping Lens.coerced++-- | The ARN of the signal decoder manifest associated with the vehicle to+-- update.+updateVehicleRequestItem_decoderManifestArn :: Lens.Lens' UpdateVehicleRequestItem (Prelude.Maybe Prelude.Text)+updateVehicleRequestItem_decoderManifestArn = Lens.lens (\UpdateVehicleRequestItem' {decoderManifestArn} -> decoderManifestArn) (\s@UpdateVehicleRequestItem' {} a -> s {decoderManifestArn = a} :: UpdateVehicleRequestItem)++-- | The ARN of the vehicle model (model manifest) associated with the+-- vehicle to update.+updateVehicleRequestItem_modelManifestArn :: Lens.Lens' UpdateVehicleRequestItem (Prelude.Maybe Prelude.Text)+updateVehicleRequestItem_modelManifestArn = Lens.lens (\UpdateVehicleRequestItem' {modelManifestArn} -> modelManifestArn) (\s@UpdateVehicleRequestItem' {} a -> s {modelManifestArn = a} :: UpdateVehicleRequestItem)++-- | The unique ID of the vehicle to update.+updateVehicleRequestItem_vehicleName :: Lens.Lens' UpdateVehicleRequestItem Prelude.Text+updateVehicleRequestItem_vehicleName = Lens.lens (\UpdateVehicleRequestItem' {vehicleName} -> vehicleName) (\s@UpdateVehicleRequestItem' {} a -> s {vehicleName = a} :: UpdateVehicleRequestItem)++instance Prelude.Hashable UpdateVehicleRequestItem where+  hashWithSalt _salt UpdateVehicleRequestItem' {..} =+    _salt+      `Prelude.hashWithSalt` attributeUpdateMode+      `Prelude.hashWithSalt` attributes+      `Prelude.hashWithSalt` decoderManifestArn+      `Prelude.hashWithSalt` modelManifestArn+      `Prelude.hashWithSalt` vehicleName++instance Prelude.NFData UpdateVehicleRequestItem where+  rnf UpdateVehicleRequestItem' {..} =+    Prelude.rnf attributeUpdateMode+      `Prelude.seq` Prelude.rnf attributes+      `Prelude.seq` Prelude.rnf decoderManifestArn+      `Prelude.seq` Prelude.rnf modelManifestArn+      `Prelude.seq` Prelude.rnf vehicleName++instance Data.ToJSON UpdateVehicleRequestItem where+  toJSON UpdateVehicleRequestItem' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("attributeUpdateMode" Data..=)+              Prelude.<$> attributeUpdateMode,+            ("attributes" Data..=) Prelude.<$> attributes,+            ("decoderManifestArn" Data..=)+              Prelude.<$> decoderManifestArn,+            ("modelManifestArn" Data..=)+              Prelude.<$> modelManifestArn,+            Prelude.Just ("vehicleName" Data..= vehicleName)+          ]+      )
+ gen/Amazonka/IoTFleetWise/Types/UpdateVehicleResponseItem.hs view
@@ -0,0 +1,84 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.Types.UpdateVehicleResponseItem+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTFleetWise.Types.UpdateVehicleResponseItem where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Information about the updated vehicle.+--+-- /See:/ 'newUpdateVehicleResponseItem' smart constructor.+data UpdateVehicleResponseItem = UpdateVehicleResponseItem'+  { -- | The Amazon Resource Name (ARN) of the updated vehicle.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The unique ID of the updated vehicle.+    vehicleName :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateVehicleResponseItem' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'updateVehicleResponseItem_arn' - The Amazon Resource Name (ARN) of the updated vehicle.+--+-- 'vehicleName', 'updateVehicleResponseItem_vehicleName' - The unique ID of the updated vehicle.+newUpdateVehicleResponseItem ::+  UpdateVehicleResponseItem+newUpdateVehicleResponseItem =+  UpdateVehicleResponseItem'+    { arn = Prelude.Nothing,+      vehicleName = Prelude.Nothing+    }++-- | The Amazon Resource Name (ARN) of the updated vehicle.+updateVehicleResponseItem_arn :: Lens.Lens' UpdateVehicleResponseItem (Prelude.Maybe Prelude.Text)+updateVehicleResponseItem_arn = Lens.lens (\UpdateVehicleResponseItem' {arn} -> arn) (\s@UpdateVehicleResponseItem' {} a -> s {arn = a} :: UpdateVehicleResponseItem)++-- | The unique ID of the updated vehicle.+updateVehicleResponseItem_vehicleName :: Lens.Lens' UpdateVehicleResponseItem (Prelude.Maybe Prelude.Text)+updateVehicleResponseItem_vehicleName = Lens.lens (\UpdateVehicleResponseItem' {vehicleName} -> vehicleName) (\s@UpdateVehicleResponseItem' {} a -> s {vehicleName = a} :: UpdateVehicleResponseItem)++instance Data.FromJSON UpdateVehicleResponseItem where+  parseJSON =+    Data.withObject+      "UpdateVehicleResponseItem"+      ( \x ->+          UpdateVehicleResponseItem'+            Prelude.<$> (x Data..:? "arn")+            Prelude.<*> (x Data..:? "vehicleName")+      )++instance Prelude.Hashable UpdateVehicleResponseItem where+  hashWithSalt _salt UpdateVehicleResponseItem' {..} =+    _salt+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` vehicleName++instance Prelude.NFData UpdateVehicleResponseItem where+  rnf UpdateVehicleResponseItem' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf vehicleName
+ gen/Amazonka/IoTFleetWise/Types/VehicleAssociationBehavior.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.Types.VehicleAssociationBehavior+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTFleetWise.Types.VehicleAssociationBehavior+  ( VehicleAssociationBehavior+      ( ..,+        VehicleAssociationBehavior_CreateIotThing,+        VehicleAssociationBehavior_ValidateIotThingExists+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype VehicleAssociationBehavior = VehicleAssociationBehavior'+  { fromVehicleAssociationBehavior ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern VehicleAssociationBehavior_CreateIotThing :: VehicleAssociationBehavior+pattern VehicleAssociationBehavior_CreateIotThing = VehicleAssociationBehavior' "CreateIotThing"++pattern VehicleAssociationBehavior_ValidateIotThingExists :: VehicleAssociationBehavior+pattern VehicleAssociationBehavior_ValidateIotThingExists = VehicleAssociationBehavior' "ValidateIotThingExists"++{-# COMPLETE+  VehicleAssociationBehavior_CreateIotThing,+  VehicleAssociationBehavior_ValidateIotThingExists,+  VehicleAssociationBehavior'+  #-}
+ gen/Amazonka/IoTFleetWise/Types/VehicleState.hs view
@@ -0,0 +1,86 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.Types.VehicleState+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTFleetWise.Types.VehicleState+  ( VehicleState+      ( ..,+        VehicleState_CREATED,+        VehicleState_DELETING,+        VehicleState_HEALTHY,+        VehicleState_READY,+        VehicleState_SUSPENDED+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype VehicleState = VehicleState'+  { fromVehicleState ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern VehicleState_CREATED :: VehicleState+pattern VehicleState_CREATED = VehicleState' "CREATED"++pattern VehicleState_DELETING :: VehicleState+pattern VehicleState_DELETING = VehicleState' "DELETING"++pattern VehicleState_HEALTHY :: VehicleState+pattern VehicleState_HEALTHY = VehicleState' "HEALTHY"++pattern VehicleState_READY :: VehicleState+pattern VehicleState_READY = VehicleState' "READY"++pattern VehicleState_SUSPENDED :: VehicleState+pattern VehicleState_SUSPENDED = VehicleState' "SUSPENDED"++{-# COMPLETE+  VehicleState_CREATED,+  VehicleState_DELETING,+  VehicleState_HEALTHY,+  VehicleState_READY,+  VehicleState_SUSPENDED,+  VehicleState'+  #-}
+ gen/Amazonka/IoTFleetWise/Types/VehicleStatus.hs view
@@ -0,0 +1,137 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.Types.VehicleStatus+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTFleetWise.Types.VehicleStatus where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTFleetWise.Types.VehicleState+import qualified Amazonka.Prelude as Prelude++-- | Information about the state of a vehicle and how it relates to the+-- status of a campaign.+--+-- /See:/ 'newVehicleStatus' smart constructor.+data VehicleStatus = VehicleStatus'+  { -- | The name of a campaign.+    campaignName :: Prelude.Maybe Prelude.Text,+    -- | The state of a vehicle, which can be one of the following:+    --+    -- -   @CREATED@ - Amazon Web Services IoT FleetWise sucessfully created+    --     the vehicle.+    --+    -- -   @READY@ - The vehicle is ready to receive a campaign deployment.+    --+    -- -   @HEALTHY@ - A campaign deployment was delivered to the vehicle.+    --+    -- -   @SUSPENDED@ - A campaign associated with the vehicle was suspended+    --     and data collection was paused.+    --+    -- -   @DELETING@ - Amazon Web Services IoT FleetWise is removing a+    --     campaign from the vehicle.+    status :: Prelude.Maybe VehicleState,+    -- | The unique ID of the vehicle.+    vehicleName :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VehicleStatus' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'campaignName', 'vehicleStatus_campaignName' - The name of a campaign.+--+-- 'status', 'vehicleStatus_status' - The state of a vehicle, which can be one of the following:+--+-- -   @CREATED@ - Amazon Web Services IoT FleetWise sucessfully created+--     the vehicle.+--+-- -   @READY@ - The vehicle is ready to receive a campaign deployment.+--+-- -   @HEALTHY@ - A campaign deployment was delivered to the vehicle.+--+-- -   @SUSPENDED@ - A campaign associated with the vehicle was suspended+--     and data collection was paused.+--+-- -   @DELETING@ - Amazon Web Services IoT FleetWise is removing a+--     campaign from the vehicle.+--+-- 'vehicleName', 'vehicleStatus_vehicleName' - The unique ID of the vehicle.+newVehicleStatus ::+  VehicleStatus+newVehicleStatus =+  VehicleStatus'+    { campaignName = Prelude.Nothing,+      status = Prelude.Nothing,+      vehicleName = Prelude.Nothing+    }++-- | The name of a campaign.+vehicleStatus_campaignName :: Lens.Lens' VehicleStatus (Prelude.Maybe Prelude.Text)+vehicleStatus_campaignName = Lens.lens (\VehicleStatus' {campaignName} -> campaignName) (\s@VehicleStatus' {} a -> s {campaignName = a} :: VehicleStatus)++-- | The state of a vehicle, which can be one of the following:+--+-- -   @CREATED@ - Amazon Web Services IoT FleetWise sucessfully created+--     the vehicle.+--+-- -   @READY@ - The vehicle is ready to receive a campaign deployment.+--+-- -   @HEALTHY@ - A campaign deployment was delivered to the vehicle.+--+-- -   @SUSPENDED@ - A campaign associated with the vehicle was suspended+--     and data collection was paused.+--+-- -   @DELETING@ - Amazon Web Services IoT FleetWise is removing a+--     campaign from the vehicle.+vehicleStatus_status :: Lens.Lens' VehicleStatus (Prelude.Maybe VehicleState)+vehicleStatus_status = Lens.lens (\VehicleStatus' {status} -> status) (\s@VehicleStatus' {} a -> s {status = a} :: VehicleStatus)++-- | The unique ID of the vehicle.+vehicleStatus_vehicleName :: Lens.Lens' VehicleStatus (Prelude.Maybe Prelude.Text)+vehicleStatus_vehicleName = Lens.lens (\VehicleStatus' {vehicleName} -> vehicleName) (\s@VehicleStatus' {} a -> s {vehicleName = a} :: VehicleStatus)++instance Data.FromJSON VehicleStatus where+  parseJSON =+    Data.withObject+      "VehicleStatus"+      ( \x ->+          VehicleStatus'+            Prelude.<$> (x Data..:? "campaignName")+            Prelude.<*> (x Data..:? "status")+            Prelude.<*> (x Data..:? "vehicleName")+      )++instance Prelude.Hashable VehicleStatus where+  hashWithSalt _salt VehicleStatus' {..} =+    _salt+      `Prelude.hashWithSalt` campaignName+      `Prelude.hashWithSalt` status+      `Prelude.hashWithSalt` vehicleName++instance Prelude.NFData VehicleStatus where+  rnf VehicleStatus' {..} =+    Prelude.rnf campaignName+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf vehicleName
+ gen/Amazonka/IoTFleetWise/Types/VehicleSummary.hs view
@@ -0,0 +1,160 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.Types.VehicleSummary+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTFleetWise.Types.VehicleSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Information about a vehicle.+--+-- To return this information about vehicles in your account, you can use+-- the API operation.+--+-- /See:/ 'newVehicleSummary' smart constructor.+data VehicleSummary = VehicleSummary'+  { -- | The unique ID of the vehicle.+    vehicleName :: Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the vehicle.+    arn :: Prelude.Text,+    -- | The ARN of a vehicle model (model manifest) associated with the vehicle.+    modelManifestArn :: Prelude.Text,+    -- | The ARN of a decoder manifest associated with the vehicle.+    decoderManifestArn :: Prelude.Text,+    -- | The time the vehicle was created in seconds since epoch (January 1, 1970+    -- at midnight UTC time).+    creationTime :: Data.POSIX,+    -- | The time the vehicle was last updated in seconds since epoch (January 1,+    -- 1970 at midnight UTC time).+    lastModificationTime :: Data.POSIX+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VehicleSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'vehicleName', 'vehicleSummary_vehicleName' - The unique ID of the vehicle.+--+-- 'arn', 'vehicleSummary_arn' - The Amazon Resource Name (ARN) of the vehicle.+--+-- 'modelManifestArn', 'vehicleSummary_modelManifestArn' - The ARN of a vehicle model (model manifest) associated with the vehicle.+--+-- 'decoderManifestArn', 'vehicleSummary_decoderManifestArn' - The ARN of a decoder manifest associated with the vehicle.+--+-- 'creationTime', 'vehicleSummary_creationTime' - The time the vehicle was created in seconds since epoch (January 1, 1970+-- at midnight UTC time).+--+-- 'lastModificationTime', 'vehicleSummary_lastModificationTime' - The time the vehicle was last updated in seconds since epoch (January 1,+-- 1970 at midnight UTC time).+newVehicleSummary ::+  -- | 'vehicleName'+  Prelude.Text ->+  -- | 'arn'+  Prelude.Text ->+  -- | 'modelManifestArn'+  Prelude.Text ->+  -- | 'decoderManifestArn'+  Prelude.Text ->+  -- | 'creationTime'+  Prelude.UTCTime ->+  -- | 'lastModificationTime'+  Prelude.UTCTime ->+  VehicleSummary+newVehicleSummary+  pVehicleName_+  pArn_+  pModelManifestArn_+  pDecoderManifestArn_+  pCreationTime_+  pLastModificationTime_ =+    VehicleSummary'+      { vehicleName = pVehicleName_,+        arn = pArn_,+        modelManifestArn = pModelManifestArn_,+        decoderManifestArn = pDecoderManifestArn_,+        creationTime = Data._Time Lens.# pCreationTime_,+        lastModificationTime =+          Data._Time Lens.# pLastModificationTime_+      }++-- | The unique ID of the vehicle.+vehicleSummary_vehicleName :: Lens.Lens' VehicleSummary Prelude.Text+vehicleSummary_vehicleName = Lens.lens (\VehicleSummary' {vehicleName} -> vehicleName) (\s@VehicleSummary' {} a -> s {vehicleName = a} :: VehicleSummary)++-- | The Amazon Resource Name (ARN) of the vehicle.+vehicleSummary_arn :: Lens.Lens' VehicleSummary Prelude.Text+vehicleSummary_arn = Lens.lens (\VehicleSummary' {arn} -> arn) (\s@VehicleSummary' {} a -> s {arn = a} :: VehicleSummary)++-- | The ARN of a vehicle model (model manifest) associated with the vehicle.+vehicleSummary_modelManifestArn :: Lens.Lens' VehicleSummary Prelude.Text+vehicleSummary_modelManifestArn = Lens.lens (\VehicleSummary' {modelManifestArn} -> modelManifestArn) (\s@VehicleSummary' {} a -> s {modelManifestArn = a} :: VehicleSummary)++-- | The ARN of a decoder manifest associated with the vehicle.+vehicleSummary_decoderManifestArn :: Lens.Lens' VehicleSummary Prelude.Text+vehicleSummary_decoderManifestArn = Lens.lens (\VehicleSummary' {decoderManifestArn} -> decoderManifestArn) (\s@VehicleSummary' {} a -> s {decoderManifestArn = a} :: VehicleSummary)++-- | The time the vehicle was created in seconds since epoch (January 1, 1970+-- at midnight UTC time).+vehicleSummary_creationTime :: Lens.Lens' VehicleSummary Prelude.UTCTime+vehicleSummary_creationTime = Lens.lens (\VehicleSummary' {creationTime} -> creationTime) (\s@VehicleSummary' {} a -> s {creationTime = a} :: VehicleSummary) Prelude.. Data._Time++-- | The time the vehicle was last updated in seconds since epoch (January 1,+-- 1970 at midnight UTC time).+vehicleSummary_lastModificationTime :: Lens.Lens' VehicleSummary Prelude.UTCTime+vehicleSummary_lastModificationTime = Lens.lens (\VehicleSummary' {lastModificationTime} -> lastModificationTime) (\s@VehicleSummary' {} a -> s {lastModificationTime = a} :: VehicleSummary) Prelude.. Data._Time++instance Data.FromJSON VehicleSummary where+  parseJSON =+    Data.withObject+      "VehicleSummary"+      ( \x ->+          VehicleSummary'+            Prelude.<$> (x Data..: "vehicleName")+            Prelude.<*> (x Data..: "arn")+            Prelude.<*> (x Data..: "modelManifestArn")+            Prelude.<*> (x Data..: "decoderManifestArn")+            Prelude.<*> (x Data..: "creationTime")+            Prelude.<*> (x Data..: "lastModificationTime")+      )++instance Prelude.Hashable VehicleSummary where+  hashWithSalt _salt VehicleSummary' {..} =+    _salt+      `Prelude.hashWithSalt` vehicleName+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` modelManifestArn+      `Prelude.hashWithSalt` decoderManifestArn+      `Prelude.hashWithSalt` creationTime+      `Prelude.hashWithSalt` lastModificationTime++instance Prelude.NFData VehicleSummary where+  rnf VehicleSummary' {..} =+    Prelude.rnf vehicleName+      `Prelude.seq` Prelude.rnf arn+      `Prelude.seq` Prelude.rnf modelManifestArn+      `Prelude.seq` Prelude.rnf decoderManifestArn+      `Prelude.seq` Prelude.rnf creationTime+      `Prelude.seq` Prelude.rnf lastModificationTime
+ gen/Amazonka/IoTFleetWise/UntagResource.hs view
@@ -0,0 +1,171 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.UntagResource+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Removes the given tags (metadata) from the resource.+module Amazonka.IoTFleetWise.UntagResource+  ( -- * Creating a Request+    UntagResource (..),+    newUntagResource,++    -- * Request Lenses+    untagResource_resourceARN,+    untagResource_tagKeys,++    -- * Destructuring the Response+    UntagResourceResponse (..),+    newUntagResourceResponse,++    -- * Response Lenses+    untagResourceResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTFleetWise.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUntagResource' smart constructor.+data UntagResource = UntagResource'+  { -- | The ARN of the resource.+    resourceARN :: Prelude.Text,+    -- | A list of the keys of the tags to be removed from the resource.+    tagKeys :: [Prelude.Text]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UntagResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceARN', 'untagResource_resourceARN' - The ARN of the resource.+--+-- 'tagKeys', 'untagResource_tagKeys' - A list of the keys of the tags to be removed from the resource.+newUntagResource ::+  -- | 'resourceARN'+  Prelude.Text ->+  UntagResource+newUntagResource pResourceARN_ =+  UntagResource'+    { resourceARN = pResourceARN_,+      tagKeys = Prelude.mempty+    }++-- | The ARN of the resource.+untagResource_resourceARN :: Lens.Lens' UntagResource Prelude.Text+untagResource_resourceARN = Lens.lens (\UntagResource' {resourceARN} -> resourceARN) (\s@UntagResource' {} a -> s {resourceARN = a} :: UntagResource)++-- | A list of the keys of the tags to be removed from the resource.+untagResource_tagKeys :: Lens.Lens' UntagResource [Prelude.Text]+untagResource_tagKeys = Lens.lens (\UntagResource' {tagKeys} -> tagKeys) (\s@UntagResource' {} a -> s {tagKeys = a} :: UntagResource) Prelude.. Lens.coerced++instance Core.AWSRequest UntagResource where+  type+    AWSResponse UntagResource =+      UntagResourceResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          UntagResourceResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UntagResource where+  hashWithSalt _salt UntagResource' {..} =+    _salt+      `Prelude.hashWithSalt` resourceARN+      `Prelude.hashWithSalt` tagKeys++instance Prelude.NFData UntagResource where+  rnf UntagResource' {..} =+    Prelude.rnf resourceARN+      `Prelude.seq` Prelude.rnf tagKeys++instance Data.ToHeaders UntagResource where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "IoTAutobahnControlPlane.UntagResource" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UntagResource where+  toJSON UntagResource' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("ResourceARN" Data..= resourceARN),+            Prelude.Just ("TagKeys" Data..= tagKeys)+          ]+      )++instance Data.ToPath UntagResource where+  toPath = Prelude.const "/"++instance Data.ToQuery UntagResource where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUntagResourceResponse' smart constructor.+data UntagResourceResponse = UntagResourceResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UntagResourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'untagResourceResponse_httpStatus' - The response's http status code.+newUntagResourceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UntagResourceResponse+newUntagResourceResponse pHttpStatus_ =+  UntagResourceResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+untagResourceResponse_httpStatus :: Lens.Lens' UntagResourceResponse Prelude.Int+untagResourceResponse_httpStatus = Lens.lens (\UntagResourceResponse' {httpStatus} -> httpStatus) (\s@UntagResourceResponse' {} a -> s {httpStatus = a} :: UntagResourceResponse)++instance Prelude.NFData UntagResourceResponse where+  rnf UntagResourceResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/IoTFleetWise/UpdateCampaign.hs view
@@ -0,0 +1,314 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.UpdateCampaign+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates a campaign.+module Amazonka.IoTFleetWise.UpdateCampaign+  ( -- * Creating a Request+    UpdateCampaign (..),+    newUpdateCampaign,++    -- * Request Lenses+    updateCampaign_dataExtraDimensions,+    updateCampaign_description,+    updateCampaign_name,+    updateCampaign_action,++    -- * Destructuring the Response+    UpdateCampaignResponse (..),+    newUpdateCampaignResponse,++    -- * Response Lenses+    updateCampaignResponse_arn,+    updateCampaignResponse_name,+    updateCampaignResponse_status,+    updateCampaignResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTFleetWise.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateCampaign' smart constructor.+data UpdateCampaign = UpdateCampaign'+  { -- | A list of vehicle attributes to associate with a signal.+    --+    -- Default: An empty array+    dataExtraDimensions :: Prelude.Maybe [Prelude.Text],+    -- | The description of the campaign.+    description :: Prelude.Maybe Prelude.Text,+    -- | The name of the campaign to update.+    name :: Prelude.Text,+    -- | Specifies how to update a campaign. The action can be one of the+    -- following:+    --+    -- -   @APPROVE@ - To approve delivering a data collection scheme to+    --     vehicles.+    --+    -- -   @SUSPEND@ - To suspend collecting signal data.+    --+    -- -   @RESUME@ - To resume collecting signal data.+    --+    -- -   @UPDATE@ - To update a campaign.+    action :: UpdateCampaignAction+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateCampaign' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dataExtraDimensions', 'updateCampaign_dataExtraDimensions' - A list of vehicle attributes to associate with a signal.+--+-- Default: An empty array+--+-- 'description', 'updateCampaign_description' - The description of the campaign.+--+-- 'name', 'updateCampaign_name' - The name of the campaign to update.+--+-- 'action', 'updateCampaign_action' - Specifies how to update a campaign. The action can be one of the+-- following:+--+-- -   @APPROVE@ - To approve delivering a data collection scheme to+--     vehicles.+--+-- -   @SUSPEND@ - To suspend collecting signal data.+--+-- -   @RESUME@ - To resume collecting signal data.+--+-- -   @UPDATE@ - To update a campaign.+newUpdateCampaign ::+  -- | 'name'+  Prelude.Text ->+  -- | 'action'+  UpdateCampaignAction ->+  UpdateCampaign+newUpdateCampaign pName_ pAction_ =+  UpdateCampaign'+    { dataExtraDimensions =+        Prelude.Nothing,+      description = Prelude.Nothing,+      name = pName_,+      action = pAction_+    }++-- | A list of vehicle attributes to associate with a signal.+--+-- Default: An empty array+updateCampaign_dataExtraDimensions :: Lens.Lens' UpdateCampaign (Prelude.Maybe [Prelude.Text])+updateCampaign_dataExtraDimensions = Lens.lens (\UpdateCampaign' {dataExtraDimensions} -> dataExtraDimensions) (\s@UpdateCampaign' {} a -> s {dataExtraDimensions = a} :: UpdateCampaign) Prelude.. Lens.mapping Lens.coerced++-- | The description of the campaign.+updateCampaign_description :: Lens.Lens' UpdateCampaign (Prelude.Maybe Prelude.Text)+updateCampaign_description = Lens.lens (\UpdateCampaign' {description} -> description) (\s@UpdateCampaign' {} a -> s {description = a} :: UpdateCampaign)++-- | The name of the campaign to update.+updateCampaign_name :: Lens.Lens' UpdateCampaign Prelude.Text+updateCampaign_name = Lens.lens (\UpdateCampaign' {name} -> name) (\s@UpdateCampaign' {} a -> s {name = a} :: UpdateCampaign)++-- | Specifies how to update a campaign. The action can be one of the+-- following:+--+-- -   @APPROVE@ - To approve delivering a data collection scheme to+--     vehicles.+--+-- -   @SUSPEND@ - To suspend collecting signal data.+--+-- -   @RESUME@ - To resume collecting signal data.+--+-- -   @UPDATE@ - To update a campaign.+updateCampaign_action :: Lens.Lens' UpdateCampaign UpdateCampaignAction+updateCampaign_action = Lens.lens (\UpdateCampaign' {action} -> action) (\s@UpdateCampaign' {} a -> s {action = a} :: UpdateCampaign)++instance Core.AWSRequest UpdateCampaign where+  type+    AWSResponse UpdateCampaign =+      UpdateCampaignResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateCampaignResponse'+            Prelude.<$> (x Data..?> "arn")+            Prelude.<*> (x Data..?> "name")+            Prelude.<*> (x Data..?> "status")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateCampaign where+  hashWithSalt _salt UpdateCampaign' {..} =+    _salt+      `Prelude.hashWithSalt` dataExtraDimensions+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` action++instance Prelude.NFData UpdateCampaign where+  rnf UpdateCampaign' {..} =+    Prelude.rnf dataExtraDimensions+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf action++instance Data.ToHeaders UpdateCampaign where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "IoTAutobahnControlPlane.UpdateCampaign" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateCampaign where+  toJSON UpdateCampaign' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("dataExtraDimensions" Data..=)+              Prelude.<$> dataExtraDimensions,+            ("description" Data..=) Prelude.<$> description,+            Prelude.Just ("name" Data..= name),+            Prelude.Just ("action" Data..= action)+          ]+      )++instance Data.ToPath UpdateCampaign where+  toPath = Prelude.const "/"++instance Data.ToQuery UpdateCampaign where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateCampaignResponse' smart constructor.+data UpdateCampaignResponse = UpdateCampaignResponse'+  { -- | The Amazon Resource Name (ARN) of the campaign.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The name of the updated campaign.+    name :: Prelude.Maybe Prelude.Text,+    -- | The state of a campaign. The status can be one of:+    --+    -- -   @CREATING@ - Amazon Web Services IoT FleetWise is processing your+    --     request to create the campaign.+    --+    -- -   @WAITING_FOR_APPROVAL@ - After a campaign is created, it enters the+    --     @WAITING_FOR_APPROVAL@ state. To allow Amazon Web Services IoT+    --     FleetWise to deploy the campaign to the target vehicle or fleet, use+    --     the API operation to approve the campaign.+    --+    -- -   @RUNNING@ - The campaign is active.+    --+    -- -   @SUSPENDED@ - The campaign is suspended. To resume the campaign, use+    --     the API operation.+    status :: Prelude.Maybe CampaignStatus,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateCampaignResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'updateCampaignResponse_arn' - The Amazon Resource Name (ARN) of the campaign.+--+-- 'name', 'updateCampaignResponse_name' - The name of the updated campaign.+--+-- 'status', 'updateCampaignResponse_status' - The state of a campaign. The status can be one of:+--+-- -   @CREATING@ - Amazon Web Services IoT FleetWise is processing your+--     request to create the campaign.+--+-- -   @WAITING_FOR_APPROVAL@ - After a campaign is created, it enters the+--     @WAITING_FOR_APPROVAL@ state. To allow Amazon Web Services IoT+--     FleetWise to deploy the campaign to the target vehicle or fleet, use+--     the API operation to approve the campaign.+--+-- -   @RUNNING@ - The campaign is active.+--+-- -   @SUSPENDED@ - The campaign is suspended. To resume the campaign, use+--     the API operation.+--+-- 'httpStatus', 'updateCampaignResponse_httpStatus' - The response's http status code.+newUpdateCampaignResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateCampaignResponse+newUpdateCampaignResponse pHttpStatus_ =+  UpdateCampaignResponse'+    { arn = Prelude.Nothing,+      name = Prelude.Nothing,+      status = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The Amazon Resource Name (ARN) of the campaign.+updateCampaignResponse_arn :: Lens.Lens' UpdateCampaignResponse (Prelude.Maybe Prelude.Text)+updateCampaignResponse_arn = Lens.lens (\UpdateCampaignResponse' {arn} -> arn) (\s@UpdateCampaignResponse' {} a -> s {arn = a} :: UpdateCampaignResponse)++-- | The name of the updated campaign.+updateCampaignResponse_name :: Lens.Lens' UpdateCampaignResponse (Prelude.Maybe Prelude.Text)+updateCampaignResponse_name = Lens.lens (\UpdateCampaignResponse' {name} -> name) (\s@UpdateCampaignResponse' {} a -> s {name = a} :: UpdateCampaignResponse)++-- | The state of a campaign. The status can be one of:+--+-- -   @CREATING@ - Amazon Web Services IoT FleetWise is processing your+--     request to create the campaign.+--+-- -   @WAITING_FOR_APPROVAL@ - After a campaign is created, it enters the+--     @WAITING_FOR_APPROVAL@ state. To allow Amazon Web Services IoT+--     FleetWise to deploy the campaign to the target vehicle or fleet, use+--     the API operation to approve the campaign.+--+-- -   @RUNNING@ - The campaign is active.+--+-- -   @SUSPENDED@ - The campaign is suspended. To resume the campaign, use+--     the API operation.+updateCampaignResponse_status :: Lens.Lens' UpdateCampaignResponse (Prelude.Maybe CampaignStatus)+updateCampaignResponse_status = Lens.lens (\UpdateCampaignResponse' {status} -> status) (\s@UpdateCampaignResponse' {} a -> s {status = a} :: UpdateCampaignResponse)++-- | The response's http status code.+updateCampaignResponse_httpStatus :: Lens.Lens' UpdateCampaignResponse Prelude.Int+updateCampaignResponse_httpStatus = Lens.lens (\UpdateCampaignResponse' {httpStatus} -> httpStatus) (\s@UpdateCampaignResponse' {} a -> s {httpStatus = a} :: UpdateCampaignResponse)++instance Prelude.NFData UpdateCampaignResponse where+  rnf UpdateCampaignResponse' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/IoTFleetWise/UpdateDecoderManifest.hs view
@@ -0,0 +1,324 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.UpdateDecoderManifest+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates a decoder manifest.+--+-- A decoder manifest can only be updated when the status is @DRAFT@. Only+-- @ACTIVE@ decoder manifests can be associated with vehicles.+module Amazonka.IoTFleetWise.UpdateDecoderManifest+  ( -- * Creating a Request+    UpdateDecoderManifest (..),+    newUpdateDecoderManifest,++    -- * Request Lenses+    updateDecoderManifest_description,+    updateDecoderManifest_networkInterfacesToAdd,+    updateDecoderManifest_networkInterfacesToRemove,+    updateDecoderManifest_networkInterfacesToUpdate,+    updateDecoderManifest_signalDecodersToAdd,+    updateDecoderManifest_signalDecodersToRemove,+    updateDecoderManifest_signalDecodersToUpdate,+    updateDecoderManifest_status,+    updateDecoderManifest_name,++    -- * Destructuring the Response+    UpdateDecoderManifestResponse (..),+    newUpdateDecoderManifestResponse,++    -- * Response Lenses+    updateDecoderManifestResponse_httpStatus,+    updateDecoderManifestResponse_name,+    updateDecoderManifestResponse_arn,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTFleetWise.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateDecoderManifest' smart constructor.+data UpdateDecoderManifest = UpdateDecoderManifest'+  { -- | A brief description of the decoder manifest to update.+    description :: Prelude.Maybe Prelude.Text,+    -- | A list of information about the network interfaces to add to the decoder+    -- manifest.+    networkInterfacesToAdd :: Prelude.Maybe (Prelude.NonEmpty NetworkInterface),+    -- | A list of network interfaces to remove from the decoder manifest.+    networkInterfacesToRemove :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+    -- | A list of information about the network interfaces to update in the+    -- decoder manifest.+    networkInterfacesToUpdate :: Prelude.Maybe (Prelude.NonEmpty NetworkInterface),+    -- | A list of information about decoding additional signals to add to the+    -- decoder manifest.+    signalDecodersToAdd :: Prelude.Maybe (Prelude.NonEmpty SignalDecoder),+    -- | A list of signal decoders to remove from the decoder manifest.+    signalDecodersToRemove :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+    -- | A list of updated information about decoding signals to update in the+    -- decoder manifest.+    signalDecodersToUpdate :: Prelude.Maybe (Prelude.NonEmpty SignalDecoder),+    -- | The state of the decoder manifest. If the status is @ACTIVE@, the+    -- decoder manifest can\'t be edited. If the status is @DRAFT@, you can+    -- edit the decoder manifest.+    status :: Prelude.Maybe ManifestStatus,+    -- | The name of the decoder manifest to update.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateDecoderManifest' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'description', 'updateDecoderManifest_description' - A brief description of the decoder manifest to update.+--+-- 'networkInterfacesToAdd', 'updateDecoderManifest_networkInterfacesToAdd' - A list of information about the network interfaces to add to the decoder+-- manifest.+--+-- 'networkInterfacesToRemove', 'updateDecoderManifest_networkInterfacesToRemove' - A list of network interfaces to remove from the decoder manifest.+--+-- 'networkInterfacesToUpdate', 'updateDecoderManifest_networkInterfacesToUpdate' - A list of information about the network interfaces to update in the+-- decoder manifest.+--+-- 'signalDecodersToAdd', 'updateDecoderManifest_signalDecodersToAdd' - A list of information about decoding additional signals to add to the+-- decoder manifest.+--+-- 'signalDecodersToRemove', 'updateDecoderManifest_signalDecodersToRemove' - A list of signal decoders to remove from the decoder manifest.+--+-- 'signalDecodersToUpdate', 'updateDecoderManifest_signalDecodersToUpdate' - A list of updated information about decoding signals to update in the+-- decoder manifest.+--+-- 'status', 'updateDecoderManifest_status' - The state of the decoder manifest. If the status is @ACTIVE@, the+-- decoder manifest can\'t be edited. If the status is @DRAFT@, you can+-- edit the decoder manifest.+--+-- 'name', 'updateDecoderManifest_name' - The name of the decoder manifest to update.+newUpdateDecoderManifest ::+  -- | 'name'+  Prelude.Text ->+  UpdateDecoderManifest+newUpdateDecoderManifest pName_ =+  UpdateDecoderManifest'+    { description =+        Prelude.Nothing,+      networkInterfacesToAdd = Prelude.Nothing,+      networkInterfacesToRemove = Prelude.Nothing,+      networkInterfacesToUpdate = Prelude.Nothing,+      signalDecodersToAdd = Prelude.Nothing,+      signalDecodersToRemove = Prelude.Nothing,+      signalDecodersToUpdate = Prelude.Nothing,+      status = Prelude.Nothing,+      name = pName_+    }++-- | A brief description of the decoder manifest to update.+updateDecoderManifest_description :: Lens.Lens' UpdateDecoderManifest (Prelude.Maybe Prelude.Text)+updateDecoderManifest_description = Lens.lens (\UpdateDecoderManifest' {description} -> description) (\s@UpdateDecoderManifest' {} a -> s {description = a} :: UpdateDecoderManifest)++-- | A list of information about the network interfaces to add to the decoder+-- manifest.+updateDecoderManifest_networkInterfacesToAdd :: Lens.Lens' UpdateDecoderManifest (Prelude.Maybe (Prelude.NonEmpty NetworkInterface))+updateDecoderManifest_networkInterfacesToAdd = Lens.lens (\UpdateDecoderManifest' {networkInterfacesToAdd} -> networkInterfacesToAdd) (\s@UpdateDecoderManifest' {} a -> s {networkInterfacesToAdd = a} :: UpdateDecoderManifest) Prelude.. Lens.mapping Lens.coerced++-- | A list of network interfaces to remove from the decoder manifest.+updateDecoderManifest_networkInterfacesToRemove :: Lens.Lens' UpdateDecoderManifest (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+updateDecoderManifest_networkInterfacesToRemove = Lens.lens (\UpdateDecoderManifest' {networkInterfacesToRemove} -> networkInterfacesToRemove) (\s@UpdateDecoderManifest' {} a -> s {networkInterfacesToRemove = a} :: UpdateDecoderManifest) Prelude.. Lens.mapping Lens.coerced++-- | A list of information about the network interfaces to update in the+-- decoder manifest.+updateDecoderManifest_networkInterfacesToUpdate :: Lens.Lens' UpdateDecoderManifest (Prelude.Maybe (Prelude.NonEmpty NetworkInterface))+updateDecoderManifest_networkInterfacesToUpdate = Lens.lens (\UpdateDecoderManifest' {networkInterfacesToUpdate} -> networkInterfacesToUpdate) (\s@UpdateDecoderManifest' {} a -> s {networkInterfacesToUpdate = a} :: UpdateDecoderManifest) Prelude.. Lens.mapping Lens.coerced++-- | A list of information about decoding additional signals to add to the+-- decoder manifest.+updateDecoderManifest_signalDecodersToAdd :: Lens.Lens' UpdateDecoderManifest (Prelude.Maybe (Prelude.NonEmpty SignalDecoder))+updateDecoderManifest_signalDecodersToAdd = Lens.lens (\UpdateDecoderManifest' {signalDecodersToAdd} -> signalDecodersToAdd) (\s@UpdateDecoderManifest' {} a -> s {signalDecodersToAdd = a} :: UpdateDecoderManifest) Prelude.. Lens.mapping Lens.coerced++-- | A list of signal decoders to remove from the decoder manifest.+updateDecoderManifest_signalDecodersToRemove :: Lens.Lens' UpdateDecoderManifest (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+updateDecoderManifest_signalDecodersToRemove = Lens.lens (\UpdateDecoderManifest' {signalDecodersToRemove} -> signalDecodersToRemove) (\s@UpdateDecoderManifest' {} a -> s {signalDecodersToRemove = a} :: UpdateDecoderManifest) Prelude.. Lens.mapping Lens.coerced++-- | A list of updated information about decoding signals to update in the+-- decoder manifest.+updateDecoderManifest_signalDecodersToUpdate :: Lens.Lens' UpdateDecoderManifest (Prelude.Maybe (Prelude.NonEmpty SignalDecoder))+updateDecoderManifest_signalDecodersToUpdate = Lens.lens (\UpdateDecoderManifest' {signalDecodersToUpdate} -> signalDecodersToUpdate) (\s@UpdateDecoderManifest' {} a -> s {signalDecodersToUpdate = a} :: UpdateDecoderManifest) Prelude.. Lens.mapping Lens.coerced++-- | The state of the decoder manifest. If the status is @ACTIVE@, the+-- decoder manifest can\'t be edited. If the status is @DRAFT@, you can+-- edit the decoder manifest.+updateDecoderManifest_status :: Lens.Lens' UpdateDecoderManifest (Prelude.Maybe ManifestStatus)+updateDecoderManifest_status = Lens.lens (\UpdateDecoderManifest' {status} -> status) (\s@UpdateDecoderManifest' {} a -> s {status = a} :: UpdateDecoderManifest)++-- | The name of the decoder manifest to update.+updateDecoderManifest_name :: Lens.Lens' UpdateDecoderManifest Prelude.Text+updateDecoderManifest_name = Lens.lens (\UpdateDecoderManifest' {name} -> name) (\s@UpdateDecoderManifest' {} a -> s {name = a} :: UpdateDecoderManifest)++instance Core.AWSRequest UpdateDecoderManifest where+  type+    AWSResponse UpdateDecoderManifest =+      UpdateDecoderManifestResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateDecoderManifestResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "name")+            Prelude.<*> (x Data..:> "arn")+      )++instance Prelude.Hashable UpdateDecoderManifest where+  hashWithSalt _salt UpdateDecoderManifest' {..} =+    _salt+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` networkInterfacesToAdd+      `Prelude.hashWithSalt` networkInterfacesToRemove+      `Prelude.hashWithSalt` networkInterfacesToUpdate+      `Prelude.hashWithSalt` signalDecodersToAdd+      `Prelude.hashWithSalt` signalDecodersToRemove+      `Prelude.hashWithSalt` signalDecodersToUpdate+      `Prelude.hashWithSalt` status+      `Prelude.hashWithSalt` name++instance Prelude.NFData UpdateDecoderManifest where+  rnf UpdateDecoderManifest' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf networkInterfacesToAdd+      `Prelude.seq` Prelude.rnf networkInterfacesToRemove+      `Prelude.seq` Prelude.rnf networkInterfacesToUpdate+      `Prelude.seq` Prelude.rnf signalDecodersToAdd+      `Prelude.seq` Prelude.rnf signalDecodersToRemove+      `Prelude.seq` Prelude.rnf signalDecodersToUpdate+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf name++instance Data.ToHeaders UpdateDecoderManifest where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "IoTAutobahnControlPlane.UpdateDecoderManifest" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateDecoderManifest where+  toJSON UpdateDecoderManifest' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("description" Data..=) Prelude.<$> description,+            ("networkInterfacesToAdd" Data..=)+              Prelude.<$> networkInterfacesToAdd,+            ("networkInterfacesToRemove" Data..=)+              Prelude.<$> networkInterfacesToRemove,+            ("networkInterfacesToUpdate" Data..=)+              Prelude.<$> networkInterfacesToUpdate,+            ("signalDecodersToAdd" Data..=)+              Prelude.<$> signalDecodersToAdd,+            ("signalDecodersToRemove" Data..=)+              Prelude.<$> signalDecodersToRemove,+            ("signalDecodersToUpdate" Data..=)+              Prelude.<$> signalDecodersToUpdate,+            ("status" Data..=) Prelude.<$> status,+            Prelude.Just ("name" Data..= name)+          ]+      )++instance Data.ToPath UpdateDecoderManifest where+  toPath = Prelude.const "/"++instance Data.ToQuery UpdateDecoderManifest where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateDecoderManifestResponse' smart constructor.+data UpdateDecoderManifestResponse = UpdateDecoderManifestResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The name of the updated decoder manifest.+    name :: Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the updated decoder manifest.+    arn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateDecoderManifestResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'updateDecoderManifestResponse_httpStatus' - The response's http status code.+--+-- 'name', 'updateDecoderManifestResponse_name' - The name of the updated decoder manifest.+--+-- 'arn', 'updateDecoderManifestResponse_arn' - The Amazon Resource Name (ARN) of the updated decoder manifest.+newUpdateDecoderManifestResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'name'+  Prelude.Text ->+  -- | 'arn'+  Prelude.Text ->+  UpdateDecoderManifestResponse+newUpdateDecoderManifestResponse+  pHttpStatus_+  pName_+  pArn_ =+    UpdateDecoderManifestResponse'+      { httpStatus =+          pHttpStatus_,+        name = pName_,+        arn = pArn_+      }++-- | The response's http status code.+updateDecoderManifestResponse_httpStatus :: Lens.Lens' UpdateDecoderManifestResponse Prelude.Int+updateDecoderManifestResponse_httpStatus = Lens.lens (\UpdateDecoderManifestResponse' {httpStatus} -> httpStatus) (\s@UpdateDecoderManifestResponse' {} a -> s {httpStatus = a} :: UpdateDecoderManifestResponse)++-- | The name of the updated decoder manifest.+updateDecoderManifestResponse_name :: Lens.Lens' UpdateDecoderManifestResponse Prelude.Text+updateDecoderManifestResponse_name = Lens.lens (\UpdateDecoderManifestResponse' {name} -> name) (\s@UpdateDecoderManifestResponse' {} a -> s {name = a} :: UpdateDecoderManifestResponse)++-- | The Amazon Resource Name (ARN) of the updated decoder manifest.+updateDecoderManifestResponse_arn :: Lens.Lens' UpdateDecoderManifestResponse Prelude.Text+updateDecoderManifestResponse_arn = Lens.lens (\UpdateDecoderManifestResponse' {arn} -> arn) (\s@UpdateDecoderManifestResponse' {} a -> s {arn = a} :: UpdateDecoderManifestResponse)++instance Prelude.NFData UpdateDecoderManifestResponse where+  rnf UpdateDecoderManifestResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf arn
+ gen/Amazonka/IoTFleetWise/UpdateFleet.hs view
@@ -0,0 +1,198 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.UpdateFleet+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates the description of an existing fleet.+--+-- If the fleet is successfully updated, Amazon Web Services IoT FleetWise+-- sends back an HTTP 200 response with an empty HTTP body.+module Amazonka.IoTFleetWise.UpdateFleet+  ( -- * Creating a Request+    UpdateFleet (..),+    newUpdateFleet,++    -- * Request Lenses+    updateFleet_description,+    updateFleet_fleetId,++    -- * Destructuring the Response+    UpdateFleetResponse (..),+    newUpdateFleetResponse,++    -- * Response Lenses+    updateFleetResponse_arn,+    updateFleetResponse_id,+    updateFleetResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTFleetWise.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateFleet' smart constructor.+data UpdateFleet = UpdateFleet'+  { -- | An updated description of the fleet.+    description :: Prelude.Maybe Prelude.Text,+    -- | The ID of the fleet to update.+    fleetId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateFleet' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'description', 'updateFleet_description' - An updated description of the fleet.+--+-- 'fleetId', 'updateFleet_fleetId' - The ID of the fleet to update.+newUpdateFleet ::+  -- | 'fleetId'+  Prelude.Text ->+  UpdateFleet+newUpdateFleet pFleetId_ =+  UpdateFleet'+    { description = Prelude.Nothing,+      fleetId = pFleetId_+    }++-- | An updated description of the fleet.+updateFleet_description :: Lens.Lens' UpdateFleet (Prelude.Maybe Prelude.Text)+updateFleet_description = Lens.lens (\UpdateFleet' {description} -> description) (\s@UpdateFleet' {} a -> s {description = a} :: UpdateFleet)++-- | The ID of the fleet to update.+updateFleet_fleetId :: Lens.Lens' UpdateFleet Prelude.Text+updateFleet_fleetId = Lens.lens (\UpdateFleet' {fleetId} -> fleetId) (\s@UpdateFleet' {} a -> s {fleetId = a} :: UpdateFleet)++instance Core.AWSRequest UpdateFleet where+  type AWSResponse UpdateFleet = UpdateFleetResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateFleetResponse'+            Prelude.<$> (x Data..?> "arn")+            Prelude.<*> (x Data..?> "id")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateFleet where+  hashWithSalt _salt UpdateFleet' {..} =+    _salt+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` fleetId++instance Prelude.NFData UpdateFleet where+  rnf UpdateFleet' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf fleetId++instance Data.ToHeaders UpdateFleet where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "IoTAutobahnControlPlane.UpdateFleet" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateFleet where+  toJSON UpdateFleet' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("description" Data..=) Prelude.<$> description,+            Prelude.Just ("fleetId" Data..= fleetId)+          ]+      )++instance Data.ToPath UpdateFleet where+  toPath = Prelude.const "/"++instance Data.ToQuery UpdateFleet where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateFleetResponse' smart constructor.+data UpdateFleetResponse = UpdateFleetResponse'+  { -- | The Amazon Resource Name (ARN) of the updated fleet.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The ID of the updated fleet.+    id :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateFleetResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'updateFleetResponse_arn' - The Amazon Resource Name (ARN) of the updated fleet.+--+-- 'id', 'updateFleetResponse_id' - The ID of the updated fleet.+--+-- 'httpStatus', 'updateFleetResponse_httpStatus' - The response's http status code.+newUpdateFleetResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateFleetResponse+newUpdateFleetResponse pHttpStatus_ =+  UpdateFleetResponse'+    { arn = Prelude.Nothing,+      id = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The Amazon Resource Name (ARN) of the updated fleet.+updateFleetResponse_arn :: Lens.Lens' UpdateFleetResponse (Prelude.Maybe Prelude.Text)+updateFleetResponse_arn = Lens.lens (\UpdateFleetResponse' {arn} -> arn) (\s@UpdateFleetResponse' {} a -> s {arn = a} :: UpdateFleetResponse)++-- | The ID of the updated fleet.+updateFleetResponse_id :: Lens.Lens' UpdateFleetResponse (Prelude.Maybe Prelude.Text)+updateFleetResponse_id = Lens.lens (\UpdateFleetResponse' {id} -> id) (\s@UpdateFleetResponse' {} a -> s {id = a} :: UpdateFleetResponse)++-- | The response's http status code.+updateFleetResponse_httpStatus :: Lens.Lens' UpdateFleetResponse Prelude.Int+updateFleetResponse_httpStatus = Lens.lens (\UpdateFleetResponse' {httpStatus} -> httpStatus) (\s@UpdateFleetResponse' {} a -> s {httpStatus = a} :: UpdateFleetResponse)++instance Prelude.NFData UpdateFleetResponse where+  rnf UpdateFleetResponse' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/IoTFleetWise/UpdateModelManifest.hs view
@@ -0,0 +1,257 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.UpdateModelManifest+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates a vehicle model (model manifest). If created vehicles are+-- associated with a vehicle model, it can\'t be updated.+module Amazonka.IoTFleetWise.UpdateModelManifest+  ( -- * Creating a Request+    UpdateModelManifest (..),+    newUpdateModelManifest,++    -- * Request Lenses+    updateModelManifest_description,+    updateModelManifest_nodesToAdd,+    updateModelManifest_nodesToRemove,+    updateModelManifest_status,+    updateModelManifest_name,++    -- * Destructuring the Response+    UpdateModelManifestResponse (..),+    newUpdateModelManifestResponse,++    -- * Response Lenses+    updateModelManifestResponse_httpStatus,+    updateModelManifestResponse_name,+    updateModelManifestResponse_arn,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTFleetWise.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateModelManifest' smart constructor.+data UpdateModelManifest = UpdateModelManifest'+  { -- | A brief description of the vehicle model.+    description :: Prelude.Maybe Prelude.Text,+    -- | A list of @fullyQualifiedName@ of nodes, which are a general abstraction+    -- of signals, to add to the vehicle model.+    nodesToAdd :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+    -- | A list of @fullyQualifiedName@ of nodes, which are a general abstraction+    -- of signals, to remove from the vehicle model.+    nodesToRemove :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+    -- | The state of the vehicle model. If the status is @ACTIVE@, the vehicle+    -- model can\'t be edited. If the status is @DRAFT@, you can edit the+    -- vehicle model.+    status :: Prelude.Maybe ManifestStatus,+    -- | The name of the vehicle model to update.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateModelManifest' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'description', 'updateModelManifest_description' - A brief description of the vehicle model.+--+-- 'nodesToAdd', 'updateModelManifest_nodesToAdd' - A list of @fullyQualifiedName@ of nodes, which are a general abstraction+-- of signals, to add to the vehicle model.+--+-- 'nodesToRemove', 'updateModelManifest_nodesToRemove' - A list of @fullyQualifiedName@ of nodes, which are a general abstraction+-- of signals, to remove from the vehicle model.+--+-- 'status', 'updateModelManifest_status' - The state of the vehicle model. If the status is @ACTIVE@, the vehicle+-- model can\'t be edited. If the status is @DRAFT@, you can edit the+-- vehicle model.+--+-- 'name', 'updateModelManifest_name' - The name of the vehicle model to update.+newUpdateModelManifest ::+  -- | 'name'+  Prelude.Text ->+  UpdateModelManifest+newUpdateModelManifest pName_ =+  UpdateModelManifest'+    { description = Prelude.Nothing,+      nodesToAdd = Prelude.Nothing,+      nodesToRemove = Prelude.Nothing,+      status = Prelude.Nothing,+      name = pName_+    }++-- | A brief description of the vehicle model.+updateModelManifest_description :: Lens.Lens' UpdateModelManifest (Prelude.Maybe Prelude.Text)+updateModelManifest_description = Lens.lens (\UpdateModelManifest' {description} -> description) (\s@UpdateModelManifest' {} a -> s {description = a} :: UpdateModelManifest)++-- | A list of @fullyQualifiedName@ of nodes, which are a general abstraction+-- of signals, to add to the vehicle model.+updateModelManifest_nodesToAdd :: Lens.Lens' UpdateModelManifest (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+updateModelManifest_nodesToAdd = Lens.lens (\UpdateModelManifest' {nodesToAdd} -> nodesToAdd) (\s@UpdateModelManifest' {} a -> s {nodesToAdd = a} :: UpdateModelManifest) Prelude.. Lens.mapping Lens.coerced++-- | A list of @fullyQualifiedName@ of nodes, which are a general abstraction+-- of signals, to remove from the vehicle model.+updateModelManifest_nodesToRemove :: Lens.Lens' UpdateModelManifest (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+updateModelManifest_nodesToRemove = Lens.lens (\UpdateModelManifest' {nodesToRemove} -> nodesToRemove) (\s@UpdateModelManifest' {} a -> s {nodesToRemove = a} :: UpdateModelManifest) Prelude.. Lens.mapping Lens.coerced++-- | The state of the vehicle model. If the status is @ACTIVE@, the vehicle+-- model can\'t be edited. If the status is @DRAFT@, you can edit the+-- vehicle model.+updateModelManifest_status :: Lens.Lens' UpdateModelManifest (Prelude.Maybe ManifestStatus)+updateModelManifest_status = Lens.lens (\UpdateModelManifest' {status} -> status) (\s@UpdateModelManifest' {} a -> s {status = a} :: UpdateModelManifest)++-- | The name of the vehicle model to update.+updateModelManifest_name :: Lens.Lens' UpdateModelManifest Prelude.Text+updateModelManifest_name = Lens.lens (\UpdateModelManifest' {name} -> name) (\s@UpdateModelManifest' {} a -> s {name = a} :: UpdateModelManifest)++instance Core.AWSRequest UpdateModelManifest where+  type+    AWSResponse UpdateModelManifest =+      UpdateModelManifestResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateModelManifestResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "name")+            Prelude.<*> (x Data..:> "arn")+      )++instance Prelude.Hashable UpdateModelManifest where+  hashWithSalt _salt UpdateModelManifest' {..} =+    _salt+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` nodesToAdd+      `Prelude.hashWithSalt` nodesToRemove+      `Prelude.hashWithSalt` status+      `Prelude.hashWithSalt` name++instance Prelude.NFData UpdateModelManifest where+  rnf UpdateModelManifest' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf nodesToAdd+      `Prelude.seq` Prelude.rnf nodesToRemove+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf name++instance Data.ToHeaders UpdateModelManifest where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "IoTAutobahnControlPlane.UpdateModelManifest" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateModelManifest where+  toJSON UpdateModelManifest' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("description" Data..=) Prelude.<$> description,+            ("nodesToAdd" Data..=) Prelude.<$> nodesToAdd,+            ("nodesToRemove" Data..=) Prelude.<$> nodesToRemove,+            ("status" Data..=) Prelude.<$> status,+            Prelude.Just ("name" Data..= name)+          ]+      )++instance Data.ToPath UpdateModelManifest where+  toPath = Prelude.const "/"++instance Data.ToQuery UpdateModelManifest where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateModelManifestResponse' smart constructor.+data UpdateModelManifestResponse = UpdateModelManifestResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The name of the updated vehicle model.+    name :: Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the updated vehicle model.+    arn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateModelManifestResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'updateModelManifestResponse_httpStatus' - The response's http status code.+--+-- 'name', 'updateModelManifestResponse_name' - The name of the updated vehicle model.+--+-- 'arn', 'updateModelManifestResponse_arn' - The Amazon Resource Name (ARN) of the updated vehicle model.+newUpdateModelManifestResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'name'+  Prelude.Text ->+  -- | 'arn'+  Prelude.Text ->+  UpdateModelManifestResponse+newUpdateModelManifestResponse+  pHttpStatus_+  pName_+  pArn_ =+    UpdateModelManifestResponse'+      { httpStatus =+          pHttpStatus_,+        name = pName_,+        arn = pArn_+      }++-- | The response's http status code.+updateModelManifestResponse_httpStatus :: Lens.Lens' UpdateModelManifestResponse Prelude.Int+updateModelManifestResponse_httpStatus = Lens.lens (\UpdateModelManifestResponse' {httpStatus} -> httpStatus) (\s@UpdateModelManifestResponse' {} a -> s {httpStatus = a} :: UpdateModelManifestResponse)++-- | The name of the updated vehicle model.+updateModelManifestResponse_name :: Lens.Lens' UpdateModelManifestResponse Prelude.Text+updateModelManifestResponse_name = Lens.lens (\UpdateModelManifestResponse' {name} -> name) (\s@UpdateModelManifestResponse' {} a -> s {name = a} :: UpdateModelManifestResponse)++-- | The Amazon Resource Name (ARN) of the updated vehicle model.+updateModelManifestResponse_arn :: Lens.Lens' UpdateModelManifestResponse Prelude.Text+updateModelManifestResponse_arn = Lens.lens (\UpdateModelManifestResponse' {arn} -> arn) (\s@UpdateModelManifestResponse' {} a -> s {arn = a} :: UpdateModelManifestResponse)++instance Prelude.NFData UpdateModelManifestResponse where+  rnf UpdateModelManifestResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf arn
+ gen/Amazonka/IoTFleetWise/UpdateSignalCatalog.hs view
@@ -0,0 +1,247 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.UpdateSignalCatalog+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates a signal catalog.+module Amazonka.IoTFleetWise.UpdateSignalCatalog+  ( -- * Creating a Request+    UpdateSignalCatalog (..),+    newUpdateSignalCatalog,++    -- * Request Lenses+    updateSignalCatalog_description,+    updateSignalCatalog_nodesToAdd,+    updateSignalCatalog_nodesToRemove,+    updateSignalCatalog_nodesToUpdate,+    updateSignalCatalog_name,++    -- * Destructuring the Response+    UpdateSignalCatalogResponse (..),+    newUpdateSignalCatalogResponse,++    -- * Response Lenses+    updateSignalCatalogResponse_httpStatus,+    updateSignalCatalogResponse_name,+    updateSignalCatalogResponse_arn,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTFleetWise.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateSignalCatalog' smart constructor.+data UpdateSignalCatalog = UpdateSignalCatalog'+  { -- | A brief description of the signal catalog to update.+    description :: Prelude.Maybe Prelude.Text,+    -- | A list of information about nodes to add to the signal catalog.+    nodesToAdd :: Prelude.Maybe [Node],+    -- | A list of @fullyQualifiedName@ of nodes to remove from the signal+    -- catalog.+    nodesToRemove :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+    -- | A list of information about nodes to update in the signal catalog.+    nodesToUpdate :: Prelude.Maybe [Node],+    -- | The name of the signal catalog to update.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateSignalCatalog' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'description', 'updateSignalCatalog_description' - A brief description of the signal catalog to update.+--+-- 'nodesToAdd', 'updateSignalCatalog_nodesToAdd' - A list of information about nodes to add to the signal catalog.+--+-- 'nodesToRemove', 'updateSignalCatalog_nodesToRemove' - A list of @fullyQualifiedName@ of nodes to remove from the signal+-- catalog.+--+-- 'nodesToUpdate', 'updateSignalCatalog_nodesToUpdate' - A list of information about nodes to update in the signal catalog.+--+-- 'name', 'updateSignalCatalog_name' - The name of the signal catalog to update.+newUpdateSignalCatalog ::+  -- | 'name'+  Prelude.Text ->+  UpdateSignalCatalog+newUpdateSignalCatalog pName_ =+  UpdateSignalCatalog'+    { description = Prelude.Nothing,+      nodesToAdd = Prelude.Nothing,+      nodesToRemove = Prelude.Nothing,+      nodesToUpdate = Prelude.Nothing,+      name = pName_+    }++-- | A brief description of the signal catalog to update.+updateSignalCatalog_description :: Lens.Lens' UpdateSignalCatalog (Prelude.Maybe Prelude.Text)+updateSignalCatalog_description = Lens.lens (\UpdateSignalCatalog' {description} -> description) (\s@UpdateSignalCatalog' {} a -> s {description = a} :: UpdateSignalCatalog)++-- | A list of information about nodes to add to the signal catalog.+updateSignalCatalog_nodesToAdd :: Lens.Lens' UpdateSignalCatalog (Prelude.Maybe [Node])+updateSignalCatalog_nodesToAdd = Lens.lens (\UpdateSignalCatalog' {nodesToAdd} -> nodesToAdd) (\s@UpdateSignalCatalog' {} a -> s {nodesToAdd = a} :: UpdateSignalCatalog) Prelude.. Lens.mapping Lens.coerced++-- | A list of @fullyQualifiedName@ of nodes to remove from the signal+-- catalog.+updateSignalCatalog_nodesToRemove :: Lens.Lens' UpdateSignalCatalog (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+updateSignalCatalog_nodesToRemove = Lens.lens (\UpdateSignalCatalog' {nodesToRemove} -> nodesToRemove) (\s@UpdateSignalCatalog' {} a -> s {nodesToRemove = a} :: UpdateSignalCatalog) Prelude.. Lens.mapping Lens.coerced++-- | A list of information about nodes to update in the signal catalog.+updateSignalCatalog_nodesToUpdate :: Lens.Lens' UpdateSignalCatalog (Prelude.Maybe [Node])+updateSignalCatalog_nodesToUpdate = Lens.lens (\UpdateSignalCatalog' {nodesToUpdate} -> nodesToUpdate) (\s@UpdateSignalCatalog' {} a -> s {nodesToUpdate = a} :: UpdateSignalCatalog) Prelude.. Lens.mapping Lens.coerced++-- | The name of the signal catalog to update.+updateSignalCatalog_name :: Lens.Lens' UpdateSignalCatalog Prelude.Text+updateSignalCatalog_name = Lens.lens (\UpdateSignalCatalog' {name} -> name) (\s@UpdateSignalCatalog' {} a -> s {name = a} :: UpdateSignalCatalog)++instance Core.AWSRequest UpdateSignalCatalog where+  type+    AWSResponse UpdateSignalCatalog =+      UpdateSignalCatalogResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateSignalCatalogResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "name")+            Prelude.<*> (x Data..:> "arn")+      )++instance Prelude.Hashable UpdateSignalCatalog where+  hashWithSalt _salt UpdateSignalCatalog' {..} =+    _salt+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` nodesToAdd+      `Prelude.hashWithSalt` nodesToRemove+      `Prelude.hashWithSalt` nodesToUpdate+      `Prelude.hashWithSalt` name++instance Prelude.NFData UpdateSignalCatalog where+  rnf UpdateSignalCatalog' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf nodesToAdd+      `Prelude.seq` Prelude.rnf nodesToRemove+      `Prelude.seq` Prelude.rnf nodesToUpdate+      `Prelude.seq` Prelude.rnf name++instance Data.ToHeaders UpdateSignalCatalog where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "IoTAutobahnControlPlane.UpdateSignalCatalog" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateSignalCatalog where+  toJSON UpdateSignalCatalog' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("description" Data..=) Prelude.<$> description,+            ("nodesToAdd" Data..=) Prelude.<$> nodesToAdd,+            ("nodesToRemove" Data..=) Prelude.<$> nodesToRemove,+            ("nodesToUpdate" Data..=) Prelude.<$> nodesToUpdate,+            Prelude.Just ("name" Data..= name)+          ]+      )++instance Data.ToPath UpdateSignalCatalog where+  toPath = Prelude.const "/"++instance Data.ToQuery UpdateSignalCatalog where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateSignalCatalogResponse' smart constructor.+data UpdateSignalCatalogResponse = UpdateSignalCatalogResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The name of the updated signal catalog.+    name :: Prelude.Text,+    -- | The ARN of the updated signal catalog.+    arn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateSignalCatalogResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'updateSignalCatalogResponse_httpStatus' - The response's http status code.+--+-- 'name', 'updateSignalCatalogResponse_name' - The name of the updated signal catalog.+--+-- 'arn', 'updateSignalCatalogResponse_arn' - The ARN of the updated signal catalog.+newUpdateSignalCatalogResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'name'+  Prelude.Text ->+  -- | 'arn'+  Prelude.Text ->+  UpdateSignalCatalogResponse+newUpdateSignalCatalogResponse+  pHttpStatus_+  pName_+  pArn_ =+    UpdateSignalCatalogResponse'+      { httpStatus =+          pHttpStatus_,+        name = pName_,+        arn = pArn_+      }++-- | The response's http status code.+updateSignalCatalogResponse_httpStatus :: Lens.Lens' UpdateSignalCatalogResponse Prelude.Int+updateSignalCatalogResponse_httpStatus = Lens.lens (\UpdateSignalCatalogResponse' {httpStatus} -> httpStatus) (\s@UpdateSignalCatalogResponse' {} a -> s {httpStatus = a} :: UpdateSignalCatalogResponse)++-- | The name of the updated signal catalog.+updateSignalCatalogResponse_name :: Lens.Lens' UpdateSignalCatalogResponse Prelude.Text+updateSignalCatalogResponse_name = Lens.lens (\UpdateSignalCatalogResponse' {name} -> name) (\s@UpdateSignalCatalogResponse' {} a -> s {name = a} :: UpdateSignalCatalogResponse)++-- | The ARN of the updated signal catalog.+updateSignalCatalogResponse_arn :: Lens.Lens' UpdateSignalCatalogResponse Prelude.Text+updateSignalCatalogResponse_arn = Lens.lens (\UpdateSignalCatalogResponse' {arn} -> arn) (\s@UpdateSignalCatalogResponse' {} a -> s {arn = a} :: UpdateSignalCatalogResponse)++instance Prelude.NFData UpdateSignalCatalogResponse where+  rnf UpdateSignalCatalogResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf arn
+ gen/Amazonka/IoTFleetWise/UpdateVehicle.hs view
@@ -0,0 +1,258 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.UpdateVehicle+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates a vehicle.+module Amazonka.IoTFleetWise.UpdateVehicle+  ( -- * Creating a Request+    UpdateVehicle (..),+    newUpdateVehicle,++    -- * Request Lenses+    updateVehicle_attributeUpdateMode,+    updateVehicle_attributes,+    updateVehicle_decoderManifestArn,+    updateVehicle_modelManifestArn,+    updateVehicle_vehicleName,++    -- * Destructuring the Response+    UpdateVehicleResponse (..),+    newUpdateVehicleResponse,++    -- * Response Lenses+    updateVehicleResponse_arn,+    updateVehicleResponse_vehicleName,+    updateVehicleResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTFleetWise.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateVehicle' smart constructor.+data UpdateVehicle = UpdateVehicle'+  { -- | The method the specified attributes will update the existing attributes+    -- on the vehicle. Use@Overwite@ to replace the vehicle attributes with the+    -- specified attributes. Or use @Merge@ to combine all attributes.+    --+    -- This is required if attributes are present in the input.+    attributeUpdateMode :: Prelude.Maybe UpdateMode,+    -- | Static information about a vehicle in a key-value pair. For example:+    --+    -- @\"engineType\"@ : @\"1.3 L R2\"@+    attributes :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The ARN of the decoder manifest associated with this vehicle.+    decoderManifestArn :: Prelude.Maybe Prelude.Text,+    -- | The ARN of a vehicle model (model manifest) associated with the vehicle.+    modelManifestArn :: Prelude.Maybe Prelude.Text,+    -- | The unique ID of the vehicle to update.+    vehicleName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateVehicle' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'attributeUpdateMode', 'updateVehicle_attributeUpdateMode' - The method the specified attributes will update the existing attributes+-- on the vehicle. Use@Overwite@ to replace the vehicle attributes with the+-- specified attributes. Or use @Merge@ to combine all attributes.+--+-- This is required if attributes are present in the input.+--+-- 'attributes', 'updateVehicle_attributes' - Static information about a vehicle in a key-value pair. For example:+--+-- @\"engineType\"@ : @\"1.3 L R2\"@+--+-- 'decoderManifestArn', 'updateVehicle_decoderManifestArn' - The ARN of the decoder manifest associated with this vehicle.+--+-- 'modelManifestArn', 'updateVehicle_modelManifestArn' - The ARN of a vehicle model (model manifest) associated with the vehicle.+--+-- 'vehicleName', 'updateVehicle_vehicleName' - The unique ID of the vehicle to update.+newUpdateVehicle ::+  -- | 'vehicleName'+  Prelude.Text ->+  UpdateVehicle+newUpdateVehicle pVehicleName_ =+  UpdateVehicle'+    { attributeUpdateMode =+        Prelude.Nothing,+      attributes = Prelude.Nothing,+      decoderManifestArn = Prelude.Nothing,+      modelManifestArn = Prelude.Nothing,+      vehicleName = pVehicleName_+    }++-- | The method the specified attributes will update the existing attributes+-- on the vehicle. Use@Overwite@ to replace the vehicle attributes with the+-- specified attributes. Or use @Merge@ to combine all attributes.+--+-- This is required if attributes are present in the input.+updateVehicle_attributeUpdateMode :: Lens.Lens' UpdateVehicle (Prelude.Maybe UpdateMode)+updateVehicle_attributeUpdateMode = Lens.lens (\UpdateVehicle' {attributeUpdateMode} -> attributeUpdateMode) (\s@UpdateVehicle' {} a -> s {attributeUpdateMode = a} :: UpdateVehicle)++-- | Static information about a vehicle in a key-value pair. For example:+--+-- @\"engineType\"@ : @\"1.3 L R2\"@+updateVehicle_attributes :: Lens.Lens' UpdateVehicle (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+updateVehicle_attributes = Lens.lens (\UpdateVehicle' {attributes} -> attributes) (\s@UpdateVehicle' {} a -> s {attributes = a} :: UpdateVehicle) Prelude.. Lens.mapping Lens.coerced++-- | The ARN of the decoder manifest associated with this vehicle.+updateVehicle_decoderManifestArn :: Lens.Lens' UpdateVehicle (Prelude.Maybe Prelude.Text)+updateVehicle_decoderManifestArn = Lens.lens (\UpdateVehicle' {decoderManifestArn} -> decoderManifestArn) (\s@UpdateVehicle' {} a -> s {decoderManifestArn = a} :: UpdateVehicle)++-- | The ARN of a vehicle model (model manifest) associated with the vehicle.+updateVehicle_modelManifestArn :: Lens.Lens' UpdateVehicle (Prelude.Maybe Prelude.Text)+updateVehicle_modelManifestArn = Lens.lens (\UpdateVehicle' {modelManifestArn} -> modelManifestArn) (\s@UpdateVehicle' {} a -> s {modelManifestArn = a} :: UpdateVehicle)++-- | The unique ID of the vehicle to update.+updateVehicle_vehicleName :: Lens.Lens' UpdateVehicle Prelude.Text+updateVehicle_vehicleName = Lens.lens (\UpdateVehicle' {vehicleName} -> vehicleName) (\s@UpdateVehicle' {} a -> s {vehicleName = a} :: UpdateVehicle)++instance Core.AWSRequest UpdateVehicle where+  type+    AWSResponse UpdateVehicle =+      UpdateVehicleResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateVehicleResponse'+            Prelude.<$> (x Data..?> "arn")+            Prelude.<*> (x Data..?> "vehicleName")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateVehicle where+  hashWithSalt _salt UpdateVehicle' {..} =+    _salt+      `Prelude.hashWithSalt` attributeUpdateMode+      `Prelude.hashWithSalt` attributes+      `Prelude.hashWithSalt` decoderManifestArn+      `Prelude.hashWithSalt` modelManifestArn+      `Prelude.hashWithSalt` vehicleName++instance Prelude.NFData UpdateVehicle where+  rnf UpdateVehicle' {..} =+    Prelude.rnf attributeUpdateMode+      `Prelude.seq` Prelude.rnf attributes+      `Prelude.seq` Prelude.rnf decoderManifestArn+      `Prelude.seq` Prelude.rnf modelManifestArn+      `Prelude.seq` Prelude.rnf vehicleName++instance Data.ToHeaders UpdateVehicle where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "IoTAutobahnControlPlane.UpdateVehicle" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateVehicle where+  toJSON UpdateVehicle' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("attributeUpdateMode" Data..=)+              Prelude.<$> attributeUpdateMode,+            ("attributes" Data..=) Prelude.<$> attributes,+            ("decoderManifestArn" Data..=)+              Prelude.<$> decoderManifestArn,+            ("modelManifestArn" Data..=)+              Prelude.<$> modelManifestArn,+            Prelude.Just ("vehicleName" Data..= vehicleName)+          ]+      )++instance Data.ToPath UpdateVehicle where+  toPath = Prelude.const "/"++instance Data.ToQuery UpdateVehicle where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateVehicleResponse' smart constructor.+data UpdateVehicleResponse = UpdateVehicleResponse'+  { -- | The ARN of the updated vehicle.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The ID of the updated vehicle.+    vehicleName :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateVehicleResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'updateVehicleResponse_arn' - The ARN of the updated vehicle.+--+-- 'vehicleName', 'updateVehicleResponse_vehicleName' - The ID of the updated vehicle.+--+-- 'httpStatus', 'updateVehicleResponse_httpStatus' - The response's http status code.+newUpdateVehicleResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateVehicleResponse+newUpdateVehicleResponse pHttpStatus_ =+  UpdateVehicleResponse'+    { arn = Prelude.Nothing,+      vehicleName = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The ARN of the updated vehicle.+updateVehicleResponse_arn :: Lens.Lens' UpdateVehicleResponse (Prelude.Maybe Prelude.Text)+updateVehicleResponse_arn = Lens.lens (\UpdateVehicleResponse' {arn} -> arn) (\s@UpdateVehicleResponse' {} a -> s {arn = a} :: UpdateVehicleResponse)++-- | The ID of the updated vehicle.+updateVehicleResponse_vehicleName :: Lens.Lens' UpdateVehicleResponse (Prelude.Maybe Prelude.Text)+updateVehicleResponse_vehicleName = Lens.lens (\UpdateVehicleResponse' {vehicleName} -> vehicleName) (\s@UpdateVehicleResponse' {} a -> s {vehicleName = a} :: UpdateVehicleResponse)++-- | The response's http status code.+updateVehicleResponse_httpStatus :: Lens.Lens' UpdateVehicleResponse Prelude.Int+updateVehicleResponse_httpStatus = Lens.lens (\UpdateVehicleResponse' {httpStatus} -> httpStatus) (\s@UpdateVehicleResponse' {} a -> s {httpStatus = a} :: UpdateVehicleResponse)++instance Prelude.NFData UpdateVehicleResponse where+  rnf UpdateVehicleResponse' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf vehicleName+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/IoTFleetWise/Waiters.hs view
@@ -0,0 +1,24 @@+{-# LANGUAGE DisambiguateRecordFields #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.IoTFleetWise.Waiters+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.IoTFleetWise.Waiters where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IoTFleetWise.Lens+import Amazonka.IoTFleetWise.Types+import qualified Amazonka.Prelude as Prelude
+ src/.gitkeep view
+ test/Main.hs view
@@ -0,0 +1,23 @@+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Main+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Main (main) where++import Test.Amazonka.IoTFleetWise+import Test.Amazonka.IoTFleetWise.Internal+import Test.Tasty++main :: IO ()+main =+  defaultMain $+    testGroup+      "IoTFleetWise"+      [ testGroup "tests" tests,+        testGroup "fixtures" fixtures+      ]
+ test/Test/Amazonka/Gen/IoTFleetWise.hs view
@@ -0,0 +1,1038 @@+{-# OPTIONS_GHC -fno-warn-orphans #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Test.Amazonka.Gen.IoTFleetWise+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Test.Amazonka.Gen.IoTFleetWise where++import Amazonka.IoTFleetWise+import qualified Data.Proxy as Proxy+import Test.Amazonka.Fixture+import Test.Amazonka.IoTFleetWise.Internal+import Test.Amazonka.Prelude+import Test.Tasty++-- Auto-generated: the actual test selection needs to be manually placed into+-- the top-level so that real test data can be incrementally added.+--+-- This commented snippet is what the entire set should look like:++-- fixtures :: TestTree+-- fixtures =+--     [ testGroup "request"+--         [ requestAssociateVehicleFleet $+--             newAssociateVehicleFleet+--+--         , requestBatchCreateVehicle $+--             newBatchCreateVehicle+--+--         , requestBatchUpdateVehicle $+--             newBatchUpdateVehicle+--+--         , requestCreateCampaign $+--             newCreateCampaign+--+--         , requestCreateDecoderManifest $+--             newCreateDecoderManifest+--+--         , requestCreateFleet $+--             newCreateFleet+--+--         , requestCreateModelManifest $+--             newCreateModelManifest+--+--         , requestCreateSignalCatalog $+--             newCreateSignalCatalog+--+--         , requestCreateVehicle $+--             newCreateVehicle+--+--         , requestDeleteCampaign $+--             newDeleteCampaign+--+--         , requestDeleteDecoderManifest $+--             newDeleteDecoderManifest+--+--         , requestDeleteFleet $+--             newDeleteFleet+--+--         , requestDeleteModelManifest $+--             newDeleteModelManifest+--+--         , requestDeleteSignalCatalog $+--             newDeleteSignalCatalog+--+--         , requestDeleteVehicle $+--             newDeleteVehicle+--+--         , requestDisassociateVehicleFleet $+--             newDisassociateVehicleFleet+--+--         , requestGetCampaign $+--             newGetCampaign+--+--         , requestGetDecoderManifest $+--             newGetDecoderManifest+--+--         , requestGetFleet $+--             newGetFleet+--+--         , requestGetLoggingOptions $+--             newGetLoggingOptions+--+--         , requestGetModelManifest $+--             newGetModelManifest+--+--         , requestGetRegisterAccountStatus $+--             newGetRegisterAccountStatus+--+--         , requestGetSignalCatalog $+--             newGetSignalCatalog+--+--         , requestGetVehicle $+--             newGetVehicle+--+--         , requestGetVehicleStatus $+--             newGetVehicleStatus+--+--         , requestImportDecoderManifest $+--             newImportDecoderManifest+--+--         , requestImportSignalCatalog $+--             newImportSignalCatalog+--+--         , requestListCampaigns $+--             newListCampaigns+--+--         , requestListDecoderManifestNetworkInterfaces $+--             newListDecoderManifestNetworkInterfaces+--+--         , requestListDecoderManifestSignals $+--             newListDecoderManifestSignals+--+--         , requestListDecoderManifests $+--             newListDecoderManifests+--+--         , requestListFleets $+--             newListFleets+--+--         , requestListFleetsForVehicle $+--             newListFleetsForVehicle+--+--         , requestListModelManifestNodes $+--             newListModelManifestNodes+--+--         , requestListModelManifests $+--             newListModelManifests+--+--         , requestListSignalCatalogNodes $+--             newListSignalCatalogNodes+--+--         , requestListSignalCatalogs $+--             newListSignalCatalogs+--+--         , requestListTagsForResource $+--             newListTagsForResource+--+--         , requestListVehicles $+--             newListVehicles+--+--         , requestListVehiclesInFleet $+--             newListVehiclesInFleet+--+--         , requestPutLoggingOptions $+--             newPutLoggingOptions+--+--         , requestRegisterAccount $+--             newRegisterAccount+--+--         , requestTagResource $+--             newTagResource+--+--         , requestUntagResource $+--             newUntagResource+--+--         , requestUpdateCampaign $+--             newUpdateCampaign+--+--         , requestUpdateDecoderManifest $+--             newUpdateDecoderManifest+--+--         , requestUpdateFleet $+--             newUpdateFleet+--+--         , requestUpdateModelManifest $+--             newUpdateModelManifest+--+--         , requestUpdateSignalCatalog $+--             newUpdateSignalCatalog+--+--         , requestUpdateVehicle $+--             newUpdateVehicle+--+--           ]++--     , testGroup "response"+--         [ responseAssociateVehicleFleet $+--             newAssociateVehicleFleetResponse+--+--         , responseBatchCreateVehicle $+--             newBatchCreateVehicleResponse+--+--         , responseBatchUpdateVehicle $+--             newBatchUpdateVehicleResponse+--+--         , responseCreateCampaign $+--             newCreateCampaignResponse+--+--         , responseCreateDecoderManifest $+--             newCreateDecoderManifestResponse+--+--         , responseCreateFleet $+--             newCreateFleetResponse+--+--         , responseCreateModelManifest $+--             newCreateModelManifestResponse+--+--         , responseCreateSignalCatalog $+--             newCreateSignalCatalogResponse+--+--         , responseCreateVehicle $+--             newCreateVehicleResponse+--+--         , responseDeleteCampaign $+--             newDeleteCampaignResponse+--+--         , responseDeleteDecoderManifest $+--             newDeleteDecoderManifestResponse+--+--         , responseDeleteFleet $+--             newDeleteFleetResponse+--+--         , responseDeleteModelManifest $+--             newDeleteModelManifestResponse+--+--         , responseDeleteSignalCatalog $+--             newDeleteSignalCatalogResponse+--+--         , responseDeleteVehicle $+--             newDeleteVehicleResponse+--+--         , responseDisassociateVehicleFleet $+--             newDisassociateVehicleFleetResponse+--+--         , responseGetCampaign $+--             newGetCampaignResponse+--+--         , responseGetDecoderManifest $+--             newGetDecoderManifestResponse+--+--         , responseGetFleet $+--             newGetFleetResponse+--+--         , responseGetLoggingOptions $+--             newGetLoggingOptionsResponse+--+--         , responseGetModelManifest $+--             newGetModelManifestResponse+--+--         , responseGetRegisterAccountStatus $+--             newGetRegisterAccountStatusResponse+--+--         , responseGetSignalCatalog $+--             newGetSignalCatalogResponse+--+--         , responseGetVehicle $+--             newGetVehicleResponse+--+--         , responseGetVehicleStatus $+--             newGetVehicleStatusResponse+--+--         , responseImportDecoderManifest $+--             newImportDecoderManifestResponse+--+--         , responseImportSignalCatalog $+--             newImportSignalCatalogResponse+--+--         , responseListCampaigns $+--             newListCampaignsResponse+--+--         , responseListDecoderManifestNetworkInterfaces $+--             newListDecoderManifestNetworkInterfacesResponse+--+--         , responseListDecoderManifestSignals $+--             newListDecoderManifestSignalsResponse+--+--         , responseListDecoderManifests $+--             newListDecoderManifestsResponse+--+--         , responseListFleets $+--             newListFleetsResponse+--+--         , responseListFleetsForVehicle $+--             newListFleetsForVehicleResponse+--+--         , responseListModelManifestNodes $+--             newListModelManifestNodesResponse+--+--         , responseListModelManifests $+--             newListModelManifestsResponse+--+--         , responseListSignalCatalogNodes $+--             newListSignalCatalogNodesResponse+--+--         , responseListSignalCatalogs $+--             newListSignalCatalogsResponse+--+--         , responseListTagsForResource $+--             newListTagsForResourceResponse+--+--         , responseListVehicles $+--             newListVehiclesResponse+--+--         , responseListVehiclesInFleet $+--             newListVehiclesInFleetResponse+--+--         , responsePutLoggingOptions $+--             newPutLoggingOptionsResponse+--+--         , responseRegisterAccount $+--             newRegisterAccountResponse+--+--         , responseTagResource $+--             newTagResourceResponse+--+--         , responseUntagResource $+--             newUntagResourceResponse+--+--         , responseUpdateCampaign $+--             newUpdateCampaignResponse+--+--         , responseUpdateDecoderManifest $+--             newUpdateDecoderManifestResponse+--+--         , responseUpdateFleet $+--             newUpdateFleetResponse+--+--         , responseUpdateModelManifest $+--             newUpdateModelManifestResponse+--+--         , responseUpdateSignalCatalog $+--             newUpdateSignalCatalogResponse+--+--         , responseUpdateVehicle $+--             newUpdateVehicleResponse+--+--           ]+--     ]++-- Requests++requestAssociateVehicleFleet :: AssociateVehicleFleet -> TestTree+requestAssociateVehicleFleet =+  req+    "AssociateVehicleFleet"+    "fixture/AssociateVehicleFleet.yaml"++requestBatchCreateVehicle :: BatchCreateVehicle -> TestTree+requestBatchCreateVehicle =+  req+    "BatchCreateVehicle"+    "fixture/BatchCreateVehicle.yaml"++requestBatchUpdateVehicle :: BatchUpdateVehicle -> TestTree+requestBatchUpdateVehicle =+  req+    "BatchUpdateVehicle"+    "fixture/BatchUpdateVehicle.yaml"++requestCreateCampaign :: CreateCampaign -> TestTree+requestCreateCampaign =+  req+    "CreateCampaign"+    "fixture/CreateCampaign.yaml"++requestCreateDecoderManifest :: CreateDecoderManifest -> TestTree+requestCreateDecoderManifest =+  req+    "CreateDecoderManifest"+    "fixture/CreateDecoderManifest.yaml"++requestCreateFleet :: CreateFleet -> TestTree+requestCreateFleet =+  req+    "CreateFleet"+    "fixture/CreateFleet.yaml"++requestCreateModelManifest :: CreateModelManifest -> TestTree+requestCreateModelManifest =+  req+    "CreateModelManifest"+    "fixture/CreateModelManifest.yaml"++requestCreateSignalCatalog :: CreateSignalCatalog -> TestTree+requestCreateSignalCatalog =+  req+    "CreateSignalCatalog"+    "fixture/CreateSignalCatalog.yaml"++requestCreateVehicle :: CreateVehicle -> TestTree+requestCreateVehicle =+  req+    "CreateVehicle"+    "fixture/CreateVehicle.yaml"++requestDeleteCampaign :: DeleteCampaign -> TestTree+requestDeleteCampaign =+  req+    "DeleteCampaign"+    "fixture/DeleteCampaign.yaml"++requestDeleteDecoderManifest :: DeleteDecoderManifest -> TestTree+requestDeleteDecoderManifest =+  req+    "DeleteDecoderManifest"+    "fixture/DeleteDecoderManifest.yaml"++requestDeleteFleet :: DeleteFleet -> TestTree+requestDeleteFleet =+  req+    "DeleteFleet"+    "fixture/DeleteFleet.yaml"++requestDeleteModelManifest :: DeleteModelManifest -> TestTree+requestDeleteModelManifest =+  req+    "DeleteModelManifest"+    "fixture/DeleteModelManifest.yaml"++requestDeleteSignalCatalog :: DeleteSignalCatalog -> TestTree+requestDeleteSignalCatalog =+  req+    "DeleteSignalCatalog"+    "fixture/DeleteSignalCatalog.yaml"++requestDeleteVehicle :: DeleteVehicle -> TestTree+requestDeleteVehicle =+  req+    "DeleteVehicle"+    "fixture/DeleteVehicle.yaml"++requestDisassociateVehicleFleet :: DisassociateVehicleFleet -> TestTree+requestDisassociateVehicleFleet =+  req+    "DisassociateVehicleFleet"+    "fixture/DisassociateVehicleFleet.yaml"++requestGetCampaign :: GetCampaign -> TestTree+requestGetCampaign =+  req+    "GetCampaign"+    "fixture/GetCampaign.yaml"++requestGetDecoderManifest :: GetDecoderManifest -> TestTree+requestGetDecoderManifest =+  req+    "GetDecoderManifest"+    "fixture/GetDecoderManifest.yaml"++requestGetFleet :: GetFleet -> TestTree+requestGetFleet =+  req+    "GetFleet"+    "fixture/GetFleet.yaml"++requestGetLoggingOptions :: GetLoggingOptions -> TestTree+requestGetLoggingOptions =+  req+    "GetLoggingOptions"+    "fixture/GetLoggingOptions.yaml"++requestGetModelManifest :: GetModelManifest -> TestTree+requestGetModelManifest =+  req+    "GetModelManifest"+    "fixture/GetModelManifest.yaml"++requestGetRegisterAccountStatus :: GetRegisterAccountStatus -> TestTree+requestGetRegisterAccountStatus =+  req+    "GetRegisterAccountStatus"+    "fixture/GetRegisterAccountStatus.yaml"++requestGetSignalCatalog :: GetSignalCatalog -> TestTree+requestGetSignalCatalog =+  req+    "GetSignalCatalog"+    "fixture/GetSignalCatalog.yaml"++requestGetVehicle :: GetVehicle -> TestTree+requestGetVehicle =+  req+    "GetVehicle"+    "fixture/GetVehicle.yaml"++requestGetVehicleStatus :: GetVehicleStatus -> TestTree+requestGetVehicleStatus =+  req+    "GetVehicleStatus"+    "fixture/GetVehicleStatus.yaml"++requestImportDecoderManifest :: ImportDecoderManifest -> TestTree+requestImportDecoderManifest =+  req+    "ImportDecoderManifest"+    "fixture/ImportDecoderManifest.yaml"++requestImportSignalCatalog :: ImportSignalCatalog -> TestTree+requestImportSignalCatalog =+  req+    "ImportSignalCatalog"+    "fixture/ImportSignalCatalog.yaml"++requestListCampaigns :: ListCampaigns -> TestTree+requestListCampaigns =+  req+    "ListCampaigns"+    "fixture/ListCampaigns.yaml"++requestListDecoderManifestNetworkInterfaces :: ListDecoderManifestNetworkInterfaces -> TestTree+requestListDecoderManifestNetworkInterfaces =+  req+    "ListDecoderManifestNetworkInterfaces"+    "fixture/ListDecoderManifestNetworkInterfaces.yaml"++requestListDecoderManifestSignals :: ListDecoderManifestSignals -> TestTree+requestListDecoderManifestSignals =+  req+    "ListDecoderManifestSignals"+    "fixture/ListDecoderManifestSignals.yaml"++requestListDecoderManifests :: ListDecoderManifests -> TestTree+requestListDecoderManifests =+  req+    "ListDecoderManifests"+    "fixture/ListDecoderManifests.yaml"++requestListFleets :: ListFleets -> TestTree+requestListFleets =+  req+    "ListFleets"+    "fixture/ListFleets.yaml"++requestListFleetsForVehicle :: ListFleetsForVehicle -> TestTree+requestListFleetsForVehicle =+  req+    "ListFleetsForVehicle"+    "fixture/ListFleetsForVehicle.yaml"++requestListModelManifestNodes :: ListModelManifestNodes -> TestTree+requestListModelManifestNodes =+  req+    "ListModelManifestNodes"+    "fixture/ListModelManifestNodes.yaml"++requestListModelManifests :: ListModelManifests -> TestTree+requestListModelManifests =+  req+    "ListModelManifests"+    "fixture/ListModelManifests.yaml"++requestListSignalCatalogNodes :: ListSignalCatalogNodes -> TestTree+requestListSignalCatalogNodes =+  req+    "ListSignalCatalogNodes"+    "fixture/ListSignalCatalogNodes.yaml"++requestListSignalCatalogs :: ListSignalCatalogs -> TestTree+requestListSignalCatalogs =+  req+    "ListSignalCatalogs"+    "fixture/ListSignalCatalogs.yaml"++requestListTagsForResource :: ListTagsForResource -> TestTree+requestListTagsForResource =+  req+    "ListTagsForResource"+    "fixture/ListTagsForResource.yaml"++requestListVehicles :: ListVehicles -> TestTree+requestListVehicles =+  req+    "ListVehicles"+    "fixture/ListVehicles.yaml"++requestListVehiclesInFleet :: ListVehiclesInFleet -> TestTree+requestListVehiclesInFleet =+  req+    "ListVehiclesInFleet"+    "fixture/ListVehiclesInFleet.yaml"++requestPutLoggingOptions :: PutLoggingOptions -> TestTree+requestPutLoggingOptions =+  req+    "PutLoggingOptions"+    "fixture/PutLoggingOptions.yaml"++requestRegisterAccount :: RegisterAccount -> TestTree+requestRegisterAccount =+  req+    "RegisterAccount"+    "fixture/RegisterAccount.yaml"++requestTagResource :: TagResource -> TestTree+requestTagResource =+  req+    "TagResource"+    "fixture/TagResource.yaml"++requestUntagResource :: UntagResource -> TestTree+requestUntagResource =+  req+    "UntagResource"+    "fixture/UntagResource.yaml"++requestUpdateCampaign :: UpdateCampaign -> TestTree+requestUpdateCampaign =+  req+    "UpdateCampaign"+    "fixture/UpdateCampaign.yaml"++requestUpdateDecoderManifest :: UpdateDecoderManifest -> TestTree+requestUpdateDecoderManifest =+  req+    "UpdateDecoderManifest"+    "fixture/UpdateDecoderManifest.yaml"++requestUpdateFleet :: UpdateFleet -> TestTree+requestUpdateFleet =+  req+    "UpdateFleet"+    "fixture/UpdateFleet.yaml"++requestUpdateModelManifest :: UpdateModelManifest -> TestTree+requestUpdateModelManifest =+  req+    "UpdateModelManifest"+    "fixture/UpdateModelManifest.yaml"++requestUpdateSignalCatalog :: UpdateSignalCatalog -> TestTree+requestUpdateSignalCatalog =+  req+    "UpdateSignalCatalog"+    "fixture/UpdateSignalCatalog.yaml"++requestUpdateVehicle :: UpdateVehicle -> TestTree+requestUpdateVehicle =+  req+    "UpdateVehicle"+    "fixture/UpdateVehicle.yaml"++-- Responses++responseAssociateVehicleFleet :: AssociateVehicleFleetResponse -> TestTree+responseAssociateVehicleFleet =+  res+    "AssociateVehicleFleetResponse"+    "fixture/AssociateVehicleFleetResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy AssociateVehicleFleet)++responseBatchCreateVehicle :: BatchCreateVehicleResponse -> TestTree+responseBatchCreateVehicle =+  res+    "BatchCreateVehicleResponse"+    "fixture/BatchCreateVehicleResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy BatchCreateVehicle)++responseBatchUpdateVehicle :: BatchUpdateVehicleResponse -> TestTree+responseBatchUpdateVehicle =+  res+    "BatchUpdateVehicleResponse"+    "fixture/BatchUpdateVehicleResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy BatchUpdateVehicle)++responseCreateCampaign :: CreateCampaignResponse -> TestTree+responseCreateCampaign =+  res+    "CreateCampaignResponse"+    "fixture/CreateCampaignResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateCampaign)++responseCreateDecoderManifest :: CreateDecoderManifestResponse -> TestTree+responseCreateDecoderManifest =+  res+    "CreateDecoderManifestResponse"+    "fixture/CreateDecoderManifestResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateDecoderManifest)++responseCreateFleet :: CreateFleetResponse -> TestTree+responseCreateFleet =+  res+    "CreateFleetResponse"+    "fixture/CreateFleetResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateFleet)++responseCreateModelManifest :: CreateModelManifestResponse -> TestTree+responseCreateModelManifest =+  res+    "CreateModelManifestResponse"+    "fixture/CreateModelManifestResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateModelManifest)++responseCreateSignalCatalog :: CreateSignalCatalogResponse -> TestTree+responseCreateSignalCatalog =+  res+    "CreateSignalCatalogResponse"+    "fixture/CreateSignalCatalogResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateSignalCatalog)++responseCreateVehicle :: CreateVehicleResponse -> TestTree+responseCreateVehicle =+  res+    "CreateVehicleResponse"+    "fixture/CreateVehicleResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateVehicle)++responseDeleteCampaign :: DeleteCampaignResponse -> TestTree+responseDeleteCampaign =+  res+    "DeleteCampaignResponse"+    "fixture/DeleteCampaignResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteCampaign)++responseDeleteDecoderManifest :: DeleteDecoderManifestResponse -> TestTree+responseDeleteDecoderManifest =+  res+    "DeleteDecoderManifestResponse"+    "fixture/DeleteDecoderManifestResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteDecoderManifest)++responseDeleteFleet :: DeleteFleetResponse -> TestTree+responseDeleteFleet =+  res+    "DeleteFleetResponse"+    "fixture/DeleteFleetResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteFleet)++responseDeleteModelManifest :: DeleteModelManifestResponse -> TestTree+responseDeleteModelManifest =+  res+    "DeleteModelManifestResponse"+    "fixture/DeleteModelManifestResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteModelManifest)++responseDeleteSignalCatalog :: DeleteSignalCatalogResponse -> TestTree+responseDeleteSignalCatalog =+  res+    "DeleteSignalCatalogResponse"+    "fixture/DeleteSignalCatalogResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteSignalCatalog)++responseDeleteVehicle :: DeleteVehicleResponse -> TestTree+responseDeleteVehicle =+  res+    "DeleteVehicleResponse"+    "fixture/DeleteVehicleResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteVehicle)++responseDisassociateVehicleFleet :: DisassociateVehicleFleetResponse -> TestTree+responseDisassociateVehicleFleet =+  res+    "DisassociateVehicleFleetResponse"+    "fixture/DisassociateVehicleFleetResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DisassociateVehicleFleet)++responseGetCampaign :: GetCampaignResponse -> TestTree+responseGetCampaign =+  res+    "GetCampaignResponse"+    "fixture/GetCampaignResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetCampaign)++responseGetDecoderManifest :: GetDecoderManifestResponse -> TestTree+responseGetDecoderManifest =+  res+    "GetDecoderManifestResponse"+    "fixture/GetDecoderManifestResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetDecoderManifest)++responseGetFleet :: GetFleetResponse -> TestTree+responseGetFleet =+  res+    "GetFleetResponse"+    "fixture/GetFleetResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetFleet)++responseGetLoggingOptions :: GetLoggingOptionsResponse -> TestTree+responseGetLoggingOptions =+  res+    "GetLoggingOptionsResponse"+    "fixture/GetLoggingOptionsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetLoggingOptions)++responseGetModelManifest :: GetModelManifestResponse -> TestTree+responseGetModelManifest =+  res+    "GetModelManifestResponse"+    "fixture/GetModelManifestResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetModelManifest)++responseGetRegisterAccountStatus :: GetRegisterAccountStatusResponse -> TestTree+responseGetRegisterAccountStatus =+  res+    "GetRegisterAccountStatusResponse"+    "fixture/GetRegisterAccountStatusResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetRegisterAccountStatus)++responseGetSignalCatalog :: GetSignalCatalogResponse -> TestTree+responseGetSignalCatalog =+  res+    "GetSignalCatalogResponse"+    "fixture/GetSignalCatalogResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetSignalCatalog)++responseGetVehicle :: GetVehicleResponse -> TestTree+responseGetVehicle =+  res+    "GetVehicleResponse"+    "fixture/GetVehicleResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetVehicle)++responseGetVehicleStatus :: GetVehicleStatusResponse -> TestTree+responseGetVehicleStatus =+  res+    "GetVehicleStatusResponse"+    "fixture/GetVehicleStatusResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetVehicleStatus)++responseImportDecoderManifest :: ImportDecoderManifestResponse -> TestTree+responseImportDecoderManifest =+  res+    "ImportDecoderManifestResponse"+    "fixture/ImportDecoderManifestResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ImportDecoderManifest)++responseImportSignalCatalog :: ImportSignalCatalogResponse -> TestTree+responseImportSignalCatalog =+  res+    "ImportSignalCatalogResponse"+    "fixture/ImportSignalCatalogResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ImportSignalCatalog)++responseListCampaigns :: ListCampaignsResponse -> TestTree+responseListCampaigns =+  res+    "ListCampaignsResponse"+    "fixture/ListCampaignsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListCampaigns)++responseListDecoderManifestNetworkInterfaces :: ListDecoderManifestNetworkInterfacesResponse -> TestTree+responseListDecoderManifestNetworkInterfaces =+  res+    "ListDecoderManifestNetworkInterfacesResponse"+    "fixture/ListDecoderManifestNetworkInterfacesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListDecoderManifestNetworkInterfaces)++responseListDecoderManifestSignals :: ListDecoderManifestSignalsResponse -> TestTree+responseListDecoderManifestSignals =+  res+    "ListDecoderManifestSignalsResponse"+    "fixture/ListDecoderManifestSignalsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListDecoderManifestSignals)++responseListDecoderManifests :: ListDecoderManifestsResponse -> TestTree+responseListDecoderManifests =+  res+    "ListDecoderManifestsResponse"+    "fixture/ListDecoderManifestsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListDecoderManifests)++responseListFleets :: ListFleetsResponse -> TestTree+responseListFleets =+  res+    "ListFleetsResponse"+    "fixture/ListFleetsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListFleets)++responseListFleetsForVehicle :: ListFleetsForVehicleResponse -> TestTree+responseListFleetsForVehicle =+  res+    "ListFleetsForVehicleResponse"+    "fixture/ListFleetsForVehicleResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListFleetsForVehicle)++responseListModelManifestNodes :: ListModelManifestNodesResponse -> TestTree+responseListModelManifestNodes =+  res+    "ListModelManifestNodesResponse"+    "fixture/ListModelManifestNodesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListModelManifestNodes)++responseListModelManifests :: ListModelManifestsResponse -> TestTree+responseListModelManifests =+  res+    "ListModelManifestsResponse"+    "fixture/ListModelManifestsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListModelManifests)++responseListSignalCatalogNodes :: ListSignalCatalogNodesResponse -> TestTree+responseListSignalCatalogNodes =+  res+    "ListSignalCatalogNodesResponse"+    "fixture/ListSignalCatalogNodesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListSignalCatalogNodes)++responseListSignalCatalogs :: ListSignalCatalogsResponse -> TestTree+responseListSignalCatalogs =+  res+    "ListSignalCatalogsResponse"+    "fixture/ListSignalCatalogsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListSignalCatalogs)++responseListTagsForResource :: ListTagsForResourceResponse -> TestTree+responseListTagsForResource =+  res+    "ListTagsForResourceResponse"+    "fixture/ListTagsForResourceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListTagsForResource)++responseListVehicles :: ListVehiclesResponse -> TestTree+responseListVehicles =+  res+    "ListVehiclesResponse"+    "fixture/ListVehiclesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListVehicles)++responseListVehiclesInFleet :: ListVehiclesInFleetResponse -> TestTree+responseListVehiclesInFleet =+  res+    "ListVehiclesInFleetResponse"+    "fixture/ListVehiclesInFleetResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListVehiclesInFleet)++responsePutLoggingOptions :: PutLoggingOptionsResponse -> TestTree+responsePutLoggingOptions =+  res+    "PutLoggingOptionsResponse"+    "fixture/PutLoggingOptionsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy PutLoggingOptions)++responseRegisterAccount :: RegisterAccountResponse -> TestTree+responseRegisterAccount =+  res+    "RegisterAccountResponse"+    "fixture/RegisterAccountResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy RegisterAccount)++responseTagResource :: TagResourceResponse -> TestTree+responseTagResource =+  res+    "TagResourceResponse"+    "fixture/TagResourceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy TagResource)++responseUntagResource :: UntagResourceResponse -> TestTree+responseUntagResource =+  res+    "UntagResourceResponse"+    "fixture/UntagResourceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UntagResource)++responseUpdateCampaign :: UpdateCampaignResponse -> TestTree+responseUpdateCampaign =+  res+    "UpdateCampaignResponse"+    "fixture/UpdateCampaignResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateCampaign)++responseUpdateDecoderManifest :: UpdateDecoderManifestResponse -> TestTree+responseUpdateDecoderManifest =+  res+    "UpdateDecoderManifestResponse"+    "fixture/UpdateDecoderManifestResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateDecoderManifest)++responseUpdateFleet :: UpdateFleetResponse -> TestTree+responseUpdateFleet =+  res+    "UpdateFleetResponse"+    "fixture/UpdateFleetResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateFleet)++responseUpdateModelManifest :: UpdateModelManifestResponse -> TestTree+responseUpdateModelManifest =+  res+    "UpdateModelManifestResponse"+    "fixture/UpdateModelManifestResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateModelManifest)++responseUpdateSignalCatalog :: UpdateSignalCatalogResponse -> TestTree+responseUpdateSignalCatalog =+  res+    "UpdateSignalCatalogResponse"+    "fixture/UpdateSignalCatalogResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateSignalCatalog)++responseUpdateVehicle :: UpdateVehicleResponse -> TestTree+responseUpdateVehicle =+  res+    "UpdateVehicleResponse"+    "fixture/UpdateVehicleResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateVehicle)
+ test/Test/Amazonka/IoTFleetWise.hs view
@@ -0,0 +1,20 @@+-- |+-- Module      : Test.Amazonka.IoTFleetWise+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Test.Amazonka.IoTFleetWise+  ( tests,+    fixtures,+  )+where++import Test.Tasty (TestTree)++tests :: [TestTree]+tests = []++fixtures :: [TestTree]+fixtures = []
+ test/Test/Amazonka/IoTFleetWise/Internal.hs view
@@ -0,0 +1,8 @@+-- |+-- Module      : Test.Amazonka.IoTFleetWise.Internal+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Test.Amazonka.IoTFleetWise.Internal where