packages feed

amazonka-iottwinmaker (empty) → 2.0

raw patch · 182 files changed

+19086/−0 lines, 182 filesdep +amazonka-coredep +amazonka-iottwinmakerdep +amazonka-test

Dependencies added: amazonka-core, amazonka-iottwinmaker, 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 TwinMaker SDK++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version+ +`2.0` - Derived from API version @2021-11-29@ of the AWS service descriptions, licensed under Apache 2.0.++## Description++Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-iottwinmaker)+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.IotTwinMaker](http://hackage.haskell.org/package/amazonka-iottwinmaker/docs/Amazonka-IotTwinMaker.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-iottwinmaker` 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-iottwinmaker.cabal view
@@ -0,0 +1,185 @@+cabal-version:      2.2+name:               amazonka-iottwinmaker+version:            2.0+synopsis:           Amazon IoT TwinMaker 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-11-29@ 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.IotTwinMaker.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.IotTwinMaker" 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-iottwinmaker++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.IotTwinMaker+    Amazonka.IotTwinMaker.BatchPutPropertyValues+    Amazonka.IotTwinMaker.CreateComponentType+    Amazonka.IotTwinMaker.CreateEntity+    Amazonka.IotTwinMaker.CreateScene+    Amazonka.IotTwinMaker.CreateSyncJob+    Amazonka.IotTwinMaker.CreateWorkspace+    Amazonka.IotTwinMaker.DeleteComponentType+    Amazonka.IotTwinMaker.DeleteEntity+    Amazonka.IotTwinMaker.DeleteScene+    Amazonka.IotTwinMaker.DeleteSyncJob+    Amazonka.IotTwinMaker.DeleteWorkspace+    Amazonka.IotTwinMaker.ExecuteQuery+    Amazonka.IotTwinMaker.GetComponentType+    Amazonka.IotTwinMaker.GetEntity+    Amazonka.IotTwinMaker.GetPricingPlan+    Amazonka.IotTwinMaker.GetPropertyValue+    Amazonka.IotTwinMaker.GetPropertyValueHistory+    Amazonka.IotTwinMaker.GetScene+    Amazonka.IotTwinMaker.GetSyncJob+    Amazonka.IotTwinMaker.GetWorkspace+    Amazonka.IotTwinMaker.Lens+    Amazonka.IotTwinMaker.ListComponentTypes+    Amazonka.IotTwinMaker.ListEntities+    Amazonka.IotTwinMaker.ListScenes+    Amazonka.IotTwinMaker.ListSyncJobs+    Amazonka.IotTwinMaker.ListSyncResources+    Amazonka.IotTwinMaker.ListTagsForResource+    Amazonka.IotTwinMaker.ListWorkspaces+    Amazonka.IotTwinMaker.TagResource+    Amazonka.IotTwinMaker.Types+    Amazonka.IotTwinMaker.Types.BatchPutPropertyError+    Amazonka.IotTwinMaker.Types.BatchPutPropertyErrorEntry+    Amazonka.IotTwinMaker.Types.BundleInformation+    Amazonka.IotTwinMaker.Types.ColumnDescription+    Amazonka.IotTwinMaker.Types.ColumnType+    Amazonka.IotTwinMaker.Types.ComponentPropertyGroupRequest+    Amazonka.IotTwinMaker.Types.ComponentPropertyGroupResponse+    Amazonka.IotTwinMaker.Types.ComponentRequest+    Amazonka.IotTwinMaker.Types.ComponentResponse+    Amazonka.IotTwinMaker.Types.ComponentTypeSummary+    Amazonka.IotTwinMaker.Types.ComponentUpdateRequest+    Amazonka.IotTwinMaker.Types.ComponentUpdateType+    Amazonka.IotTwinMaker.Types.DataConnector+    Amazonka.IotTwinMaker.Types.DataType+    Amazonka.IotTwinMaker.Types.DataValue+    Amazonka.IotTwinMaker.Types.EntityPropertyReference+    Amazonka.IotTwinMaker.Types.EntitySummary+    Amazonka.IotTwinMaker.Types.ErrorCode+    Amazonka.IotTwinMaker.Types.ErrorDetails+    Amazonka.IotTwinMaker.Types.FunctionRequest+    Amazonka.IotTwinMaker.Types.FunctionResponse+    Amazonka.IotTwinMaker.Types.GroupType+    Amazonka.IotTwinMaker.Types.InterpolationParameters+    Amazonka.IotTwinMaker.Types.InterpolationType+    Amazonka.IotTwinMaker.Types.LambdaFunction+    Amazonka.IotTwinMaker.Types.ListComponentTypesFilter+    Amazonka.IotTwinMaker.Types.ListEntitiesFilter+    Amazonka.IotTwinMaker.Types.Order+    Amazonka.IotTwinMaker.Types.OrderBy+    Amazonka.IotTwinMaker.Types.OrderByTime+    Amazonka.IotTwinMaker.Types.ParentEntityUpdateRequest+    Amazonka.IotTwinMaker.Types.ParentEntityUpdateType+    Amazonka.IotTwinMaker.Types.PricingMode+    Amazonka.IotTwinMaker.Types.PricingPlan+    Amazonka.IotTwinMaker.Types.PricingTier+    Amazonka.IotTwinMaker.Types.PropertyDefinitionRequest+    Amazonka.IotTwinMaker.Types.PropertyDefinitionResponse+    Amazonka.IotTwinMaker.Types.PropertyFilter+    Amazonka.IotTwinMaker.Types.PropertyGroupRequest+    Amazonka.IotTwinMaker.Types.PropertyGroupResponse+    Amazonka.IotTwinMaker.Types.PropertyGroupUpdateType+    Amazonka.IotTwinMaker.Types.PropertyLatestValue+    Amazonka.IotTwinMaker.Types.PropertyRequest+    Amazonka.IotTwinMaker.Types.PropertyResponse+    Amazonka.IotTwinMaker.Types.PropertyUpdateType+    Amazonka.IotTwinMaker.Types.PropertyValue+    Amazonka.IotTwinMaker.Types.PropertyValueEntry+    Amazonka.IotTwinMaker.Types.PropertyValueHistory+    Amazonka.IotTwinMaker.Types.QueryResultValue+    Amazonka.IotTwinMaker.Types.Relationship+    Amazonka.IotTwinMaker.Types.RelationshipValue+    Amazonka.IotTwinMaker.Types.Row+    Amazonka.IotTwinMaker.Types.SceneSummary+    Amazonka.IotTwinMaker.Types.Scope+    Amazonka.IotTwinMaker.Types.State+    Amazonka.IotTwinMaker.Types.Status+    Amazonka.IotTwinMaker.Types.SyncJobState+    Amazonka.IotTwinMaker.Types.SyncJobStatus+    Amazonka.IotTwinMaker.Types.SyncJobSummary+    Amazonka.IotTwinMaker.Types.SyncResourceFilter+    Amazonka.IotTwinMaker.Types.SyncResourceState+    Amazonka.IotTwinMaker.Types.SyncResourceStatus+    Amazonka.IotTwinMaker.Types.SyncResourceSummary+    Amazonka.IotTwinMaker.Types.SyncResourceType+    Amazonka.IotTwinMaker.Types.TabularConditions+    Amazonka.IotTwinMaker.Types.Type+    Amazonka.IotTwinMaker.Types.UpdateReason+    Amazonka.IotTwinMaker.Types.WorkspaceSummary+    Amazonka.IotTwinMaker.UntagResource+    Amazonka.IotTwinMaker.UpdateComponentType+    Amazonka.IotTwinMaker.UpdateEntity+    Amazonka.IotTwinMaker.UpdatePricingPlan+    Amazonka.IotTwinMaker.UpdateScene+    Amazonka.IotTwinMaker.UpdateWorkspace+    Amazonka.IotTwinMaker.Waiters++  build-depends:+    , amazonka-core  >=2.0  && <2.1+    , base           >=4.12 && <5++test-suite amazonka-iottwinmaker-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.IotTwinMaker+    Test.Amazonka.IotTwinMaker+    Test.Amazonka.IotTwinMaker.Internal++  build-depends:+    , amazonka-core          >=2.0 && <2.1+    , amazonka-iottwinmaker+    , amazonka-test          >=2.0 && <2.1+    , base+    , bytestring+    , case-insensitive+    , tasty+    , tasty-hunit+    , text+    , time+    , unordered-containers
+ fixture/BatchPutPropertyValues.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iottwinmaker/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iottwinmaker.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/BatchPutPropertyValuesResponse.proto view
+ fixture/CreateComponentType.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iottwinmaker/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iottwinmaker.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/CreateComponentTypeResponse.proto view
+ fixture/CreateEntity.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iottwinmaker/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iottwinmaker.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/CreateEntityResponse.proto view
+ fixture/CreateScene.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iottwinmaker/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iottwinmaker.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/CreateSceneResponse.proto view
+ fixture/CreateSyncJob.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iottwinmaker/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iottwinmaker.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/CreateSyncJobResponse.proto view
+ fixture/CreateWorkspace.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iottwinmaker/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iottwinmaker.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/CreateWorkspaceResponse.proto view
+ fixture/DeleteComponentType.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iottwinmaker/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iottwinmaker.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/DeleteComponentTypeResponse.proto view
+ fixture/DeleteEntity.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iottwinmaker/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iottwinmaker.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/DeleteEntityResponse.proto view
+ fixture/DeleteScene.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iottwinmaker/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iottwinmaker.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/DeleteSceneResponse.proto view
+ fixture/DeleteSyncJob.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iottwinmaker/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iottwinmaker.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/DeleteSyncJobResponse.proto view
+ fixture/DeleteWorkspace.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iottwinmaker/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iottwinmaker.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/DeleteWorkspaceResponse.proto view
+ fixture/ExecuteQuery.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iottwinmaker/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iottwinmaker.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/ExecuteQueryResponse.proto view
+ fixture/GetComponentType.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iottwinmaker/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iottwinmaker.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/GetComponentTypeResponse.proto view
+ fixture/GetEntity.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iottwinmaker/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iottwinmaker.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/GetEntityResponse.proto view
+ fixture/GetPricingPlan.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iottwinmaker/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iottwinmaker.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/GetPricingPlanResponse.proto view
+ fixture/GetPropertyValue.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iottwinmaker/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iottwinmaker.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/GetPropertyValueHistory.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iottwinmaker/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iottwinmaker.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/GetPropertyValueHistoryResponse.proto view
+ fixture/GetPropertyValueResponse.proto view
+ fixture/GetScene.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iottwinmaker/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iottwinmaker.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/GetSceneResponse.proto view
+ fixture/GetSyncJob.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iottwinmaker/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iottwinmaker.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/GetSyncJobResponse.proto view
+ fixture/GetWorkspace.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iottwinmaker/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iottwinmaker.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/GetWorkspaceResponse.proto view
+ fixture/ListComponentTypes.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iottwinmaker/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iottwinmaker.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/ListComponentTypesResponse.proto view
+ fixture/ListEntities.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iottwinmaker/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iottwinmaker.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/ListEntitiesResponse.proto view
+ fixture/ListScenes.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iottwinmaker/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iottwinmaker.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/ListScenesResponse.proto view
+ fixture/ListSyncJobs.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iottwinmaker/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iottwinmaker.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/ListSyncJobsResponse.proto view
+ fixture/ListSyncResources.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iottwinmaker/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iottwinmaker.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/ListSyncResourcesResponse.proto view
+ fixture/ListTagsForResource.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iottwinmaker/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iottwinmaker.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/ListWorkspaces.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iottwinmaker/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iottwinmaker.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/ListWorkspacesResponse.proto view
+ fixture/TagResource.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iottwinmaker/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iottwinmaker.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: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iottwinmaker/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iottwinmaker.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/UpdateComponentType.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iottwinmaker/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iottwinmaker.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/UpdateComponentTypeResponse.proto view
+ fixture/UpdateEntity.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iottwinmaker/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iottwinmaker.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/UpdateEntityResponse.proto view
+ fixture/UpdatePricingPlan.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iottwinmaker/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iottwinmaker.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/UpdatePricingPlanResponse.proto view
+ fixture/UpdateScene.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iottwinmaker/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iottwinmaker.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/UpdateSceneResponse.proto view
+ fixture/UpdateWorkspace.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/iottwinmaker/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  iottwinmaker.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/UpdateWorkspaceResponse.proto view
+ gen/Amazonka/IotTwinMaker.hs view
@@ -0,0 +1,590 @@+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Amazonka.IotTwinMaker+-- 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-11-29@ of the AWS service descriptions, licensed under Apache 2.0.+--+-- IoT TwinMaker is a service that enables you to build operational digital+-- twins of physical systems. IoT TwinMaker overlays measurements and+-- analysis from real-world sensors, cameras, and enterprise applications+-- so you can create data visualizations to monitor your physical factory,+-- building, or industrial plant. You can use this real-world data to+-- monitor operations and diagnose and repair errors.+module Amazonka.IotTwinMaker+  ( -- * Service Configuration+    defaultService,++    -- * Errors+    -- $errors++    -- ** AccessDeniedException+    _AccessDeniedException,++    -- ** ConflictException+    _ConflictException,++    -- ** ConnectorFailureException+    _ConnectorFailureException,++    -- ** ConnectorTimeoutException+    _ConnectorTimeoutException,++    -- ** InternalServerException+    _InternalServerException,++    -- ** QueryTimeoutException+    _QueryTimeoutException,++    -- ** ResourceNotFoundException+    _ResourceNotFoundException,++    -- ** ServiceQuotaExceededException+    _ServiceQuotaExceededException,++    -- ** ThrottlingException+    _ThrottlingException,++    -- ** TooManyTagsException+    _TooManyTagsException,++    -- ** ValidationException+    _ValidationException,++    -- * Waiters+    -- $waiters++    -- * Operations+    -- $operations++    -- ** BatchPutPropertyValues+    BatchPutPropertyValues (BatchPutPropertyValues'),+    newBatchPutPropertyValues,+    BatchPutPropertyValuesResponse (BatchPutPropertyValuesResponse'),+    newBatchPutPropertyValuesResponse,++    -- ** CreateComponentType+    CreateComponentType (CreateComponentType'),+    newCreateComponentType,+    CreateComponentTypeResponse (CreateComponentTypeResponse'),+    newCreateComponentTypeResponse,++    -- ** CreateEntity+    CreateEntity (CreateEntity'),+    newCreateEntity,+    CreateEntityResponse (CreateEntityResponse'),+    newCreateEntityResponse,++    -- ** CreateScene+    CreateScene (CreateScene'),+    newCreateScene,+    CreateSceneResponse (CreateSceneResponse'),+    newCreateSceneResponse,++    -- ** CreateSyncJob+    CreateSyncJob (CreateSyncJob'),+    newCreateSyncJob,+    CreateSyncJobResponse (CreateSyncJobResponse'),+    newCreateSyncJobResponse,++    -- ** CreateWorkspace+    CreateWorkspace (CreateWorkspace'),+    newCreateWorkspace,+    CreateWorkspaceResponse (CreateWorkspaceResponse'),+    newCreateWorkspaceResponse,++    -- ** DeleteComponentType+    DeleteComponentType (DeleteComponentType'),+    newDeleteComponentType,+    DeleteComponentTypeResponse (DeleteComponentTypeResponse'),+    newDeleteComponentTypeResponse,++    -- ** DeleteEntity+    DeleteEntity (DeleteEntity'),+    newDeleteEntity,+    DeleteEntityResponse (DeleteEntityResponse'),+    newDeleteEntityResponse,++    -- ** DeleteScene+    DeleteScene (DeleteScene'),+    newDeleteScene,+    DeleteSceneResponse (DeleteSceneResponse'),+    newDeleteSceneResponse,++    -- ** DeleteSyncJob+    DeleteSyncJob (DeleteSyncJob'),+    newDeleteSyncJob,+    DeleteSyncJobResponse (DeleteSyncJobResponse'),+    newDeleteSyncJobResponse,++    -- ** DeleteWorkspace+    DeleteWorkspace (DeleteWorkspace'),+    newDeleteWorkspace,+    DeleteWorkspaceResponse (DeleteWorkspaceResponse'),+    newDeleteWorkspaceResponse,++    -- ** ExecuteQuery+    ExecuteQuery (ExecuteQuery'),+    newExecuteQuery,+    ExecuteQueryResponse (ExecuteQueryResponse'),+    newExecuteQueryResponse,++    -- ** GetComponentType+    GetComponentType (GetComponentType'),+    newGetComponentType,+    GetComponentTypeResponse (GetComponentTypeResponse'),+    newGetComponentTypeResponse,++    -- ** GetEntity+    GetEntity (GetEntity'),+    newGetEntity,+    GetEntityResponse (GetEntityResponse'),+    newGetEntityResponse,++    -- ** GetPricingPlan+    GetPricingPlan (GetPricingPlan'),+    newGetPricingPlan,+    GetPricingPlanResponse (GetPricingPlanResponse'),+    newGetPricingPlanResponse,++    -- ** GetPropertyValue+    GetPropertyValue (GetPropertyValue'),+    newGetPropertyValue,+    GetPropertyValueResponse (GetPropertyValueResponse'),+    newGetPropertyValueResponse,++    -- ** GetPropertyValueHistory+    GetPropertyValueHistory (GetPropertyValueHistory'),+    newGetPropertyValueHistory,+    GetPropertyValueHistoryResponse (GetPropertyValueHistoryResponse'),+    newGetPropertyValueHistoryResponse,++    -- ** GetScene+    GetScene (GetScene'),+    newGetScene,+    GetSceneResponse (GetSceneResponse'),+    newGetSceneResponse,++    -- ** GetSyncJob+    GetSyncJob (GetSyncJob'),+    newGetSyncJob,+    GetSyncJobResponse (GetSyncJobResponse'),+    newGetSyncJobResponse,++    -- ** GetWorkspace+    GetWorkspace (GetWorkspace'),+    newGetWorkspace,+    GetWorkspaceResponse (GetWorkspaceResponse'),+    newGetWorkspaceResponse,++    -- ** ListComponentTypes+    ListComponentTypes (ListComponentTypes'),+    newListComponentTypes,+    ListComponentTypesResponse (ListComponentTypesResponse'),+    newListComponentTypesResponse,++    -- ** ListEntities+    ListEntities (ListEntities'),+    newListEntities,+    ListEntitiesResponse (ListEntitiesResponse'),+    newListEntitiesResponse,++    -- ** ListScenes+    ListScenes (ListScenes'),+    newListScenes,+    ListScenesResponse (ListScenesResponse'),+    newListScenesResponse,++    -- ** ListSyncJobs+    ListSyncJobs (ListSyncJobs'),+    newListSyncJobs,+    ListSyncJobsResponse (ListSyncJobsResponse'),+    newListSyncJobsResponse,++    -- ** ListSyncResources+    ListSyncResources (ListSyncResources'),+    newListSyncResources,+    ListSyncResourcesResponse (ListSyncResourcesResponse'),+    newListSyncResourcesResponse,++    -- ** ListTagsForResource+    ListTagsForResource (ListTagsForResource'),+    newListTagsForResource,+    ListTagsForResourceResponse (ListTagsForResourceResponse'),+    newListTagsForResourceResponse,++    -- ** ListWorkspaces+    ListWorkspaces (ListWorkspaces'),+    newListWorkspaces,+    ListWorkspacesResponse (ListWorkspacesResponse'),+    newListWorkspacesResponse,++    -- ** TagResource+    TagResource (TagResource'),+    newTagResource,+    TagResourceResponse (TagResourceResponse'),+    newTagResourceResponse,++    -- ** UntagResource+    UntagResource (UntagResource'),+    newUntagResource,+    UntagResourceResponse (UntagResourceResponse'),+    newUntagResourceResponse,++    -- ** UpdateComponentType+    UpdateComponentType (UpdateComponentType'),+    newUpdateComponentType,+    UpdateComponentTypeResponse (UpdateComponentTypeResponse'),+    newUpdateComponentTypeResponse,++    -- ** UpdateEntity+    UpdateEntity (UpdateEntity'),+    newUpdateEntity,+    UpdateEntityResponse (UpdateEntityResponse'),+    newUpdateEntityResponse,++    -- ** UpdatePricingPlan+    UpdatePricingPlan (UpdatePricingPlan'),+    newUpdatePricingPlan,+    UpdatePricingPlanResponse (UpdatePricingPlanResponse'),+    newUpdatePricingPlanResponse,++    -- ** UpdateScene+    UpdateScene (UpdateScene'),+    newUpdateScene,+    UpdateSceneResponse (UpdateSceneResponse'),+    newUpdateSceneResponse,++    -- ** UpdateWorkspace+    UpdateWorkspace (UpdateWorkspace'),+    newUpdateWorkspace,+    UpdateWorkspaceResponse (UpdateWorkspaceResponse'),+    newUpdateWorkspaceResponse,++    -- * Types++    -- ** ColumnType+    ColumnType (..),++    -- ** ComponentUpdateType+    ComponentUpdateType (..),++    -- ** ErrorCode+    ErrorCode (..),++    -- ** GroupType+    GroupType (..),++    -- ** InterpolationType+    InterpolationType (..),++    -- ** Order+    Order (..),++    -- ** OrderByTime+    OrderByTime (..),++    -- ** ParentEntityUpdateType+    ParentEntityUpdateType (..),++    -- ** PricingMode+    PricingMode (..),++    -- ** PricingTier+    PricingTier (..),++    -- ** PropertyGroupUpdateType+    PropertyGroupUpdateType (..),++    -- ** PropertyUpdateType+    PropertyUpdateType (..),++    -- ** Scope+    Scope (..),++    -- ** State+    State (..),++    -- ** SyncJobState+    SyncJobState (..),++    -- ** SyncResourceState+    SyncResourceState (..),++    -- ** SyncResourceType+    SyncResourceType (..),++    -- ** Type+    Type (..),++    -- ** UpdateReason+    UpdateReason (..),++    -- ** BatchPutPropertyError+    BatchPutPropertyError (BatchPutPropertyError'),+    newBatchPutPropertyError,++    -- ** BatchPutPropertyErrorEntry+    BatchPutPropertyErrorEntry (BatchPutPropertyErrorEntry'),+    newBatchPutPropertyErrorEntry,++    -- ** BundleInformation+    BundleInformation (BundleInformation'),+    newBundleInformation,++    -- ** ColumnDescription+    ColumnDescription (ColumnDescription'),+    newColumnDescription,++    -- ** ComponentPropertyGroupRequest+    ComponentPropertyGroupRequest (ComponentPropertyGroupRequest'),+    newComponentPropertyGroupRequest,++    -- ** ComponentPropertyGroupResponse+    ComponentPropertyGroupResponse (ComponentPropertyGroupResponse'),+    newComponentPropertyGroupResponse,++    -- ** ComponentRequest+    ComponentRequest (ComponentRequest'),+    newComponentRequest,++    -- ** ComponentResponse+    ComponentResponse (ComponentResponse'),+    newComponentResponse,++    -- ** ComponentTypeSummary+    ComponentTypeSummary (ComponentTypeSummary'),+    newComponentTypeSummary,++    -- ** ComponentUpdateRequest+    ComponentUpdateRequest (ComponentUpdateRequest'),+    newComponentUpdateRequest,++    -- ** DataConnector+    DataConnector (DataConnector'),+    newDataConnector,++    -- ** DataType+    DataType (DataType'),+    newDataType,++    -- ** DataValue+    DataValue (DataValue'),+    newDataValue,++    -- ** EntityPropertyReference+    EntityPropertyReference (EntityPropertyReference'),+    newEntityPropertyReference,++    -- ** EntitySummary+    EntitySummary (EntitySummary'),+    newEntitySummary,++    -- ** ErrorDetails+    ErrorDetails (ErrorDetails'),+    newErrorDetails,++    -- ** FunctionRequest+    FunctionRequest (FunctionRequest'),+    newFunctionRequest,++    -- ** FunctionResponse+    FunctionResponse (FunctionResponse'),+    newFunctionResponse,++    -- ** InterpolationParameters+    InterpolationParameters (InterpolationParameters'),+    newInterpolationParameters,++    -- ** LambdaFunction+    LambdaFunction (LambdaFunction'),+    newLambdaFunction,++    -- ** ListComponentTypesFilter+    ListComponentTypesFilter (ListComponentTypesFilter'),+    newListComponentTypesFilter,++    -- ** ListEntitiesFilter+    ListEntitiesFilter (ListEntitiesFilter'),+    newListEntitiesFilter,++    -- ** OrderBy+    OrderBy (OrderBy'),+    newOrderBy,++    -- ** ParentEntityUpdateRequest+    ParentEntityUpdateRequest (ParentEntityUpdateRequest'),+    newParentEntityUpdateRequest,++    -- ** PricingPlan+    PricingPlan (PricingPlan'),+    newPricingPlan,++    -- ** PropertyDefinitionRequest+    PropertyDefinitionRequest (PropertyDefinitionRequest'),+    newPropertyDefinitionRequest,++    -- ** PropertyDefinitionResponse+    PropertyDefinitionResponse (PropertyDefinitionResponse'),+    newPropertyDefinitionResponse,++    -- ** PropertyFilter+    PropertyFilter (PropertyFilter'),+    newPropertyFilter,++    -- ** PropertyGroupRequest+    PropertyGroupRequest (PropertyGroupRequest'),+    newPropertyGroupRequest,++    -- ** PropertyGroupResponse+    PropertyGroupResponse (PropertyGroupResponse'),+    newPropertyGroupResponse,++    -- ** PropertyLatestValue+    PropertyLatestValue (PropertyLatestValue'),+    newPropertyLatestValue,++    -- ** PropertyRequest+    PropertyRequest (PropertyRequest'),+    newPropertyRequest,++    -- ** PropertyResponse+    PropertyResponse (PropertyResponse'),+    newPropertyResponse,++    -- ** PropertyValue+    PropertyValue (PropertyValue'),+    newPropertyValue,++    -- ** PropertyValueEntry+    PropertyValueEntry (PropertyValueEntry'),+    newPropertyValueEntry,++    -- ** PropertyValueHistory+    PropertyValueHistory (PropertyValueHistory'),+    newPropertyValueHistory,++    -- ** QueryResultValue+    QueryResultValue (QueryResultValue'),+    newQueryResultValue,++    -- ** Relationship+    Relationship (Relationship'),+    newRelationship,++    -- ** RelationshipValue+    RelationshipValue (RelationshipValue'),+    newRelationshipValue,++    -- ** Row+    Row (Row'),+    newRow,++    -- ** SceneSummary+    SceneSummary (SceneSummary'),+    newSceneSummary,++    -- ** Status+    Status (Status'),+    newStatus,++    -- ** SyncJobStatus+    SyncJobStatus (SyncJobStatus'),+    newSyncJobStatus,++    -- ** SyncJobSummary+    SyncJobSummary (SyncJobSummary'),+    newSyncJobSummary,++    -- ** SyncResourceFilter+    SyncResourceFilter (SyncResourceFilter'),+    newSyncResourceFilter,++    -- ** SyncResourceStatus+    SyncResourceStatus (SyncResourceStatus'),+    newSyncResourceStatus,++    -- ** SyncResourceSummary+    SyncResourceSummary (SyncResourceSummary'),+    newSyncResourceSummary,++    -- ** TabularConditions+    TabularConditions (TabularConditions'),+    newTabularConditions,++    -- ** WorkspaceSummary+    WorkspaceSummary (WorkspaceSummary'),+    newWorkspaceSummary,+  )+where++import Amazonka.IotTwinMaker.BatchPutPropertyValues+import Amazonka.IotTwinMaker.CreateComponentType+import Amazonka.IotTwinMaker.CreateEntity+import Amazonka.IotTwinMaker.CreateScene+import Amazonka.IotTwinMaker.CreateSyncJob+import Amazonka.IotTwinMaker.CreateWorkspace+import Amazonka.IotTwinMaker.DeleteComponentType+import Amazonka.IotTwinMaker.DeleteEntity+import Amazonka.IotTwinMaker.DeleteScene+import Amazonka.IotTwinMaker.DeleteSyncJob+import Amazonka.IotTwinMaker.DeleteWorkspace+import Amazonka.IotTwinMaker.ExecuteQuery+import Amazonka.IotTwinMaker.GetComponentType+import Amazonka.IotTwinMaker.GetEntity+import Amazonka.IotTwinMaker.GetPricingPlan+import Amazonka.IotTwinMaker.GetPropertyValue+import Amazonka.IotTwinMaker.GetPropertyValueHistory+import Amazonka.IotTwinMaker.GetScene+import Amazonka.IotTwinMaker.GetSyncJob+import Amazonka.IotTwinMaker.GetWorkspace+import Amazonka.IotTwinMaker.Lens+import Amazonka.IotTwinMaker.ListComponentTypes+import Amazonka.IotTwinMaker.ListEntities+import Amazonka.IotTwinMaker.ListScenes+import Amazonka.IotTwinMaker.ListSyncJobs+import Amazonka.IotTwinMaker.ListSyncResources+import Amazonka.IotTwinMaker.ListTagsForResource+import Amazonka.IotTwinMaker.ListWorkspaces+import Amazonka.IotTwinMaker.TagResource+import Amazonka.IotTwinMaker.Types+import Amazonka.IotTwinMaker.UntagResource+import Amazonka.IotTwinMaker.UpdateComponentType+import Amazonka.IotTwinMaker.UpdateEntity+import Amazonka.IotTwinMaker.UpdatePricingPlan+import Amazonka.IotTwinMaker.UpdateScene+import Amazonka.IotTwinMaker.UpdateWorkspace+import Amazonka.IotTwinMaker.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 'IotTwinMaker'.++-- $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/IotTwinMaker/BatchPutPropertyValues.hs view
@@ -0,0 +1,199 @@+{-# 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.IotTwinMaker.BatchPutPropertyValues+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Sets values for multiple time series properties.+module Amazonka.IotTwinMaker.BatchPutPropertyValues+  ( -- * Creating a Request+    BatchPutPropertyValues (..),+    newBatchPutPropertyValues,++    -- * Request Lenses+    batchPutPropertyValues_workspaceId,+    batchPutPropertyValues_entries,++    -- * Destructuring the Response+    BatchPutPropertyValuesResponse (..),+    newBatchPutPropertyValuesResponse,++    -- * Response Lenses+    batchPutPropertyValuesResponse_httpStatus,+    batchPutPropertyValuesResponse_errorEntries,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IotTwinMaker.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newBatchPutPropertyValues' smart constructor.+data BatchPutPropertyValues = BatchPutPropertyValues'+  { -- | The ID of the workspace that contains the properties to set.+    workspaceId :: Prelude.Text,+    -- | An object that maps strings to the property value entries to set. Each+    -- string in the mapping must be unique to this object.+    entries :: Prelude.NonEmpty PropertyValueEntry+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BatchPutPropertyValues' 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:+--+-- 'workspaceId', 'batchPutPropertyValues_workspaceId' - The ID of the workspace that contains the properties to set.+--+-- 'entries', 'batchPutPropertyValues_entries' - An object that maps strings to the property value entries to set. Each+-- string in the mapping must be unique to this object.+newBatchPutPropertyValues ::+  -- | 'workspaceId'+  Prelude.Text ->+  -- | 'entries'+  Prelude.NonEmpty PropertyValueEntry ->+  BatchPutPropertyValues+newBatchPutPropertyValues pWorkspaceId_ pEntries_ =+  BatchPutPropertyValues'+    { workspaceId =+        pWorkspaceId_,+      entries = Lens.coerced Lens.# pEntries_+    }++-- | The ID of the workspace that contains the properties to set.+batchPutPropertyValues_workspaceId :: Lens.Lens' BatchPutPropertyValues Prelude.Text+batchPutPropertyValues_workspaceId = Lens.lens (\BatchPutPropertyValues' {workspaceId} -> workspaceId) (\s@BatchPutPropertyValues' {} a -> s {workspaceId = a} :: BatchPutPropertyValues)++-- | An object that maps strings to the property value entries to set. Each+-- string in the mapping must be unique to this object.+batchPutPropertyValues_entries :: Lens.Lens' BatchPutPropertyValues (Prelude.NonEmpty PropertyValueEntry)+batchPutPropertyValues_entries = Lens.lens (\BatchPutPropertyValues' {entries} -> entries) (\s@BatchPutPropertyValues' {} a -> s {entries = a} :: BatchPutPropertyValues) Prelude.. Lens.coerced++instance Core.AWSRequest BatchPutPropertyValues where+  type+    AWSResponse BatchPutPropertyValues =+      BatchPutPropertyValuesResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          BatchPutPropertyValuesResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "errorEntries")+      )++instance Prelude.Hashable BatchPutPropertyValues where+  hashWithSalt _salt BatchPutPropertyValues' {..} =+    _salt+      `Prelude.hashWithSalt` workspaceId+      `Prelude.hashWithSalt` entries++instance Prelude.NFData BatchPutPropertyValues where+  rnf BatchPutPropertyValues' {..} =+    Prelude.rnf workspaceId+      `Prelude.seq` Prelude.rnf entries++instance Data.ToHeaders BatchPutPropertyValues where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON BatchPutPropertyValues where+  toJSON BatchPutPropertyValues' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("entries" Data..= entries)]+      )++instance Data.ToPath BatchPutPropertyValues where+  toPath BatchPutPropertyValues' {..} =+    Prelude.mconcat+      [ "/workspaces/",+        Data.toBS workspaceId,+        "/entity-properties"+      ]++instance Data.ToQuery BatchPutPropertyValues where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newBatchPutPropertyValuesResponse' smart constructor.+data BatchPutPropertyValuesResponse = BatchPutPropertyValuesResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | Entries that caused errors in the batch put operation.+    errorEntries :: Prelude.NonEmpty BatchPutPropertyErrorEntry+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BatchPutPropertyValuesResponse' 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', 'batchPutPropertyValuesResponse_httpStatus' - The response's http status code.+--+-- 'errorEntries', 'batchPutPropertyValuesResponse_errorEntries' - Entries that caused errors in the batch put operation.+newBatchPutPropertyValuesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'errorEntries'+  Prelude.NonEmpty BatchPutPropertyErrorEntry ->+  BatchPutPropertyValuesResponse+newBatchPutPropertyValuesResponse+  pHttpStatus_+  pErrorEntries_ =+    BatchPutPropertyValuesResponse'+      { httpStatus =+          pHttpStatus_,+        errorEntries =+          Lens.coerced Lens.# pErrorEntries_+      }++-- | The response's http status code.+batchPutPropertyValuesResponse_httpStatus :: Lens.Lens' BatchPutPropertyValuesResponse Prelude.Int+batchPutPropertyValuesResponse_httpStatus = Lens.lens (\BatchPutPropertyValuesResponse' {httpStatus} -> httpStatus) (\s@BatchPutPropertyValuesResponse' {} a -> s {httpStatus = a} :: BatchPutPropertyValuesResponse)++-- | Entries that caused errors in the batch put operation.+batchPutPropertyValuesResponse_errorEntries :: Lens.Lens' BatchPutPropertyValuesResponse (Prelude.NonEmpty BatchPutPropertyErrorEntry)+batchPutPropertyValuesResponse_errorEntries = Lens.lens (\BatchPutPropertyValuesResponse' {errorEntries} -> errorEntries) (\s@BatchPutPropertyValuesResponse' {} a -> s {errorEntries = a} :: BatchPutPropertyValuesResponse) Prelude.. Lens.coerced++instance+  Prelude.NFData+    BatchPutPropertyValuesResponse+  where+  rnf BatchPutPropertyValuesResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf errorEntries
+ gen/Amazonka/IotTwinMaker/CreateComponentType.hs view
@@ -0,0 +1,340 @@+{-# 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.IotTwinMaker.CreateComponentType+-- 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 component type.+module Amazonka.IotTwinMaker.CreateComponentType+  ( -- * Creating a Request+    CreateComponentType (..),+    newCreateComponentType,++    -- * Request Lenses+    createComponentType_componentTypeName,+    createComponentType_description,+    createComponentType_extendsFrom,+    createComponentType_functions,+    createComponentType_isSingleton,+    createComponentType_propertyDefinitions,+    createComponentType_propertyGroups,+    createComponentType_tags,+    createComponentType_workspaceId,+    createComponentType_componentTypeId,++    -- * Destructuring the Response+    CreateComponentTypeResponse (..),+    newCreateComponentTypeResponse,++    -- * Response Lenses+    createComponentTypeResponse_httpStatus,+    createComponentTypeResponse_arn,+    createComponentTypeResponse_creationDateTime,+    createComponentTypeResponse_state,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IotTwinMaker.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateComponentType' smart constructor.+data CreateComponentType = CreateComponentType'+  { -- | A friendly name for the component type.+    componentTypeName :: Prelude.Maybe Prelude.Text,+    -- | The description of the component type.+    description :: Prelude.Maybe Prelude.Text,+    -- | Specifies the parent component type to extend.+    extendsFrom :: Prelude.Maybe [Prelude.Text],+    -- | An object that maps strings to the functions in the component type. Each+    -- string in the mapping must be unique to this object.+    functions :: Prelude.Maybe (Prelude.HashMap Prelude.Text FunctionRequest),+    -- | A Boolean value that specifies whether an entity can have more than one+    -- component of this type.+    isSingleton :: Prelude.Maybe Prelude.Bool,+    -- | An object that maps strings to the property definitions in the component+    -- type. Each string in the mapping must be unique to this object.+    propertyDefinitions :: Prelude.Maybe (Prelude.HashMap Prelude.Text PropertyDefinitionRequest),+    propertyGroups :: Prelude.Maybe (Prelude.HashMap Prelude.Text PropertyGroupRequest),+    -- | Metadata that you can use to manage the component type.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The ID of the workspace that contains the component type.+    workspaceId :: Prelude.Text,+    -- | The ID of the component type.+    componentTypeId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateComponentType' 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:+--+-- 'componentTypeName', 'createComponentType_componentTypeName' - A friendly name for the component type.+--+-- 'description', 'createComponentType_description' - The description of the component type.+--+-- 'extendsFrom', 'createComponentType_extendsFrom' - Specifies the parent component type to extend.+--+-- 'functions', 'createComponentType_functions' - An object that maps strings to the functions in the component type. Each+-- string in the mapping must be unique to this object.+--+-- 'isSingleton', 'createComponentType_isSingleton' - A Boolean value that specifies whether an entity can have more than one+-- component of this type.+--+-- 'propertyDefinitions', 'createComponentType_propertyDefinitions' - An object that maps strings to the property definitions in the component+-- type. Each string in the mapping must be unique to this object.+--+-- 'propertyGroups', 'createComponentType_propertyGroups' -+--+-- 'tags', 'createComponentType_tags' - Metadata that you can use to manage the component type.+--+-- 'workspaceId', 'createComponentType_workspaceId' - The ID of the workspace that contains the component type.+--+-- 'componentTypeId', 'createComponentType_componentTypeId' - The ID of the component type.+newCreateComponentType ::+  -- | 'workspaceId'+  Prelude.Text ->+  -- | 'componentTypeId'+  Prelude.Text ->+  CreateComponentType+newCreateComponentType+  pWorkspaceId_+  pComponentTypeId_ =+    CreateComponentType'+      { componentTypeName =+          Prelude.Nothing,+        description = Prelude.Nothing,+        extendsFrom = Prelude.Nothing,+        functions = Prelude.Nothing,+        isSingleton = Prelude.Nothing,+        propertyDefinitions = Prelude.Nothing,+        propertyGroups = Prelude.Nothing,+        tags = Prelude.Nothing,+        workspaceId = pWorkspaceId_,+        componentTypeId = pComponentTypeId_+      }++-- | A friendly name for the component type.+createComponentType_componentTypeName :: Lens.Lens' CreateComponentType (Prelude.Maybe Prelude.Text)+createComponentType_componentTypeName = Lens.lens (\CreateComponentType' {componentTypeName} -> componentTypeName) (\s@CreateComponentType' {} a -> s {componentTypeName = a} :: CreateComponentType)++-- | The description of the component type.+createComponentType_description :: Lens.Lens' CreateComponentType (Prelude.Maybe Prelude.Text)+createComponentType_description = Lens.lens (\CreateComponentType' {description} -> description) (\s@CreateComponentType' {} a -> s {description = a} :: CreateComponentType)++-- | Specifies the parent component type to extend.+createComponentType_extendsFrom :: Lens.Lens' CreateComponentType (Prelude.Maybe [Prelude.Text])+createComponentType_extendsFrom = Lens.lens (\CreateComponentType' {extendsFrom} -> extendsFrom) (\s@CreateComponentType' {} a -> s {extendsFrom = a} :: CreateComponentType) Prelude.. Lens.mapping Lens.coerced++-- | An object that maps strings to the functions in the component type. Each+-- string in the mapping must be unique to this object.+createComponentType_functions :: Lens.Lens' CreateComponentType (Prelude.Maybe (Prelude.HashMap Prelude.Text FunctionRequest))+createComponentType_functions = Lens.lens (\CreateComponentType' {functions} -> functions) (\s@CreateComponentType' {} a -> s {functions = a} :: CreateComponentType) Prelude.. Lens.mapping Lens.coerced++-- | A Boolean value that specifies whether an entity can have more than one+-- component of this type.+createComponentType_isSingleton :: Lens.Lens' CreateComponentType (Prelude.Maybe Prelude.Bool)+createComponentType_isSingleton = Lens.lens (\CreateComponentType' {isSingleton} -> isSingleton) (\s@CreateComponentType' {} a -> s {isSingleton = a} :: CreateComponentType)++-- | An object that maps strings to the property definitions in the component+-- type. Each string in the mapping must be unique to this object.+createComponentType_propertyDefinitions :: Lens.Lens' CreateComponentType (Prelude.Maybe (Prelude.HashMap Prelude.Text PropertyDefinitionRequest))+createComponentType_propertyDefinitions = Lens.lens (\CreateComponentType' {propertyDefinitions} -> propertyDefinitions) (\s@CreateComponentType' {} a -> s {propertyDefinitions = a} :: CreateComponentType) Prelude.. Lens.mapping Lens.coerced++createComponentType_propertyGroups :: Lens.Lens' CreateComponentType (Prelude.Maybe (Prelude.HashMap Prelude.Text PropertyGroupRequest))+createComponentType_propertyGroups = Lens.lens (\CreateComponentType' {propertyGroups} -> propertyGroups) (\s@CreateComponentType' {} a -> s {propertyGroups = a} :: CreateComponentType) Prelude.. Lens.mapping Lens.coerced++-- | Metadata that you can use to manage the component type.+createComponentType_tags :: Lens.Lens' CreateComponentType (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createComponentType_tags = Lens.lens (\CreateComponentType' {tags} -> tags) (\s@CreateComponentType' {} a -> s {tags = a} :: CreateComponentType) Prelude.. Lens.mapping Lens.coerced++-- | The ID of the workspace that contains the component type.+createComponentType_workspaceId :: Lens.Lens' CreateComponentType Prelude.Text+createComponentType_workspaceId = Lens.lens (\CreateComponentType' {workspaceId} -> workspaceId) (\s@CreateComponentType' {} a -> s {workspaceId = a} :: CreateComponentType)++-- | The ID of the component type.+createComponentType_componentTypeId :: Lens.Lens' CreateComponentType Prelude.Text+createComponentType_componentTypeId = Lens.lens (\CreateComponentType' {componentTypeId} -> componentTypeId) (\s@CreateComponentType' {} a -> s {componentTypeId = a} :: CreateComponentType)++instance Core.AWSRequest CreateComponentType where+  type+    AWSResponse CreateComponentType =+      CreateComponentTypeResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateComponentTypeResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "arn")+            Prelude.<*> (x Data..:> "creationDateTime")+            Prelude.<*> (x Data..:> "state")+      )++instance Prelude.Hashable CreateComponentType where+  hashWithSalt _salt CreateComponentType' {..} =+    _salt+      `Prelude.hashWithSalt` componentTypeName+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` extendsFrom+      `Prelude.hashWithSalt` functions+      `Prelude.hashWithSalt` isSingleton+      `Prelude.hashWithSalt` propertyDefinitions+      `Prelude.hashWithSalt` propertyGroups+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` workspaceId+      `Prelude.hashWithSalt` componentTypeId++instance Prelude.NFData CreateComponentType where+  rnf CreateComponentType' {..} =+    Prelude.rnf componentTypeName+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf extendsFrom+      `Prelude.seq` Prelude.rnf functions+      `Prelude.seq` Prelude.rnf isSingleton+      `Prelude.seq` Prelude.rnf propertyDefinitions+      `Prelude.seq` Prelude.rnf propertyGroups+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf workspaceId+      `Prelude.seq` Prelude.rnf componentTypeId++instance Data.ToHeaders CreateComponentType where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateComponentType where+  toJSON CreateComponentType' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("componentTypeName" Data..=)+              Prelude.<$> componentTypeName,+            ("description" Data..=) Prelude.<$> description,+            ("extendsFrom" Data..=) Prelude.<$> extendsFrom,+            ("functions" Data..=) Prelude.<$> functions,+            ("isSingleton" Data..=) Prelude.<$> isSingleton,+            ("propertyDefinitions" Data..=)+              Prelude.<$> propertyDefinitions,+            ("propertyGroups" Data..=)+              Prelude.<$> propertyGroups,+            ("tags" Data..=) Prelude.<$> tags+          ]+      )++instance Data.ToPath CreateComponentType where+  toPath CreateComponentType' {..} =+    Prelude.mconcat+      [ "/workspaces/",+        Data.toBS workspaceId,+        "/component-types/",+        Data.toBS componentTypeId+      ]++instance Data.ToQuery CreateComponentType where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateComponentTypeResponse' smart constructor.+data CreateComponentTypeResponse = CreateComponentTypeResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The ARN of the component type.+    arn :: Prelude.Text,+    -- | The date and time when the entity was created.+    creationDateTime :: Data.POSIX,+    -- | The current state of the component type.+    state :: State+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateComponentTypeResponse' 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', 'createComponentTypeResponse_httpStatus' - The response's http status code.+--+-- 'arn', 'createComponentTypeResponse_arn' - The ARN of the component type.+--+-- 'creationDateTime', 'createComponentTypeResponse_creationDateTime' - The date and time when the entity was created.+--+-- 'state', 'createComponentTypeResponse_state' - The current state of the component type.+newCreateComponentTypeResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'arn'+  Prelude.Text ->+  -- | 'creationDateTime'+  Prelude.UTCTime ->+  -- | 'state'+  State ->+  CreateComponentTypeResponse+newCreateComponentTypeResponse+  pHttpStatus_+  pArn_+  pCreationDateTime_+  pState_ =+    CreateComponentTypeResponse'+      { httpStatus =+          pHttpStatus_,+        arn = pArn_,+        creationDateTime =+          Data._Time Lens.# pCreationDateTime_,+        state = pState_+      }++-- | The response's http status code.+createComponentTypeResponse_httpStatus :: Lens.Lens' CreateComponentTypeResponse Prelude.Int+createComponentTypeResponse_httpStatus = Lens.lens (\CreateComponentTypeResponse' {httpStatus} -> httpStatus) (\s@CreateComponentTypeResponse' {} a -> s {httpStatus = a} :: CreateComponentTypeResponse)++-- | The ARN of the component type.+createComponentTypeResponse_arn :: Lens.Lens' CreateComponentTypeResponse Prelude.Text+createComponentTypeResponse_arn = Lens.lens (\CreateComponentTypeResponse' {arn} -> arn) (\s@CreateComponentTypeResponse' {} a -> s {arn = a} :: CreateComponentTypeResponse)++-- | The date and time when the entity was created.+createComponentTypeResponse_creationDateTime :: Lens.Lens' CreateComponentTypeResponse Prelude.UTCTime+createComponentTypeResponse_creationDateTime = Lens.lens (\CreateComponentTypeResponse' {creationDateTime} -> creationDateTime) (\s@CreateComponentTypeResponse' {} a -> s {creationDateTime = a} :: CreateComponentTypeResponse) Prelude.. Data._Time++-- | The current state of the component type.+createComponentTypeResponse_state :: Lens.Lens' CreateComponentTypeResponse State+createComponentTypeResponse_state = Lens.lens (\CreateComponentTypeResponse' {state} -> state) (\s@CreateComponentTypeResponse' {} a -> s {state = a} :: CreateComponentTypeResponse)++instance Prelude.NFData CreateComponentTypeResponse where+  rnf CreateComponentTypeResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf arn+      `Prelude.seq` Prelude.rnf creationDateTime+      `Prelude.seq` Prelude.rnf state
+ gen/Amazonka/IotTwinMaker/CreateEntity.hs view
@@ -0,0 +1,301 @@+{-# 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.IotTwinMaker.CreateEntity+-- 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 entity.+module Amazonka.IotTwinMaker.CreateEntity+  ( -- * Creating a Request+    CreateEntity (..),+    newCreateEntity,++    -- * Request Lenses+    createEntity_components,+    createEntity_description,+    createEntity_entityId,+    createEntity_parentEntityId,+    createEntity_tags,+    createEntity_workspaceId,+    createEntity_entityName,++    -- * Destructuring the Response+    CreateEntityResponse (..),+    newCreateEntityResponse,++    -- * Response Lenses+    createEntityResponse_httpStatus,+    createEntityResponse_entityId,+    createEntityResponse_arn,+    createEntityResponse_creationDateTime,+    createEntityResponse_state,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IotTwinMaker.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateEntity' smart constructor.+data CreateEntity = CreateEntity'+  { -- | An object that maps strings to the components in the entity. Each string+    -- in the mapping must be unique to this object.+    components :: Prelude.Maybe (Prelude.HashMap Prelude.Text ComponentRequest),+    -- | The description of the entity.+    description :: Prelude.Maybe Prelude.Text,+    -- | The ID of the entity.+    entityId :: Prelude.Maybe Prelude.Text,+    -- | The ID of the entity\'s parent entity.+    parentEntityId :: Prelude.Maybe Prelude.Text,+    -- | Metadata that you can use to manage the entity.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The ID of the workspace that contains the entity.+    workspaceId :: Prelude.Text,+    -- | The name of the entity.+    entityName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateEntity' 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:+--+-- 'components', 'createEntity_components' - An object that maps strings to the components in the entity. Each string+-- in the mapping must be unique to this object.+--+-- 'description', 'createEntity_description' - The description of the entity.+--+-- 'entityId', 'createEntity_entityId' - The ID of the entity.+--+-- 'parentEntityId', 'createEntity_parentEntityId' - The ID of the entity\'s parent entity.+--+-- 'tags', 'createEntity_tags' - Metadata that you can use to manage the entity.+--+-- 'workspaceId', 'createEntity_workspaceId' - The ID of the workspace that contains the entity.+--+-- 'entityName', 'createEntity_entityName' - The name of the entity.+newCreateEntity ::+  -- | 'workspaceId'+  Prelude.Text ->+  -- | 'entityName'+  Prelude.Text ->+  CreateEntity+newCreateEntity pWorkspaceId_ pEntityName_ =+  CreateEntity'+    { components = Prelude.Nothing,+      description = Prelude.Nothing,+      entityId = Prelude.Nothing,+      parentEntityId = Prelude.Nothing,+      tags = Prelude.Nothing,+      workspaceId = pWorkspaceId_,+      entityName = pEntityName_+    }++-- | An object that maps strings to the components in the entity. Each string+-- in the mapping must be unique to this object.+createEntity_components :: Lens.Lens' CreateEntity (Prelude.Maybe (Prelude.HashMap Prelude.Text ComponentRequest))+createEntity_components = Lens.lens (\CreateEntity' {components} -> components) (\s@CreateEntity' {} a -> s {components = a} :: CreateEntity) Prelude.. Lens.mapping Lens.coerced++-- | The description of the entity.+createEntity_description :: Lens.Lens' CreateEntity (Prelude.Maybe Prelude.Text)+createEntity_description = Lens.lens (\CreateEntity' {description} -> description) (\s@CreateEntity' {} a -> s {description = a} :: CreateEntity)++-- | The ID of the entity.+createEntity_entityId :: Lens.Lens' CreateEntity (Prelude.Maybe Prelude.Text)+createEntity_entityId = Lens.lens (\CreateEntity' {entityId} -> entityId) (\s@CreateEntity' {} a -> s {entityId = a} :: CreateEntity)++-- | The ID of the entity\'s parent entity.+createEntity_parentEntityId :: Lens.Lens' CreateEntity (Prelude.Maybe Prelude.Text)+createEntity_parentEntityId = Lens.lens (\CreateEntity' {parentEntityId} -> parentEntityId) (\s@CreateEntity' {} a -> s {parentEntityId = a} :: CreateEntity)++-- | Metadata that you can use to manage the entity.+createEntity_tags :: Lens.Lens' CreateEntity (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createEntity_tags = Lens.lens (\CreateEntity' {tags} -> tags) (\s@CreateEntity' {} a -> s {tags = a} :: CreateEntity) Prelude.. Lens.mapping Lens.coerced++-- | The ID of the workspace that contains the entity.+createEntity_workspaceId :: Lens.Lens' CreateEntity Prelude.Text+createEntity_workspaceId = Lens.lens (\CreateEntity' {workspaceId} -> workspaceId) (\s@CreateEntity' {} a -> s {workspaceId = a} :: CreateEntity)++-- | The name of the entity.+createEntity_entityName :: Lens.Lens' CreateEntity Prelude.Text+createEntity_entityName = Lens.lens (\CreateEntity' {entityName} -> entityName) (\s@CreateEntity' {} a -> s {entityName = a} :: CreateEntity)++instance Core.AWSRequest CreateEntity where+  type AWSResponse CreateEntity = CreateEntityResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateEntityResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "entityId")+            Prelude.<*> (x Data..:> "arn")+            Prelude.<*> (x Data..:> "creationDateTime")+            Prelude.<*> (x Data..:> "state")+      )++instance Prelude.Hashable CreateEntity where+  hashWithSalt _salt CreateEntity' {..} =+    _salt+      `Prelude.hashWithSalt` components+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` entityId+      `Prelude.hashWithSalt` parentEntityId+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` workspaceId+      `Prelude.hashWithSalt` entityName++instance Prelude.NFData CreateEntity where+  rnf CreateEntity' {..} =+    Prelude.rnf components+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf entityId+      `Prelude.seq` Prelude.rnf parentEntityId+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf workspaceId+      `Prelude.seq` Prelude.rnf entityName++instance Data.ToHeaders CreateEntity where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateEntity where+  toJSON CreateEntity' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("components" Data..=) Prelude.<$> components,+            ("description" Data..=) Prelude.<$> description,+            ("entityId" Data..=) Prelude.<$> entityId,+            ("parentEntityId" Data..=)+              Prelude.<$> parentEntityId,+            ("tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("entityName" Data..= entityName)+          ]+      )++instance Data.ToPath CreateEntity where+  toPath CreateEntity' {..} =+    Prelude.mconcat+      ["/workspaces/", Data.toBS workspaceId, "/entities"]++instance Data.ToQuery CreateEntity where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateEntityResponse' smart constructor.+data CreateEntityResponse = CreateEntityResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The ID of the entity.+    entityId :: Prelude.Text,+    -- | The ARN of the entity.+    arn :: Prelude.Text,+    -- | The date and time when the entity was created.+    creationDateTime :: Data.POSIX,+    -- | The current state of the entity.+    state :: State+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateEntityResponse' 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', 'createEntityResponse_httpStatus' - The response's http status code.+--+-- 'entityId', 'createEntityResponse_entityId' - The ID of the entity.+--+-- 'arn', 'createEntityResponse_arn' - The ARN of the entity.+--+-- 'creationDateTime', 'createEntityResponse_creationDateTime' - The date and time when the entity was created.+--+-- 'state', 'createEntityResponse_state' - The current state of the entity.+newCreateEntityResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'entityId'+  Prelude.Text ->+  -- | 'arn'+  Prelude.Text ->+  -- | 'creationDateTime'+  Prelude.UTCTime ->+  -- | 'state'+  State ->+  CreateEntityResponse+newCreateEntityResponse+  pHttpStatus_+  pEntityId_+  pArn_+  pCreationDateTime_+  pState_ =+    CreateEntityResponse'+      { httpStatus = pHttpStatus_,+        entityId = pEntityId_,+        arn = pArn_,+        creationDateTime =+          Data._Time Lens.# pCreationDateTime_,+        state = pState_+      }++-- | The response's http status code.+createEntityResponse_httpStatus :: Lens.Lens' CreateEntityResponse Prelude.Int+createEntityResponse_httpStatus = Lens.lens (\CreateEntityResponse' {httpStatus} -> httpStatus) (\s@CreateEntityResponse' {} a -> s {httpStatus = a} :: CreateEntityResponse)++-- | The ID of the entity.+createEntityResponse_entityId :: Lens.Lens' CreateEntityResponse Prelude.Text+createEntityResponse_entityId = Lens.lens (\CreateEntityResponse' {entityId} -> entityId) (\s@CreateEntityResponse' {} a -> s {entityId = a} :: CreateEntityResponse)++-- | The ARN of the entity.+createEntityResponse_arn :: Lens.Lens' CreateEntityResponse Prelude.Text+createEntityResponse_arn = Lens.lens (\CreateEntityResponse' {arn} -> arn) (\s@CreateEntityResponse' {} a -> s {arn = a} :: CreateEntityResponse)++-- | The date and time when the entity was created.+createEntityResponse_creationDateTime :: Lens.Lens' CreateEntityResponse Prelude.UTCTime+createEntityResponse_creationDateTime = Lens.lens (\CreateEntityResponse' {creationDateTime} -> creationDateTime) (\s@CreateEntityResponse' {} a -> s {creationDateTime = a} :: CreateEntityResponse) Prelude.. Data._Time++-- | The current state of the entity.+createEntityResponse_state :: Lens.Lens' CreateEntityResponse State+createEntityResponse_state = Lens.lens (\CreateEntityResponse' {state} -> state) (\s@CreateEntityResponse' {} a -> s {state = a} :: CreateEntityResponse)++instance Prelude.NFData CreateEntityResponse where+  rnf CreateEntityResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf entityId+      `Prelude.seq` Prelude.rnf arn+      `Prelude.seq` Prelude.rnf creationDateTime+      `Prelude.seq` Prelude.rnf state
+ gen/Amazonka/IotTwinMaker/CreateScene.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.IotTwinMaker.CreateScene+-- 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 scene.+module Amazonka.IotTwinMaker.CreateScene+  ( -- * Creating a Request+    CreateScene (..),+    newCreateScene,++    -- * Request Lenses+    createScene_capabilities,+    createScene_description,+    createScene_tags,+    createScene_workspaceId,+    createScene_sceneId,+    createScene_contentLocation,++    -- * Destructuring the Response+    CreateSceneResponse (..),+    newCreateSceneResponse,++    -- * Response Lenses+    createSceneResponse_httpStatus,+    createSceneResponse_arn,+    createSceneResponse_creationDateTime,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IotTwinMaker.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateScene' smart constructor.+data CreateScene = CreateScene'+  { -- | A list of capabilities that the scene uses to render itself.+    capabilities :: Prelude.Maybe [Prelude.Text],+    -- | The description for this scene.+    description :: Prelude.Maybe Prelude.Text,+    -- | Metadata that you can use to manage the scene.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The ID of the workspace that contains the scene.+    workspaceId :: Prelude.Text,+    -- | The ID of the scene.+    sceneId :: Prelude.Text,+    -- | The relative path that specifies the location of the content definition+    -- file.+    contentLocation :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateScene' 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:+--+-- 'capabilities', 'createScene_capabilities' - A list of capabilities that the scene uses to render itself.+--+-- 'description', 'createScene_description' - The description for this scene.+--+-- 'tags', 'createScene_tags' - Metadata that you can use to manage the scene.+--+-- 'workspaceId', 'createScene_workspaceId' - The ID of the workspace that contains the scene.+--+-- 'sceneId', 'createScene_sceneId' - The ID of the scene.+--+-- 'contentLocation', 'createScene_contentLocation' - The relative path that specifies the location of the content definition+-- file.+newCreateScene ::+  -- | 'workspaceId'+  Prelude.Text ->+  -- | 'sceneId'+  Prelude.Text ->+  -- | 'contentLocation'+  Prelude.Text ->+  CreateScene+newCreateScene+  pWorkspaceId_+  pSceneId_+  pContentLocation_ =+    CreateScene'+      { capabilities = Prelude.Nothing,+        description = Prelude.Nothing,+        tags = Prelude.Nothing,+        workspaceId = pWorkspaceId_,+        sceneId = pSceneId_,+        contentLocation = pContentLocation_+      }++-- | A list of capabilities that the scene uses to render itself.+createScene_capabilities :: Lens.Lens' CreateScene (Prelude.Maybe [Prelude.Text])+createScene_capabilities = Lens.lens (\CreateScene' {capabilities} -> capabilities) (\s@CreateScene' {} a -> s {capabilities = a} :: CreateScene) Prelude.. Lens.mapping Lens.coerced++-- | The description for this scene.+createScene_description :: Lens.Lens' CreateScene (Prelude.Maybe Prelude.Text)+createScene_description = Lens.lens (\CreateScene' {description} -> description) (\s@CreateScene' {} a -> s {description = a} :: CreateScene)++-- | Metadata that you can use to manage the scene.+createScene_tags :: Lens.Lens' CreateScene (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createScene_tags = Lens.lens (\CreateScene' {tags} -> tags) (\s@CreateScene' {} a -> s {tags = a} :: CreateScene) Prelude.. Lens.mapping Lens.coerced++-- | The ID of the workspace that contains the scene.+createScene_workspaceId :: Lens.Lens' CreateScene Prelude.Text+createScene_workspaceId = Lens.lens (\CreateScene' {workspaceId} -> workspaceId) (\s@CreateScene' {} a -> s {workspaceId = a} :: CreateScene)++-- | The ID of the scene.+createScene_sceneId :: Lens.Lens' CreateScene Prelude.Text+createScene_sceneId = Lens.lens (\CreateScene' {sceneId} -> sceneId) (\s@CreateScene' {} a -> s {sceneId = a} :: CreateScene)++-- | The relative path that specifies the location of the content definition+-- file.+createScene_contentLocation :: Lens.Lens' CreateScene Prelude.Text+createScene_contentLocation = Lens.lens (\CreateScene' {contentLocation} -> contentLocation) (\s@CreateScene' {} a -> s {contentLocation = a} :: CreateScene)++instance Core.AWSRequest CreateScene where+  type AWSResponse CreateScene = CreateSceneResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateSceneResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "arn")+            Prelude.<*> (x Data..:> "creationDateTime")+      )++instance Prelude.Hashable CreateScene where+  hashWithSalt _salt CreateScene' {..} =+    _salt+      `Prelude.hashWithSalt` capabilities+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` workspaceId+      `Prelude.hashWithSalt` sceneId+      `Prelude.hashWithSalt` contentLocation++instance Prelude.NFData CreateScene where+  rnf CreateScene' {..} =+    Prelude.rnf capabilities+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf workspaceId+      `Prelude.seq` Prelude.rnf sceneId+      `Prelude.seq` Prelude.rnf contentLocation++instance Data.ToHeaders CreateScene where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateScene where+  toJSON CreateScene' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("capabilities" Data..=) Prelude.<$> capabilities,+            ("description" Data..=) Prelude.<$> description,+            ("tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("sceneId" Data..= sceneId),+            Prelude.Just+              ("contentLocation" Data..= contentLocation)+          ]+      )++instance Data.ToPath CreateScene where+  toPath CreateScene' {..} =+    Prelude.mconcat+      ["/workspaces/", Data.toBS workspaceId, "/scenes"]++instance Data.ToQuery CreateScene where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateSceneResponse' smart constructor.+data CreateSceneResponse = CreateSceneResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The ARN of the scene.+    arn :: Prelude.Text,+    -- | The date and time when the scene was created.+    creationDateTime :: Data.POSIX+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateSceneResponse' 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', 'createSceneResponse_httpStatus' - The response's http status code.+--+-- 'arn', 'createSceneResponse_arn' - The ARN of the scene.+--+-- 'creationDateTime', 'createSceneResponse_creationDateTime' - The date and time when the scene was created.+newCreateSceneResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'arn'+  Prelude.Text ->+  -- | 'creationDateTime'+  Prelude.UTCTime ->+  CreateSceneResponse+newCreateSceneResponse+  pHttpStatus_+  pArn_+  pCreationDateTime_ =+    CreateSceneResponse'+      { httpStatus = pHttpStatus_,+        arn = pArn_,+        creationDateTime =+          Data._Time Lens.# pCreationDateTime_+      }++-- | The response's http status code.+createSceneResponse_httpStatus :: Lens.Lens' CreateSceneResponse Prelude.Int+createSceneResponse_httpStatus = Lens.lens (\CreateSceneResponse' {httpStatus} -> httpStatus) (\s@CreateSceneResponse' {} a -> s {httpStatus = a} :: CreateSceneResponse)++-- | The ARN of the scene.+createSceneResponse_arn :: Lens.Lens' CreateSceneResponse Prelude.Text+createSceneResponse_arn = Lens.lens (\CreateSceneResponse' {arn} -> arn) (\s@CreateSceneResponse' {} a -> s {arn = a} :: CreateSceneResponse)++-- | The date and time when the scene was created.+createSceneResponse_creationDateTime :: Lens.Lens' CreateSceneResponse Prelude.UTCTime+createSceneResponse_creationDateTime = Lens.lens (\CreateSceneResponse' {creationDateTime} -> creationDateTime) (\s@CreateSceneResponse' {} a -> s {creationDateTime = a} :: CreateSceneResponse) Prelude.. Data._Time++instance Prelude.NFData CreateSceneResponse where+  rnf CreateSceneResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf arn+      `Prelude.seq` Prelude.rnf creationDateTime
+ gen/Amazonka/IotTwinMaker/CreateSyncJob.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.IotTwinMaker.CreateSyncJob+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- This action creates a SyncJob.+module Amazonka.IotTwinMaker.CreateSyncJob+  ( -- * Creating a Request+    CreateSyncJob (..),+    newCreateSyncJob,++    -- * Request Lenses+    createSyncJob_tags,+    createSyncJob_workspaceId,+    createSyncJob_syncSource,+    createSyncJob_syncRole,++    -- * Destructuring the Response+    CreateSyncJobResponse (..),+    newCreateSyncJobResponse,++    -- * Response Lenses+    createSyncJobResponse_httpStatus,+    createSyncJobResponse_arn,+    createSyncJobResponse_creationDateTime,+    createSyncJobResponse_state,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IotTwinMaker.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateSyncJob' smart constructor.+data CreateSyncJob = CreateSyncJob'+  { -- | The SyncJob tags.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The workspace Id.+    workspaceId :: Prelude.Text,+    -- | The sync source.+    --+    -- Currently the only supported syncSoucre is @SITEWISE @.+    syncSource :: Prelude.Text,+    -- | The SyncJob IAM role. This IAM role is used by the sync job to read from+    -- the syncSource, and create, update or delete the corresponding+    -- resources.+    syncRole :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateSyncJob' 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', 'createSyncJob_tags' - The SyncJob tags.+--+-- 'workspaceId', 'createSyncJob_workspaceId' - The workspace Id.+--+-- 'syncSource', 'createSyncJob_syncSource' - The sync source.+--+-- Currently the only supported syncSoucre is @SITEWISE @.+--+-- 'syncRole', 'createSyncJob_syncRole' - The SyncJob IAM role. This IAM role is used by the sync job to read from+-- the syncSource, and create, update or delete the corresponding+-- resources.+newCreateSyncJob ::+  -- | 'workspaceId'+  Prelude.Text ->+  -- | 'syncSource'+  Prelude.Text ->+  -- | 'syncRole'+  Prelude.Text ->+  CreateSyncJob+newCreateSyncJob+  pWorkspaceId_+  pSyncSource_+  pSyncRole_ =+    CreateSyncJob'+      { tags = Prelude.Nothing,+        workspaceId = pWorkspaceId_,+        syncSource = pSyncSource_,+        syncRole = pSyncRole_+      }++-- | The SyncJob tags.+createSyncJob_tags :: Lens.Lens' CreateSyncJob (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createSyncJob_tags = Lens.lens (\CreateSyncJob' {tags} -> tags) (\s@CreateSyncJob' {} a -> s {tags = a} :: CreateSyncJob) Prelude.. Lens.mapping Lens.coerced++-- | The workspace Id.+createSyncJob_workspaceId :: Lens.Lens' CreateSyncJob Prelude.Text+createSyncJob_workspaceId = Lens.lens (\CreateSyncJob' {workspaceId} -> workspaceId) (\s@CreateSyncJob' {} a -> s {workspaceId = a} :: CreateSyncJob)++-- | The sync source.+--+-- Currently the only supported syncSoucre is @SITEWISE @.+createSyncJob_syncSource :: Lens.Lens' CreateSyncJob Prelude.Text+createSyncJob_syncSource = Lens.lens (\CreateSyncJob' {syncSource} -> syncSource) (\s@CreateSyncJob' {} a -> s {syncSource = a} :: CreateSyncJob)++-- | The SyncJob IAM role. This IAM role is used by the sync job to read from+-- the syncSource, and create, update or delete the corresponding+-- resources.+createSyncJob_syncRole :: Lens.Lens' CreateSyncJob Prelude.Text+createSyncJob_syncRole = Lens.lens (\CreateSyncJob' {syncRole} -> syncRole) (\s@CreateSyncJob' {} a -> s {syncRole = a} :: CreateSyncJob)++instance Core.AWSRequest CreateSyncJob where+  type+    AWSResponse CreateSyncJob =+      CreateSyncJobResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateSyncJobResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "arn")+            Prelude.<*> (x Data..:> "creationDateTime")+            Prelude.<*> (x Data..:> "state")+      )++instance Prelude.Hashable CreateSyncJob where+  hashWithSalt _salt CreateSyncJob' {..} =+    _salt+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` workspaceId+      `Prelude.hashWithSalt` syncSource+      `Prelude.hashWithSalt` syncRole++instance Prelude.NFData CreateSyncJob where+  rnf CreateSyncJob' {..} =+    Prelude.rnf tags+      `Prelude.seq` Prelude.rnf workspaceId+      `Prelude.seq` Prelude.rnf syncSource+      `Prelude.seq` Prelude.rnf syncRole++instance Data.ToHeaders CreateSyncJob where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateSyncJob where+  toJSON CreateSyncJob' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("syncRole" Data..= syncRole)+          ]+      )++instance Data.ToPath CreateSyncJob where+  toPath CreateSyncJob' {..} =+    Prelude.mconcat+      [ "/workspaces/",+        Data.toBS workspaceId,+        "/sync-jobs/",+        Data.toBS syncSource+      ]++instance Data.ToQuery CreateSyncJob where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateSyncJobResponse' smart constructor.+data CreateSyncJobResponse = CreateSyncJobResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The SyncJob ARN.+    arn :: Prelude.Text,+    -- | The date and time for the SyncJob creation.+    creationDateTime :: Data.POSIX,+    -- | The SyncJob response state.+    state :: SyncJobState+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateSyncJobResponse' 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', 'createSyncJobResponse_httpStatus' - The response's http status code.+--+-- 'arn', 'createSyncJobResponse_arn' - The SyncJob ARN.+--+-- 'creationDateTime', 'createSyncJobResponse_creationDateTime' - The date and time for the SyncJob creation.+--+-- 'state', 'createSyncJobResponse_state' - The SyncJob response state.+newCreateSyncJobResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'arn'+  Prelude.Text ->+  -- | 'creationDateTime'+  Prelude.UTCTime ->+  -- | 'state'+  SyncJobState ->+  CreateSyncJobResponse+newCreateSyncJobResponse+  pHttpStatus_+  pArn_+  pCreationDateTime_+  pState_ =+    CreateSyncJobResponse'+      { httpStatus = pHttpStatus_,+        arn = pArn_,+        creationDateTime =+          Data._Time Lens.# pCreationDateTime_,+        state = pState_+      }++-- | The response's http status code.+createSyncJobResponse_httpStatus :: Lens.Lens' CreateSyncJobResponse Prelude.Int+createSyncJobResponse_httpStatus = Lens.lens (\CreateSyncJobResponse' {httpStatus} -> httpStatus) (\s@CreateSyncJobResponse' {} a -> s {httpStatus = a} :: CreateSyncJobResponse)++-- | The SyncJob ARN.+createSyncJobResponse_arn :: Lens.Lens' CreateSyncJobResponse Prelude.Text+createSyncJobResponse_arn = Lens.lens (\CreateSyncJobResponse' {arn} -> arn) (\s@CreateSyncJobResponse' {} a -> s {arn = a} :: CreateSyncJobResponse)++-- | The date and time for the SyncJob creation.+createSyncJobResponse_creationDateTime :: Lens.Lens' CreateSyncJobResponse Prelude.UTCTime+createSyncJobResponse_creationDateTime = Lens.lens (\CreateSyncJobResponse' {creationDateTime} -> creationDateTime) (\s@CreateSyncJobResponse' {} a -> s {creationDateTime = a} :: CreateSyncJobResponse) Prelude.. Data._Time++-- | The SyncJob response state.+createSyncJobResponse_state :: Lens.Lens' CreateSyncJobResponse SyncJobState+createSyncJobResponse_state = Lens.lens (\CreateSyncJobResponse' {state} -> state) (\s@CreateSyncJobResponse' {} a -> s {state = a} :: CreateSyncJobResponse)++instance Prelude.NFData CreateSyncJobResponse where+  rnf CreateSyncJobResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf arn+      `Prelude.seq` Prelude.rnf creationDateTime+      `Prelude.seq` Prelude.rnf state
+ gen/Amazonka/IotTwinMaker/CreateWorkspace.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.IotTwinMaker.CreateWorkspace+-- 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 workplace.+module Amazonka.IotTwinMaker.CreateWorkspace+  ( -- * Creating a Request+    CreateWorkspace (..),+    newCreateWorkspace,++    -- * Request Lenses+    createWorkspace_description,+    createWorkspace_tags,+    createWorkspace_workspaceId,+    createWorkspace_s3Location,+    createWorkspace_role,++    -- * Destructuring the Response+    CreateWorkspaceResponse (..),+    newCreateWorkspaceResponse,++    -- * Response Lenses+    createWorkspaceResponse_httpStatus,+    createWorkspaceResponse_arn,+    createWorkspaceResponse_creationDateTime,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IotTwinMaker.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateWorkspace' smart constructor.+data CreateWorkspace = CreateWorkspace'+  { -- | The description of the workspace.+    description :: Prelude.Maybe Prelude.Text,+    -- | Metadata that you can use to manage the workspace+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The ID of the workspace.+    workspaceId :: Prelude.Text,+    -- | The ARN of the S3 bucket where resources associated with the workspace+    -- are stored.+    s3Location :: Prelude.Text,+    -- | The ARN of the execution role associated with the workspace.+    role' :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateWorkspace' 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', 'createWorkspace_description' - The description of the workspace.+--+-- 'tags', 'createWorkspace_tags' - Metadata that you can use to manage the workspace+--+-- 'workspaceId', 'createWorkspace_workspaceId' - The ID of the workspace.+--+-- 's3Location', 'createWorkspace_s3Location' - The ARN of the S3 bucket where resources associated with the workspace+-- are stored.+--+-- 'role'', 'createWorkspace_role' - The ARN of the execution role associated with the workspace.+newCreateWorkspace ::+  -- | 'workspaceId'+  Prelude.Text ->+  -- | 's3Location'+  Prelude.Text ->+  -- | 'role''+  Prelude.Text ->+  CreateWorkspace+newCreateWorkspace pWorkspaceId_ pS3Location_ pRole_ =+  CreateWorkspace'+    { description = Prelude.Nothing,+      tags = Prelude.Nothing,+      workspaceId = pWorkspaceId_,+      s3Location = pS3Location_,+      role' = pRole_+    }++-- | The description of the workspace.+createWorkspace_description :: Lens.Lens' CreateWorkspace (Prelude.Maybe Prelude.Text)+createWorkspace_description = Lens.lens (\CreateWorkspace' {description} -> description) (\s@CreateWorkspace' {} a -> s {description = a} :: CreateWorkspace)++-- | Metadata that you can use to manage the workspace+createWorkspace_tags :: Lens.Lens' CreateWorkspace (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createWorkspace_tags = Lens.lens (\CreateWorkspace' {tags} -> tags) (\s@CreateWorkspace' {} a -> s {tags = a} :: CreateWorkspace) Prelude.. Lens.mapping Lens.coerced++-- | The ID of the workspace.+createWorkspace_workspaceId :: Lens.Lens' CreateWorkspace Prelude.Text+createWorkspace_workspaceId = Lens.lens (\CreateWorkspace' {workspaceId} -> workspaceId) (\s@CreateWorkspace' {} a -> s {workspaceId = a} :: CreateWorkspace)++-- | The ARN of the S3 bucket where resources associated with the workspace+-- are stored.+createWorkspace_s3Location :: Lens.Lens' CreateWorkspace Prelude.Text+createWorkspace_s3Location = Lens.lens (\CreateWorkspace' {s3Location} -> s3Location) (\s@CreateWorkspace' {} a -> s {s3Location = a} :: CreateWorkspace)++-- | The ARN of the execution role associated with the workspace.+createWorkspace_role :: Lens.Lens' CreateWorkspace Prelude.Text+createWorkspace_role = Lens.lens (\CreateWorkspace' {role'} -> role') (\s@CreateWorkspace' {} a -> s {role' = a} :: CreateWorkspace)++instance Core.AWSRequest CreateWorkspace where+  type+    AWSResponse CreateWorkspace =+      CreateWorkspaceResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateWorkspaceResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "arn")+            Prelude.<*> (x Data..:> "creationDateTime")+      )++instance Prelude.Hashable CreateWorkspace where+  hashWithSalt _salt CreateWorkspace' {..} =+    _salt+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` workspaceId+      `Prelude.hashWithSalt` s3Location+      `Prelude.hashWithSalt` role'++instance Prelude.NFData CreateWorkspace where+  rnf CreateWorkspace' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf workspaceId+      `Prelude.seq` Prelude.rnf s3Location+      `Prelude.seq` Prelude.rnf role'++instance Data.ToHeaders CreateWorkspace where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateWorkspace where+  toJSON CreateWorkspace' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("description" Data..=) Prelude.<$> description,+            ("tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("s3Location" Data..= s3Location),+            Prelude.Just ("role" Data..= role')+          ]+      )++instance Data.ToPath CreateWorkspace where+  toPath CreateWorkspace' {..} =+    Prelude.mconcat+      ["/workspaces/", Data.toBS workspaceId]++instance Data.ToQuery CreateWorkspace where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateWorkspaceResponse' smart constructor.+data CreateWorkspaceResponse = CreateWorkspaceResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The ARN of the workspace.+    arn :: Prelude.Text,+    -- | The date and time when the workspace was created.+    creationDateTime :: Data.POSIX+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateWorkspaceResponse' 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', 'createWorkspaceResponse_httpStatus' - The response's http status code.+--+-- 'arn', 'createWorkspaceResponse_arn' - The ARN of the workspace.+--+-- 'creationDateTime', 'createWorkspaceResponse_creationDateTime' - The date and time when the workspace was created.+newCreateWorkspaceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'arn'+  Prelude.Text ->+  -- | 'creationDateTime'+  Prelude.UTCTime ->+  CreateWorkspaceResponse+newCreateWorkspaceResponse+  pHttpStatus_+  pArn_+  pCreationDateTime_ =+    CreateWorkspaceResponse'+      { httpStatus = pHttpStatus_,+        arn = pArn_,+        creationDateTime =+          Data._Time Lens.# pCreationDateTime_+      }++-- | The response's http status code.+createWorkspaceResponse_httpStatus :: Lens.Lens' CreateWorkspaceResponse Prelude.Int+createWorkspaceResponse_httpStatus = Lens.lens (\CreateWorkspaceResponse' {httpStatus} -> httpStatus) (\s@CreateWorkspaceResponse' {} a -> s {httpStatus = a} :: CreateWorkspaceResponse)++-- | The ARN of the workspace.+createWorkspaceResponse_arn :: Lens.Lens' CreateWorkspaceResponse Prelude.Text+createWorkspaceResponse_arn = Lens.lens (\CreateWorkspaceResponse' {arn} -> arn) (\s@CreateWorkspaceResponse' {} a -> s {arn = a} :: CreateWorkspaceResponse)++-- | The date and time when the workspace was created.+createWorkspaceResponse_creationDateTime :: Lens.Lens' CreateWorkspaceResponse Prelude.UTCTime+createWorkspaceResponse_creationDateTime = Lens.lens (\CreateWorkspaceResponse' {creationDateTime} -> creationDateTime) (\s@CreateWorkspaceResponse' {} a -> s {creationDateTime = a} :: CreateWorkspaceResponse) Prelude.. Data._Time++instance Prelude.NFData CreateWorkspaceResponse where+  rnf CreateWorkspaceResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf arn+      `Prelude.seq` Prelude.rnf creationDateTime
+ gen/Amazonka/IotTwinMaker/DeleteComponentType.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.IotTwinMaker.DeleteComponentType+-- 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 component type.+module Amazonka.IotTwinMaker.DeleteComponentType+  ( -- * Creating a Request+    DeleteComponentType (..),+    newDeleteComponentType,++    -- * Request Lenses+    deleteComponentType_workspaceId,+    deleteComponentType_componentTypeId,++    -- * Destructuring the Response+    DeleteComponentTypeResponse (..),+    newDeleteComponentTypeResponse,++    -- * Response Lenses+    deleteComponentTypeResponse_httpStatus,+    deleteComponentTypeResponse_state,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IotTwinMaker.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteComponentType' smart constructor.+data DeleteComponentType = DeleteComponentType'+  { -- | The ID of the workspace that contains the component type.+    workspaceId :: Prelude.Text,+    -- | The ID of the component type to delete.+    componentTypeId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteComponentType' 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:+--+-- 'workspaceId', 'deleteComponentType_workspaceId' - The ID of the workspace that contains the component type.+--+-- 'componentTypeId', 'deleteComponentType_componentTypeId' - The ID of the component type to delete.+newDeleteComponentType ::+  -- | 'workspaceId'+  Prelude.Text ->+  -- | 'componentTypeId'+  Prelude.Text ->+  DeleteComponentType+newDeleteComponentType+  pWorkspaceId_+  pComponentTypeId_ =+    DeleteComponentType'+      { workspaceId = pWorkspaceId_,+        componentTypeId = pComponentTypeId_+      }++-- | The ID of the workspace that contains the component type.+deleteComponentType_workspaceId :: Lens.Lens' DeleteComponentType Prelude.Text+deleteComponentType_workspaceId = Lens.lens (\DeleteComponentType' {workspaceId} -> workspaceId) (\s@DeleteComponentType' {} a -> s {workspaceId = a} :: DeleteComponentType)++-- | The ID of the component type to delete.+deleteComponentType_componentTypeId :: Lens.Lens' DeleteComponentType Prelude.Text+deleteComponentType_componentTypeId = Lens.lens (\DeleteComponentType' {componentTypeId} -> componentTypeId) (\s@DeleteComponentType' {} a -> s {componentTypeId = a} :: DeleteComponentType)++instance Core.AWSRequest DeleteComponentType where+  type+    AWSResponse DeleteComponentType =+      DeleteComponentTypeResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DeleteComponentTypeResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "state")+      )++instance Prelude.Hashable DeleteComponentType where+  hashWithSalt _salt DeleteComponentType' {..} =+    _salt+      `Prelude.hashWithSalt` workspaceId+      `Prelude.hashWithSalt` componentTypeId++instance Prelude.NFData DeleteComponentType where+  rnf DeleteComponentType' {..} =+    Prelude.rnf workspaceId+      `Prelude.seq` Prelude.rnf componentTypeId++instance Data.ToHeaders DeleteComponentType where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DeleteComponentType where+  toPath DeleteComponentType' {..} =+    Prelude.mconcat+      [ "/workspaces/",+        Data.toBS workspaceId,+        "/component-types/",+        Data.toBS componentTypeId+      ]++instance Data.ToQuery DeleteComponentType where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteComponentTypeResponse' smart constructor.+data DeleteComponentTypeResponse = DeleteComponentTypeResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The current state of the component type to be deleted.+    state :: State+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteComponentTypeResponse' 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', 'deleteComponentTypeResponse_httpStatus' - The response's http status code.+--+-- 'state', 'deleteComponentTypeResponse_state' - The current state of the component type to be deleted.+newDeleteComponentTypeResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'state'+  State ->+  DeleteComponentTypeResponse+newDeleteComponentTypeResponse pHttpStatus_ pState_ =+  DeleteComponentTypeResponse'+    { httpStatus =+        pHttpStatus_,+      state = pState_+    }++-- | The response's http status code.+deleteComponentTypeResponse_httpStatus :: Lens.Lens' DeleteComponentTypeResponse Prelude.Int+deleteComponentTypeResponse_httpStatus = Lens.lens (\DeleteComponentTypeResponse' {httpStatus} -> httpStatus) (\s@DeleteComponentTypeResponse' {} a -> s {httpStatus = a} :: DeleteComponentTypeResponse)++-- | The current state of the component type to be deleted.+deleteComponentTypeResponse_state :: Lens.Lens' DeleteComponentTypeResponse State+deleteComponentTypeResponse_state = Lens.lens (\DeleteComponentTypeResponse' {state} -> state) (\s@DeleteComponentTypeResponse' {} a -> s {state = a} :: DeleteComponentTypeResponse)++instance Prelude.NFData DeleteComponentTypeResponse where+  rnf DeleteComponentTypeResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf state
+ gen/Amazonka/IotTwinMaker/DeleteEntity.hs view
@@ -0,0 +1,196 @@+{-# 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.IotTwinMaker.DeleteEntity+-- 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 an entity.+module Amazonka.IotTwinMaker.DeleteEntity+  ( -- * Creating a Request+    DeleteEntity (..),+    newDeleteEntity,++    -- * Request Lenses+    deleteEntity_isRecursive,+    deleteEntity_workspaceId,+    deleteEntity_entityId,++    -- * Destructuring the Response+    DeleteEntityResponse (..),+    newDeleteEntityResponse,++    -- * Response Lenses+    deleteEntityResponse_httpStatus,+    deleteEntityResponse_state,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IotTwinMaker.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteEntity' smart constructor.+data DeleteEntity = DeleteEntity'+  { -- | A Boolean value that specifies whether the operation deletes child+    -- entities.+    isRecursive :: Prelude.Maybe Prelude.Bool,+    -- | The ID of the workspace that contains the entity to delete.+    workspaceId :: Prelude.Text,+    -- | The ID of the entity to delete.+    entityId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteEntity' 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:+--+-- 'isRecursive', 'deleteEntity_isRecursive' - A Boolean value that specifies whether the operation deletes child+-- entities.+--+-- 'workspaceId', 'deleteEntity_workspaceId' - The ID of the workspace that contains the entity to delete.+--+-- 'entityId', 'deleteEntity_entityId' - The ID of the entity to delete.+newDeleteEntity ::+  -- | 'workspaceId'+  Prelude.Text ->+  -- | 'entityId'+  Prelude.Text ->+  DeleteEntity+newDeleteEntity pWorkspaceId_ pEntityId_ =+  DeleteEntity'+    { isRecursive = Prelude.Nothing,+      workspaceId = pWorkspaceId_,+      entityId = pEntityId_+    }++-- | A Boolean value that specifies whether the operation deletes child+-- entities.+deleteEntity_isRecursive :: Lens.Lens' DeleteEntity (Prelude.Maybe Prelude.Bool)+deleteEntity_isRecursive = Lens.lens (\DeleteEntity' {isRecursive} -> isRecursive) (\s@DeleteEntity' {} a -> s {isRecursive = a} :: DeleteEntity)++-- | The ID of the workspace that contains the entity to delete.+deleteEntity_workspaceId :: Lens.Lens' DeleteEntity Prelude.Text+deleteEntity_workspaceId = Lens.lens (\DeleteEntity' {workspaceId} -> workspaceId) (\s@DeleteEntity' {} a -> s {workspaceId = a} :: DeleteEntity)++-- | The ID of the entity to delete.+deleteEntity_entityId :: Lens.Lens' DeleteEntity Prelude.Text+deleteEntity_entityId = Lens.lens (\DeleteEntity' {entityId} -> entityId) (\s@DeleteEntity' {} a -> s {entityId = a} :: DeleteEntity)++instance Core.AWSRequest DeleteEntity where+  type AWSResponse DeleteEntity = DeleteEntityResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DeleteEntityResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "state")+      )++instance Prelude.Hashable DeleteEntity where+  hashWithSalt _salt DeleteEntity' {..} =+    _salt+      `Prelude.hashWithSalt` isRecursive+      `Prelude.hashWithSalt` workspaceId+      `Prelude.hashWithSalt` entityId++instance Prelude.NFData DeleteEntity where+  rnf DeleteEntity' {..} =+    Prelude.rnf isRecursive+      `Prelude.seq` Prelude.rnf workspaceId+      `Prelude.seq` Prelude.rnf entityId++instance Data.ToHeaders DeleteEntity where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DeleteEntity where+  toPath DeleteEntity' {..} =+    Prelude.mconcat+      [ "/workspaces/",+        Data.toBS workspaceId,+        "/entities/",+        Data.toBS entityId+      ]++instance Data.ToQuery DeleteEntity where+  toQuery DeleteEntity' {..} =+    Prelude.mconcat ["isRecursive" Data.=: isRecursive]++-- | /See:/ 'newDeleteEntityResponse' smart constructor.+data DeleteEntityResponse = DeleteEntityResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The current state of the deleted entity.+    state :: State+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteEntityResponse' 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', 'deleteEntityResponse_httpStatus' - The response's http status code.+--+-- 'state', 'deleteEntityResponse_state' - The current state of the deleted entity.+newDeleteEntityResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'state'+  State ->+  DeleteEntityResponse+newDeleteEntityResponse pHttpStatus_ pState_ =+  DeleteEntityResponse'+    { httpStatus = pHttpStatus_,+      state = pState_+    }++-- | The response's http status code.+deleteEntityResponse_httpStatus :: Lens.Lens' DeleteEntityResponse Prelude.Int+deleteEntityResponse_httpStatus = Lens.lens (\DeleteEntityResponse' {httpStatus} -> httpStatus) (\s@DeleteEntityResponse' {} a -> s {httpStatus = a} :: DeleteEntityResponse)++-- | The current state of the deleted entity.+deleteEntityResponse_state :: Lens.Lens' DeleteEntityResponse State+deleteEntityResponse_state = Lens.lens (\DeleteEntityResponse' {state} -> state) (\s@DeleteEntityResponse' {} a -> s {state = a} :: DeleteEntityResponse)++instance Prelude.NFData DeleteEntityResponse where+  rnf DeleteEntityResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf state
+ gen/Amazonka/IotTwinMaker/DeleteScene.hs view
@@ -0,0 +1,163 @@+{-# 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.IotTwinMaker.DeleteScene+-- 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 scene.+module Amazonka.IotTwinMaker.DeleteScene+  ( -- * Creating a Request+    DeleteScene (..),+    newDeleteScene,++    -- * Request Lenses+    deleteScene_workspaceId,+    deleteScene_sceneId,++    -- * Destructuring the Response+    DeleteSceneResponse (..),+    newDeleteSceneResponse,++    -- * Response Lenses+    deleteSceneResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IotTwinMaker.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteScene' smart constructor.+data DeleteScene = DeleteScene'+  { -- | The ID of the workspace.+    workspaceId :: Prelude.Text,+    -- | The ID of the scene to delete.+    sceneId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteScene' 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:+--+-- 'workspaceId', 'deleteScene_workspaceId' - The ID of the workspace.+--+-- 'sceneId', 'deleteScene_sceneId' - The ID of the scene to delete.+newDeleteScene ::+  -- | 'workspaceId'+  Prelude.Text ->+  -- | 'sceneId'+  Prelude.Text ->+  DeleteScene+newDeleteScene pWorkspaceId_ pSceneId_ =+  DeleteScene'+    { workspaceId = pWorkspaceId_,+      sceneId = pSceneId_+    }++-- | The ID of the workspace.+deleteScene_workspaceId :: Lens.Lens' DeleteScene Prelude.Text+deleteScene_workspaceId = Lens.lens (\DeleteScene' {workspaceId} -> workspaceId) (\s@DeleteScene' {} a -> s {workspaceId = a} :: DeleteScene)++-- | The ID of the scene to delete.+deleteScene_sceneId :: Lens.Lens' DeleteScene Prelude.Text+deleteScene_sceneId = Lens.lens (\DeleteScene' {sceneId} -> sceneId) (\s@DeleteScene' {} a -> s {sceneId = a} :: DeleteScene)++instance Core.AWSRequest DeleteScene where+  type AWSResponse DeleteScene = DeleteSceneResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          DeleteSceneResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteScene where+  hashWithSalt _salt DeleteScene' {..} =+    _salt+      `Prelude.hashWithSalt` workspaceId+      `Prelude.hashWithSalt` sceneId++instance Prelude.NFData DeleteScene where+  rnf DeleteScene' {..} =+    Prelude.rnf workspaceId+      `Prelude.seq` Prelude.rnf sceneId++instance Data.ToHeaders DeleteScene where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DeleteScene where+  toPath DeleteScene' {..} =+    Prelude.mconcat+      [ "/workspaces/",+        Data.toBS workspaceId,+        "/scenes/",+        Data.toBS sceneId+      ]++instance Data.ToQuery DeleteScene where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteSceneResponse' smart constructor.+data DeleteSceneResponse = DeleteSceneResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteSceneResponse' 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', 'deleteSceneResponse_httpStatus' - The response's http status code.+newDeleteSceneResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteSceneResponse+newDeleteSceneResponse pHttpStatus_ =+  DeleteSceneResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+deleteSceneResponse_httpStatus :: Lens.Lens' DeleteSceneResponse Prelude.Int+deleteSceneResponse_httpStatus = Lens.lens (\DeleteSceneResponse' {httpStatus} -> httpStatus) (\s@DeleteSceneResponse' {} a -> s {httpStatus = a} :: DeleteSceneResponse)++instance Prelude.NFData DeleteSceneResponse where+  rnf DeleteSceneResponse' {..} = Prelude.rnf httpStatus
+ gen/Amazonka/IotTwinMaker/DeleteSyncJob.hs view
@@ -0,0 +1,188 @@+{-# 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.IotTwinMaker.DeleteSyncJob+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Delete the SyncJob.+module Amazonka.IotTwinMaker.DeleteSyncJob+  ( -- * Creating a Request+    DeleteSyncJob (..),+    newDeleteSyncJob,++    -- * Request Lenses+    deleteSyncJob_workspaceId,+    deleteSyncJob_syncSource,++    -- * Destructuring the Response+    DeleteSyncJobResponse (..),+    newDeleteSyncJobResponse,++    -- * Response Lenses+    deleteSyncJobResponse_httpStatus,+    deleteSyncJobResponse_state,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IotTwinMaker.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteSyncJob' smart constructor.+data DeleteSyncJob = DeleteSyncJob'+  { -- | The workspace Id.+    workspaceId :: Prelude.Text,+    -- | The sync source.+    --+    -- Currently the only supported syncSoucre is @SITEWISE @.+    syncSource :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteSyncJob' 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:+--+-- 'workspaceId', 'deleteSyncJob_workspaceId' - The workspace Id.+--+-- 'syncSource', 'deleteSyncJob_syncSource' - The sync source.+--+-- Currently the only supported syncSoucre is @SITEWISE @.+newDeleteSyncJob ::+  -- | 'workspaceId'+  Prelude.Text ->+  -- | 'syncSource'+  Prelude.Text ->+  DeleteSyncJob+newDeleteSyncJob pWorkspaceId_ pSyncSource_ =+  DeleteSyncJob'+    { workspaceId = pWorkspaceId_,+      syncSource = pSyncSource_+    }++-- | The workspace Id.+deleteSyncJob_workspaceId :: Lens.Lens' DeleteSyncJob Prelude.Text+deleteSyncJob_workspaceId = Lens.lens (\DeleteSyncJob' {workspaceId} -> workspaceId) (\s@DeleteSyncJob' {} a -> s {workspaceId = a} :: DeleteSyncJob)++-- | The sync source.+--+-- Currently the only supported syncSoucre is @SITEWISE @.+deleteSyncJob_syncSource :: Lens.Lens' DeleteSyncJob Prelude.Text+deleteSyncJob_syncSource = Lens.lens (\DeleteSyncJob' {syncSource} -> syncSource) (\s@DeleteSyncJob' {} a -> s {syncSource = a} :: DeleteSyncJob)++instance Core.AWSRequest DeleteSyncJob where+  type+    AWSResponse DeleteSyncJob =+      DeleteSyncJobResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DeleteSyncJobResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "state")+      )++instance Prelude.Hashable DeleteSyncJob where+  hashWithSalt _salt DeleteSyncJob' {..} =+    _salt+      `Prelude.hashWithSalt` workspaceId+      `Prelude.hashWithSalt` syncSource++instance Prelude.NFData DeleteSyncJob where+  rnf DeleteSyncJob' {..} =+    Prelude.rnf workspaceId+      `Prelude.seq` Prelude.rnf syncSource++instance Data.ToHeaders DeleteSyncJob where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DeleteSyncJob where+  toPath DeleteSyncJob' {..} =+    Prelude.mconcat+      [ "/workspaces/",+        Data.toBS workspaceId,+        "/sync-jobs/",+        Data.toBS syncSource+      ]++instance Data.ToQuery DeleteSyncJob where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteSyncJobResponse' smart constructor.+data DeleteSyncJobResponse = DeleteSyncJobResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The SyncJob response state.+    state :: SyncJobState+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteSyncJobResponse' 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', 'deleteSyncJobResponse_httpStatus' - The response's http status code.+--+-- 'state', 'deleteSyncJobResponse_state' - The SyncJob response state.+newDeleteSyncJobResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'state'+  SyncJobState ->+  DeleteSyncJobResponse+newDeleteSyncJobResponse pHttpStatus_ pState_ =+  DeleteSyncJobResponse'+    { httpStatus = pHttpStatus_,+      state = pState_+    }++-- | The response's http status code.+deleteSyncJobResponse_httpStatus :: Lens.Lens' DeleteSyncJobResponse Prelude.Int+deleteSyncJobResponse_httpStatus = Lens.lens (\DeleteSyncJobResponse' {httpStatus} -> httpStatus) (\s@DeleteSyncJobResponse' {} a -> s {httpStatus = a} :: DeleteSyncJobResponse)++-- | The SyncJob response state.+deleteSyncJobResponse_state :: Lens.Lens' DeleteSyncJobResponse SyncJobState+deleteSyncJobResponse_state = Lens.lens (\DeleteSyncJobResponse' {state} -> state) (\s@DeleteSyncJobResponse' {} a -> s {state = a} :: DeleteSyncJobResponse)++instance Prelude.NFData DeleteSyncJobResponse where+  rnf DeleteSyncJobResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf state
+ gen/Amazonka/IotTwinMaker/DeleteWorkspace.hs view
@@ -0,0 +1,144 @@+{-# 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.IotTwinMaker.DeleteWorkspace+-- 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 workspace.+module Amazonka.IotTwinMaker.DeleteWorkspace+  ( -- * Creating a Request+    DeleteWorkspace (..),+    newDeleteWorkspace,++    -- * Request Lenses+    deleteWorkspace_workspaceId,++    -- * Destructuring the Response+    DeleteWorkspaceResponse (..),+    newDeleteWorkspaceResponse,++    -- * Response Lenses+    deleteWorkspaceResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IotTwinMaker.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteWorkspace' smart constructor.+data DeleteWorkspace = DeleteWorkspace'+  { -- | The ID of the workspace to delete.+    workspaceId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteWorkspace' 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:+--+-- 'workspaceId', 'deleteWorkspace_workspaceId' - The ID of the workspace to delete.+newDeleteWorkspace ::+  -- | 'workspaceId'+  Prelude.Text ->+  DeleteWorkspace+newDeleteWorkspace pWorkspaceId_ =+  DeleteWorkspace' {workspaceId = pWorkspaceId_}++-- | The ID of the workspace to delete.+deleteWorkspace_workspaceId :: Lens.Lens' DeleteWorkspace Prelude.Text+deleteWorkspace_workspaceId = Lens.lens (\DeleteWorkspace' {workspaceId} -> workspaceId) (\s@DeleteWorkspace' {} a -> s {workspaceId = a} :: DeleteWorkspace)++instance Core.AWSRequest DeleteWorkspace where+  type+    AWSResponse DeleteWorkspace =+      DeleteWorkspaceResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          DeleteWorkspaceResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteWorkspace where+  hashWithSalt _salt DeleteWorkspace' {..} =+    _salt `Prelude.hashWithSalt` workspaceId++instance Prelude.NFData DeleteWorkspace where+  rnf DeleteWorkspace' {..} = Prelude.rnf workspaceId++instance Data.ToHeaders DeleteWorkspace where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DeleteWorkspace where+  toPath DeleteWorkspace' {..} =+    Prelude.mconcat+      ["/workspaces/", Data.toBS workspaceId]++instance Data.ToQuery DeleteWorkspace where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteWorkspaceResponse' smart constructor.+data DeleteWorkspaceResponse = DeleteWorkspaceResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteWorkspaceResponse' 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', 'deleteWorkspaceResponse_httpStatus' - The response's http status code.+newDeleteWorkspaceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteWorkspaceResponse+newDeleteWorkspaceResponse pHttpStatus_ =+  DeleteWorkspaceResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+deleteWorkspaceResponse_httpStatus :: Lens.Lens' DeleteWorkspaceResponse Prelude.Int+deleteWorkspaceResponse_httpStatus = Lens.lens (\DeleteWorkspaceResponse' {httpStatus} -> httpStatus) (\s@DeleteWorkspaceResponse' {} a -> s {httpStatus = a} :: DeleteWorkspaceResponse)++instance Prelude.NFData DeleteWorkspaceResponse where+  rnf DeleteWorkspaceResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/IotTwinMaker/ExecuteQuery.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.IotTwinMaker.ExecuteQuery+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Run queries to access information from your knowledge graph of entities+-- within individual workspaces.+module Amazonka.IotTwinMaker.ExecuteQuery+  ( -- * Creating a Request+    ExecuteQuery (..),+    newExecuteQuery,++    -- * Request Lenses+    executeQuery_maxResults,+    executeQuery_nextToken,+    executeQuery_workspaceId,+    executeQuery_queryStatement,++    -- * Destructuring the Response+    ExecuteQueryResponse (..),+    newExecuteQueryResponse,++    -- * Response Lenses+    executeQueryResponse_columnDescriptions,+    executeQueryResponse_nextToken,+    executeQueryResponse_rows,+    executeQueryResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IotTwinMaker.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newExecuteQuery' smart constructor.+data ExecuteQuery = ExecuteQuery'+  { -- | The maximum number of results to return at one time. The default is 25.+    --+    -- Valid Range: Minimum value of 1. Maximum value of 250.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The string that specifies the next page of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The ID of the workspace.+    workspaceId :: Prelude.Text,+    -- | The query statement.+    queryStatement :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ExecuteQuery' 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', 'executeQuery_maxResults' - The maximum number of results to return at one time. The default is 25.+--+-- Valid Range: Minimum value of 1. Maximum value of 250.+--+-- 'nextToken', 'executeQuery_nextToken' - The string that specifies the next page of results.+--+-- 'workspaceId', 'executeQuery_workspaceId' - The ID of the workspace.+--+-- 'queryStatement', 'executeQuery_queryStatement' - The query statement.+newExecuteQuery ::+  -- | 'workspaceId'+  Prelude.Text ->+  -- | 'queryStatement'+  Prelude.Text ->+  ExecuteQuery+newExecuteQuery pWorkspaceId_ pQueryStatement_ =+  ExecuteQuery'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      workspaceId = pWorkspaceId_,+      queryStatement = pQueryStatement_+    }++-- | The maximum number of results to return at one time. The default is 25.+--+-- Valid Range: Minimum value of 1. Maximum value of 250.+executeQuery_maxResults :: Lens.Lens' ExecuteQuery (Prelude.Maybe Prelude.Natural)+executeQuery_maxResults = Lens.lens (\ExecuteQuery' {maxResults} -> maxResults) (\s@ExecuteQuery' {} a -> s {maxResults = a} :: ExecuteQuery)++-- | The string that specifies the next page of results.+executeQuery_nextToken :: Lens.Lens' ExecuteQuery (Prelude.Maybe Prelude.Text)+executeQuery_nextToken = Lens.lens (\ExecuteQuery' {nextToken} -> nextToken) (\s@ExecuteQuery' {} a -> s {nextToken = a} :: ExecuteQuery)++-- | The ID of the workspace.+executeQuery_workspaceId :: Lens.Lens' ExecuteQuery Prelude.Text+executeQuery_workspaceId = Lens.lens (\ExecuteQuery' {workspaceId} -> workspaceId) (\s@ExecuteQuery' {} a -> s {workspaceId = a} :: ExecuteQuery)++-- | The query statement.+executeQuery_queryStatement :: Lens.Lens' ExecuteQuery Prelude.Text+executeQuery_queryStatement = Lens.lens (\ExecuteQuery' {queryStatement} -> queryStatement) (\s@ExecuteQuery' {} a -> s {queryStatement = a} :: ExecuteQuery)++instance Core.AWSRequest ExecuteQuery where+  type AWSResponse ExecuteQuery = ExecuteQueryResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ExecuteQueryResponse'+            Prelude.<$> ( x+                            Data..?> "columnDescriptions"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (x Data..?> "rows" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ExecuteQuery where+  hashWithSalt _salt ExecuteQuery' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` workspaceId+      `Prelude.hashWithSalt` queryStatement++instance Prelude.NFData ExecuteQuery where+  rnf ExecuteQuery' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf workspaceId+      `Prelude.seq` Prelude.rnf queryStatement++instance Data.ToHeaders ExecuteQuery where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ExecuteQuery where+  toJSON ExecuteQuery' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken,+            Prelude.Just ("workspaceId" Data..= workspaceId),+            Prelude.Just+              ("queryStatement" Data..= queryStatement)+          ]+      )++instance Data.ToPath ExecuteQuery where+  toPath = Prelude.const "/queries/execution"++instance Data.ToQuery ExecuteQuery where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newExecuteQueryResponse' smart constructor.+data ExecuteQueryResponse = ExecuteQueryResponse'+  { -- | A list of ColumnDescription objects.+    columnDescriptions :: Prelude.Maybe [ColumnDescription],+    -- | The string that specifies the next page of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | Represents a single row in the query results.+    rows :: Prelude.Maybe [Row],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ExecuteQueryResponse' 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:+--+-- 'columnDescriptions', 'executeQueryResponse_columnDescriptions' - A list of ColumnDescription objects.+--+-- 'nextToken', 'executeQueryResponse_nextToken' - The string that specifies the next page of results.+--+-- 'rows', 'executeQueryResponse_rows' - Represents a single row in the query results.+--+-- 'httpStatus', 'executeQueryResponse_httpStatus' - The response's http status code.+newExecuteQueryResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ExecuteQueryResponse+newExecuteQueryResponse pHttpStatus_ =+  ExecuteQueryResponse'+    { columnDescriptions =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      rows = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A list of ColumnDescription objects.+executeQueryResponse_columnDescriptions :: Lens.Lens' ExecuteQueryResponse (Prelude.Maybe [ColumnDescription])+executeQueryResponse_columnDescriptions = Lens.lens (\ExecuteQueryResponse' {columnDescriptions} -> columnDescriptions) (\s@ExecuteQueryResponse' {} a -> s {columnDescriptions = a} :: ExecuteQueryResponse) Prelude.. Lens.mapping Lens.coerced++-- | The string that specifies the next page of results.+executeQueryResponse_nextToken :: Lens.Lens' ExecuteQueryResponse (Prelude.Maybe Prelude.Text)+executeQueryResponse_nextToken = Lens.lens (\ExecuteQueryResponse' {nextToken} -> nextToken) (\s@ExecuteQueryResponse' {} a -> s {nextToken = a} :: ExecuteQueryResponse)++-- | Represents a single row in the query results.+executeQueryResponse_rows :: Lens.Lens' ExecuteQueryResponse (Prelude.Maybe [Row])+executeQueryResponse_rows = Lens.lens (\ExecuteQueryResponse' {rows} -> rows) (\s@ExecuteQueryResponse' {} a -> s {rows = a} :: ExecuteQueryResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+executeQueryResponse_httpStatus :: Lens.Lens' ExecuteQueryResponse Prelude.Int+executeQueryResponse_httpStatus = Lens.lens (\ExecuteQueryResponse' {httpStatus} -> httpStatus) (\s@ExecuteQueryResponse' {} a -> s {httpStatus = a} :: ExecuteQueryResponse)++instance Prelude.NFData ExecuteQueryResponse where+  rnf ExecuteQueryResponse' {..} =+    Prelude.rnf columnDescriptions+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf rows+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/IotTwinMaker/GetComponentType.hs view
@@ -0,0 +1,403 @@+{-# 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.IotTwinMaker.GetComponentType+-- 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 component type.+module Amazonka.IotTwinMaker.GetComponentType+  ( -- * Creating a Request+    GetComponentType (..),+    newGetComponentType,++    -- * Request Lenses+    getComponentType_workspaceId,+    getComponentType_componentTypeId,++    -- * Destructuring the Response+    GetComponentTypeResponse (..),+    newGetComponentTypeResponse,++    -- * Response Lenses+    getComponentTypeResponse_componentTypeName,+    getComponentTypeResponse_description,+    getComponentTypeResponse_extendsFrom,+    getComponentTypeResponse_functions,+    getComponentTypeResponse_isAbstract,+    getComponentTypeResponse_isSchemaInitialized,+    getComponentTypeResponse_isSingleton,+    getComponentTypeResponse_propertyDefinitions,+    getComponentTypeResponse_propertyGroups,+    getComponentTypeResponse_status,+    getComponentTypeResponse_syncSource,+    getComponentTypeResponse_httpStatus,+    getComponentTypeResponse_workspaceId,+    getComponentTypeResponse_componentTypeId,+    getComponentTypeResponse_creationDateTime,+    getComponentTypeResponse_updateDateTime,+    getComponentTypeResponse_arn,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IotTwinMaker.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetComponentType' smart constructor.+data GetComponentType = GetComponentType'+  { -- | The ID of the workspace that contains the component type.+    workspaceId :: Prelude.Text,+    -- | The ID of the component type.+    componentTypeId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetComponentType' 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:+--+-- 'workspaceId', 'getComponentType_workspaceId' - The ID of the workspace that contains the component type.+--+-- 'componentTypeId', 'getComponentType_componentTypeId' - The ID of the component type.+newGetComponentType ::+  -- | 'workspaceId'+  Prelude.Text ->+  -- | 'componentTypeId'+  Prelude.Text ->+  GetComponentType+newGetComponentType pWorkspaceId_ pComponentTypeId_ =+  GetComponentType'+    { workspaceId = pWorkspaceId_,+      componentTypeId = pComponentTypeId_+    }++-- | The ID of the workspace that contains the component type.+getComponentType_workspaceId :: Lens.Lens' GetComponentType Prelude.Text+getComponentType_workspaceId = Lens.lens (\GetComponentType' {workspaceId} -> workspaceId) (\s@GetComponentType' {} a -> s {workspaceId = a} :: GetComponentType)++-- | The ID of the component type.+getComponentType_componentTypeId :: Lens.Lens' GetComponentType Prelude.Text+getComponentType_componentTypeId = Lens.lens (\GetComponentType' {componentTypeId} -> componentTypeId) (\s@GetComponentType' {} a -> s {componentTypeId = a} :: GetComponentType)++instance Core.AWSRequest GetComponentType where+  type+    AWSResponse GetComponentType =+      GetComponentTypeResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetComponentTypeResponse'+            Prelude.<$> (x Data..?> "componentTypeName")+            Prelude.<*> (x Data..?> "description")+            Prelude.<*> (x Data..?> "extendsFrom" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "functions" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "isAbstract")+            Prelude.<*> (x Data..?> "isSchemaInitialized")+            Prelude.<*> (x Data..?> "isSingleton")+            Prelude.<*> ( x+                            Data..?> "propertyDefinitions"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "propertyGroups" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "status")+            Prelude.<*> (x Data..?> "syncSource")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "workspaceId")+            Prelude.<*> (x Data..:> "componentTypeId")+            Prelude.<*> (x Data..:> "creationDateTime")+            Prelude.<*> (x Data..:> "updateDateTime")+            Prelude.<*> (x Data..:> "arn")+      )++instance Prelude.Hashable GetComponentType where+  hashWithSalt _salt GetComponentType' {..} =+    _salt+      `Prelude.hashWithSalt` workspaceId+      `Prelude.hashWithSalt` componentTypeId++instance Prelude.NFData GetComponentType where+  rnf GetComponentType' {..} =+    Prelude.rnf workspaceId+      `Prelude.seq` Prelude.rnf componentTypeId++instance Data.ToHeaders GetComponentType where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetComponentType where+  toPath GetComponentType' {..} =+    Prelude.mconcat+      [ "/workspaces/",+        Data.toBS workspaceId,+        "/component-types/",+        Data.toBS componentTypeId+      ]++instance Data.ToQuery GetComponentType where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetComponentTypeResponse' smart constructor.+data GetComponentTypeResponse = GetComponentTypeResponse'+  { -- | The component type name.+    componentTypeName :: Prelude.Maybe Prelude.Text,+    -- | The description of the component type.+    description :: Prelude.Maybe Prelude.Text,+    -- | The name of the parent component type that this component type extends.+    extendsFrom :: Prelude.Maybe [Prelude.Text],+    -- | An object that maps strings to the functions in the component type. Each+    -- string in the mapping must be unique to this object.+    functions :: Prelude.Maybe (Prelude.HashMap Prelude.Text FunctionResponse),+    -- | A Boolean value that specifies whether the component type is abstract.+    isAbstract :: Prelude.Maybe Prelude.Bool,+    -- | A Boolean value that specifies whether the component type has a schema+    -- initializer and that the schema initializer has run.+    isSchemaInitialized :: Prelude.Maybe Prelude.Bool,+    -- | A Boolean value that specifies whether an entity can have more than one+    -- component of this type.+    isSingleton :: Prelude.Maybe Prelude.Bool,+    -- | An object that maps strings to the property definitions in the component+    -- type. Each string in the mapping must be unique to this object.+    propertyDefinitions :: Prelude.Maybe (Prelude.HashMap Prelude.Text PropertyDefinitionResponse),+    -- | The maximum number of results to return at one time. The default is 25.+    --+    -- Valid Range: Minimum value of 1. Maximum value of 250.+    propertyGroups :: Prelude.Maybe (Prelude.HashMap Prelude.Text PropertyGroupResponse),+    -- | The current status of the component type.+    status :: Prelude.Maybe Status,+    -- | The syncSource of the sync job, if this entity was created by a sync+    -- job.+    syncSource :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The ID of the workspace that contains the component type.+    workspaceId :: Prelude.Text,+    -- | The ID of the component type.+    componentTypeId :: Prelude.Text,+    -- | The date and time when the component type was created.+    creationDateTime :: Data.POSIX,+    -- | The date and time when the component was last updated.+    updateDateTime :: Data.POSIX,+    -- | The ARN of the component type.+    arn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetComponentTypeResponse' 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:+--+-- 'componentTypeName', 'getComponentTypeResponse_componentTypeName' - The component type name.+--+-- 'description', 'getComponentTypeResponse_description' - The description of the component type.+--+-- 'extendsFrom', 'getComponentTypeResponse_extendsFrom' - The name of the parent component type that this component type extends.+--+-- 'functions', 'getComponentTypeResponse_functions' - An object that maps strings to the functions in the component type. Each+-- string in the mapping must be unique to this object.+--+-- 'isAbstract', 'getComponentTypeResponse_isAbstract' - A Boolean value that specifies whether the component type is abstract.+--+-- 'isSchemaInitialized', 'getComponentTypeResponse_isSchemaInitialized' - A Boolean value that specifies whether the component type has a schema+-- initializer and that the schema initializer has run.+--+-- 'isSingleton', 'getComponentTypeResponse_isSingleton' - A Boolean value that specifies whether an entity can have more than one+-- component of this type.+--+-- 'propertyDefinitions', 'getComponentTypeResponse_propertyDefinitions' - An object that maps strings to the property definitions in the component+-- type. Each string in the mapping must be unique to this object.+--+-- 'propertyGroups', 'getComponentTypeResponse_propertyGroups' - The maximum number of results to return at one time. The default is 25.+--+-- Valid Range: Minimum value of 1. Maximum value of 250.+--+-- 'status', 'getComponentTypeResponse_status' - The current status of the component type.+--+-- 'syncSource', 'getComponentTypeResponse_syncSource' - The syncSource of the sync job, if this entity was created by a sync+-- job.+--+-- 'httpStatus', 'getComponentTypeResponse_httpStatus' - The response's http status code.+--+-- 'workspaceId', 'getComponentTypeResponse_workspaceId' - The ID of the workspace that contains the component type.+--+-- 'componentTypeId', 'getComponentTypeResponse_componentTypeId' - The ID of the component type.+--+-- 'creationDateTime', 'getComponentTypeResponse_creationDateTime' - The date and time when the component type was created.+--+-- 'updateDateTime', 'getComponentTypeResponse_updateDateTime' - The date and time when the component was last updated.+--+-- 'arn', 'getComponentTypeResponse_arn' - The ARN of the component type.+newGetComponentTypeResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'workspaceId'+  Prelude.Text ->+  -- | 'componentTypeId'+  Prelude.Text ->+  -- | 'creationDateTime'+  Prelude.UTCTime ->+  -- | 'updateDateTime'+  Prelude.UTCTime ->+  -- | 'arn'+  Prelude.Text ->+  GetComponentTypeResponse+newGetComponentTypeResponse+  pHttpStatus_+  pWorkspaceId_+  pComponentTypeId_+  pCreationDateTime_+  pUpdateDateTime_+  pArn_ =+    GetComponentTypeResponse'+      { componentTypeName =+          Prelude.Nothing,+        description = Prelude.Nothing,+        extendsFrom = Prelude.Nothing,+        functions = Prelude.Nothing,+        isAbstract = Prelude.Nothing,+        isSchemaInitialized = Prelude.Nothing,+        isSingleton = Prelude.Nothing,+        propertyDefinitions = Prelude.Nothing,+        propertyGroups = Prelude.Nothing,+        status = Prelude.Nothing,+        syncSource = Prelude.Nothing,+        httpStatus = pHttpStatus_,+        workspaceId = pWorkspaceId_,+        componentTypeId = pComponentTypeId_,+        creationDateTime =+          Data._Time Lens.# pCreationDateTime_,+        updateDateTime =+          Data._Time Lens.# pUpdateDateTime_,+        arn = pArn_+      }++-- | The component type name.+getComponentTypeResponse_componentTypeName :: Lens.Lens' GetComponentTypeResponse (Prelude.Maybe Prelude.Text)+getComponentTypeResponse_componentTypeName = Lens.lens (\GetComponentTypeResponse' {componentTypeName} -> componentTypeName) (\s@GetComponentTypeResponse' {} a -> s {componentTypeName = a} :: GetComponentTypeResponse)++-- | The description of the component type.+getComponentTypeResponse_description :: Lens.Lens' GetComponentTypeResponse (Prelude.Maybe Prelude.Text)+getComponentTypeResponse_description = Lens.lens (\GetComponentTypeResponse' {description} -> description) (\s@GetComponentTypeResponse' {} a -> s {description = a} :: GetComponentTypeResponse)++-- | The name of the parent component type that this component type extends.+getComponentTypeResponse_extendsFrom :: Lens.Lens' GetComponentTypeResponse (Prelude.Maybe [Prelude.Text])+getComponentTypeResponse_extendsFrom = Lens.lens (\GetComponentTypeResponse' {extendsFrom} -> extendsFrom) (\s@GetComponentTypeResponse' {} a -> s {extendsFrom = a} :: GetComponentTypeResponse) Prelude.. Lens.mapping Lens.coerced++-- | An object that maps strings to the functions in the component type. Each+-- string in the mapping must be unique to this object.+getComponentTypeResponse_functions :: Lens.Lens' GetComponentTypeResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text FunctionResponse))+getComponentTypeResponse_functions = Lens.lens (\GetComponentTypeResponse' {functions} -> functions) (\s@GetComponentTypeResponse' {} a -> s {functions = a} :: GetComponentTypeResponse) Prelude.. Lens.mapping Lens.coerced++-- | A Boolean value that specifies whether the component type is abstract.+getComponentTypeResponse_isAbstract :: Lens.Lens' GetComponentTypeResponse (Prelude.Maybe Prelude.Bool)+getComponentTypeResponse_isAbstract = Lens.lens (\GetComponentTypeResponse' {isAbstract} -> isAbstract) (\s@GetComponentTypeResponse' {} a -> s {isAbstract = a} :: GetComponentTypeResponse)++-- | A Boolean value that specifies whether the component type has a schema+-- initializer and that the schema initializer has run.+getComponentTypeResponse_isSchemaInitialized :: Lens.Lens' GetComponentTypeResponse (Prelude.Maybe Prelude.Bool)+getComponentTypeResponse_isSchemaInitialized = Lens.lens (\GetComponentTypeResponse' {isSchemaInitialized} -> isSchemaInitialized) (\s@GetComponentTypeResponse' {} a -> s {isSchemaInitialized = a} :: GetComponentTypeResponse)++-- | A Boolean value that specifies whether an entity can have more than one+-- component of this type.+getComponentTypeResponse_isSingleton :: Lens.Lens' GetComponentTypeResponse (Prelude.Maybe Prelude.Bool)+getComponentTypeResponse_isSingleton = Lens.lens (\GetComponentTypeResponse' {isSingleton} -> isSingleton) (\s@GetComponentTypeResponse' {} a -> s {isSingleton = a} :: GetComponentTypeResponse)++-- | An object that maps strings to the property definitions in the component+-- type. Each string in the mapping must be unique to this object.+getComponentTypeResponse_propertyDefinitions :: Lens.Lens' GetComponentTypeResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text PropertyDefinitionResponse))+getComponentTypeResponse_propertyDefinitions = Lens.lens (\GetComponentTypeResponse' {propertyDefinitions} -> propertyDefinitions) (\s@GetComponentTypeResponse' {} a -> s {propertyDefinitions = a} :: GetComponentTypeResponse) Prelude.. Lens.mapping Lens.coerced++-- | The maximum number of results to return at one time. The default is 25.+--+-- Valid Range: Minimum value of 1. Maximum value of 250.+getComponentTypeResponse_propertyGroups :: Lens.Lens' GetComponentTypeResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text PropertyGroupResponse))+getComponentTypeResponse_propertyGroups = Lens.lens (\GetComponentTypeResponse' {propertyGroups} -> propertyGroups) (\s@GetComponentTypeResponse' {} a -> s {propertyGroups = a} :: GetComponentTypeResponse) Prelude.. Lens.mapping Lens.coerced++-- | The current status of the component type.+getComponentTypeResponse_status :: Lens.Lens' GetComponentTypeResponse (Prelude.Maybe Status)+getComponentTypeResponse_status = Lens.lens (\GetComponentTypeResponse' {status} -> status) (\s@GetComponentTypeResponse' {} a -> s {status = a} :: GetComponentTypeResponse)++-- | The syncSource of the sync job, if this entity was created by a sync+-- job.+getComponentTypeResponse_syncSource :: Lens.Lens' GetComponentTypeResponse (Prelude.Maybe Prelude.Text)+getComponentTypeResponse_syncSource = Lens.lens (\GetComponentTypeResponse' {syncSource} -> syncSource) (\s@GetComponentTypeResponse' {} a -> s {syncSource = a} :: GetComponentTypeResponse)++-- | The response's http status code.+getComponentTypeResponse_httpStatus :: Lens.Lens' GetComponentTypeResponse Prelude.Int+getComponentTypeResponse_httpStatus = Lens.lens (\GetComponentTypeResponse' {httpStatus} -> httpStatus) (\s@GetComponentTypeResponse' {} a -> s {httpStatus = a} :: GetComponentTypeResponse)++-- | The ID of the workspace that contains the component type.+getComponentTypeResponse_workspaceId :: Lens.Lens' GetComponentTypeResponse Prelude.Text+getComponentTypeResponse_workspaceId = Lens.lens (\GetComponentTypeResponse' {workspaceId} -> workspaceId) (\s@GetComponentTypeResponse' {} a -> s {workspaceId = a} :: GetComponentTypeResponse)++-- | The ID of the component type.+getComponentTypeResponse_componentTypeId :: Lens.Lens' GetComponentTypeResponse Prelude.Text+getComponentTypeResponse_componentTypeId = Lens.lens (\GetComponentTypeResponse' {componentTypeId} -> componentTypeId) (\s@GetComponentTypeResponse' {} a -> s {componentTypeId = a} :: GetComponentTypeResponse)++-- | The date and time when the component type was created.+getComponentTypeResponse_creationDateTime :: Lens.Lens' GetComponentTypeResponse Prelude.UTCTime+getComponentTypeResponse_creationDateTime = Lens.lens (\GetComponentTypeResponse' {creationDateTime} -> creationDateTime) (\s@GetComponentTypeResponse' {} a -> s {creationDateTime = a} :: GetComponentTypeResponse) Prelude.. Data._Time++-- | The date and time when the component was last updated.+getComponentTypeResponse_updateDateTime :: Lens.Lens' GetComponentTypeResponse Prelude.UTCTime+getComponentTypeResponse_updateDateTime = Lens.lens (\GetComponentTypeResponse' {updateDateTime} -> updateDateTime) (\s@GetComponentTypeResponse' {} a -> s {updateDateTime = a} :: GetComponentTypeResponse) Prelude.. Data._Time++-- | The ARN of the component type.+getComponentTypeResponse_arn :: Lens.Lens' GetComponentTypeResponse Prelude.Text+getComponentTypeResponse_arn = Lens.lens (\GetComponentTypeResponse' {arn} -> arn) (\s@GetComponentTypeResponse' {} a -> s {arn = a} :: GetComponentTypeResponse)++instance Prelude.NFData GetComponentTypeResponse where+  rnf GetComponentTypeResponse' {..} =+    Prelude.rnf componentTypeName+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf extendsFrom+      `Prelude.seq` Prelude.rnf functions+      `Prelude.seq` Prelude.rnf isAbstract+      `Prelude.seq` Prelude.rnf isSchemaInitialized+      `Prelude.seq` Prelude.rnf isSingleton+      `Prelude.seq` Prelude.rnf propertyDefinitions+      `Prelude.seq` Prelude.rnf propertyGroups+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf syncSource+      `Prelude.seq` Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf workspaceId+      `Prelude.seq` Prelude.rnf componentTypeId+      `Prelude.seq` Prelude.rnf creationDateTime+      `Prelude.seq` Prelude.rnf updateDateTime+      `Prelude.seq` Prelude.rnf arn
+ gen/Amazonka/IotTwinMaker/GetEntity.hs view
@@ -0,0 +1,348 @@+{-# 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.IotTwinMaker.GetEntity+-- 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 an entity.+module Amazonka.IotTwinMaker.GetEntity+  ( -- * Creating a Request+    GetEntity (..),+    newGetEntity,++    -- * Request Lenses+    getEntity_workspaceId,+    getEntity_entityId,++    -- * Destructuring the Response+    GetEntityResponse (..),+    newGetEntityResponse,++    -- * Response Lenses+    getEntityResponse_components,+    getEntityResponse_description,+    getEntityResponse_syncSource,+    getEntityResponse_httpStatus,+    getEntityResponse_entityId,+    getEntityResponse_entityName,+    getEntityResponse_arn,+    getEntityResponse_status,+    getEntityResponse_workspaceId,+    getEntityResponse_parentEntityId,+    getEntityResponse_hasChildEntities,+    getEntityResponse_creationDateTime,+    getEntityResponse_updateDateTime,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IotTwinMaker.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetEntity' smart constructor.+data GetEntity = GetEntity'+  { -- | The ID of the workspace.+    workspaceId :: Prelude.Text,+    -- | The ID of the entity.+    entityId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetEntity' 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:+--+-- 'workspaceId', 'getEntity_workspaceId' - The ID of the workspace.+--+-- 'entityId', 'getEntity_entityId' - The ID of the entity.+newGetEntity ::+  -- | 'workspaceId'+  Prelude.Text ->+  -- | 'entityId'+  Prelude.Text ->+  GetEntity+newGetEntity pWorkspaceId_ pEntityId_ =+  GetEntity'+    { workspaceId = pWorkspaceId_,+      entityId = pEntityId_+    }++-- | The ID of the workspace.+getEntity_workspaceId :: Lens.Lens' GetEntity Prelude.Text+getEntity_workspaceId = Lens.lens (\GetEntity' {workspaceId} -> workspaceId) (\s@GetEntity' {} a -> s {workspaceId = a} :: GetEntity)++-- | The ID of the entity.+getEntity_entityId :: Lens.Lens' GetEntity Prelude.Text+getEntity_entityId = Lens.lens (\GetEntity' {entityId} -> entityId) (\s@GetEntity' {} a -> s {entityId = a} :: GetEntity)++instance Core.AWSRequest GetEntity where+  type AWSResponse GetEntity = GetEntityResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetEntityResponse'+            Prelude.<$> (x Data..?> "components" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "description")+            Prelude.<*> (x Data..?> "syncSource")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "entityId")+            Prelude.<*> (x Data..:> "entityName")+            Prelude.<*> (x Data..:> "arn")+            Prelude.<*> (x Data..:> "status")+            Prelude.<*> (x Data..:> "workspaceId")+            Prelude.<*> (x Data..:> "parentEntityId")+            Prelude.<*> (x Data..:> "hasChildEntities")+            Prelude.<*> (x Data..:> "creationDateTime")+            Prelude.<*> (x Data..:> "updateDateTime")+      )++instance Prelude.Hashable GetEntity where+  hashWithSalt _salt GetEntity' {..} =+    _salt+      `Prelude.hashWithSalt` workspaceId+      `Prelude.hashWithSalt` entityId++instance Prelude.NFData GetEntity where+  rnf GetEntity' {..} =+    Prelude.rnf workspaceId+      `Prelude.seq` Prelude.rnf entityId++instance Data.ToHeaders GetEntity where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetEntity where+  toPath GetEntity' {..} =+    Prelude.mconcat+      [ "/workspaces/",+        Data.toBS workspaceId,+        "/entities/",+        Data.toBS entityId+      ]++instance Data.ToQuery GetEntity where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetEntityResponse' smart constructor.+data GetEntityResponse = GetEntityResponse'+  { -- | An object that maps strings to the components in the entity. Each string+    -- in the mapping must be unique to this object.+    components :: Prelude.Maybe (Prelude.HashMap Prelude.Text ComponentResponse),+    -- | The description of the entity.+    description :: Prelude.Maybe Prelude.Text,+    -- | The syncSource of the sync job, if this entity was created by a sync+    -- job.+    syncSource :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The ID of the entity.+    entityId :: Prelude.Text,+    -- | The name of the entity.+    entityName :: Prelude.Text,+    -- | The ARN of the entity.+    arn :: Prelude.Text,+    -- | The current status of the entity.+    status :: Status,+    -- | The ID of the workspace.+    workspaceId :: Prelude.Text,+    -- | The ID of the parent entity for this entity.+    parentEntityId :: Prelude.Text,+    -- | A Boolean value that specifies whether the entity has associated child+    -- entities.+    hasChildEntities :: Prelude.Bool,+    -- | The date and time when the entity was created.+    creationDateTime :: Data.POSIX,+    -- | The date and time when the entity was last updated.+    updateDateTime :: Data.POSIX+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetEntityResponse' 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:+--+-- 'components', 'getEntityResponse_components' - An object that maps strings to the components in the entity. Each string+-- in the mapping must be unique to this object.+--+-- 'description', 'getEntityResponse_description' - The description of the entity.+--+-- 'syncSource', 'getEntityResponse_syncSource' - The syncSource of the sync job, if this entity was created by a sync+-- job.+--+-- 'httpStatus', 'getEntityResponse_httpStatus' - The response's http status code.+--+-- 'entityId', 'getEntityResponse_entityId' - The ID of the entity.+--+-- 'entityName', 'getEntityResponse_entityName' - The name of the entity.+--+-- 'arn', 'getEntityResponse_arn' - The ARN of the entity.+--+-- 'status', 'getEntityResponse_status' - The current status of the entity.+--+-- 'workspaceId', 'getEntityResponse_workspaceId' - The ID of the workspace.+--+-- 'parentEntityId', 'getEntityResponse_parentEntityId' - The ID of the parent entity for this entity.+--+-- 'hasChildEntities', 'getEntityResponse_hasChildEntities' - A Boolean value that specifies whether the entity has associated child+-- entities.+--+-- 'creationDateTime', 'getEntityResponse_creationDateTime' - The date and time when the entity was created.+--+-- 'updateDateTime', 'getEntityResponse_updateDateTime' - The date and time when the entity was last updated.+newGetEntityResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'entityId'+  Prelude.Text ->+  -- | 'entityName'+  Prelude.Text ->+  -- | 'arn'+  Prelude.Text ->+  -- | 'status'+  Status ->+  -- | 'workspaceId'+  Prelude.Text ->+  -- | 'parentEntityId'+  Prelude.Text ->+  -- | 'hasChildEntities'+  Prelude.Bool ->+  -- | 'creationDateTime'+  Prelude.UTCTime ->+  -- | 'updateDateTime'+  Prelude.UTCTime ->+  GetEntityResponse+newGetEntityResponse+  pHttpStatus_+  pEntityId_+  pEntityName_+  pArn_+  pStatus_+  pWorkspaceId_+  pParentEntityId_+  pHasChildEntities_+  pCreationDateTime_+  pUpdateDateTime_ =+    GetEntityResponse'+      { components = Prelude.Nothing,+        description = Prelude.Nothing,+        syncSource = Prelude.Nothing,+        httpStatus = pHttpStatus_,+        entityId = pEntityId_,+        entityName = pEntityName_,+        arn = pArn_,+        status = pStatus_,+        workspaceId = pWorkspaceId_,+        parentEntityId = pParentEntityId_,+        hasChildEntities = pHasChildEntities_,+        creationDateTime =+          Data._Time Lens.# pCreationDateTime_,+        updateDateTime = Data._Time Lens.# pUpdateDateTime_+      }++-- | An object that maps strings to the components in the entity. Each string+-- in the mapping must be unique to this object.+getEntityResponse_components :: Lens.Lens' GetEntityResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text ComponentResponse))+getEntityResponse_components = Lens.lens (\GetEntityResponse' {components} -> components) (\s@GetEntityResponse' {} a -> s {components = a} :: GetEntityResponse) Prelude.. Lens.mapping Lens.coerced++-- | The description of the entity.+getEntityResponse_description :: Lens.Lens' GetEntityResponse (Prelude.Maybe Prelude.Text)+getEntityResponse_description = Lens.lens (\GetEntityResponse' {description} -> description) (\s@GetEntityResponse' {} a -> s {description = a} :: GetEntityResponse)++-- | The syncSource of the sync job, if this entity was created by a sync+-- job.+getEntityResponse_syncSource :: Lens.Lens' GetEntityResponse (Prelude.Maybe Prelude.Text)+getEntityResponse_syncSource = Lens.lens (\GetEntityResponse' {syncSource} -> syncSource) (\s@GetEntityResponse' {} a -> s {syncSource = a} :: GetEntityResponse)++-- | The response's http status code.+getEntityResponse_httpStatus :: Lens.Lens' GetEntityResponse Prelude.Int+getEntityResponse_httpStatus = Lens.lens (\GetEntityResponse' {httpStatus} -> httpStatus) (\s@GetEntityResponse' {} a -> s {httpStatus = a} :: GetEntityResponse)++-- | The ID of the entity.+getEntityResponse_entityId :: Lens.Lens' GetEntityResponse Prelude.Text+getEntityResponse_entityId = Lens.lens (\GetEntityResponse' {entityId} -> entityId) (\s@GetEntityResponse' {} a -> s {entityId = a} :: GetEntityResponse)++-- | The name of the entity.+getEntityResponse_entityName :: Lens.Lens' GetEntityResponse Prelude.Text+getEntityResponse_entityName = Lens.lens (\GetEntityResponse' {entityName} -> entityName) (\s@GetEntityResponse' {} a -> s {entityName = a} :: GetEntityResponse)++-- | The ARN of the entity.+getEntityResponse_arn :: Lens.Lens' GetEntityResponse Prelude.Text+getEntityResponse_arn = Lens.lens (\GetEntityResponse' {arn} -> arn) (\s@GetEntityResponse' {} a -> s {arn = a} :: GetEntityResponse)++-- | The current status of the entity.+getEntityResponse_status :: Lens.Lens' GetEntityResponse Status+getEntityResponse_status = Lens.lens (\GetEntityResponse' {status} -> status) (\s@GetEntityResponse' {} a -> s {status = a} :: GetEntityResponse)++-- | The ID of the workspace.+getEntityResponse_workspaceId :: Lens.Lens' GetEntityResponse Prelude.Text+getEntityResponse_workspaceId = Lens.lens (\GetEntityResponse' {workspaceId} -> workspaceId) (\s@GetEntityResponse' {} a -> s {workspaceId = a} :: GetEntityResponse)++-- | The ID of the parent entity for this entity.+getEntityResponse_parentEntityId :: Lens.Lens' GetEntityResponse Prelude.Text+getEntityResponse_parentEntityId = Lens.lens (\GetEntityResponse' {parentEntityId} -> parentEntityId) (\s@GetEntityResponse' {} a -> s {parentEntityId = a} :: GetEntityResponse)++-- | A Boolean value that specifies whether the entity has associated child+-- entities.+getEntityResponse_hasChildEntities :: Lens.Lens' GetEntityResponse Prelude.Bool+getEntityResponse_hasChildEntities = Lens.lens (\GetEntityResponse' {hasChildEntities} -> hasChildEntities) (\s@GetEntityResponse' {} a -> s {hasChildEntities = a} :: GetEntityResponse)++-- | The date and time when the entity was created.+getEntityResponse_creationDateTime :: Lens.Lens' GetEntityResponse Prelude.UTCTime+getEntityResponse_creationDateTime = Lens.lens (\GetEntityResponse' {creationDateTime} -> creationDateTime) (\s@GetEntityResponse' {} a -> s {creationDateTime = a} :: GetEntityResponse) Prelude.. Data._Time++-- | The date and time when the entity was last updated.+getEntityResponse_updateDateTime :: Lens.Lens' GetEntityResponse Prelude.UTCTime+getEntityResponse_updateDateTime = Lens.lens (\GetEntityResponse' {updateDateTime} -> updateDateTime) (\s@GetEntityResponse' {} a -> s {updateDateTime = a} :: GetEntityResponse) Prelude.. Data._Time++instance Prelude.NFData GetEntityResponse where+  rnf GetEntityResponse' {..} =+    Prelude.rnf components+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf syncSource+      `Prelude.seq` Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf entityId+      `Prelude.seq` Prelude.rnf entityName+      `Prelude.seq` Prelude.rnf arn+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf workspaceId+      `Prelude.seq` Prelude.rnf parentEntityId+      `Prelude.seq` Prelude.rnf hasChildEntities+      `Prelude.seq` Prelude.rnf creationDateTime+      `Prelude.seq` Prelude.rnf updateDateTime
+ gen/Amazonka/IotTwinMaker/GetPricingPlan.hs view
@@ -0,0 +1,157 @@+{-# 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.IotTwinMaker.GetPricingPlan+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets the pricing plan.+module Amazonka.IotTwinMaker.GetPricingPlan+  ( -- * Creating a Request+    GetPricingPlan (..),+    newGetPricingPlan,++    -- * Destructuring the Response+    GetPricingPlanResponse (..),+    newGetPricingPlanResponse,++    -- * Response Lenses+    getPricingPlanResponse_pendingPricingPlan,+    getPricingPlanResponse_httpStatus,+    getPricingPlanResponse_currentPricingPlan,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IotTwinMaker.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetPricingPlan' smart constructor.+data GetPricingPlan = GetPricingPlan'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetPricingPlan' 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.+newGetPricingPlan ::+  GetPricingPlan+newGetPricingPlan = GetPricingPlan'++instance Core.AWSRequest GetPricingPlan where+  type+    AWSResponse GetPricingPlan =+      GetPricingPlanResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetPricingPlanResponse'+            Prelude.<$> (x Data..?> "pendingPricingPlan")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "currentPricingPlan")+      )++instance Prelude.Hashable GetPricingPlan where+  hashWithSalt _salt _ =+    _salt `Prelude.hashWithSalt` ()++instance Prelude.NFData GetPricingPlan where+  rnf _ = ()++instance Data.ToHeaders GetPricingPlan where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetPricingPlan where+  toPath = Prelude.const "/pricingplan"++instance Data.ToQuery GetPricingPlan where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetPricingPlanResponse' smart constructor.+data GetPricingPlanResponse = GetPricingPlanResponse'+  { -- | The pending pricing plan.+    pendingPricingPlan :: Prelude.Maybe PricingPlan,+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The chosen pricing plan for the current billing cycle.+    currentPricingPlan :: PricingPlan+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetPricingPlanResponse' 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:+--+-- 'pendingPricingPlan', 'getPricingPlanResponse_pendingPricingPlan' - The pending pricing plan.+--+-- 'httpStatus', 'getPricingPlanResponse_httpStatus' - The response's http status code.+--+-- 'currentPricingPlan', 'getPricingPlanResponse_currentPricingPlan' - The chosen pricing plan for the current billing cycle.+newGetPricingPlanResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'currentPricingPlan'+  PricingPlan ->+  GetPricingPlanResponse+newGetPricingPlanResponse+  pHttpStatus_+  pCurrentPricingPlan_ =+    GetPricingPlanResponse'+      { pendingPricingPlan =+          Prelude.Nothing,+        httpStatus = pHttpStatus_,+        currentPricingPlan = pCurrentPricingPlan_+      }++-- | The pending pricing plan.+getPricingPlanResponse_pendingPricingPlan :: Lens.Lens' GetPricingPlanResponse (Prelude.Maybe PricingPlan)+getPricingPlanResponse_pendingPricingPlan = Lens.lens (\GetPricingPlanResponse' {pendingPricingPlan} -> pendingPricingPlan) (\s@GetPricingPlanResponse' {} a -> s {pendingPricingPlan = a} :: GetPricingPlanResponse)++-- | The response's http status code.+getPricingPlanResponse_httpStatus :: Lens.Lens' GetPricingPlanResponse Prelude.Int+getPricingPlanResponse_httpStatus = Lens.lens (\GetPricingPlanResponse' {httpStatus} -> httpStatus) (\s@GetPricingPlanResponse' {} a -> s {httpStatus = a} :: GetPricingPlanResponse)++-- | The chosen pricing plan for the current billing cycle.+getPricingPlanResponse_currentPricingPlan :: Lens.Lens' GetPricingPlanResponse PricingPlan+getPricingPlanResponse_currentPricingPlan = Lens.lens (\GetPricingPlanResponse' {currentPricingPlan} -> currentPricingPlan) (\s@GetPricingPlanResponse' {} a -> s {currentPricingPlan = a} :: GetPricingPlanResponse)++instance Prelude.NFData GetPricingPlanResponse where+  rnf GetPricingPlanResponse' {..} =+    Prelude.rnf pendingPricingPlan+      `Prelude.seq` Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf currentPricingPlan
+ gen/Amazonka/IotTwinMaker/GetPropertyValue.hs view
@@ -0,0 +1,332 @@+{-# 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.IotTwinMaker.GetPropertyValue+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets the property values for a component, component type, entity, or+-- workspace.+--+-- You must specify a value for either @componentName@, @componentTypeId@,+-- @entityId@, or @workspaceId@.+module Amazonka.IotTwinMaker.GetPropertyValue+  ( -- * Creating a Request+    GetPropertyValue (..),+    newGetPropertyValue,++    -- * Request Lenses+    getPropertyValue_componentName,+    getPropertyValue_componentTypeId,+    getPropertyValue_entityId,+    getPropertyValue_maxResults,+    getPropertyValue_nextToken,+    getPropertyValue_propertyGroupName,+    getPropertyValue_tabularConditions,+    getPropertyValue_selectedProperties,+    getPropertyValue_workspaceId,++    -- * Destructuring the Response+    GetPropertyValueResponse (..),+    newGetPropertyValueResponse,++    -- * Response Lenses+    getPropertyValueResponse_nextToken,+    getPropertyValueResponse_propertyValues,+    getPropertyValueResponse_tabularPropertyValues,+    getPropertyValueResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IotTwinMaker.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetPropertyValue' smart constructor.+data GetPropertyValue = GetPropertyValue'+  { -- | The name of the component whose property values the operation returns.+    componentName :: Prelude.Maybe Prelude.Text,+    -- | The ID of the component type whose property values the operation+    -- returns.+    componentTypeId :: Prelude.Maybe Prelude.Text,+    -- | The ID of the entity whose property values the operation returns.+    entityId :: Prelude.Maybe Prelude.Text,+    -- | The maximum number of results to return at one time. The default is 25.+    --+    -- Valid Range: Minimum value of 1. Maximum value of 250.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The string that specifies the next page of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The property group name.+    propertyGroupName :: Prelude.Maybe Prelude.Text,+    -- | The tabular conditions.+    tabularConditions :: Prelude.Maybe TabularConditions,+    -- | The properties whose values the operation returns.+    selectedProperties :: Prelude.NonEmpty Prelude.Text,+    -- | The ID of the workspace whose values the operation returns.+    workspaceId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetPropertyValue' 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:+--+-- 'componentName', 'getPropertyValue_componentName' - The name of the component whose property values the operation returns.+--+-- 'componentTypeId', 'getPropertyValue_componentTypeId' - The ID of the component type whose property values the operation+-- returns.+--+-- 'entityId', 'getPropertyValue_entityId' - The ID of the entity whose property values the operation returns.+--+-- 'maxResults', 'getPropertyValue_maxResults' - The maximum number of results to return at one time. The default is 25.+--+-- Valid Range: Minimum value of 1. Maximum value of 250.+--+-- 'nextToken', 'getPropertyValue_nextToken' - The string that specifies the next page of results.+--+-- 'propertyGroupName', 'getPropertyValue_propertyGroupName' - The property group name.+--+-- 'tabularConditions', 'getPropertyValue_tabularConditions' - The tabular conditions.+--+-- 'selectedProperties', 'getPropertyValue_selectedProperties' - The properties whose values the operation returns.+--+-- 'workspaceId', 'getPropertyValue_workspaceId' - The ID of the workspace whose values the operation returns.+newGetPropertyValue ::+  -- | 'selectedProperties'+  Prelude.NonEmpty Prelude.Text ->+  -- | 'workspaceId'+  Prelude.Text ->+  GetPropertyValue+newGetPropertyValue+  pSelectedProperties_+  pWorkspaceId_ =+    GetPropertyValue'+      { componentName = Prelude.Nothing,+        componentTypeId = Prelude.Nothing,+        entityId = Prelude.Nothing,+        maxResults = Prelude.Nothing,+        nextToken = Prelude.Nothing,+        propertyGroupName = Prelude.Nothing,+        tabularConditions = Prelude.Nothing,+        selectedProperties =+          Lens.coerced Lens.# pSelectedProperties_,+        workspaceId = pWorkspaceId_+      }++-- | The name of the component whose property values the operation returns.+getPropertyValue_componentName :: Lens.Lens' GetPropertyValue (Prelude.Maybe Prelude.Text)+getPropertyValue_componentName = Lens.lens (\GetPropertyValue' {componentName} -> componentName) (\s@GetPropertyValue' {} a -> s {componentName = a} :: GetPropertyValue)++-- | The ID of the component type whose property values the operation+-- returns.+getPropertyValue_componentTypeId :: Lens.Lens' GetPropertyValue (Prelude.Maybe Prelude.Text)+getPropertyValue_componentTypeId = Lens.lens (\GetPropertyValue' {componentTypeId} -> componentTypeId) (\s@GetPropertyValue' {} a -> s {componentTypeId = a} :: GetPropertyValue)++-- | The ID of the entity whose property values the operation returns.+getPropertyValue_entityId :: Lens.Lens' GetPropertyValue (Prelude.Maybe Prelude.Text)+getPropertyValue_entityId = Lens.lens (\GetPropertyValue' {entityId} -> entityId) (\s@GetPropertyValue' {} a -> s {entityId = a} :: GetPropertyValue)++-- | The maximum number of results to return at one time. The default is 25.+--+-- Valid Range: Minimum value of 1. Maximum value of 250.+getPropertyValue_maxResults :: Lens.Lens' GetPropertyValue (Prelude.Maybe Prelude.Natural)+getPropertyValue_maxResults = Lens.lens (\GetPropertyValue' {maxResults} -> maxResults) (\s@GetPropertyValue' {} a -> s {maxResults = a} :: GetPropertyValue)++-- | The string that specifies the next page of results.+getPropertyValue_nextToken :: Lens.Lens' GetPropertyValue (Prelude.Maybe Prelude.Text)+getPropertyValue_nextToken = Lens.lens (\GetPropertyValue' {nextToken} -> nextToken) (\s@GetPropertyValue' {} a -> s {nextToken = a} :: GetPropertyValue)++-- | The property group name.+getPropertyValue_propertyGroupName :: Lens.Lens' GetPropertyValue (Prelude.Maybe Prelude.Text)+getPropertyValue_propertyGroupName = Lens.lens (\GetPropertyValue' {propertyGroupName} -> propertyGroupName) (\s@GetPropertyValue' {} a -> s {propertyGroupName = a} :: GetPropertyValue)++-- | The tabular conditions.+getPropertyValue_tabularConditions :: Lens.Lens' GetPropertyValue (Prelude.Maybe TabularConditions)+getPropertyValue_tabularConditions = Lens.lens (\GetPropertyValue' {tabularConditions} -> tabularConditions) (\s@GetPropertyValue' {} a -> s {tabularConditions = a} :: GetPropertyValue)++-- | The properties whose values the operation returns.+getPropertyValue_selectedProperties :: Lens.Lens' GetPropertyValue (Prelude.NonEmpty Prelude.Text)+getPropertyValue_selectedProperties = Lens.lens (\GetPropertyValue' {selectedProperties} -> selectedProperties) (\s@GetPropertyValue' {} a -> s {selectedProperties = a} :: GetPropertyValue) Prelude.. Lens.coerced++-- | The ID of the workspace whose values the operation returns.+getPropertyValue_workspaceId :: Lens.Lens' GetPropertyValue Prelude.Text+getPropertyValue_workspaceId = Lens.lens (\GetPropertyValue' {workspaceId} -> workspaceId) (\s@GetPropertyValue' {} a -> s {workspaceId = a} :: GetPropertyValue)++instance Core.AWSRequest GetPropertyValue where+  type+    AWSResponse GetPropertyValue =+      GetPropertyValueResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetPropertyValueResponse'+            Prelude.<$> (x Data..?> "nextToken")+            Prelude.<*> (x Data..?> "propertyValues" Core..!@ Prelude.mempty)+            Prelude.<*> ( x+                            Data..?> "tabularPropertyValues"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetPropertyValue where+  hashWithSalt _salt GetPropertyValue' {..} =+    _salt+      `Prelude.hashWithSalt` componentName+      `Prelude.hashWithSalt` componentTypeId+      `Prelude.hashWithSalt` entityId+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` propertyGroupName+      `Prelude.hashWithSalt` tabularConditions+      `Prelude.hashWithSalt` selectedProperties+      `Prelude.hashWithSalt` workspaceId++instance Prelude.NFData GetPropertyValue where+  rnf GetPropertyValue' {..} =+    Prelude.rnf componentName+      `Prelude.seq` Prelude.rnf componentTypeId+      `Prelude.seq` Prelude.rnf entityId+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf propertyGroupName+      `Prelude.seq` Prelude.rnf tabularConditions+      `Prelude.seq` Prelude.rnf selectedProperties+      `Prelude.seq` Prelude.rnf workspaceId++instance Data.ToHeaders GetPropertyValue where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON GetPropertyValue where+  toJSON GetPropertyValue' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("componentName" Data..=) Prelude.<$> componentName,+            ("componentTypeId" Data..=)+              Prelude.<$> componentTypeId,+            ("entityId" Data..=) Prelude.<$> entityId,+            ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken,+            ("propertyGroupName" Data..=)+              Prelude.<$> propertyGroupName,+            ("tabularConditions" Data..=)+              Prelude.<$> tabularConditions,+            Prelude.Just+              ("selectedProperties" Data..= selectedProperties)+          ]+      )++instance Data.ToPath GetPropertyValue where+  toPath GetPropertyValue' {..} =+    Prelude.mconcat+      [ "/workspaces/",+        Data.toBS workspaceId,+        "/entity-properties/value"+      ]++instance Data.ToQuery GetPropertyValue where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetPropertyValueResponse' smart constructor.+data GetPropertyValueResponse = GetPropertyValueResponse'+  { -- | The string that specifies the next page of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | An object that maps strings to the properties and latest property values+    -- in the response. Each string in the mapping must be unique to this+    -- object.+    propertyValues :: Prelude.Maybe (Prelude.HashMap Prelude.Text PropertyLatestValue),+    -- | A table of property values.+    tabularPropertyValues :: Prelude.Maybe [[Prelude.HashMap Prelude.Text DataValue]],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetPropertyValueResponse' 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', 'getPropertyValueResponse_nextToken' - The string that specifies the next page of results.+--+-- 'propertyValues', 'getPropertyValueResponse_propertyValues' - An object that maps strings to the properties and latest property values+-- in the response. Each string in the mapping must be unique to this+-- object.+--+-- 'tabularPropertyValues', 'getPropertyValueResponse_tabularPropertyValues' - A table of property values.+--+-- 'httpStatus', 'getPropertyValueResponse_httpStatus' - The response's http status code.+newGetPropertyValueResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetPropertyValueResponse+newGetPropertyValueResponse pHttpStatus_ =+  GetPropertyValueResponse'+    { nextToken =+        Prelude.Nothing,+      propertyValues = Prelude.Nothing,+      tabularPropertyValues = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The string that specifies the next page of results.+getPropertyValueResponse_nextToken :: Lens.Lens' GetPropertyValueResponse (Prelude.Maybe Prelude.Text)+getPropertyValueResponse_nextToken = Lens.lens (\GetPropertyValueResponse' {nextToken} -> nextToken) (\s@GetPropertyValueResponse' {} a -> s {nextToken = a} :: GetPropertyValueResponse)++-- | An object that maps strings to the properties and latest property values+-- in the response. Each string in the mapping must be unique to this+-- object.+getPropertyValueResponse_propertyValues :: Lens.Lens' GetPropertyValueResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text PropertyLatestValue))+getPropertyValueResponse_propertyValues = Lens.lens (\GetPropertyValueResponse' {propertyValues} -> propertyValues) (\s@GetPropertyValueResponse' {} a -> s {propertyValues = a} :: GetPropertyValueResponse) Prelude.. Lens.mapping Lens.coerced++-- | A table of property values.+getPropertyValueResponse_tabularPropertyValues :: Lens.Lens' GetPropertyValueResponse (Prelude.Maybe [[Prelude.HashMap Prelude.Text DataValue]])+getPropertyValueResponse_tabularPropertyValues = Lens.lens (\GetPropertyValueResponse' {tabularPropertyValues} -> tabularPropertyValues) (\s@GetPropertyValueResponse' {} a -> s {tabularPropertyValues = a} :: GetPropertyValueResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+getPropertyValueResponse_httpStatus :: Lens.Lens' GetPropertyValueResponse Prelude.Int+getPropertyValueResponse_httpStatus = Lens.lens (\GetPropertyValueResponse' {httpStatus} -> httpStatus) (\s@GetPropertyValueResponse' {} a -> s {httpStatus = a} :: GetPropertyValueResponse)++instance Prelude.NFData GetPropertyValueResponse where+  rnf GetPropertyValueResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf propertyValues+      `Prelude.seq` Prelude.rnf tabularPropertyValues+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/IotTwinMaker/GetPropertyValueHistory.hs view
@@ -0,0 +1,410 @@+{-# 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.IotTwinMaker.GetPropertyValueHistory+-- 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 history of a time series property value+-- for a component, component type, entity, or workspace.+--+-- You must specify a value for @workspaceId@. For entity-specific queries,+-- specify values for @componentName@ and @entityId@. For cross-entity+-- quries, specify a value for @componentTypeId@.+module Amazonka.IotTwinMaker.GetPropertyValueHistory+  ( -- * Creating a Request+    GetPropertyValueHistory (..),+    newGetPropertyValueHistory,++    -- * Request Lenses+    getPropertyValueHistory_componentName,+    getPropertyValueHistory_componentTypeId,+    getPropertyValueHistory_endDateTime,+    getPropertyValueHistory_endTime,+    getPropertyValueHistory_entityId,+    getPropertyValueHistory_interpolation,+    getPropertyValueHistory_maxResults,+    getPropertyValueHistory_nextToken,+    getPropertyValueHistory_orderByTime,+    getPropertyValueHistory_propertyFilters,+    getPropertyValueHistory_startDateTime,+    getPropertyValueHistory_startTime,+    getPropertyValueHistory_workspaceId,+    getPropertyValueHistory_selectedProperties,++    -- * Destructuring the Response+    GetPropertyValueHistoryResponse (..),+    newGetPropertyValueHistoryResponse,++    -- * Response Lenses+    getPropertyValueHistoryResponse_nextToken,+    getPropertyValueHistoryResponse_httpStatus,+    getPropertyValueHistoryResponse_propertyValues,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IotTwinMaker.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetPropertyValueHistory' smart constructor.+data GetPropertyValueHistory = GetPropertyValueHistory'+  { -- | The name of the component.+    componentName :: Prelude.Maybe Prelude.Text,+    -- | The ID of the component type.+    componentTypeId :: Prelude.Maybe Prelude.Text,+    -- | The date and time of the latest property value to return.+    endDateTime :: Prelude.Maybe Data.POSIX,+    -- | The ISO8601 DateTime of the latest property value to return.+    --+    -- For more information about the ISO8601 DateTime format, see the data+    -- type+    -- <https://docs.aws.amazon.com/iot-twinmaker/latest/apireference/API_PropertyValue.html PropertyValue>.+    endTime :: Prelude.Maybe Prelude.Text,+    -- | The ID of the entity.+    entityId :: Prelude.Maybe Prelude.Text,+    -- | An object that specifies the interpolation type and the interval over+    -- which to interpolate data.+    interpolation :: Prelude.Maybe InterpolationParameters,+    -- | The maximum number of results to return at one time. The default is 25.+    --+    -- Valid Range: Minimum value of 1. Maximum value of 250.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The string that specifies the next page of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The time direction to use in the result order.+    orderByTime :: Prelude.Maybe OrderByTime,+    -- | A list of objects that filter the property value history request.+    propertyFilters :: Prelude.Maybe (Prelude.NonEmpty PropertyFilter),+    -- | The date and time of the earliest property value to return.+    startDateTime :: Prelude.Maybe Data.POSIX,+    -- | The ISO8601 DateTime of the earliest property value to return.+    --+    -- For more information about the ISO8601 DateTime format, see the data+    -- type+    -- <https://docs.aws.amazon.com/iot-twinmaker/latest/apireference/API_PropertyValue.html PropertyValue>.+    startTime :: Prelude.Maybe Prelude.Text,+    -- | The ID of the workspace.+    workspaceId :: Prelude.Text,+    -- | A list of properties whose value histories the request retrieves.+    selectedProperties :: Prelude.NonEmpty Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetPropertyValueHistory' 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:+--+-- 'componentName', 'getPropertyValueHistory_componentName' - The name of the component.+--+-- 'componentTypeId', 'getPropertyValueHistory_componentTypeId' - The ID of the component type.+--+-- 'endDateTime', 'getPropertyValueHistory_endDateTime' - The date and time of the latest property value to return.+--+-- 'endTime', 'getPropertyValueHistory_endTime' - The ISO8601 DateTime of the latest property value to return.+--+-- For more information about the ISO8601 DateTime format, see the data+-- type+-- <https://docs.aws.amazon.com/iot-twinmaker/latest/apireference/API_PropertyValue.html PropertyValue>.+--+-- 'entityId', 'getPropertyValueHistory_entityId' - The ID of the entity.+--+-- 'interpolation', 'getPropertyValueHistory_interpolation' - An object that specifies the interpolation type and the interval over+-- which to interpolate data.+--+-- 'maxResults', 'getPropertyValueHistory_maxResults' - The maximum number of results to return at one time. The default is 25.+--+-- Valid Range: Minimum value of 1. Maximum value of 250.+--+-- 'nextToken', 'getPropertyValueHistory_nextToken' - The string that specifies the next page of results.+--+-- 'orderByTime', 'getPropertyValueHistory_orderByTime' - The time direction to use in the result order.+--+-- 'propertyFilters', 'getPropertyValueHistory_propertyFilters' - A list of objects that filter the property value history request.+--+-- 'startDateTime', 'getPropertyValueHistory_startDateTime' - The date and time of the earliest property value to return.+--+-- 'startTime', 'getPropertyValueHistory_startTime' - The ISO8601 DateTime of the earliest property value to return.+--+-- For more information about the ISO8601 DateTime format, see the data+-- type+-- <https://docs.aws.amazon.com/iot-twinmaker/latest/apireference/API_PropertyValue.html PropertyValue>.+--+-- 'workspaceId', 'getPropertyValueHistory_workspaceId' - The ID of the workspace.+--+-- 'selectedProperties', 'getPropertyValueHistory_selectedProperties' - A list of properties whose value histories the request retrieves.+newGetPropertyValueHistory ::+  -- | 'workspaceId'+  Prelude.Text ->+  -- | 'selectedProperties'+  Prelude.NonEmpty Prelude.Text ->+  GetPropertyValueHistory+newGetPropertyValueHistory+  pWorkspaceId_+  pSelectedProperties_ =+    GetPropertyValueHistory'+      { componentName =+          Prelude.Nothing,+        componentTypeId = Prelude.Nothing,+        endDateTime = Prelude.Nothing,+        endTime = Prelude.Nothing,+        entityId = Prelude.Nothing,+        interpolation = Prelude.Nothing,+        maxResults = Prelude.Nothing,+        nextToken = Prelude.Nothing,+        orderByTime = Prelude.Nothing,+        propertyFilters = Prelude.Nothing,+        startDateTime = Prelude.Nothing,+        startTime = Prelude.Nothing,+        workspaceId = pWorkspaceId_,+        selectedProperties =+          Lens.coerced Lens.# pSelectedProperties_+      }++-- | The name of the component.+getPropertyValueHistory_componentName :: Lens.Lens' GetPropertyValueHistory (Prelude.Maybe Prelude.Text)+getPropertyValueHistory_componentName = Lens.lens (\GetPropertyValueHistory' {componentName} -> componentName) (\s@GetPropertyValueHistory' {} a -> s {componentName = a} :: GetPropertyValueHistory)++-- | The ID of the component type.+getPropertyValueHistory_componentTypeId :: Lens.Lens' GetPropertyValueHistory (Prelude.Maybe Prelude.Text)+getPropertyValueHistory_componentTypeId = Lens.lens (\GetPropertyValueHistory' {componentTypeId} -> componentTypeId) (\s@GetPropertyValueHistory' {} a -> s {componentTypeId = a} :: GetPropertyValueHistory)++-- | The date and time of the latest property value to return.+getPropertyValueHistory_endDateTime :: Lens.Lens' GetPropertyValueHistory (Prelude.Maybe Prelude.UTCTime)+getPropertyValueHistory_endDateTime = Lens.lens (\GetPropertyValueHistory' {endDateTime} -> endDateTime) (\s@GetPropertyValueHistory' {} a -> s {endDateTime = a} :: GetPropertyValueHistory) Prelude.. Lens.mapping Data._Time++-- | The ISO8601 DateTime of the latest property value to return.+--+-- For more information about the ISO8601 DateTime format, see the data+-- type+-- <https://docs.aws.amazon.com/iot-twinmaker/latest/apireference/API_PropertyValue.html PropertyValue>.+getPropertyValueHistory_endTime :: Lens.Lens' GetPropertyValueHistory (Prelude.Maybe Prelude.Text)+getPropertyValueHistory_endTime = Lens.lens (\GetPropertyValueHistory' {endTime} -> endTime) (\s@GetPropertyValueHistory' {} a -> s {endTime = a} :: GetPropertyValueHistory)++-- | The ID of the entity.+getPropertyValueHistory_entityId :: Lens.Lens' GetPropertyValueHistory (Prelude.Maybe Prelude.Text)+getPropertyValueHistory_entityId = Lens.lens (\GetPropertyValueHistory' {entityId} -> entityId) (\s@GetPropertyValueHistory' {} a -> s {entityId = a} :: GetPropertyValueHistory)++-- | An object that specifies the interpolation type and the interval over+-- which to interpolate data.+getPropertyValueHistory_interpolation :: Lens.Lens' GetPropertyValueHistory (Prelude.Maybe InterpolationParameters)+getPropertyValueHistory_interpolation = Lens.lens (\GetPropertyValueHistory' {interpolation} -> interpolation) (\s@GetPropertyValueHistory' {} a -> s {interpolation = a} :: GetPropertyValueHistory)++-- | The maximum number of results to return at one time. The default is 25.+--+-- Valid Range: Minimum value of 1. Maximum value of 250.+getPropertyValueHistory_maxResults :: Lens.Lens' GetPropertyValueHistory (Prelude.Maybe Prelude.Natural)+getPropertyValueHistory_maxResults = Lens.lens (\GetPropertyValueHistory' {maxResults} -> maxResults) (\s@GetPropertyValueHistory' {} a -> s {maxResults = a} :: GetPropertyValueHistory)++-- | The string that specifies the next page of results.+getPropertyValueHistory_nextToken :: Lens.Lens' GetPropertyValueHistory (Prelude.Maybe Prelude.Text)+getPropertyValueHistory_nextToken = Lens.lens (\GetPropertyValueHistory' {nextToken} -> nextToken) (\s@GetPropertyValueHistory' {} a -> s {nextToken = a} :: GetPropertyValueHistory)++-- | The time direction to use in the result order.+getPropertyValueHistory_orderByTime :: Lens.Lens' GetPropertyValueHistory (Prelude.Maybe OrderByTime)+getPropertyValueHistory_orderByTime = Lens.lens (\GetPropertyValueHistory' {orderByTime} -> orderByTime) (\s@GetPropertyValueHistory' {} a -> s {orderByTime = a} :: GetPropertyValueHistory)++-- | A list of objects that filter the property value history request.+getPropertyValueHistory_propertyFilters :: Lens.Lens' GetPropertyValueHistory (Prelude.Maybe (Prelude.NonEmpty PropertyFilter))+getPropertyValueHistory_propertyFilters = Lens.lens (\GetPropertyValueHistory' {propertyFilters} -> propertyFilters) (\s@GetPropertyValueHistory' {} a -> s {propertyFilters = a} :: GetPropertyValueHistory) Prelude.. Lens.mapping Lens.coerced++-- | The date and time of the earliest property value to return.+getPropertyValueHistory_startDateTime :: Lens.Lens' GetPropertyValueHistory (Prelude.Maybe Prelude.UTCTime)+getPropertyValueHistory_startDateTime = Lens.lens (\GetPropertyValueHistory' {startDateTime} -> startDateTime) (\s@GetPropertyValueHistory' {} a -> s {startDateTime = a} :: GetPropertyValueHistory) Prelude.. Lens.mapping Data._Time++-- | The ISO8601 DateTime of the earliest property value to return.+--+-- For more information about the ISO8601 DateTime format, see the data+-- type+-- <https://docs.aws.amazon.com/iot-twinmaker/latest/apireference/API_PropertyValue.html PropertyValue>.+getPropertyValueHistory_startTime :: Lens.Lens' GetPropertyValueHistory (Prelude.Maybe Prelude.Text)+getPropertyValueHistory_startTime = Lens.lens (\GetPropertyValueHistory' {startTime} -> startTime) (\s@GetPropertyValueHistory' {} a -> s {startTime = a} :: GetPropertyValueHistory)++-- | The ID of the workspace.+getPropertyValueHistory_workspaceId :: Lens.Lens' GetPropertyValueHistory Prelude.Text+getPropertyValueHistory_workspaceId = Lens.lens (\GetPropertyValueHistory' {workspaceId} -> workspaceId) (\s@GetPropertyValueHistory' {} a -> s {workspaceId = a} :: GetPropertyValueHistory)++-- | A list of properties whose value histories the request retrieves.+getPropertyValueHistory_selectedProperties :: Lens.Lens' GetPropertyValueHistory (Prelude.NonEmpty Prelude.Text)+getPropertyValueHistory_selectedProperties = Lens.lens (\GetPropertyValueHistory' {selectedProperties} -> selectedProperties) (\s@GetPropertyValueHistory' {} a -> s {selectedProperties = a} :: GetPropertyValueHistory) Prelude.. Lens.coerced++instance Core.AWSRequest GetPropertyValueHistory where+  type+    AWSResponse GetPropertyValueHistory =+      GetPropertyValueHistoryResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetPropertyValueHistoryResponse'+            Prelude.<$> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> ( x+                            Data..?> "propertyValues"+                            Core..!@ Prelude.mempty+                        )+      )++instance Prelude.Hashable GetPropertyValueHistory where+  hashWithSalt _salt GetPropertyValueHistory' {..} =+    _salt+      `Prelude.hashWithSalt` componentName+      `Prelude.hashWithSalt` componentTypeId+      `Prelude.hashWithSalt` endDateTime+      `Prelude.hashWithSalt` endTime+      `Prelude.hashWithSalt` entityId+      `Prelude.hashWithSalt` interpolation+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` orderByTime+      `Prelude.hashWithSalt` propertyFilters+      `Prelude.hashWithSalt` startDateTime+      `Prelude.hashWithSalt` startTime+      `Prelude.hashWithSalt` workspaceId+      `Prelude.hashWithSalt` selectedProperties++instance Prelude.NFData GetPropertyValueHistory where+  rnf GetPropertyValueHistory' {..} =+    Prelude.rnf componentName+      `Prelude.seq` Prelude.rnf componentTypeId+      `Prelude.seq` Prelude.rnf endDateTime+      `Prelude.seq` Prelude.rnf endTime+      `Prelude.seq` Prelude.rnf entityId+      `Prelude.seq` Prelude.rnf interpolation+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf orderByTime+      `Prelude.seq` Prelude.rnf propertyFilters+      `Prelude.seq` Prelude.rnf startDateTime+      `Prelude.seq` Prelude.rnf startTime+      `Prelude.seq` Prelude.rnf workspaceId+      `Prelude.seq` Prelude.rnf selectedProperties++instance Data.ToHeaders GetPropertyValueHistory where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON GetPropertyValueHistory where+  toJSON GetPropertyValueHistory' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("componentName" Data..=) Prelude.<$> componentName,+            ("componentTypeId" Data..=)+              Prelude.<$> componentTypeId,+            ("endDateTime" Data..=) Prelude.<$> endDateTime,+            ("endTime" Data..=) Prelude.<$> endTime,+            ("entityId" Data..=) Prelude.<$> entityId,+            ("interpolation" Data..=) Prelude.<$> interpolation,+            ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken,+            ("orderByTime" Data..=) Prelude.<$> orderByTime,+            ("propertyFilters" Data..=)+              Prelude.<$> propertyFilters,+            ("startDateTime" Data..=) Prelude.<$> startDateTime,+            ("startTime" Data..=) Prelude.<$> startTime,+            Prelude.Just+              ("selectedProperties" Data..= selectedProperties)+          ]+      )++instance Data.ToPath GetPropertyValueHistory where+  toPath GetPropertyValueHistory' {..} =+    Prelude.mconcat+      [ "/workspaces/",+        Data.toBS workspaceId,+        "/entity-properties/history"+      ]++instance Data.ToQuery GetPropertyValueHistory where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetPropertyValueHistoryResponse' smart constructor.+data GetPropertyValueHistoryResponse = GetPropertyValueHistoryResponse'+  { -- | The string that specifies the next page of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | An object that maps strings to the property definitions in the component+    -- type. Each string in the mapping must be unique to this object.+    propertyValues :: [PropertyValueHistory]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetPropertyValueHistoryResponse' 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', 'getPropertyValueHistoryResponse_nextToken' - The string that specifies the next page of results.+--+-- 'httpStatus', 'getPropertyValueHistoryResponse_httpStatus' - The response's http status code.+--+-- 'propertyValues', 'getPropertyValueHistoryResponse_propertyValues' - An object that maps strings to the property definitions in the component+-- type. Each string in the mapping must be unique to this object.+newGetPropertyValueHistoryResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetPropertyValueHistoryResponse+newGetPropertyValueHistoryResponse pHttpStatus_ =+  GetPropertyValueHistoryResponse'+    { nextToken =+        Prelude.Nothing,+      httpStatus = pHttpStatus_,+      propertyValues = Prelude.mempty+    }++-- | The string that specifies the next page of results.+getPropertyValueHistoryResponse_nextToken :: Lens.Lens' GetPropertyValueHistoryResponse (Prelude.Maybe Prelude.Text)+getPropertyValueHistoryResponse_nextToken = Lens.lens (\GetPropertyValueHistoryResponse' {nextToken} -> nextToken) (\s@GetPropertyValueHistoryResponse' {} a -> s {nextToken = a} :: GetPropertyValueHistoryResponse)++-- | The response's http status code.+getPropertyValueHistoryResponse_httpStatus :: Lens.Lens' GetPropertyValueHistoryResponse Prelude.Int+getPropertyValueHistoryResponse_httpStatus = Lens.lens (\GetPropertyValueHistoryResponse' {httpStatus} -> httpStatus) (\s@GetPropertyValueHistoryResponse' {} a -> s {httpStatus = a} :: GetPropertyValueHistoryResponse)++-- | An object that maps strings to the property definitions in the component+-- type. Each string in the mapping must be unique to this object.+getPropertyValueHistoryResponse_propertyValues :: Lens.Lens' GetPropertyValueHistoryResponse [PropertyValueHistory]+getPropertyValueHistoryResponse_propertyValues = Lens.lens (\GetPropertyValueHistoryResponse' {propertyValues} -> propertyValues) (\s@GetPropertyValueHistoryResponse' {} a -> s {propertyValues = a} :: GetPropertyValueHistoryResponse) Prelude.. Lens.coerced++instance+  Prelude.NFData+    GetPropertyValueHistoryResponse+  where+  rnf GetPropertyValueHistoryResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf propertyValues
+ gen/Amazonka/IotTwinMaker/GetScene.hs view
@@ -0,0 +1,285 @@+{-# 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.IotTwinMaker.GetScene+-- 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 scene.+module Amazonka.IotTwinMaker.GetScene+  ( -- * Creating a Request+    GetScene (..),+    newGetScene,++    -- * Request Lenses+    getScene_workspaceId,+    getScene_sceneId,++    -- * Destructuring the Response+    GetSceneResponse (..),+    newGetSceneResponse,++    -- * Response Lenses+    getSceneResponse_capabilities,+    getSceneResponse_description,+    getSceneResponse_httpStatus,+    getSceneResponse_workspaceId,+    getSceneResponse_sceneId,+    getSceneResponse_contentLocation,+    getSceneResponse_arn,+    getSceneResponse_creationDateTime,+    getSceneResponse_updateDateTime,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IotTwinMaker.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetScene' smart constructor.+data GetScene = GetScene'+  { -- | The ID of the workspace that contains the scene.+    workspaceId :: Prelude.Text,+    -- | The ID of the scene.+    sceneId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetScene' 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:+--+-- 'workspaceId', 'getScene_workspaceId' - The ID of the workspace that contains the scene.+--+-- 'sceneId', 'getScene_sceneId' - The ID of the scene.+newGetScene ::+  -- | 'workspaceId'+  Prelude.Text ->+  -- | 'sceneId'+  Prelude.Text ->+  GetScene+newGetScene pWorkspaceId_ pSceneId_ =+  GetScene'+    { workspaceId = pWorkspaceId_,+      sceneId = pSceneId_+    }++-- | The ID of the workspace that contains the scene.+getScene_workspaceId :: Lens.Lens' GetScene Prelude.Text+getScene_workspaceId = Lens.lens (\GetScene' {workspaceId} -> workspaceId) (\s@GetScene' {} a -> s {workspaceId = a} :: GetScene)++-- | The ID of the scene.+getScene_sceneId :: Lens.Lens' GetScene Prelude.Text+getScene_sceneId = Lens.lens (\GetScene' {sceneId} -> sceneId) (\s@GetScene' {} a -> s {sceneId = a} :: GetScene)++instance Core.AWSRequest GetScene where+  type AWSResponse GetScene = GetSceneResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetSceneResponse'+            Prelude.<$> (x Data..?> "capabilities" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "description")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "workspaceId")+            Prelude.<*> (x Data..:> "sceneId")+            Prelude.<*> (x Data..:> "contentLocation")+            Prelude.<*> (x Data..:> "arn")+            Prelude.<*> (x Data..:> "creationDateTime")+            Prelude.<*> (x Data..:> "updateDateTime")+      )++instance Prelude.Hashable GetScene where+  hashWithSalt _salt GetScene' {..} =+    _salt+      `Prelude.hashWithSalt` workspaceId+      `Prelude.hashWithSalt` sceneId++instance Prelude.NFData GetScene where+  rnf GetScene' {..} =+    Prelude.rnf workspaceId+      `Prelude.seq` Prelude.rnf sceneId++instance Data.ToHeaders GetScene where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetScene where+  toPath GetScene' {..} =+    Prelude.mconcat+      [ "/workspaces/",+        Data.toBS workspaceId,+        "/scenes/",+        Data.toBS sceneId+      ]++instance Data.ToQuery GetScene where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetSceneResponse' smart constructor.+data GetSceneResponse = GetSceneResponse'+  { -- | A list of capabilities that the scene uses to render.+    capabilities :: Prelude.Maybe [Prelude.Text],+    -- | The description of the scene.+    description :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The ID of the workspace that contains the scene.+    workspaceId :: Prelude.Text,+    -- | The ID of the scene.+    sceneId :: Prelude.Text,+    -- | The relative path that specifies the location of the content definition+    -- file.+    contentLocation :: Prelude.Text,+    -- | The ARN of the scene.+    arn :: Prelude.Text,+    -- | The date and time when the scene was created.+    creationDateTime :: Data.POSIX,+    -- | The date and time when the scene was last updated.+    updateDateTime :: Data.POSIX+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetSceneResponse' 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:+--+-- 'capabilities', 'getSceneResponse_capabilities' - A list of capabilities that the scene uses to render.+--+-- 'description', 'getSceneResponse_description' - The description of the scene.+--+-- 'httpStatus', 'getSceneResponse_httpStatus' - The response's http status code.+--+-- 'workspaceId', 'getSceneResponse_workspaceId' - The ID of the workspace that contains the scene.+--+-- 'sceneId', 'getSceneResponse_sceneId' - The ID of the scene.+--+-- 'contentLocation', 'getSceneResponse_contentLocation' - The relative path that specifies the location of the content definition+-- file.+--+-- 'arn', 'getSceneResponse_arn' - The ARN of the scene.+--+-- 'creationDateTime', 'getSceneResponse_creationDateTime' - The date and time when the scene was created.+--+-- 'updateDateTime', 'getSceneResponse_updateDateTime' - The date and time when the scene was last updated.+newGetSceneResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'workspaceId'+  Prelude.Text ->+  -- | 'sceneId'+  Prelude.Text ->+  -- | 'contentLocation'+  Prelude.Text ->+  -- | 'arn'+  Prelude.Text ->+  -- | 'creationDateTime'+  Prelude.UTCTime ->+  -- | 'updateDateTime'+  Prelude.UTCTime ->+  GetSceneResponse+newGetSceneResponse+  pHttpStatus_+  pWorkspaceId_+  pSceneId_+  pContentLocation_+  pArn_+  pCreationDateTime_+  pUpdateDateTime_ =+    GetSceneResponse'+      { capabilities = Prelude.Nothing,+        description = Prelude.Nothing,+        httpStatus = pHttpStatus_,+        workspaceId = pWorkspaceId_,+        sceneId = pSceneId_,+        contentLocation = pContentLocation_,+        arn = pArn_,+        creationDateTime =+          Data._Time Lens.# pCreationDateTime_,+        updateDateTime = Data._Time Lens.# pUpdateDateTime_+      }++-- | A list of capabilities that the scene uses to render.+getSceneResponse_capabilities :: Lens.Lens' GetSceneResponse (Prelude.Maybe [Prelude.Text])+getSceneResponse_capabilities = Lens.lens (\GetSceneResponse' {capabilities} -> capabilities) (\s@GetSceneResponse' {} a -> s {capabilities = a} :: GetSceneResponse) Prelude.. Lens.mapping Lens.coerced++-- | The description of the scene.+getSceneResponse_description :: Lens.Lens' GetSceneResponse (Prelude.Maybe Prelude.Text)+getSceneResponse_description = Lens.lens (\GetSceneResponse' {description} -> description) (\s@GetSceneResponse' {} a -> s {description = a} :: GetSceneResponse)++-- | The response's http status code.+getSceneResponse_httpStatus :: Lens.Lens' GetSceneResponse Prelude.Int+getSceneResponse_httpStatus = Lens.lens (\GetSceneResponse' {httpStatus} -> httpStatus) (\s@GetSceneResponse' {} a -> s {httpStatus = a} :: GetSceneResponse)++-- | The ID of the workspace that contains the scene.+getSceneResponse_workspaceId :: Lens.Lens' GetSceneResponse Prelude.Text+getSceneResponse_workspaceId = Lens.lens (\GetSceneResponse' {workspaceId} -> workspaceId) (\s@GetSceneResponse' {} a -> s {workspaceId = a} :: GetSceneResponse)++-- | The ID of the scene.+getSceneResponse_sceneId :: Lens.Lens' GetSceneResponse Prelude.Text+getSceneResponse_sceneId = Lens.lens (\GetSceneResponse' {sceneId} -> sceneId) (\s@GetSceneResponse' {} a -> s {sceneId = a} :: GetSceneResponse)++-- | The relative path that specifies the location of the content definition+-- file.+getSceneResponse_contentLocation :: Lens.Lens' GetSceneResponse Prelude.Text+getSceneResponse_contentLocation = Lens.lens (\GetSceneResponse' {contentLocation} -> contentLocation) (\s@GetSceneResponse' {} a -> s {contentLocation = a} :: GetSceneResponse)++-- | The ARN of the scene.+getSceneResponse_arn :: Lens.Lens' GetSceneResponse Prelude.Text+getSceneResponse_arn = Lens.lens (\GetSceneResponse' {arn} -> arn) (\s@GetSceneResponse' {} a -> s {arn = a} :: GetSceneResponse)++-- | The date and time when the scene was created.+getSceneResponse_creationDateTime :: Lens.Lens' GetSceneResponse Prelude.UTCTime+getSceneResponse_creationDateTime = Lens.lens (\GetSceneResponse' {creationDateTime} -> creationDateTime) (\s@GetSceneResponse' {} a -> s {creationDateTime = a} :: GetSceneResponse) Prelude.. Data._Time++-- | The date and time when the scene was last updated.+getSceneResponse_updateDateTime :: Lens.Lens' GetSceneResponse Prelude.UTCTime+getSceneResponse_updateDateTime = Lens.lens (\GetSceneResponse' {updateDateTime} -> updateDateTime) (\s@GetSceneResponse' {} a -> s {updateDateTime = a} :: GetSceneResponse) Prelude.. Data._Time++instance Prelude.NFData GetSceneResponse where+  rnf GetSceneResponse' {..} =+    Prelude.rnf capabilities+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf workspaceId+      `Prelude.seq` Prelude.rnf sceneId+      `Prelude.seq` Prelude.rnf contentLocation+      `Prelude.seq` Prelude.rnf arn+      `Prelude.seq` Prelude.rnf creationDateTime+      `Prelude.seq` Prelude.rnf updateDateTime
+ gen/Amazonka/IotTwinMaker/GetSyncJob.hs view
@@ -0,0 +1,280 @@+{-# 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.IotTwinMaker.GetSyncJob+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets the SyncJob.+module Amazonka.IotTwinMaker.GetSyncJob+  ( -- * Creating a Request+    GetSyncJob (..),+    newGetSyncJob,++    -- * Request Lenses+    getSyncJob_workspaceId,+    getSyncJob_syncSource,++    -- * Destructuring the Response+    GetSyncJobResponse (..),+    newGetSyncJobResponse,++    -- * Response Lenses+    getSyncJobResponse_httpStatus,+    getSyncJobResponse_arn,+    getSyncJobResponse_workspaceId,+    getSyncJobResponse_syncSource,+    getSyncJobResponse_syncRole,+    getSyncJobResponse_status,+    getSyncJobResponse_creationDateTime,+    getSyncJobResponse_updateDateTime,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IotTwinMaker.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetSyncJob' smart constructor.+data GetSyncJob = GetSyncJob'+  { -- | The workspace Id.+    workspaceId :: Prelude.Maybe Prelude.Text,+    -- | The sync soucre.+    --+    -- Currently the only supported syncSoucre is @SITEWISE @.+    syncSource :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetSyncJob' 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:+--+-- 'workspaceId', 'getSyncJob_workspaceId' - The workspace Id.+--+-- 'syncSource', 'getSyncJob_syncSource' - The sync soucre.+--+-- Currently the only supported syncSoucre is @SITEWISE @.+newGetSyncJob ::+  -- | 'syncSource'+  Prelude.Text ->+  GetSyncJob+newGetSyncJob pSyncSource_ =+  GetSyncJob'+    { workspaceId = Prelude.Nothing,+      syncSource = pSyncSource_+    }++-- | The workspace Id.+getSyncJob_workspaceId :: Lens.Lens' GetSyncJob (Prelude.Maybe Prelude.Text)+getSyncJob_workspaceId = Lens.lens (\GetSyncJob' {workspaceId} -> workspaceId) (\s@GetSyncJob' {} a -> s {workspaceId = a} :: GetSyncJob)++-- | The sync soucre.+--+-- Currently the only supported syncSoucre is @SITEWISE @.+getSyncJob_syncSource :: Lens.Lens' GetSyncJob Prelude.Text+getSyncJob_syncSource = Lens.lens (\GetSyncJob' {syncSource} -> syncSource) (\s@GetSyncJob' {} a -> s {syncSource = a} :: GetSyncJob)++instance Core.AWSRequest GetSyncJob where+  type AWSResponse GetSyncJob = GetSyncJobResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetSyncJobResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "arn")+            Prelude.<*> (x Data..:> "workspaceId")+            Prelude.<*> (x Data..:> "syncSource")+            Prelude.<*> (x Data..:> "syncRole")+            Prelude.<*> (x Data..:> "status")+            Prelude.<*> (x Data..:> "creationDateTime")+            Prelude.<*> (x Data..:> "updateDateTime")+      )++instance Prelude.Hashable GetSyncJob where+  hashWithSalt _salt GetSyncJob' {..} =+    _salt+      `Prelude.hashWithSalt` workspaceId+      `Prelude.hashWithSalt` syncSource++instance Prelude.NFData GetSyncJob where+  rnf GetSyncJob' {..} =+    Prelude.rnf workspaceId+      `Prelude.seq` Prelude.rnf syncSource++instance Data.ToHeaders GetSyncJob where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetSyncJob where+  toPath GetSyncJob' {..} =+    Prelude.mconcat+      ["/sync-jobs/", Data.toBS syncSource]++instance Data.ToQuery GetSyncJob where+  toQuery GetSyncJob' {..} =+    Prelude.mconcat ["workspace" Data.=: workspaceId]++-- | /See:/ 'newGetSyncJobResponse' smart constructor.+data GetSyncJobResponse = GetSyncJobResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The sync job ARN.+    arn :: Prelude.Text,+    -- | The ID of the workspace that contains the sync job.+    workspaceId :: Prelude.Text,+    -- | The sync soucre.+    --+    -- Currently the only supported syncSoucre is @SITEWISE @.+    syncSource :: Prelude.Text,+    -- | The sync IAM role.+    syncRole :: Prelude.Text,+    -- | The SyncJob response status.+    status :: SyncJobStatus,+    -- | The creation date and time.+    creationDateTime :: Data.POSIX,+    -- | The update date and time.+    updateDateTime :: Data.POSIX+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetSyncJobResponse' 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', 'getSyncJobResponse_httpStatus' - The response's http status code.+--+-- 'arn', 'getSyncJobResponse_arn' - The sync job ARN.+--+-- 'workspaceId', 'getSyncJobResponse_workspaceId' - The ID of the workspace that contains the sync job.+--+-- 'syncSource', 'getSyncJobResponse_syncSource' - The sync soucre.+--+-- Currently the only supported syncSoucre is @SITEWISE @.+--+-- 'syncRole', 'getSyncJobResponse_syncRole' - The sync IAM role.+--+-- 'status', 'getSyncJobResponse_status' - The SyncJob response status.+--+-- 'creationDateTime', 'getSyncJobResponse_creationDateTime' - The creation date and time.+--+-- 'updateDateTime', 'getSyncJobResponse_updateDateTime' - The update date and time.+newGetSyncJobResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'arn'+  Prelude.Text ->+  -- | 'workspaceId'+  Prelude.Text ->+  -- | 'syncSource'+  Prelude.Text ->+  -- | 'syncRole'+  Prelude.Text ->+  -- | 'status'+  SyncJobStatus ->+  -- | 'creationDateTime'+  Prelude.UTCTime ->+  -- | 'updateDateTime'+  Prelude.UTCTime ->+  GetSyncJobResponse+newGetSyncJobResponse+  pHttpStatus_+  pArn_+  pWorkspaceId_+  pSyncSource_+  pSyncRole_+  pStatus_+  pCreationDateTime_+  pUpdateDateTime_ =+    GetSyncJobResponse'+      { httpStatus = pHttpStatus_,+        arn = pArn_,+        workspaceId = pWorkspaceId_,+        syncSource = pSyncSource_,+        syncRole = pSyncRole_,+        status = pStatus_,+        creationDateTime =+          Data._Time Lens.# pCreationDateTime_,+        updateDateTime = Data._Time Lens.# pUpdateDateTime_+      }++-- | The response's http status code.+getSyncJobResponse_httpStatus :: Lens.Lens' GetSyncJobResponse Prelude.Int+getSyncJobResponse_httpStatus = Lens.lens (\GetSyncJobResponse' {httpStatus} -> httpStatus) (\s@GetSyncJobResponse' {} a -> s {httpStatus = a} :: GetSyncJobResponse)++-- | The sync job ARN.+getSyncJobResponse_arn :: Lens.Lens' GetSyncJobResponse Prelude.Text+getSyncJobResponse_arn = Lens.lens (\GetSyncJobResponse' {arn} -> arn) (\s@GetSyncJobResponse' {} a -> s {arn = a} :: GetSyncJobResponse)++-- | The ID of the workspace that contains the sync job.+getSyncJobResponse_workspaceId :: Lens.Lens' GetSyncJobResponse Prelude.Text+getSyncJobResponse_workspaceId = Lens.lens (\GetSyncJobResponse' {workspaceId} -> workspaceId) (\s@GetSyncJobResponse' {} a -> s {workspaceId = a} :: GetSyncJobResponse)++-- | The sync soucre.+--+-- Currently the only supported syncSoucre is @SITEWISE @.+getSyncJobResponse_syncSource :: Lens.Lens' GetSyncJobResponse Prelude.Text+getSyncJobResponse_syncSource = Lens.lens (\GetSyncJobResponse' {syncSource} -> syncSource) (\s@GetSyncJobResponse' {} a -> s {syncSource = a} :: GetSyncJobResponse)++-- | The sync IAM role.+getSyncJobResponse_syncRole :: Lens.Lens' GetSyncJobResponse Prelude.Text+getSyncJobResponse_syncRole = Lens.lens (\GetSyncJobResponse' {syncRole} -> syncRole) (\s@GetSyncJobResponse' {} a -> s {syncRole = a} :: GetSyncJobResponse)++-- | The SyncJob response status.+getSyncJobResponse_status :: Lens.Lens' GetSyncJobResponse SyncJobStatus+getSyncJobResponse_status = Lens.lens (\GetSyncJobResponse' {status} -> status) (\s@GetSyncJobResponse' {} a -> s {status = a} :: GetSyncJobResponse)++-- | The creation date and time.+getSyncJobResponse_creationDateTime :: Lens.Lens' GetSyncJobResponse Prelude.UTCTime+getSyncJobResponse_creationDateTime = Lens.lens (\GetSyncJobResponse' {creationDateTime} -> creationDateTime) (\s@GetSyncJobResponse' {} a -> s {creationDateTime = a} :: GetSyncJobResponse) Prelude.. Data._Time++-- | The update date and time.+getSyncJobResponse_updateDateTime :: Lens.Lens' GetSyncJobResponse Prelude.UTCTime+getSyncJobResponse_updateDateTime = Lens.lens (\GetSyncJobResponse' {updateDateTime} -> updateDateTime) (\s@GetSyncJobResponse' {} a -> s {updateDateTime = a} :: GetSyncJobResponse) Prelude.. Data._Time++instance Prelude.NFData GetSyncJobResponse where+  rnf GetSyncJobResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf arn+      `Prelude.seq` Prelude.rnf workspaceId+      `Prelude.seq` Prelude.rnf syncSource+      `Prelude.seq` Prelude.rnf syncRole+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf creationDateTime+      `Prelude.seq` Prelude.rnf updateDateTime
+ gen/Amazonka/IotTwinMaker/GetWorkspace.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.IotTwinMaker.GetWorkspace+-- 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 workspace.+module Amazonka.IotTwinMaker.GetWorkspace+  ( -- * Creating a Request+    GetWorkspace (..),+    newGetWorkspace,++    -- * Request Lenses+    getWorkspace_workspaceId,++    -- * Destructuring the Response+    GetWorkspaceResponse (..),+    newGetWorkspaceResponse,++    -- * Response Lenses+    getWorkspaceResponse_description,+    getWorkspaceResponse_httpStatus,+    getWorkspaceResponse_workspaceId,+    getWorkspaceResponse_arn,+    getWorkspaceResponse_s3Location,+    getWorkspaceResponse_role,+    getWorkspaceResponse_creationDateTime,+    getWorkspaceResponse_updateDateTime,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IotTwinMaker.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetWorkspace' smart constructor.+data GetWorkspace = GetWorkspace'+  { -- | The ID of the workspace.+    workspaceId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetWorkspace' 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:+--+-- 'workspaceId', 'getWorkspace_workspaceId' - The ID of the workspace.+newGetWorkspace ::+  -- | 'workspaceId'+  Prelude.Text ->+  GetWorkspace+newGetWorkspace pWorkspaceId_ =+  GetWorkspace' {workspaceId = pWorkspaceId_}++-- | The ID of the workspace.+getWorkspace_workspaceId :: Lens.Lens' GetWorkspace Prelude.Text+getWorkspace_workspaceId = Lens.lens (\GetWorkspace' {workspaceId} -> workspaceId) (\s@GetWorkspace' {} a -> s {workspaceId = a} :: GetWorkspace)++instance Core.AWSRequest GetWorkspace where+  type AWSResponse GetWorkspace = GetWorkspaceResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetWorkspaceResponse'+            Prelude.<$> (x Data..?> "description")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "workspaceId")+            Prelude.<*> (x Data..:> "arn")+            Prelude.<*> (x Data..:> "s3Location")+            Prelude.<*> (x Data..:> "role")+            Prelude.<*> (x Data..:> "creationDateTime")+            Prelude.<*> (x Data..:> "updateDateTime")+      )++instance Prelude.Hashable GetWorkspace where+  hashWithSalt _salt GetWorkspace' {..} =+    _salt `Prelude.hashWithSalt` workspaceId++instance Prelude.NFData GetWorkspace where+  rnf GetWorkspace' {..} = Prelude.rnf workspaceId++instance Data.ToHeaders GetWorkspace where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetWorkspace where+  toPath GetWorkspace' {..} =+    Prelude.mconcat+      ["/workspaces/", Data.toBS workspaceId]++instance Data.ToQuery GetWorkspace where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetWorkspaceResponse' smart constructor.+data GetWorkspaceResponse = GetWorkspaceResponse'+  { -- | The description of the workspace.+    description :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The ID of the workspace.+    workspaceId :: Prelude.Text,+    -- | The ARN of the workspace.+    arn :: Prelude.Text,+    -- | The ARN of the S3 bucket where resources associated with the workspace+    -- are stored.+    s3Location :: Prelude.Text,+    -- | The ARN of the execution role associated with the workspace.+    role' :: Prelude.Text,+    -- | The date and time when the workspace was created.+    creationDateTime :: Data.POSIX,+    -- | The date and time when the workspace was last updated.+    updateDateTime :: Data.POSIX+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetWorkspaceResponse' 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', 'getWorkspaceResponse_description' - The description of the workspace.+--+-- 'httpStatus', 'getWorkspaceResponse_httpStatus' - The response's http status code.+--+-- 'workspaceId', 'getWorkspaceResponse_workspaceId' - The ID of the workspace.+--+-- 'arn', 'getWorkspaceResponse_arn' - The ARN of the workspace.+--+-- 's3Location', 'getWorkspaceResponse_s3Location' - The ARN of the S3 bucket where resources associated with the workspace+-- are stored.+--+-- 'role'', 'getWorkspaceResponse_role' - The ARN of the execution role associated with the workspace.+--+-- 'creationDateTime', 'getWorkspaceResponse_creationDateTime' - The date and time when the workspace was created.+--+-- 'updateDateTime', 'getWorkspaceResponse_updateDateTime' - The date and time when the workspace was last updated.+newGetWorkspaceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'workspaceId'+  Prelude.Text ->+  -- | 'arn'+  Prelude.Text ->+  -- | 's3Location'+  Prelude.Text ->+  -- | 'role''+  Prelude.Text ->+  -- | 'creationDateTime'+  Prelude.UTCTime ->+  -- | 'updateDateTime'+  Prelude.UTCTime ->+  GetWorkspaceResponse+newGetWorkspaceResponse+  pHttpStatus_+  pWorkspaceId_+  pArn_+  pS3Location_+  pRole_+  pCreationDateTime_+  pUpdateDateTime_ =+    GetWorkspaceResponse'+      { description =+          Prelude.Nothing,+        httpStatus = pHttpStatus_,+        workspaceId = pWorkspaceId_,+        arn = pArn_,+        s3Location = pS3Location_,+        role' = pRole_,+        creationDateTime =+          Data._Time Lens.# pCreationDateTime_,+        updateDateTime = Data._Time Lens.# pUpdateDateTime_+      }++-- | The description of the workspace.+getWorkspaceResponse_description :: Lens.Lens' GetWorkspaceResponse (Prelude.Maybe Prelude.Text)+getWorkspaceResponse_description = Lens.lens (\GetWorkspaceResponse' {description} -> description) (\s@GetWorkspaceResponse' {} a -> s {description = a} :: GetWorkspaceResponse)++-- | The response's http status code.+getWorkspaceResponse_httpStatus :: Lens.Lens' GetWorkspaceResponse Prelude.Int+getWorkspaceResponse_httpStatus = Lens.lens (\GetWorkspaceResponse' {httpStatus} -> httpStatus) (\s@GetWorkspaceResponse' {} a -> s {httpStatus = a} :: GetWorkspaceResponse)++-- | The ID of the workspace.+getWorkspaceResponse_workspaceId :: Lens.Lens' GetWorkspaceResponse Prelude.Text+getWorkspaceResponse_workspaceId = Lens.lens (\GetWorkspaceResponse' {workspaceId} -> workspaceId) (\s@GetWorkspaceResponse' {} a -> s {workspaceId = a} :: GetWorkspaceResponse)++-- | The ARN of the workspace.+getWorkspaceResponse_arn :: Lens.Lens' GetWorkspaceResponse Prelude.Text+getWorkspaceResponse_arn = Lens.lens (\GetWorkspaceResponse' {arn} -> arn) (\s@GetWorkspaceResponse' {} a -> s {arn = a} :: GetWorkspaceResponse)++-- | The ARN of the S3 bucket where resources associated with the workspace+-- are stored.+getWorkspaceResponse_s3Location :: Lens.Lens' GetWorkspaceResponse Prelude.Text+getWorkspaceResponse_s3Location = Lens.lens (\GetWorkspaceResponse' {s3Location} -> s3Location) (\s@GetWorkspaceResponse' {} a -> s {s3Location = a} :: GetWorkspaceResponse)++-- | The ARN of the execution role associated with the workspace.+getWorkspaceResponse_role :: Lens.Lens' GetWorkspaceResponse Prelude.Text+getWorkspaceResponse_role = Lens.lens (\GetWorkspaceResponse' {role'} -> role') (\s@GetWorkspaceResponse' {} a -> s {role' = a} :: GetWorkspaceResponse)++-- | The date and time when the workspace was created.+getWorkspaceResponse_creationDateTime :: Lens.Lens' GetWorkspaceResponse Prelude.UTCTime+getWorkspaceResponse_creationDateTime = Lens.lens (\GetWorkspaceResponse' {creationDateTime} -> creationDateTime) (\s@GetWorkspaceResponse' {} a -> s {creationDateTime = a} :: GetWorkspaceResponse) Prelude.. Data._Time++-- | The date and time when the workspace was last updated.+getWorkspaceResponse_updateDateTime :: Lens.Lens' GetWorkspaceResponse Prelude.UTCTime+getWorkspaceResponse_updateDateTime = Lens.lens (\GetWorkspaceResponse' {updateDateTime} -> updateDateTime) (\s@GetWorkspaceResponse' {} a -> s {updateDateTime = a} :: GetWorkspaceResponse) Prelude.. Data._Time++instance Prelude.NFData GetWorkspaceResponse where+  rnf GetWorkspaceResponse' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf workspaceId+      `Prelude.seq` Prelude.rnf arn+      `Prelude.seq` Prelude.rnf s3Location+      `Prelude.seq` Prelude.rnf role'+      `Prelude.seq` Prelude.rnf creationDateTime+      `Prelude.seq` Prelude.rnf updateDateTime
+ gen/Amazonka/IotTwinMaker/Lens.hs view
@@ -0,0 +1,715 @@+{-# 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.IotTwinMaker.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.IotTwinMaker.Lens+  ( -- * Operations++    -- ** BatchPutPropertyValues+    batchPutPropertyValues_workspaceId,+    batchPutPropertyValues_entries,+    batchPutPropertyValuesResponse_httpStatus,+    batchPutPropertyValuesResponse_errorEntries,++    -- ** CreateComponentType+    createComponentType_componentTypeName,+    createComponentType_description,+    createComponentType_extendsFrom,+    createComponentType_functions,+    createComponentType_isSingleton,+    createComponentType_propertyDefinitions,+    createComponentType_propertyGroups,+    createComponentType_tags,+    createComponentType_workspaceId,+    createComponentType_componentTypeId,+    createComponentTypeResponse_httpStatus,+    createComponentTypeResponse_arn,+    createComponentTypeResponse_creationDateTime,+    createComponentTypeResponse_state,++    -- ** CreateEntity+    createEntity_components,+    createEntity_description,+    createEntity_entityId,+    createEntity_parentEntityId,+    createEntity_tags,+    createEntity_workspaceId,+    createEntity_entityName,+    createEntityResponse_httpStatus,+    createEntityResponse_entityId,+    createEntityResponse_arn,+    createEntityResponse_creationDateTime,+    createEntityResponse_state,++    -- ** CreateScene+    createScene_capabilities,+    createScene_description,+    createScene_tags,+    createScene_workspaceId,+    createScene_sceneId,+    createScene_contentLocation,+    createSceneResponse_httpStatus,+    createSceneResponse_arn,+    createSceneResponse_creationDateTime,++    -- ** CreateSyncJob+    createSyncJob_tags,+    createSyncJob_workspaceId,+    createSyncJob_syncSource,+    createSyncJob_syncRole,+    createSyncJobResponse_httpStatus,+    createSyncJobResponse_arn,+    createSyncJobResponse_creationDateTime,+    createSyncJobResponse_state,++    -- ** CreateWorkspace+    createWorkspace_description,+    createWorkspace_tags,+    createWorkspace_workspaceId,+    createWorkspace_s3Location,+    createWorkspace_role,+    createWorkspaceResponse_httpStatus,+    createWorkspaceResponse_arn,+    createWorkspaceResponse_creationDateTime,++    -- ** DeleteComponentType+    deleteComponentType_workspaceId,+    deleteComponentType_componentTypeId,+    deleteComponentTypeResponse_httpStatus,+    deleteComponentTypeResponse_state,++    -- ** DeleteEntity+    deleteEntity_isRecursive,+    deleteEntity_workspaceId,+    deleteEntity_entityId,+    deleteEntityResponse_httpStatus,+    deleteEntityResponse_state,++    -- ** DeleteScene+    deleteScene_workspaceId,+    deleteScene_sceneId,+    deleteSceneResponse_httpStatus,++    -- ** DeleteSyncJob+    deleteSyncJob_workspaceId,+    deleteSyncJob_syncSource,+    deleteSyncJobResponse_httpStatus,+    deleteSyncJobResponse_state,++    -- ** DeleteWorkspace+    deleteWorkspace_workspaceId,+    deleteWorkspaceResponse_httpStatus,++    -- ** ExecuteQuery+    executeQuery_maxResults,+    executeQuery_nextToken,+    executeQuery_workspaceId,+    executeQuery_queryStatement,+    executeQueryResponse_columnDescriptions,+    executeQueryResponse_nextToken,+    executeQueryResponse_rows,+    executeQueryResponse_httpStatus,++    -- ** GetComponentType+    getComponentType_workspaceId,+    getComponentType_componentTypeId,+    getComponentTypeResponse_componentTypeName,+    getComponentTypeResponse_description,+    getComponentTypeResponse_extendsFrom,+    getComponentTypeResponse_functions,+    getComponentTypeResponse_isAbstract,+    getComponentTypeResponse_isSchemaInitialized,+    getComponentTypeResponse_isSingleton,+    getComponentTypeResponse_propertyDefinitions,+    getComponentTypeResponse_propertyGroups,+    getComponentTypeResponse_status,+    getComponentTypeResponse_syncSource,+    getComponentTypeResponse_httpStatus,+    getComponentTypeResponse_workspaceId,+    getComponentTypeResponse_componentTypeId,+    getComponentTypeResponse_creationDateTime,+    getComponentTypeResponse_updateDateTime,+    getComponentTypeResponse_arn,++    -- ** GetEntity+    getEntity_workspaceId,+    getEntity_entityId,+    getEntityResponse_components,+    getEntityResponse_description,+    getEntityResponse_syncSource,+    getEntityResponse_httpStatus,+    getEntityResponse_entityId,+    getEntityResponse_entityName,+    getEntityResponse_arn,+    getEntityResponse_status,+    getEntityResponse_workspaceId,+    getEntityResponse_parentEntityId,+    getEntityResponse_hasChildEntities,+    getEntityResponse_creationDateTime,+    getEntityResponse_updateDateTime,++    -- ** GetPricingPlan+    getPricingPlanResponse_pendingPricingPlan,+    getPricingPlanResponse_httpStatus,+    getPricingPlanResponse_currentPricingPlan,++    -- ** GetPropertyValue+    getPropertyValue_componentName,+    getPropertyValue_componentTypeId,+    getPropertyValue_entityId,+    getPropertyValue_maxResults,+    getPropertyValue_nextToken,+    getPropertyValue_propertyGroupName,+    getPropertyValue_tabularConditions,+    getPropertyValue_selectedProperties,+    getPropertyValue_workspaceId,+    getPropertyValueResponse_nextToken,+    getPropertyValueResponse_propertyValues,+    getPropertyValueResponse_tabularPropertyValues,+    getPropertyValueResponse_httpStatus,++    -- ** GetPropertyValueHistory+    getPropertyValueHistory_componentName,+    getPropertyValueHistory_componentTypeId,+    getPropertyValueHistory_endDateTime,+    getPropertyValueHistory_endTime,+    getPropertyValueHistory_entityId,+    getPropertyValueHistory_interpolation,+    getPropertyValueHistory_maxResults,+    getPropertyValueHistory_nextToken,+    getPropertyValueHistory_orderByTime,+    getPropertyValueHistory_propertyFilters,+    getPropertyValueHistory_startDateTime,+    getPropertyValueHistory_startTime,+    getPropertyValueHistory_workspaceId,+    getPropertyValueHistory_selectedProperties,+    getPropertyValueHistoryResponse_nextToken,+    getPropertyValueHistoryResponse_httpStatus,+    getPropertyValueHistoryResponse_propertyValues,++    -- ** GetScene+    getScene_workspaceId,+    getScene_sceneId,+    getSceneResponse_capabilities,+    getSceneResponse_description,+    getSceneResponse_httpStatus,+    getSceneResponse_workspaceId,+    getSceneResponse_sceneId,+    getSceneResponse_contentLocation,+    getSceneResponse_arn,+    getSceneResponse_creationDateTime,+    getSceneResponse_updateDateTime,++    -- ** GetSyncJob+    getSyncJob_workspaceId,+    getSyncJob_syncSource,+    getSyncJobResponse_httpStatus,+    getSyncJobResponse_arn,+    getSyncJobResponse_workspaceId,+    getSyncJobResponse_syncSource,+    getSyncJobResponse_syncRole,+    getSyncJobResponse_status,+    getSyncJobResponse_creationDateTime,+    getSyncJobResponse_updateDateTime,++    -- ** GetWorkspace+    getWorkspace_workspaceId,+    getWorkspaceResponse_description,+    getWorkspaceResponse_httpStatus,+    getWorkspaceResponse_workspaceId,+    getWorkspaceResponse_arn,+    getWorkspaceResponse_s3Location,+    getWorkspaceResponse_role,+    getWorkspaceResponse_creationDateTime,+    getWorkspaceResponse_updateDateTime,++    -- ** ListComponentTypes+    listComponentTypes_filters,+    listComponentTypes_maxResults,+    listComponentTypes_nextToken,+    listComponentTypes_workspaceId,+    listComponentTypesResponse_maxResults,+    listComponentTypesResponse_nextToken,+    listComponentTypesResponse_httpStatus,+    listComponentTypesResponse_workspaceId,+    listComponentTypesResponse_componentTypeSummaries,++    -- ** ListEntities+    listEntities_filters,+    listEntities_maxResults,+    listEntities_nextToken,+    listEntities_workspaceId,+    listEntitiesResponse_entitySummaries,+    listEntitiesResponse_nextToken,+    listEntitiesResponse_httpStatus,++    -- ** ListScenes+    listScenes_maxResults,+    listScenes_nextToken,+    listScenes_workspaceId,+    listScenesResponse_nextToken,+    listScenesResponse_sceneSummaries,+    listScenesResponse_httpStatus,++    -- ** ListSyncJobs+    listSyncJobs_maxResults,+    listSyncJobs_nextToken,+    listSyncJobs_workspaceId,+    listSyncJobsResponse_nextToken,+    listSyncJobsResponse_syncJobSummaries,+    listSyncJobsResponse_httpStatus,++    -- ** ListSyncResources+    listSyncResources_filters,+    listSyncResources_maxResults,+    listSyncResources_nextToken,+    listSyncResources_workspaceId,+    listSyncResources_syncSource,+    listSyncResourcesResponse_nextToken,+    listSyncResourcesResponse_syncResources,+    listSyncResourcesResponse_httpStatus,++    -- ** ListTagsForResource+    listTagsForResource_maxResults,+    listTagsForResource_nextToken,+    listTagsForResource_resourceARN,+    listTagsForResourceResponse_nextToken,+    listTagsForResourceResponse_tags,+    listTagsForResourceResponse_httpStatus,++    -- ** ListWorkspaces+    listWorkspaces_maxResults,+    listWorkspaces_nextToken,+    listWorkspacesResponse_nextToken,+    listWorkspacesResponse_workspaceSummaries,+    listWorkspacesResponse_httpStatus,++    -- ** TagResource+    tagResource_resourceARN,+    tagResource_tags,+    tagResourceResponse_httpStatus,++    -- ** UntagResource+    untagResource_resourceARN,+    untagResource_tagKeys,+    untagResourceResponse_httpStatus,++    -- ** UpdateComponentType+    updateComponentType_componentTypeName,+    updateComponentType_description,+    updateComponentType_extendsFrom,+    updateComponentType_functions,+    updateComponentType_isSingleton,+    updateComponentType_propertyDefinitions,+    updateComponentType_propertyGroups,+    updateComponentType_workspaceId,+    updateComponentType_componentTypeId,+    updateComponentTypeResponse_httpStatus,+    updateComponentTypeResponse_workspaceId,+    updateComponentTypeResponse_arn,+    updateComponentTypeResponse_componentTypeId,+    updateComponentTypeResponse_state,++    -- ** UpdateEntity+    updateEntity_componentUpdates,+    updateEntity_description,+    updateEntity_entityName,+    updateEntity_parentEntityUpdate,+    updateEntity_workspaceId,+    updateEntity_entityId,+    updateEntityResponse_httpStatus,+    updateEntityResponse_updateDateTime,+    updateEntityResponse_state,++    -- ** UpdatePricingPlan+    updatePricingPlan_bundleNames,+    updatePricingPlan_pricingMode,+    updatePricingPlanResponse_pendingPricingPlan,+    updatePricingPlanResponse_httpStatus,+    updatePricingPlanResponse_currentPricingPlan,++    -- ** UpdateScene+    updateScene_capabilities,+    updateScene_contentLocation,+    updateScene_description,+    updateScene_workspaceId,+    updateScene_sceneId,+    updateSceneResponse_httpStatus,+    updateSceneResponse_updateDateTime,++    -- ** UpdateWorkspace+    updateWorkspace_description,+    updateWorkspace_role,+    updateWorkspace_workspaceId,+    updateWorkspaceResponse_httpStatus,+    updateWorkspaceResponse_updateDateTime,++    -- * Types++    -- ** BatchPutPropertyError+    batchPutPropertyError_errorCode,+    batchPutPropertyError_errorMessage,+    batchPutPropertyError_entry,++    -- ** BatchPutPropertyErrorEntry+    batchPutPropertyErrorEntry_errors,++    -- ** BundleInformation+    bundleInformation_pricingTier,+    bundleInformation_bundleNames,++    -- ** ColumnDescription+    columnDescription_name,+    columnDescription_type,++    -- ** ComponentPropertyGroupRequest+    componentPropertyGroupRequest_groupType,+    componentPropertyGroupRequest_propertyNames,+    componentPropertyGroupRequest_updateType,++    -- ** ComponentPropertyGroupResponse+    componentPropertyGroupResponse_groupType,+    componentPropertyGroupResponse_propertyNames,+    componentPropertyGroupResponse_isInherited,++    -- ** ComponentRequest+    componentRequest_componentTypeId,+    componentRequest_description,+    componentRequest_properties,+    componentRequest_propertyGroups,++    -- ** ComponentResponse+    componentResponse_componentName,+    componentResponse_componentTypeId,+    componentResponse_definedIn,+    componentResponse_description,+    componentResponse_properties,+    componentResponse_propertyGroups,+    componentResponse_status,+    componentResponse_syncSource,++    -- ** ComponentTypeSummary+    componentTypeSummary_componentTypeName,+    componentTypeSummary_description,+    componentTypeSummary_status,+    componentTypeSummary_arn,+    componentTypeSummary_componentTypeId,+    componentTypeSummary_creationDateTime,+    componentTypeSummary_updateDateTime,++    -- ** ComponentUpdateRequest+    componentUpdateRequest_componentTypeId,+    componentUpdateRequest_description,+    componentUpdateRequest_propertyGroupUpdates,+    componentUpdateRequest_propertyUpdates,+    componentUpdateRequest_updateType,++    -- ** DataConnector+    dataConnector_isNative,+    dataConnector_lambda,++    -- ** DataType+    dataType_allowedValues,+    dataType_nestedType,+    dataType_relationship,+    dataType_unitOfMeasure,+    dataType_type,++    -- ** DataValue+    dataValue_booleanValue,+    dataValue_doubleValue,+    dataValue_expression,+    dataValue_integerValue,+    dataValue_listValue,+    dataValue_longValue,+    dataValue_mapValue,+    dataValue_relationshipValue,+    dataValue_stringValue,++    -- ** EntityPropertyReference+    entityPropertyReference_componentName,+    entityPropertyReference_entityId,+    entityPropertyReference_externalIdProperty,+    entityPropertyReference_propertyName,++    -- ** EntitySummary+    entitySummary_description,+    entitySummary_hasChildEntities,+    entitySummary_parentEntityId,+    entitySummary_entityId,+    entitySummary_entityName,+    entitySummary_arn,+    entitySummary_status,+    entitySummary_creationDateTime,+    entitySummary_updateDateTime,++    -- ** ErrorDetails+    errorDetails_code,+    errorDetails_message,++    -- ** FunctionRequest+    functionRequest_implementedBy,+    functionRequest_requiredProperties,+    functionRequest_scope,++    -- ** FunctionResponse+    functionResponse_implementedBy,+    functionResponse_isInherited,+    functionResponse_requiredProperties,+    functionResponse_scope,++    -- ** InterpolationParameters+    interpolationParameters_interpolationType,+    interpolationParameters_intervalInSeconds,++    -- ** LambdaFunction+    lambdaFunction_arn,++    -- ** ListComponentTypesFilter+    listComponentTypesFilter_extendsFrom,+    listComponentTypesFilter_isAbstract,+    listComponentTypesFilter_namespace,++    -- ** ListEntitiesFilter+    listEntitiesFilter_componentTypeId,+    listEntitiesFilter_externalId,+    listEntitiesFilter_parentEntityId,++    -- ** OrderBy+    orderBy_order,+    orderBy_propertyName,++    -- ** ParentEntityUpdateRequest+    parentEntityUpdateRequest_parentEntityId,+    parentEntityUpdateRequest_updateType,++    -- ** PricingPlan+    pricingPlan_billableEntityCount,+    pricingPlan_bundleInformation,+    pricingPlan_effectiveDateTime,+    pricingPlan_pricingMode,+    pricingPlan_updateDateTime,+    pricingPlan_updateReason,++    -- ** PropertyDefinitionRequest+    propertyDefinitionRequest_configuration,+    propertyDefinitionRequest_dataType,+    propertyDefinitionRequest_defaultValue,+    propertyDefinitionRequest_displayName,+    propertyDefinitionRequest_isExternalId,+    propertyDefinitionRequest_isRequiredInEntity,+    propertyDefinitionRequest_isStoredExternally,+    propertyDefinitionRequest_isTimeSeries,++    -- ** PropertyDefinitionResponse+    propertyDefinitionResponse_configuration,+    propertyDefinitionResponse_defaultValue,+    propertyDefinitionResponse_displayName,+    propertyDefinitionResponse_dataType,+    propertyDefinitionResponse_isTimeSeries,+    propertyDefinitionResponse_isRequiredInEntity,+    propertyDefinitionResponse_isExternalId,+    propertyDefinitionResponse_isStoredExternally,+    propertyDefinitionResponse_isImported,+    propertyDefinitionResponse_isFinal,+    propertyDefinitionResponse_isInherited,++    -- ** PropertyFilter+    propertyFilter_operator,+    propertyFilter_propertyName,+    propertyFilter_value,++    -- ** PropertyGroupRequest+    propertyGroupRequest_groupType,+    propertyGroupRequest_propertyNames,++    -- ** PropertyGroupResponse+    propertyGroupResponse_groupType,+    propertyGroupResponse_propertyNames,+    propertyGroupResponse_isInherited,++    -- ** PropertyLatestValue+    propertyLatestValue_propertyValue,+    propertyLatestValue_propertyReference,++    -- ** PropertyRequest+    propertyRequest_definition,+    propertyRequest_updateType,+    propertyRequest_value,++    -- ** PropertyResponse+    propertyResponse_definition,+    propertyResponse_value,++    -- ** PropertyValue+    propertyValue_time,+    propertyValue_timestamp,+    propertyValue_value,++    -- ** PropertyValueEntry+    propertyValueEntry_propertyValues,+    propertyValueEntry_entityPropertyReference,++    -- ** PropertyValueHistory+    propertyValueHistory_values,+    propertyValueHistory_entityPropertyReference,++    -- ** QueryResultValue++    -- ** Relationship+    relationship_relationshipType,+    relationship_targetComponentTypeId,++    -- ** RelationshipValue+    relationshipValue_targetComponentName,+    relationshipValue_targetEntityId,++    -- ** Row+    row_rowData,++    -- ** SceneSummary+    sceneSummary_description,+    sceneSummary_sceneId,+    sceneSummary_contentLocation,+    sceneSummary_arn,+    sceneSummary_creationDateTime,+    sceneSummary_updateDateTime,++    -- ** Status+    status_error,+    status_state,++    -- ** SyncJobStatus+    syncJobStatus_error,+    syncJobStatus_state,++    -- ** SyncJobSummary+    syncJobSummary_arn,+    syncJobSummary_creationDateTime,+    syncJobSummary_status,+    syncJobSummary_syncSource,+    syncJobSummary_updateDateTime,+    syncJobSummary_workspaceId,++    -- ** SyncResourceFilter+    syncResourceFilter_externalId,+    syncResourceFilter_resourceId,+    syncResourceFilter_resourceType,+    syncResourceFilter_state,++    -- ** SyncResourceStatus+    syncResourceStatus_error,+    syncResourceStatus_state,++    -- ** SyncResourceSummary+    syncResourceSummary_externalId,+    syncResourceSummary_resourceId,+    syncResourceSummary_resourceType,+    syncResourceSummary_status,+    syncResourceSummary_updateDateTime,++    -- ** TabularConditions+    tabularConditions_orderBy,+    tabularConditions_propertyFilters,++    -- ** WorkspaceSummary+    workspaceSummary_description,+    workspaceSummary_workspaceId,+    workspaceSummary_arn,+    workspaceSummary_creationDateTime,+    workspaceSummary_updateDateTime,+  )+where++import Amazonka.IotTwinMaker.BatchPutPropertyValues+import Amazonka.IotTwinMaker.CreateComponentType+import Amazonka.IotTwinMaker.CreateEntity+import Amazonka.IotTwinMaker.CreateScene+import Amazonka.IotTwinMaker.CreateSyncJob+import Amazonka.IotTwinMaker.CreateWorkspace+import Amazonka.IotTwinMaker.DeleteComponentType+import Amazonka.IotTwinMaker.DeleteEntity+import Amazonka.IotTwinMaker.DeleteScene+import Amazonka.IotTwinMaker.DeleteSyncJob+import Amazonka.IotTwinMaker.DeleteWorkspace+import Amazonka.IotTwinMaker.ExecuteQuery+import Amazonka.IotTwinMaker.GetComponentType+import Amazonka.IotTwinMaker.GetEntity+import Amazonka.IotTwinMaker.GetPricingPlan+import Amazonka.IotTwinMaker.GetPropertyValue+import Amazonka.IotTwinMaker.GetPropertyValueHistory+import Amazonka.IotTwinMaker.GetScene+import Amazonka.IotTwinMaker.GetSyncJob+import Amazonka.IotTwinMaker.GetWorkspace+import Amazonka.IotTwinMaker.ListComponentTypes+import Amazonka.IotTwinMaker.ListEntities+import Amazonka.IotTwinMaker.ListScenes+import Amazonka.IotTwinMaker.ListSyncJobs+import Amazonka.IotTwinMaker.ListSyncResources+import Amazonka.IotTwinMaker.ListTagsForResource+import Amazonka.IotTwinMaker.ListWorkspaces+import Amazonka.IotTwinMaker.TagResource+import Amazonka.IotTwinMaker.Types.BatchPutPropertyError+import Amazonka.IotTwinMaker.Types.BatchPutPropertyErrorEntry+import Amazonka.IotTwinMaker.Types.BundleInformation+import Amazonka.IotTwinMaker.Types.ColumnDescription+import Amazonka.IotTwinMaker.Types.ComponentPropertyGroupRequest+import Amazonka.IotTwinMaker.Types.ComponentPropertyGroupResponse+import Amazonka.IotTwinMaker.Types.ComponentRequest+import Amazonka.IotTwinMaker.Types.ComponentResponse+import Amazonka.IotTwinMaker.Types.ComponentTypeSummary+import Amazonka.IotTwinMaker.Types.ComponentUpdateRequest+import Amazonka.IotTwinMaker.Types.DataConnector+import Amazonka.IotTwinMaker.Types.DataType+import Amazonka.IotTwinMaker.Types.DataValue+import Amazonka.IotTwinMaker.Types.EntityPropertyReference+import Amazonka.IotTwinMaker.Types.EntitySummary+import Amazonka.IotTwinMaker.Types.ErrorDetails+import Amazonka.IotTwinMaker.Types.FunctionRequest+import Amazonka.IotTwinMaker.Types.FunctionResponse+import Amazonka.IotTwinMaker.Types.InterpolationParameters+import Amazonka.IotTwinMaker.Types.LambdaFunction+import Amazonka.IotTwinMaker.Types.ListComponentTypesFilter+import Amazonka.IotTwinMaker.Types.ListEntitiesFilter+import Amazonka.IotTwinMaker.Types.OrderBy+import Amazonka.IotTwinMaker.Types.ParentEntityUpdateRequest+import Amazonka.IotTwinMaker.Types.PricingPlan+import Amazonka.IotTwinMaker.Types.PropertyDefinitionRequest+import Amazonka.IotTwinMaker.Types.PropertyDefinitionResponse+import Amazonka.IotTwinMaker.Types.PropertyFilter+import Amazonka.IotTwinMaker.Types.PropertyGroupRequest+import Amazonka.IotTwinMaker.Types.PropertyGroupResponse+import Amazonka.IotTwinMaker.Types.PropertyLatestValue+import Amazonka.IotTwinMaker.Types.PropertyRequest+import Amazonka.IotTwinMaker.Types.PropertyResponse+import Amazonka.IotTwinMaker.Types.PropertyValue+import Amazonka.IotTwinMaker.Types.PropertyValueEntry+import Amazonka.IotTwinMaker.Types.PropertyValueHistory+import Amazonka.IotTwinMaker.Types.QueryResultValue+import Amazonka.IotTwinMaker.Types.Relationship+import Amazonka.IotTwinMaker.Types.RelationshipValue+import Amazonka.IotTwinMaker.Types.Row+import Amazonka.IotTwinMaker.Types.SceneSummary+import Amazonka.IotTwinMaker.Types.Status+import Amazonka.IotTwinMaker.Types.SyncJobStatus+import Amazonka.IotTwinMaker.Types.SyncJobSummary+import Amazonka.IotTwinMaker.Types.SyncResourceFilter+import Amazonka.IotTwinMaker.Types.SyncResourceStatus+import Amazonka.IotTwinMaker.Types.SyncResourceSummary+import Amazonka.IotTwinMaker.Types.TabularConditions+import Amazonka.IotTwinMaker.Types.WorkspaceSummary+import Amazonka.IotTwinMaker.UntagResource+import Amazonka.IotTwinMaker.UpdateComponentType+import Amazonka.IotTwinMaker.UpdateEntity+import Amazonka.IotTwinMaker.UpdatePricingPlan+import Amazonka.IotTwinMaker.UpdateScene+import Amazonka.IotTwinMaker.UpdateWorkspace
+ gen/Amazonka/IotTwinMaker/ListComponentTypes.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.IotTwinMaker.ListComponentTypes+-- 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 component types in a workspace.+module Amazonka.IotTwinMaker.ListComponentTypes+  ( -- * Creating a Request+    ListComponentTypes (..),+    newListComponentTypes,++    -- * Request Lenses+    listComponentTypes_filters,+    listComponentTypes_maxResults,+    listComponentTypes_nextToken,+    listComponentTypes_workspaceId,++    -- * Destructuring the Response+    ListComponentTypesResponse (..),+    newListComponentTypesResponse,++    -- * Response Lenses+    listComponentTypesResponse_maxResults,+    listComponentTypesResponse_nextToken,+    listComponentTypesResponse_httpStatus,+    listComponentTypesResponse_workspaceId,+    listComponentTypesResponse_componentTypeSummaries,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IotTwinMaker.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListComponentTypes' smart constructor.+data ListComponentTypes = ListComponentTypes'+  { -- | A list of objects that filter the request.+    filters :: Prelude.Maybe [ListComponentTypesFilter],+    -- | The maximum number of results to return at one time. The default is 25.+    --+    -- Valid Range: Minimum value of 1. Maximum value of 250.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The string that specifies the next page of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The ID of the workspace.+    workspaceId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListComponentTypes' 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:+--+-- 'filters', 'listComponentTypes_filters' - A list of objects that filter the request.+--+-- 'maxResults', 'listComponentTypes_maxResults' - The maximum number of results to return at one time. The default is 25.+--+-- Valid Range: Minimum value of 1. Maximum value of 250.+--+-- 'nextToken', 'listComponentTypes_nextToken' - The string that specifies the next page of results.+--+-- 'workspaceId', 'listComponentTypes_workspaceId' - The ID of the workspace.+newListComponentTypes ::+  -- | 'workspaceId'+  Prelude.Text ->+  ListComponentTypes+newListComponentTypes pWorkspaceId_ =+  ListComponentTypes'+    { filters = Prelude.Nothing,+      maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      workspaceId = pWorkspaceId_+    }++-- | A list of objects that filter the request.+listComponentTypes_filters :: Lens.Lens' ListComponentTypes (Prelude.Maybe [ListComponentTypesFilter])+listComponentTypes_filters = Lens.lens (\ListComponentTypes' {filters} -> filters) (\s@ListComponentTypes' {} a -> s {filters = a} :: ListComponentTypes) Prelude.. Lens.mapping Lens.coerced++-- | The maximum number of results to return at one time. The default is 25.+--+-- Valid Range: Minimum value of 1. Maximum value of 250.+listComponentTypes_maxResults :: Lens.Lens' ListComponentTypes (Prelude.Maybe Prelude.Natural)+listComponentTypes_maxResults = Lens.lens (\ListComponentTypes' {maxResults} -> maxResults) (\s@ListComponentTypes' {} a -> s {maxResults = a} :: ListComponentTypes)++-- | The string that specifies the next page of results.+listComponentTypes_nextToken :: Lens.Lens' ListComponentTypes (Prelude.Maybe Prelude.Text)+listComponentTypes_nextToken = Lens.lens (\ListComponentTypes' {nextToken} -> nextToken) (\s@ListComponentTypes' {} a -> s {nextToken = a} :: ListComponentTypes)++-- | The ID of the workspace.+listComponentTypes_workspaceId :: Lens.Lens' ListComponentTypes Prelude.Text+listComponentTypes_workspaceId = Lens.lens (\ListComponentTypes' {workspaceId} -> workspaceId) (\s@ListComponentTypes' {} a -> s {workspaceId = a} :: ListComponentTypes)++instance Core.AWSRequest ListComponentTypes where+  type+    AWSResponse ListComponentTypes =+      ListComponentTypesResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListComponentTypesResponse'+            Prelude.<$> (x Data..?> "maxResults")+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "workspaceId")+            Prelude.<*> ( x+                            Data..?> "componentTypeSummaries"+                            Core..!@ Prelude.mempty+                        )+      )++instance Prelude.Hashable ListComponentTypes where+  hashWithSalt _salt ListComponentTypes' {..} =+    _salt+      `Prelude.hashWithSalt` filters+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` workspaceId++instance Prelude.NFData ListComponentTypes where+  rnf ListComponentTypes' {..} =+    Prelude.rnf filters+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf workspaceId++instance Data.ToHeaders ListComponentTypes where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListComponentTypes where+  toJSON ListComponentTypes' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("filters" Data..=) Prelude.<$> filters,+            ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken+          ]+      )++instance Data.ToPath ListComponentTypes where+  toPath ListComponentTypes' {..} =+    Prelude.mconcat+      [ "/workspaces/",+        Data.toBS workspaceId,+        "/component-types-list"+      ]++instance Data.ToQuery ListComponentTypes where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListComponentTypesResponse' smart constructor.+data ListComponentTypesResponse = ListComponentTypesResponse'+  { -- | Specifies the maximum number of results to display.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The string that specifies the next page of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The ID of the workspace.+    workspaceId :: Prelude.Text,+    -- | A list of objects that contain information about the component types.+    componentTypeSummaries :: [ComponentTypeSummary]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListComponentTypesResponse' 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', 'listComponentTypesResponse_maxResults' - Specifies the maximum number of results to display.+--+-- 'nextToken', 'listComponentTypesResponse_nextToken' - The string that specifies the next page of results.+--+-- 'httpStatus', 'listComponentTypesResponse_httpStatus' - The response's http status code.+--+-- 'workspaceId', 'listComponentTypesResponse_workspaceId' - The ID of the workspace.+--+-- 'componentTypeSummaries', 'listComponentTypesResponse_componentTypeSummaries' - A list of objects that contain information about the component types.+newListComponentTypesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'workspaceId'+  Prelude.Text ->+  ListComponentTypesResponse+newListComponentTypesResponse+  pHttpStatus_+  pWorkspaceId_ =+    ListComponentTypesResponse'+      { maxResults =+          Prelude.Nothing,+        nextToken = Prelude.Nothing,+        httpStatus = pHttpStatus_,+        workspaceId = pWorkspaceId_,+        componentTypeSummaries = Prelude.mempty+      }++-- | Specifies the maximum number of results to display.+listComponentTypesResponse_maxResults :: Lens.Lens' ListComponentTypesResponse (Prelude.Maybe Prelude.Natural)+listComponentTypesResponse_maxResults = Lens.lens (\ListComponentTypesResponse' {maxResults} -> maxResults) (\s@ListComponentTypesResponse' {} a -> s {maxResults = a} :: ListComponentTypesResponse)++-- | The string that specifies the next page of results.+listComponentTypesResponse_nextToken :: Lens.Lens' ListComponentTypesResponse (Prelude.Maybe Prelude.Text)+listComponentTypesResponse_nextToken = Lens.lens (\ListComponentTypesResponse' {nextToken} -> nextToken) (\s@ListComponentTypesResponse' {} a -> s {nextToken = a} :: ListComponentTypesResponse)++-- | The response's http status code.+listComponentTypesResponse_httpStatus :: Lens.Lens' ListComponentTypesResponse Prelude.Int+listComponentTypesResponse_httpStatus = Lens.lens (\ListComponentTypesResponse' {httpStatus} -> httpStatus) (\s@ListComponentTypesResponse' {} a -> s {httpStatus = a} :: ListComponentTypesResponse)++-- | The ID of the workspace.+listComponentTypesResponse_workspaceId :: Lens.Lens' ListComponentTypesResponse Prelude.Text+listComponentTypesResponse_workspaceId = Lens.lens (\ListComponentTypesResponse' {workspaceId} -> workspaceId) (\s@ListComponentTypesResponse' {} a -> s {workspaceId = a} :: ListComponentTypesResponse)++-- | A list of objects that contain information about the component types.+listComponentTypesResponse_componentTypeSummaries :: Lens.Lens' ListComponentTypesResponse [ComponentTypeSummary]+listComponentTypesResponse_componentTypeSummaries = Lens.lens (\ListComponentTypesResponse' {componentTypeSummaries} -> componentTypeSummaries) (\s@ListComponentTypesResponse' {} a -> s {componentTypeSummaries = a} :: ListComponentTypesResponse) Prelude.. Lens.coerced++instance Prelude.NFData ListComponentTypesResponse where+  rnf ListComponentTypesResponse' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf workspaceId+      `Prelude.seq` Prelude.rnf componentTypeSummaries
+ gen/Amazonka/IotTwinMaker/ListEntities.hs view
@@ -0,0 +1,237 @@+{-# 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.IotTwinMaker.ListEntities+-- 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 entities in a workspace.+module Amazonka.IotTwinMaker.ListEntities+  ( -- * Creating a Request+    ListEntities (..),+    newListEntities,++    -- * Request Lenses+    listEntities_filters,+    listEntities_maxResults,+    listEntities_nextToken,+    listEntities_workspaceId,++    -- * Destructuring the Response+    ListEntitiesResponse (..),+    newListEntitiesResponse,++    -- * Response Lenses+    listEntitiesResponse_entitySummaries,+    listEntitiesResponse_nextToken,+    listEntitiesResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IotTwinMaker.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListEntities' smart constructor.+data ListEntities = ListEntities'+  { -- | A list of objects that filter the request.+    --+    -- Only one object is accepted as a valid input.+    filters :: Prelude.Maybe [ListEntitiesFilter],+    -- | The maximum number of results to return at one time. The default is 25.+    --+    -- Valid Range: Minimum value of 1. Maximum value of 250.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The string that specifies the next page of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The ID of the workspace.+    workspaceId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListEntities' 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:+--+-- 'filters', 'listEntities_filters' - A list of objects that filter the request.+--+-- Only one object is accepted as a valid input.+--+-- 'maxResults', 'listEntities_maxResults' - The maximum number of results to return at one time. The default is 25.+--+-- Valid Range: Minimum value of 1. Maximum value of 250.+--+-- 'nextToken', 'listEntities_nextToken' - The string that specifies the next page of results.+--+-- 'workspaceId', 'listEntities_workspaceId' - The ID of the workspace.+newListEntities ::+  -- | 'workspaceId'+  Prelude.Text ->+  ListEntities+newListEntities pWorkspaceId_ =+  ListEntities'+    { filters = Prelude.Nothing,+      maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      workspaceId = pWorkspaceId_+    }++-- | A list of objects that filter the request.+--+-- Only one object is accepted as a valid input.+listEntities_filters :: Lens.Lens' ListEntities (Prelude.Maybe [ListEntitiesFilter])+listEntities_filters = Lens.lens (\ListEntities' {filters} -> filters) (\s@ListEntities' {} a -> s {filters = a} :: ListEntities) Prelude.. Lens.mapping Lens.coerced++-- | The maximum number of results to return at one time. The default is 25.+--+-- Valid Range: Minimum value of 1. Maximum value of 250.+listEntities_maxResults :: Lens.Lens' ListEntities (Prelude.Maybe Prelude.Natural)+listEntities_maxResults = Lens.lens (\ListEntities' {maxResults} -> maxResults) (\s@ListEntities' {} a -> s {maxResults = a} :: ListEntities)++-- | The string that specifies the next page of results.+listEntities_nextToken :: Lens.Lens' ListEntities (Prelude.Maybe Prelude.Text)+listEntities_nextToken = Lens.lens (\ListEntities' {nextToken} -> nextToken) (\s@ListEntities' {} a -> s {nextToken = a} :: ListEntities)++-- | The ID of the workspace.+listEntities_workspaceId :: Lens.Lens' ListEntities Prelude.Text+listEntities_workspaceId = Lens.lens (\ListEntities' {workspaceId} -> workspaceId) (\s@ListEntities' {} a -> s {workspaceId = a} :: ListEntities)++instance Core.AWSRequest ListEntities where+  type AWSResponse ListEntities = ListEntitiesResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListEntitiesResponse'+            Prelude.<$> ( x+                            Data..?> "entitySummaries"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListEntities where+  hashWithSalt _salt ListEntities' {..} =+    _salt+      `Prelude.hashWithSalt` filters+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` workspaceId++instance Prelude.NFData ListEntities where+  rnf ListEntities' {..} =+    Prelude.rnf filters+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf workspaceId++instance Data.ToHeaders ListEntities where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListEntities where+  toJSON ListEntities' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("filters" Data..=) Prelude.<$> filters,+            ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken+          ]+      )++instance Data.ToPath ListEntities where+  toPath ListEntities' {..} =+    Prelude.mconcat+      [ "/workspaces/",+        Data.toBS workspaceId,+        "/entities-list"+      ]++instance Data.ToQuery ListEntities where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListEntitiesResponse' smart constructor.+data ListEntitiesResponse = ListEntitiesResponse'+  { -- | A list of objects that contain information about the entities.+    entitySummaries :: Prelude.Maybe [EntitySummary],+    -- | The string that specifies the next page of 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 'ListEntitiesResponse' 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:+--+-- 'entitySummaries', 'listEntitiesResponse_entitySummaries' - A list of objects that contain information about the entities.+--+-- 'nextToken', 'listEntitiesResponse_nextToken' - The string that specifies the next page of results.+--+-- 'httpStatus', 'listEntitiesResponse_httpStatus' - The response's http status code.+newListEntitiesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListEntitiesResponse+newListEntitiesResponse pHttpStatus_ =+  ListEntitiesResponse'+    { entitySummaries =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A list of objects that contain information about the entities.+listEntitiesResponse_entitySummaries :: Lens.Lens' ListEntitiesResponse (Prelude.Maybe [EntitySummary])+listEntitiesResponse_entitySummaries = Lens.lens (\ListEntitiesResponse' {entitySummaries} -> entitySummaries) (\s@ListEntitiesResponse' {} a -> s {entitySummaries = a} :: ListEntitiesResponse) Prelude.. Lens.mapping Lens.coerced++-- | The string that specifies the next page of results.+listEntitiesResponse_nextToken :: Lens.Lens' ListEntitiesResponse (Prelude.Maybe Prelude.Text)+listEntitiesResponse_nextToken = Lens.lens (\ListEntitiesResponse' {nextToken} -> nextToken) (\s@ListEntitiesResponse' {} a -> s {nextToken = a} :: ListEntitiesResponse)++-- | The response's http status code.+listEntitiesResponse_httpStatus :: Lens.Lens' ListEntitiesResponse Prelude.Int+listEntitiesResponse_httpStatus = Lens.lens (\ListEntitiesResponse' {httpStatus} -> httpStatus) (\s@ListEntitiesResponse' {} a -> s {httpStatus = a} :: ListEntitiesResponse)++instance Prelude.NFData ListEntitiesResponse where+  rnf ListEntitiesResponse' {..} =+    Prelude.rnf entitySummaries+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/IotTwinMaker/ListScenes.hs view
@@ -0,0 +1,208 @@+{-# 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.IotTwinMaker.ListScenes+-- 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 scenes in a workspace.+module Amazonka.IotTwinMaker.ListScenes+  ( -- * Creating a Request+    ListScenes (..),+    newListScenes,++    -- * Request Lenses+    listScenes_maxResults,+    listScenes_nextToken,+    listScenes_workspaceId,++    -- * Destructuring the Response+    ListScenesResponse (..),+    newListScenesResponse,++    -- * Response Lenses+    listScenesResponse_nextToken,+    listScenesResponse_sceneSummaries,+    listScenesResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IotTwinMaker.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListScenes' smart constructor.+data ListScenes = ListScenes'+  { -- | Specifies the maximum number of results to display.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The string that specifies the next page of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The ID of the workspace that contains the scenes.+    workspaceId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListScenes' 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', 'listScenes_maxResults' - Specifies the maximum number of results to display.+--+-- 'nextToken', 'listScenes_nextToken' - The string that specifies the next page of results.+--+-- 'workspaceId', 'listScenes_workspaceId' - The ID of the workspace that contains the scenes.+newListScenes ::+  -- | 'workspaceId'+  Prelude.Text ->+  ListScenes+newListScenes pWorkspaceId_ =+  ListScenes'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      workspaceId = pWorkspaceId_+    }++-- | Specifies the maximum number of results to display.+listScenes_maxResults :: Lens.Lens' ListScenes (Prelude.Maybe Prelude.Natural)+listScenes_maxResults = Lens.lens (\ListScenes' {maxResults} -> maxResults) (\s@ListScenes' {} a -> s {maxResults = a} :: ListScenes)++-- | The string that specifies the next page of results.+listScenes_nextToken :: Lens.Lens' ListScenes (Prelude.Maybe Prelude.Text)+listScenes_nextToken = Lens.lens (\ListScenes' {nextToken} -> nextToken) (\s@ListScenes' {} a -> s {nextToken = a} :: ListScenes)++-- | The ID of the workspace that contains the scenes.+listScenes_workspaceId :: Lens.Lens' ListScenes Prelude.Text+listScenes_workspaceId = Lens.lens (\ListScenes' {workspaceId} -> workspaceId) (\s@ListScenes' {} a -> s {workspaceId = a} :: ListScenes)++instance Core.AWSRequest ListScenes where+  type AWSResponse ListScenes = ListScenesResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListScenesResponse'+            Prelude.<$> (x Data..?> "nextToken")+            Prelude.<*> (x Data..?> "sceneSummaries" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListScenes where+  hashWithSalt _salt ListScenes' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` workspaceId++instance Prelude.NFData ListScenes where+  rnf ListScenes' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf workspaceId++instance Data.ToHeaders ListScenes where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListScenes where+  toJSON ListScenes' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken+          ]+      )++instance Data.ToPath ListScenes where+  toPath ListScenes' {..} =+    Prelude.mconcat+      [ "/workspaces/",+        Data.toBS workspaceId,+        "/scenes-list"+      ]++instance Data.ToQuery ListScenes where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListScenesResponse' smart constructor.+data ListScenesResponse = ListScenesResponse'+  { -- | The string that specifies the next page of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | A list of objects that contain information about the scenes.+    sceneSummaries :: Prelude.Maybe [SceneSummary],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListScenesResponse' 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', 'listScenesResponse_nextToken' - The string that specifies the next page of results.+--+-- 'sceneSummaries', 'listScenesResponse_sceneSummaries' - A list of objects that contain information about the scenes.+--+-- 'httpStatus', 'listScenesResponse_httpStatus' - The response's http status code.+newListScenesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListScenesResponse+newListScenesResponse pHttpStatus_ =+  ListScenesResponse'+    { nextToken = Prelude.Nothing,+      sceneSummaries = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The string that specifies the next page of results.+listScenesResponse_nextToken :: Lens.Lens' ListScenesResponse (Prelude.Maybe Prelude.Text)+listScenesResponse_nextToken = Lens.lens (\ListScenesResponse' {nextToken} -> nextToken) (\s@ListScenesResponse' {} a -> s {nextToken = a} :: ListScenesResponse)++-- | A list of objects that contain information about the scenes.+listScenesResponse_sceneSummaries :: Lens.Lens' ListScenesResponse (Prelude.Maybe [SceneSummary])+listScenesResponse_sceneSummaries = Lens.lens (\ListScenesResponse' {sceneSummaries} -> sceneSummaries) (\s@ListScenesResponse' {} a -> s {sceneSummaries = a} :: ListScenesResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listScenesResponse_httpStatus :: Lens.Lens' ListScenesResponse Prelude.Int+listScenesResponse_httpStatus = Lens.lens (\ListScenesResponse' {httpStatus} -> httpStatus) (\s@ListScenesResponse' {} a -> s {httpStatus = a} :: ListScenesResponse)++instance Prelude.NFData ListScenesResponse where+  rnf ListScenesResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf sceneSummaries+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/IotTwinMaker/ListSyncJobs.hs view
@@ -0,0 +1,217 @@+{-# 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.IotTwinMaker.ListSyncJobs+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- List all SyncJobs.+module Amazonka.IotTwinMaker.ListSyncJobs+  ( -- * Creating a Request+    ListSyncJobs (..),+    newListSyncJobs,++    -- * Request Lenses+    listSyncJobs_maxResults,+    listSyncJobs_nextToken,+    listSyncJobs_workspaceId,++    -- * Destructuring the Response+    ListSyncJobsResponse (..),+    newListSyncJobsResponse,++    -- * Response Lenses+    listSyncJobsResponse_nextToken,+    listSyncJobsResponse_syncJobSummaries,+    listSyncJobsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IotTwinMaker.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListSyncJobs' smart constructor.+data ListSyncJobs = ListSyncJobs'+  { -- | The maximum number of results to return at one time. The default is 50.+    --+    -- Valid Range: Minimum value of 0. Maximum value of 200.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The string that specifies the next page of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The ID of the workspace that contains the sync job.+    workspaceId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListSyncJobs' 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', 'listSyncJobs_maxResults' - The maximum number of results to return at one time. The default is 50.+--+-- Valid Range: Minimum value of 0. Maximum value of 200.+--+-- 'nextToken', 'listSyncJobs_nextToken' - The string that specifies the next page of results.+--+-- 'workspaceId', 'listSyncJobs_workspaceId' - The ID of the workspace that contains the sync job.+newListSyncJobs ::+  -- | 'workspaceId'+  Prelude.Text ->+  ListSyncJobs+newListSyncJobs pWorkspaceId_ =+  ListSyncJobs'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      workspaceId = pWorkspaceId_+    }++-- | The maximum number of results to return at one time. The default is 50.+--+-- Valid Range: Minimum value of 0. Maximum value of 200.+listSyncJobs_maxResults :: Lens.Lens' ListSyncJobs (Prelude.Maybe Prelude.Natural)+listSyncJobs_maxResults = Lens.lens (\ListSyncJobs' {maxResults} -> maxResults) (\s@ListSyncJobs' {} a -> s {maxResults = a} :: ListSyncJobs)++-- | The string that specifies the next page of results.+listSyncJobs_nextToken :: Lens.Lens' ListSyncJobs (Prelude.Maybe Prelude.Text)+listSyncJobs_nextToken = Lens.lens (\ListSyncJobs' {nextToken} -> nextToken) (\s@ListSyncJobs' {} a -> s {nextToken = a} :: ListSyncJobs)++-- | The ID of the workspace that contains the sync job.+listSyncJobs_workspaceId :: Lens.Lens' ListSyncJobs Prelude.Text+listSyncJobs_workspaceId = Lens.lens (\ListSyncJobs' {workspaceId} -> workspaceId) (\s@ListSyncJobs' {} a -> s {workspaceId = a} :: ListSyncJobs)++instance Core.AWSRequest ListSyncJobs where+  type AWSResponse ListSyncJobs = ListSyncJobsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListSyncJobsResponse'+            Prelude.<$> (x Data..?> "nextToken")+            Prelude.<*> ( x+                            Data..?> "syncJobSummaries"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListSyncJobs where+  hashWithSalt _salt ListSyncJobs' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` workspaceId++instance Prelude.NFData ListSyncJobs where+  rnf ListSyncJobs' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf workspaceId++instance Data.ToHeaders ListSyncJobs where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListSyncJobs where+  toJSON ListSyncJobs' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken+          ]+      )++instance Data.ToPath ListSyncJobs where+  toPath ListSyncJobs' {..} =+    Prelude.mconcat+      [ "/workspaces/",+        Data.toBS workspaceId,+        "/sync-jobs-list"+      ]++instance Data.ToQuery ListSyncJobs where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListSyncJobsResponse' smart constructor.+data ListSyncJobsResponse = ListSyncJobsResponse'+  { -- | The string that specifies the next page of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The listed SyncJob summaries.+    syncJobSummaries :: Prelude.Maybe [SyncJobSummary],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListSyncJobsResponse' 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', 'listSyncJobsResponse_nextToken' - The string that specifies the next page of results.+--+-- 'syncJobSummaries', 'listSyncJobsResponse_syncJobSummaries' - The listed SyncJob summaries.+--+-- 'httpStatus', 'listSyncJobsResponse_httpStatus' - The response's http status code.+newListSyncJobsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListSyncJobsResponse+newListSyncJobsResponse pHttpStatus_ =+  ListSyncJobsResponse'+    { nextToken = Prelude.Nothing,+      syncJobSummaries = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The string that specifies the next page of results.+listSyncJobsResponse_nextToken :: Lens.Lens' ListSyncJobsResponse (Prelude.Maybe Prelude.Text)+listSyncJobsResponse_nextToken = Lens.lens (\ListSyncJobsResponse' {nextToken} -> nextToken) (\s@ListSyncJobsResponse' {} a -> s {nextToken = a} :: ListSyncJobsResponse)++-- | The listed SyncJob summaries.+listSyncJobsResponse_syncJobSummaries :: Lens.Lens' ListSyncJobsResponse (Prelude.Maybe [SyncJobSummary])+listSyncJobsResponse_syncJobSummaries = Lens.lens (\ListSyncJobsResponse' {syncJobSummaries} -> syncJobSummaries) (\s@ListSyncJobsResponse' {} a -> s {syncJobSummaries = a} :: ListSyncJobsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listSyncJobsResponse_httpStatus :: Lens.Lens' ListSyncJobsResponse Prelude.Int+listSyncJobsResponse_httpStatus = Lens.lens (\ListSyncJobsResponse' {httpStatus} -> httpStatus) (\s@ListSyncJobsResponse' {} a -> s {httpStatus = a} :: ListSyncJobsResponse)++instance Prelude.NFData ListSyncJobsResponse where+  rnf ListSyncJobsResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf syncJobSummaries+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/IotTwinMaker/ListSyncResources.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.IotTwinMaker.ListSyncResources+-- 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 sync resources.+module Amazonka.IotTwinMaker.ListSyncResources+  ( -- * Creating a Request+    ListSyncResources (..),+    newListSyncResources,++    -- * Request Lenses+    listSyncResources_filters,+    listSyncResources_maxResults,+    listSyncResources_nextToken,+    listSyncResources_workspaceId,+    listSyncResources_syncSource,++    -- * Destructuring the Response+    ListSyncResourcesResponse (..),+    newListSyncResourcesResponse,++    -- * Response Lenses+    listSyncResourcesResponse_nextToken,+    listSyncResourcesResponse_syncResources,+    listSyncResourcesResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IotTwinMaker.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListSyncResources' smart constructor.+data ListSyncResources = ListSyncResources'+  { -- | A list of objects that filter the request.+    filters :: Prelude.Maybe [SyncResourceFilter],+    -- | The maximum number of results to return at one time. The default is 50.+    --+    -- Valid Range: Minimum value of 0. Maximum value of 200.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The string that specifies the next page of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The ID of the workspace that contains the sync job.+    workspaceId :: Prelude.Text,+    -- | The sync soucre.+    --+    -- Currently the only supported syncSoucre is @SITEWISE @.+    syncSource :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListSyncResources' 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:+--+-- 'filters', 'listSyncResources_filters' - A list of objects that filter the request.+--+-- 'maxResults', 'listSyncResources_maxResults' - The maximum number of results to return at one time. The default is 50.+--+-- Valid Range: Minimum value of 0. Maximum value of 200.+--+-- 'nextToken', 'listSyncResources_nextToken' - The string that specifies the next page of results.+--+-- 'workspaceId', 'listSyncResources_workspaceId' - The ID of the workspace that contains the sync job.+--+-- 'syncSource', 'listSyncResources_syncSource' - The sync soucre.+--+-- Currently the only supported syncSoucre is @SITEWISE @.+newListSyncResources ::+  -- | 'workspaceId'+  Prelude.Text ->+  -- | 'syncSource'+  Prelude.Text ->+  ListSyncResources+newListSyncResources pWorkspaceId_ pSyncSource_ =+  ListSyncResources'+    { filters = Prelude.Nothing,+      maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      workspaceId = pWorkspaceId_,+      syncSource = pSyncSource_+    }++-- | A list of objects that filter the request.+listSyncResources_filters :: Lens.Lens' ListSyncResources (Prelude.Maybe [SyncResourceFilter])+listSyncResources_filters = Lens.lens (\ListSyncResources' {filters} -> filters) (\s@ListSyncResources' {} a -> s {filters = a} :: ListSyncResources) Prelude.. Lens.mapping Lens.coerced++-- | The maximum number of results to return at one time. The default is 50.+--+-- Valid Range: Minimum value of 0. Maximum value of 200.+listSyncResources_maxResults :: Lens.Lens' ListSyncResources (Prelude.Maybe Prelude.Natural)+listSyncResources_maxResults = Lens.lens (\ListSyncResources' {maxResults} -> maxResults) (\s@ListSyncResources' {} a -> s {maxResults = a} :: ListSyncResources)++-- | The string that specifies the next page of results.+listSyncResources_nextToken :: Lens.Lens' ListSyncResources (Prelude.Maybe Prelude.Text)+listSyncResources_nextToken = Lens.lens (\ListSyncResources' {nextToken} -> nextToken) (\s@ListSyncResources' {} a -> s {nextToken = a} :: ListSyncResources)++-- | The ID of the workspace that contains the sync job.+listSyncResources_workspaceId :: Lens.Lens' ListSyncResources Prelude.Text+listSyncResources_workspaceId = Lens.lens (\ListSyncResources' {workspaceId} -> workspaceId) (\s@ListSyncResources' {} a -> s {workspaceId = a} :: ListSyncResources)++-- | The sync soucre.+--+-- Currently the only supported syncSoucre is @SITEWISE @.+listSyncResources_syncSource :: Lens.Lens' ListSyncResources Prelude.Text+listSyncResources_syncSource = Lens.lens (\ListSyncResources' {syncSource} -> syncSource) (\s@ListSyncResources' {} a -> s {syncSource = a} :: ListSyncResources)++instance Core.AWSRequest ListSyncResources where+  type+    AWSResponse ListSyncResources =+      ListSyncResourcesResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListSyncResourcesResponse'+            Prelude.<$> (x Data..?> "nextToken")+            Prelude.<*> (x Data..?> "syncResources" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListSyncResources where+  hashWithSalt _salt ListSyncResources' {..} =+    _salt+      `Prelude.hashWithSalt` filters+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` workspaceId+      `Prelude.hashWithSalt` syncSource++instance Prelude.NFData ListSyncResources where+  rnf ListSyncResources' {..} =+    Prelude.rnf filters+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf workspaceId+      `Prelude.seq` Prelude.rnf syncSource++instance Data.ToHeaders ListSyncResources where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListSyncResources where+  toJSON ListSyncResources' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("filters" Data..=) Prelude.<$> filters,+            ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken+          ]+      )++instance Data.ToPath ListSyncResources where+  toPath ListSyncResources' {..} =+    Prelude.mconcat+      [ "/workspaces/",+        Data.toBS workspaceId,+        "/sync-jobs/",+        Data.toBS syncSource,+        "/resources-list"+      ]++instance Data.ToQuery ListSyncResources where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListSyncResourcesResponse' smart constructor.+data ListSyncResourcesResponse = ListSyncResourcesResponse'+  { -- | The string that specifies the next page of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The sync resources.+    syncResources :: Prelude.Maybe [SyncResourceSummary],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListSyncResourcesResponse' 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', 'listSyncResourcesResponse_nextToken' - The string that specifies the next page of results.+--+-- 'syncResources', 'listSyncResourcesResponse_syncResources' - The sync resources.+--+-- 'httpStatus', 'listSyncResourcesResponse_httpStatus' - The response's http status code.+newListSyncResourcesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListSyncResourcesResponse+newListSyncResourcesResponse pHttpStatus_ =+  ListSyncResourcesResponse'+    { nextToken =+        Prelude.Nothing,+      syncResources = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The string that specifies the next page of results.+listSyncResourcesResponse_nextToken :: Lens.Lens' ListSyncResourcesResponse (Prelude.Maybe Prelude.Text)+listSyncResourcesResponse_nextToken = Lens.lens (\ListSyncResourcesResponse' {nextToken} -> nextToken) (\s@ListSyncResourcesResponse' {} a -> s {nextToken = a} :: ListSyncResourcesResponse)++-- | The sync resources.+listSyncResourcesResponse_syncResources :: Lens.Lens' ListSyncResourcesResponse (Prelude.Maybe [SyncResourceSummary])+listSyncResourcesResponse_syncResources = Lens.lens (\ListSyncResourcesResponse' {syncResources} -> syncResources) (\s@ListSyncResourcesResponse' {} a -> s {syncResources = a} :: ListSyncResourcesResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listSyncResourcesResponse_httpStatus :: Lens.Lens' ListSyncResourcesResponse Prelude.Int+listSyncResourcesResponse_httpStatus = Lens.lens (\ListSyncResourcesResponse' {httpStatus} -> httpStatus) (\s@ListSyncResourcesResponse' {} a -> s {httpStatus = a} :: ListSyncResourcesResponse)++instance Prelude.NFData ListSyncResourcesResponse where+  rnf ListSyncResourcesResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf syncResources+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/IotTwinMaker/ListTagsForResource.hs view
@@ -0,0 +1,213 @@+{-# 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.IotTwinMaker.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 all tags associated with a resource.+module Amazonka.IotTwinMaker.ListTagsForResource+  ( -- * Creating a Request+    ListTagsForResource (..),+    newListTagsForResource,++    -- * Request Lenses+    listTagsForResource_maxResults,+    listTagsForResource_nextToken,+    listTagsForResource_resourceARN,++    -- * Destructuring the Response+    ListTagsForResourceResponse (..),+    newListTagsForResourceResponse,++    -- * Response Lenses+    listTagsForResourceResponse_nextToken,+    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.IotTwinMaker.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 maximum number of results to return at one time. The default is 25.+    --+    -- Valid Range: Minimum value of 1. Maximum value of 250.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The string that specifies the next page of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | 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:+--+-- 'maxResults', 'listTagsForResource_maxResults' - The maximum number of results to return at one time. The default is 25.+--+-- Valid Range: Minimum value of 1. Maximum value of 250.+--+-- 'nextToken', 'listTagsForResource_nextToken' - The string that specifies the next page of results.+--+-- 'resourceARN', 'listTagsForResource_resourceARN' - The ARN of the resource.+newListTagsForResource ::+  -- | 'resourceARN'+  Prelude.Text ->+  ListTagsForResource+newListTagsForResource pResourceARN_ =+  ListTagsForResource'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      resourceARN = pResourceARN_+    }++-- | The maximum number of results to return at one time. The default is 25.+--+-- Valid Range: Minimum value of 1. Maximum value of 250.+listTagsForResource_maxResults :: Lens.Lens' ListTagsForResource (Prelude.Maybe Prelude.Natural)+listTagsForResource_maxResults = Lens.lens (\ListTagsForResource' {maxResults} -> maxResults) (\s@ListTagsForResource' {} a -> s {maxResults = a} :: ListTagsForResource)++-- | The string that specifies the next page of results.+listTagsForResource_nextToken :: Lens.Lens' ListTagsForResource (Prelude.Maybe Prelude.Text)+listTagsForResource_nextToken = Lens.lens (\ListTagsForResource' {nextToken} -> nextToken) (\s@ListTagsForResource' {} a -> s {nextToken = a} :: ListTagsForResource)++-- | 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..?> "nextToken")+            Prelude.<*> (x Data..?> "tags" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListTagsForResource where+  hashWithSalt _salt ListTagsForResource' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` resourceARN++instance Prelude.NFData ListTagsForResource where+  rnf ListTagsForResource' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf resourceARN++instance Data.ToHeaders ListTagsForResource where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListTagsForResource where+  toJSON ListTagsForResource' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken,+            Prelude.Just ("resourceARN" Data..= resourceARN)+          ]+      )++instance Data.ToPath ListTagsForResource where+  toPath = Prelude.const "/tags-list"++instance Data.ToQuery ListTagsForResource where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListTagsForResourceResponse' smart constructor.+data ListTagsForResourceResponse = ListTagsForResourceResponse'+  { -- | The string that specifies the next page of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | Metadata that you can use to manage a resource.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | 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:+--+-- 'nextToken', 'listTagsForResourceResponse_nextToken' - The string that specifies the next page of results.+--+-- 'tags', 'listTagsForResourceResponse_tags' - Metadata that you can use to manage a resource.+--+-- 'httpStatus', 'listTagsForResourceResponse_httpStatus' - The response's http status code.+newListTagsForResourceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListTagsForResourceResponse+newListTagsForResourceResponse pHttpStatus_ =+  ListTagsForResourceResponse'+    { nextToken =+        Prelude.Nothing,+      tags = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The string that specifies the next page of results.+listTagsForResourceResponse_nextToken :: Lens.Lens' ListTagsForResourceResponse (Prelude.Maybe Prelude.Text)+listTagsForResourceResponse_nextToken = Lens.lens (\ListTagsForResourceResponse' {nextToken} -> nextToken) (\s@ListTagsForResourceResponse' {} a -> s {nextToken = a} :: ListTagsForResourceResponse)++-- | Metadata that you can use to manage a resource.+listTagsForResourceResponse_tags :: Lens.Lens' ListTagsForResourceResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+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 nextToken+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/IotTwinMaker/ListWorkspaces.hs view
@@ -0,0 +1,201 @@+{-# 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.IotTwinMaker.ListWorkspaces+-- 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 workspaces in the current account.+module Amazonka.IotTwinMaker.ListWorkspaces+  ( -- * Creating a Request+    ListWorkspaces (..),+    newListWorkspaces,++    -- * Request Lenses+    listWorkspaces_maxResults,+    listWorkspaces_nextToken,++    -- * Destructuring the Response+    ListWorkspacesResponse (..),+    newListWorkspacesResponse,++    -- * Response Lenses+    listWorkspacesResponse_nextToken,+    listWorkspacesResponse_workspaceSummaries,+    listWorkspacesResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IotTwinMaker.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListWorkspaces' smart constructor.+data ListWorkspaces = ListWorkspaces'+  { -- | The maximum number of results to return at one time. The default is 25.+    --+    -- Valid Range: Minimum value of 1. Maximum value of 250.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The string that specifies the next page of results.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListWorkspaces' 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', 'listWorkspaces_maxResults' - The maximum number of results to return at one time. The default is 25.+--+-- Valid Range: Minimum value of 1. Maximum value of 250.+--+-- 'nextToken', 'listWorkspaces_nextToken' - The string that specifies the next page of results.+newListWorkspaces ::+  ListWorkspaces+newListWorkspaces =+  ListWorkspaces'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | The maximum number of results to return at one time. The default is 25.+--+-- Valid Range: Minimum value of 1. Maximum value of 250.+listWorkspaces_maxResults :: Lens.Lens' ListWorkspaces (Prelude.Maybe Prelude.Natural)+listWorkspaces_maxResults = Lens.lens (\ListWorkspaces' {maxResults} -> maxResults) (\s@ListWorkspaces' {} a -> s {maxResults = a} :: ListWorkspaces)++-- | The string that specifies the next page of results.+listWorkspaces_nextToken :: Lens.Lens' ListWorkspaces (Prelude.Maybe Prelude.Text)+listWorkspaces_nextToken = Lens.lens (\ListWorkspaces' {nextToken} -> nextToken) (\s@ListWorkspaces' {} a -> s {nextToken = a} :: ListWorkspaces)++instance Core.AWSRequest ListWorkspaces where+  type+    AWSResponse ListWorkspaces =+      ListWorkspacesResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListWorkspacesResponse'+            Prelude.<$> (x Data..?> "nextToken")+            Prelude.<*> ( x+                            Data..?> "workspaceSummaries"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListWorkspaces where+  hashWithSalt _salt ListWorkspaces' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListWorkspaces where+  rnf ListWorkspaces' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListWorkspaces where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListWorkspaces where+  toJSON ListWorkspaces' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken+          ]+      )++instance Data.ToPath ListWorkspaces where+  toPath = Prelude.const "/workspaces-list"++instance Data.ToQuery ListWorkspaces where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListWorkspacesResponse' smart constructor.+data ListWorkspacesResponse = ListWorkspacesResponse'+  { -- | The string that specifies the next page of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | A list of objects that contain information about the workspaces.+    workspaceSummaries :: Prelude.Maybe [WorkspaceSummary],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListWorkspacesResponse' 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', 'listWorkspacesResponse_nextToken' - The string that specifies the next page of results.+--+-- 'workspaceSummaries', 'listWorkspacesResponse_workspaceSummaries' - A list of objects that contain information about the workspaces.+--+-- 'httpStatus', 'listWorkspacesResponse_httpStatus' - The response's http status code.+newListWorkspacesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListWorkspacesResponse+newListWorkspacesResponse pHttpStatus_ =+  ListWorkspacesResponse'+    { nextToken =+        Prelude.Nothing,+      workspaceSummaries = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The string that specifies the next page of results.+listWorkspacesResponse_nextToken :: Lens.Lens' ListWorkspacesResponse (Prelude.Maybe Prelude.Text)+listWorkspacesResponse_nextToken = Lens.lens (\ListWorkspacesResponse' {nextToken} -> nextToken) (\s@ListWorkspacesResponse' {} a -> s {nextToken = a} :: ListWorkspacesResponse)++-- | A list of objects that contain information about the workspaces.+listWorkspacesResponse_workspaceSummaries :: Lens.Lens' ListWorkspacesResponse (Prelude.Maybe [WorkspaceSummary])+listWorkspacesResponse_workspaceSummaries = Lens.lens (\ListWorkspacesResponse' {workspaceSummaries} -> workspaceSummaries) (\s@ListWorkspacesResponse' {} a -> s {workspaceSummaries = a} :: ListWorkspacesResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listWorkspacesResponse_httpStatus :: Lens.Lens' ListWorkspacesResponse Prelude.Int+listWorkspacesResponse_httpStatus = Lens.lens (\ListWorkspacesResponse' {httpStatus} -> httpStatus) (\s@ListWorkspacesResponse' {} a -> s {httpStatus = a} :: ListWorkspacesResponse)++instance Prelude.NFData ListWorkspacesResponse where+  rnf ListWorkspacesResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf workspaceSummaries+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/IotTwinMaker/TagResource.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.IotTwinMaker.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 tags to a resource.+module Amazonka.IotTwinMaker.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.IotTwinMaker.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,+    -- | Metadata to add to this resource.+    tags :: Prelude.HashMap Prelude.Text Prelude.Text+  }+  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' - Metadata to add to this 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)++-- | Metadata to add to this resource.+tagResource_tags :: Lens.Lens' TagResource (Prelude.HashMap Prelude.Text Prelude.Text)+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+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          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 "/tags"++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/IotTwinMaker/Types.hs view
@@ -0,0 +1,692 @@+{-# 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.IotTwinMaker.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.IotTwinMaker.Types+  ( -- * Service Configuration+    defaultService,++    -- * Errors+    _AccessDeniedException,+    _ConflictException,+    _ConnectorFailureException,+    _ConnectorTimeoutException,+    _InternalServerException,+    _QueryTimeoutException,+    _ResourceNotFoundException,+    _ServiceQuotaExceededException,+    _ThrottlingException,+    _TooManyTagsException,+    _ValidationException,++    -- * ColumnType+    ColumnType (..),++    -- * ComponentUpdateType+    ComponentUpdateType (..),++    -- * ErrorCode+    ErrorCode (..),++    -- * GroupType+    GroupType (..),++    -- * InterpolationType+    InterpolationType (..),++    -- * Order+    Order (..),++    -- * OrderByTime+    OrderByTime (..),++    -- * ParentEntityUpdateType+    ParentEntityUpdateType (..),++    -- * PricingMode+    PricingMode (..),++    -- * PricingTier+    PricingTier (..),++    -- * PropertyGroupUpdateType+    PropertyGroupUpdateType (..),++    -- * PropertyUpdateType+    PropertyUpdateType (..),++    -- * Scope+    Scope (..),++    -- * State+    State (..),++    -- * SyncJobState+    SyncJobState (..),++    -- * SyncResourceState+    SyncResourceState (..),++    -- * SyncResourceType+    SyncResourceType (..),++    -- * Type+    Type (..),++    -- * UpdateReason+    UpdateReason (..),++    -- * BatchPutPropertyError+    BatchPutPropertyError (..),+    newBatchPutPropertyError,+    batchPutPropertyError_errorCode,+    batchPutPropertyError_errorMessage,+    batchPutPropertyError_entry,++    -- * BatchPutPropertyErrorEntry+    BatchPutPropertyErrorEntry (..),+    newBatchPutPropertyErrorEntry,+    batchPutPropertyErrorEntry_errors,++    -- * BundleInformation+    BundleInformation (..),+    newBundleInformation,+    bundleInformation_pricingTier,+    bundleInformation_bundleNames,++    -- * ColumnDescription+    ColumnDescription (..),+    newColumnDescription,+    columnDescription_name,+    columnDescription_type,++    -- * ComponentPropertyGroupRequest+    ComponentPropertyGroupRequest (..),+    newComponentPropertyGroupRequest,+    componentPropertyGroupRequest_groupType,+    componentPropertyGroupRequest_propertyNames,+    componentPropertyGroupRequest_updateType,++    -- * ComponentPropertyGroupResponse+    ComponentPropertyGroupResponse (..),+    newComponentPropertyGroupResponse,+    componentPropertyGroupResponse_groupType,+    componentPropertyGroupResponse_propertyNames,+    componentPropertyGroupResponse_isInherited,++    -- * ComponentRequest+    ComponentRequest (..),+    newComponentRequest,+    componentRequest_componentTypeId,+    componentRequest_description,+    componentRequest_properties,+    componentRequest_propertyGroups,++    -- * ComponentResponse+    ComponentResponse (..),+    newComponentResponse,+    componentResponse_componentName,+    componentResponse_componentTypeId,+    componentResponse_definedIn,+    componentResponse_description,+    componentResponse_properties,+    componentResponse_propertyGroups,+    componentResponse_status,+    componentResponse_syncSource,++    -- * ComponentTypeSummary+    ComponentTypeSummary (..),+    newComponentTypeSummary,+    componentTypeSummary_componentTypeName,+    componentTypeSummary_description,+    componentTypeSummary_status,+    componentTypeSummary_arn,+    componentTypeSummary_componentTypeId,+    componentTypeSummary_creationDateTime,+    componentTypeSummary_updateDateTime,++    -- * ComponentUpdateRequest+    ComponentUpdateRequest (..),+    newComponentUpdateRequest,+    componentUpdateRequest_componentTypeId,+    componentUpdateRequest_description,+    componentUpdateRequest_propertyGroupUpdates,+    componentUpdateRequest_propertyUpdates,+    componentUpdateRequest_updateType,++    -- * DataConnector+    DataConnector (..),+    newDataConnector,+    dataConnector_isNative,+    dataConnector_lambda,++    -- * DataType+    DataType (..),+    newDataType,+    dataType_allowedValues,+    dataType_nestedType,+    dataType_relationship,+    dataType_unitOfMeasure,+    dataType_type,++    -- * DataValue+    DataValue (..),+    newDataValue,+    dataValue_booleanValue,+    dataValue_doubleValue,+    dataValue_expression,+    dataValue_integerValue,+    dataValue_listValue,+    dataValue_longValue,+    dataValue_mapValue,+    dataValue_relationshipValue,+    dataValue_stringValue,++    -- * EntityPropertyReference+    EntityPropertyReference (..),+    newEntityPropertyReference,+    entityPropertyReference_componentName,+    entityPropertyReference_entityId,+    entityPropertyReference_externalIdProperty,+    entityPropertyReference_propertyName,++    -- * EntitySummary+    EntitySummary (..),+    newEntitySummary,+    entitySummary_description,+    entitySummary_hasChildEntities,+    entitySummary_parentEntityId,+    entitySummary_entityId,+    entitySummary_entityName,+    entitySummary_arn,+    entitySummary_status,+    entitySummary_creationDateTime,+    entitySummary_updateDateTime,++    -- * ErrorDetails+    ErrorDetails (..),+    newErrorDetails,+    errorDetails_code,+    errorDetails_message,++    -- * FunctionRequest+    FunctionRequest (..),+    newFunctionRequest,+    functionRequest_implementedBy,+    functionRequest_requiredProperties,+    functionRequest_scope,++    -- * FunctionResponse+    FunctionResponse (..),+    newFunctionResponse,+    functionResponse_implementedBy,+    functionResponse_isInherited,+    functionResponse_requiredProperties,+    functionResponse_scope,++    -- * InterpolationParameters+    InterpolationParameters (..),+    newInterpolationParameters,+    interpolationParameters_interpolationType,+    interpolationParameters_intervalInSeconds,++    -- * LambdaFunction+    LambdaFunction (..),+    newLambdaFunction,+    lambdaFunction_arn,++    -- * ListComponentTypesFilter+    ListComponentTypesFilter (..),+    newListComponentTypesFilter,+    listComponentTypesFilter_extendsFrom,+    listComponentTypesFilter_isAbstract,+    listComponentTypesFilter_namespace,++    -- * ListEntitiesFilter+    ListEntitiesFilter (..),+    newListEntitiesFilter,+    listEntitiesFilter_componentTypeId,+    listEntitiesFilter_externalId,+    listEntitiesFilter_parentEntityId,++    -- * OrderBy+    OrderBy (..),+    newOrderBy,+    orderBy_order,+    orderBy_propertyName,++    -- * ParentEntityUpdateRequest+    ParentEntityUpdateRequest (..),+    newParentEntityUpdateRequest,+    parentEntityUpdateRequest_parentEntityId,+    parentEntityUpdateRequest_updateType,++    -- * PricingPlan+    PricingPlan (..),+    newPricingPlan,+    pricingPlan_billableEntityCount,+    pricingPlan_bundleInformation,+    pricingPlan_effectiveDateTime,+    pricingPlan_pricingMode,+    pricingPlan_updateDateTime,+    pricingPlan_updateReason,++    -- * PropertyDefinitionRequest+    PropertyDefinitionRequest (..),+    newPropertyDefinitionRequest,+    propertyDefinitionRequest_configuration,+    propertyDefinitionRequest_dataType,+    propertyDefinitionRequest_defaultValue,+    propertyDefinitionRequest_displayName,+    propertyDefinitionRequest_isExternalId,+    propertyDefinitionRequest_isRequiredInEntity,+    propertyDefinitionRequest_isStoredExternally,+    propertyDefinitionRequest_isTimeSeries,++    -- * PropertyDefinitionResponse+    PropertyDefinitionResponse (..),+    newPropertyDefinitionResponse,+    propertyDefinitionResponse_configuration,+    propertyDefinitionResponse_defaultValue,+    propertyDefinitionResponse_displayName,+    propertyDefinitionResponse_dataType,+    propertyDefinitionResponse_isTimeSeries,+    propertyDefinitionResponse_isRequiredInEntity,+    propertyDefinitionResponse_isExternalId,+    propertyDefinitionResponse_isStoredExternally,+    propertyDefinitionResponse_isImported,+    propertyDefinitionResponse_isFinal,+    propertyDefinitionResponse_isInherited,++    -- * PropertyFilter+    PropertyFilter (..),+    newPropertyFilter,+    propertyFilter_operator,+    propertyFilter_propertyName,+    propertyFilter_value,++    -- * PropertyGroupRequest+    PropertyGroupRequest (..),+    newPropertyGroupRequest,+    propertyGroupRequest_groupType,+    propertyGroupRequest_propertyNames,++    -- * PropertyGroupResponse+    PropertyGroupResponse (..),+    newPropertyGroupResponse,+    propertyGroupResponse_groupType,+    propertyGroupResponse_propertyNames,+    propertyGroupResponse_isInherited,++    -- * PropertyLatestValue+    PropertyLatestValue (..),+    newPropertyLatestValue,+    propertyLatestValue_propertyValue,+    propertyLatestValue_propertyReference,++    -- * PropertyRequest+    PropertyRequest (..),+    newPropertyRequest,+    propertyRequest_definition,+    propertyRequest_updateType,+    propertyRequest_value,++    -- * PropertyResponse+    PropertyResponse (..),+    newPropertyResponse,+    propertyResponse_definition,+    propertyResponse_value,++    -- * PropertyValue+    PropertyValue (..),+    newPropertyValue,+    propertyValue_time,+    propertyValue_timestamp,+    propertyValue_value,++    -- * PropertyValueEntry+    PropertyValueEntry (..),+    newPropertyValueEntry,+    propertyValueEntry_propertyValues,+    propertyValueEntry_entityPropertyReference,++    -- * PropertyValueHistory+    PropertyValueHistory (..),+    newPropertyValueHistory,+    propertyValueHistory_values,+    propertyValueHistory_entityPropertyReference,++    -- * QueryResultValue+    QueryResultValue (..),+    newQueryResultValue,++    -- * Relationship+    Relationship (..),+    newRelationship,+    relationship_relationshipType,+    relationship_targetComponentTypeId,++    -- * RelationshipValue+    RelationshipValue (..),+    newRelationshipValue,+    relationshipValue_targetComponentName,+    relationshipValue_targetEntityId,++    -- * Row+    Row (..),+    newRow,+    row_rowData,++    -- * SceneSummary+    SceneSummary (..),+    newSceneSummary,+    sceneSummary_description,+    sceneSummary_sceneId,+    sceneSummary_contentLocation,+    sceneSummary_arn,+    sceneSummary_creationDateTime,+    sceneSummary_updateDateTime,++    -- * Status+    Status (..),+    newStatus,+    status_error,+    status_state,++    -- * SyncJobStatus+    SyncJobStatus (..),+    newSyncJobStatus,+    syncJobStatus_error,+    syncJobStatus_state,++    -- * SyncJobSummary+    SyncJobSummary (..),+    newSyncJobSummary,+    syncJobSummary_arn,+    syncJobSummary_creationDateTime,+    syncJobSummary_status,+    syncJobSummary_syncSource,+    syncJobSummary_updateDateTime,+    syncJobSummary_workspaceId,++    -- * SyncResourceFilter+    SyncResourceFilter (..),+    newSyncResourceFilter,+    syncResourceFilter_externalId,+    syncResourceFilter_resourceId,+    syncResourceFilter_resourceType,+    syncResourceFilter_state,++    -- * SyncResourceStatus+    SyncResourceStatus (..),+    newSyncResourceStatus,+    syncResourceStatus_error,+    syncResourceStatus_state,++    -- * SyncResourceSummary+    SyncResourceSummary (..),+    newSyncResourceSummary,+    syncResourceSummary_externalId,+    syncResourceSummary_resourceId,+    syncResourceSummary_resourceType,+    syncResourceSummary_status,+    syncResourceSummary_updateDateTime,++    -- * TabularConditions+    TabularConditions (..),+    newTabularConditions,+    tabularConditions_orderBy,+    tabularConditions_propertyFilters,++    -- * WorkspaceSummary+    WorkspaceSummary (..),+    newWorkspaceSummary,+    workspaceSummary_description,+    workspaceSummary_workspaceId,+    workspaceSummary_arn,+    workspaceSummary_creationDateTime,+    workspaceSummary_updateDateTime,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.IotTwinMaker.Types.BatchPutPropertyError+import Amazonka.IotTwinMaker.Types.BatchPutPropertyErrorEntry+import Amazonka.IotTwinMaker.Types.BundleInformation+import Amazonka.IotTwinMaker.Types.ColumnDescription+import Amazonka.IotTwinMaker.Types.ColumnType+import Amazonka.IotTwinMaker.Types.ComponentPropertyGroupRequest+import Amazonka.IotTwinMaker.Types.ComponentPropertyGroupResponse+import Amazonka.IotTwinMaker.Types.ComponentRequest+import Amazonka.IotTwinMaker.Types.ComponentResponse+import Amazonka.IotTwinMaker.Types.ComponentTypeSummary+import Amazonka.IotTwinMaker.Types.ComponentUpdateRequest+import Amazonka.IotTwinMaker.Types.ComponentUpdateType+import Amazonka.IotTwinMaker.Types.DataConnector+import Amazonka.IotTwinMaker.Types.DataType+import Amazonka.IotTwinMaker.Types.DataValue+import Amazonka.IotTwinMaker.Types.EntityPropertyReference+import Amazonka.IotTwinMaker.Types.EntitySummary+import Amazonka.IotTwinMaker.Types.ErrorCode+import Amazonka.IotTwinMaker.Types.ErrorDetails+import Amazonka.IotTwinMaker.Types.FunctionRequest+import Amazonka.IotTwinMaker.Types.FunctionResponse+import Amazonka.IotTwinMaker.Types.GroupType+import Amazonka.IotTwinMaker.Types.InterpolationParameters+import Amazonka.IotTwinMaker.Types.InterpolationType+import Amazonka.IotTwinMaker.Types.LambdaFunction+import Amazonka.IotTwinMaker.Types.ListComponentTypesFilter+import Amazonka.IotTwinMaker.Types.ListEntitiesFilter+import Amazonka.IotTwinMaker.Types.Order+import Amazonka.IotTwinMaker.Types.OrderBy+import Amazonka.IotTwinMaker.Types.OrderByTime+import Amazonka.IotTwinMaker.Types.ParentEntityUpdateRequest+import Amazonka.IotTwinMaker.Types.ParentEntityUpdateType+import Amazonka.IotTwinMaker.Types.PricingMode+import Amazonka.IotTwinMaker.Types.PricingPlan+import Amazonka.IotTwinMaker.Types.PricingTier+import Amazonka.IotTwinMaker.Types.PropertyDefinitionRequest+import Amazonka.IotTwinMaker.Types.PropertyDefinitionResponse+import Amazonka.IotTwinMaker.Types.PropertyFilter+import Amazonka.IotTwinMaker.Types.PropertyGroupRequest+import Amazonka.IotTwinMaker.Types.PropertyGroupResponse+import Amazonka.IotTwinMaker.Types.PropertyGroupUpdateType+import Amazonka.IotTwinMaker.Types.PropertyLatestValue+import Amazonka.IotTwinMaker.Types.PropertyRequest+import Amazonka.IotTwinMaker.Types.PropertyResponse+import Amazonka.IotTwinMaker.Types.PropertyUpdateType+import Amazonka.IotTwinMaker.Types.PropertyValue+import Amazonka.IotTwinMaker.Types.PropertyValueEntry+import Amazonka.IotTwinMaker.Types.PropertyValueHistory+import Amazonka.IotTwinMaker.Types.QueryResultValue+import Amazonka.IotTwinMaker.Types.Relationship+import Amazonka.IotTwinMaker.Types.RelationshipValue+import Amazonka.IotTwinMaker.Types.Row+import Amazonka.IotTwinMaker.Types.SceneSummary+import Amazonka.IotTwinMaker.Types.Scope+import Amazonka.IotTwinMaker.Types.State+import Amazonka.IotTwinMaker.Types.Status+import Amazonka.IotTwinMaker.Types.SyncJobState+import Amazonka.IotTwinMaker.Types.SyncJobStatus+import Amazonka.IotTwinMaker.Types.SyncJobSummary+import Amazonka.IotTwinMaker.Types.SyncResourceFilter+import Amazonka.IotTwinMaker.Types.SyncResourceState+import Amazonka.IotTwinMaker.Types.SyncResourceStatus+import Amazonka.IotTwinMaker.Types.SyncResourceSummary+import Amazonka.IotTwinMaker.Types.SyncResourceType+import Amazonka.IotTwinMaker.Types.TabularConditions+import Amazonka.IotTwinMaker.Types.Type+import Amazonka.IotTwinMaker.Types.UpdateReason+import Amazonka.IotTwinMaker.Types.WorkspaceSummary+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Sign.V4 as Sign++-- | API version @2021-11-29@ of the Amazon IoT TwinMaker SDK configuration.+defaultService :: Core.Service+defaultService =+  Core.Service+    { Core.abbrev = "IotTwinMaker",+      Core.signer = Sign.v4,+      Core.endpointPrefix = "iottwinmaker",+      Core.signingName = "iottwinmaker",+      Core.version = "2021-11-29",+      Core.s3AddressingStyle = Core.S3AddressingStyleAuto,+      Core.endpoint = Core.defaultEndpoint defaultService,+      Core.timeout = Prelude.Just 70,+      Core.check = Core.statusSuccess,+      Core.error = Core.parseJSONError "IotTwinMaker",+      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++-- | Access is denied.+_AccessDeniedException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_AccessDeniedException =+  Core._MatchServiceError+    defaultService+    "AccessDeniedException"+    Prelude.. Core.hasStatus 403++-- | A conflict occurred.+_ConflictException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ConflictException =+  Core._MatchServiceError+    defaultService+    "ConflictException"+    Prelude.. Core.hasStatus 409++-- | The connector failed.+_ConnectorFailureException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ConnectorFailureException =+  Core._MatchServiceError+    defaultService+    "ConnectorFailureException"+    Prelude.. Core.hasStatus 424++-- | The connector timed out.+_ConnectorTimeoutException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ConnectorTimeoutException =+  Core._MatchServiceError+    defaultService+    "ConnectorTimeoutException"+    Prelude.. Core.hasStatus 424++-- | An unexpected error has occurred.+_InternalServerException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InternalServerException =+  Core._MatchServiceError+    defaultService+    "InternalServerException"+    Prelude.. Core.hasStatus 500++-- | The query timeout exception.+_QueryTimeoutException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_QueryTimeoutException =+  Core._MatchServiceError+    defaultService+    "QueryTimeoutException"+    Prelude.. Core.hasStatus 400++-- | The resource wasn\'t found.+_ResourceNotFoundException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ResourceNotFoundException =+  Core._MatchServiceError+    defaultService+    "ResourceNotFoundException"+    Prelude.. Core.hasStatus 404++-- | The service quota was exceeded.+_ServiceQuotaExceededException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ServiceQuotaExceededException =+  Core._MatchServiceError+    defaultService+    "ServiceQuotaExceededException"+    Prelude.. Core.hasStatus 402++-- | The rate exceeds the limit.+_ThrottlingException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ThrottlingException =+  Core._MatchServiceError+    defaultService+    "ThrottlingException"+    Prelude.. Core.hasStatus 429++-- | The number of tags exceeds the limit.+_TooManyTagsException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_TooManyTagsException =+  Core._MatchServiceError+    defaultService+    "TooManyTagsException"+    Prelude.. Core.hasStatus 400++-- | Failed+_ValidationException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ValidationException =+  Core._MatchServiceError+    defaultService+    "ValidationException"+    Prelude.. Core.hasStatus 400
+ gen/Amazonka/IotTwinMaker/Types/BatchPutPropertyError.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.IotTwinMaker.Types.BatchPutPropertyError+-- 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.IotTwinMaker.Types.BatchPutPropertyError where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IotTwinMaker.Types.PropertyValueEntry+import qualified Amazonka.Prelude as Prelude++-- | An error returned by the @BatchPutProperty@ action.+--+-- /See:/ 'newBatchPutPropertyError' smart constructor.+data BatchPutPropertyError = BatchPutPropertyError'+  { -- | The error code.+    errorCode :: Prelude.Text,+    -- | The error message.+    errorMessage :: Prelude.Text,+    -- | An object that contains information about errors returned by the+    -- @BatchPutProperty@ action.+    entry :: PropertyValueEntry+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BatchPutPropertyError' 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:+--+-- 'errorCode', 'batchPutPropertyError_errorCode' - The error code.+--+-- 'errorMessage', 'batchPutPropertyError_errorMessage' - The error message.+--+-- 'entry', 'batchPutPropertyError_entry' - An object that contains information about errors returned by the+-- @BatchPutProperty@ action.+newBatchPutPropertyError ::+  -- | 'errorCode'+  Prelude.Text ->+  -- | 'errorMessage'+  Prelude.Text ->+  -- | 'entry'+  PropertyValueEntry ->+  BatchPutPropertyError+newBatchPutPropertyError+  pErrorCode_+  pErrorMessage_+  pEntry_ =+    BatchPutPropertyError'+      { errorCode = pErrorCode_,+        errorMessage = pErrorMessage_,+        entry = pEntry_+      }++-- | The error code.+batchPutPropertyError_errorCode :: Lens.Lens' BatchPutPropertyError Prelude.Text+batchPutPropertyError_errorCode = Lens.lens (\BatchPutPropertyError' {errorCode} -> errorCode) (\s@BatchPutPropertyError' {} a -> s {errorCode = a} :: BatchPutPropertyError)++-- | The error message.+batchPutPropertyError_errorMessage :: Lens.Lens' BatchPutPropertyError Prelude.Text+batchPutPropertyError_errorMessage = Lens.lens (\BatchPutPropertyError' {errorMessage} -> errorMessage) (\s@BatchPutPropertyError' {} a -> s {errorMessage = a} :: BatchPutPropertyError)++-- | An object that contains information about errors returned by the+-- @BatchPutProperty@ action.+batchPutPropertyError_entry :: Lens.Lens' BatchPutPropertyError PropertyValueEntry+batchPutPropertyError_entry = Lens.lens (\BatchPutPropertyError' {entry} -> entry) (\s@BatchPutPropertyError' {} a -> s {entry = a} :: BatchPutPropertyError)++instance Data.FromJSON BatchPutPropertyError where+  parseJSON =+    Data.withObject+      "BatchPutPropertyError"+      ( \x ->+          BatchPutPropertyError'+            Prelude.<$> (x Data..: "errorCode")+            Prelude.<*> (x Data..: "errorMessage")+            Prelude.<*> (x Data..: "entry")+      )++instance Prelude.Hashable BatchPutPropertyError where+  hashWithSalt _salt BatchPutPropertyError' {..} =+    _salt+      `Prelude.hashWithSalt` errorCode+      `Prelude.hashWithSalt` errorMessage+      `Prelude.hashWithSalt` entry++instance Prelude.NFData BatchPutPropertyError where+  rnf BatchPutPropertyError' {..} =+    Prelude.rnf errorCode+      `Prelude.seq` Prelude.rnf errorMessage+      `Prelude.seq` Prelude.rnf entry
+ gen/Amazonka/IotTwinMaker/Types/BatchPutPropertyErrorEntry.hs view
@@ -0,0 +1,79 @@+{-# 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.IotTwinMaker.Types.BatchPutPropertyErrorEntry+-- 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.IotTwinMaker.Types.BatchPutPropertyErrorEntry where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IotTwinMaker.Types.BatchPutPropertyError+import qualified Amazonka.Prelude as Prelude++-- | An object that contains information about errors returned by the+-- @BatchPutProperty@ action.+--+-- /See:/ 'newBatchPutPropertyErrorEntry' smart constructor.+data BatchPutPropertyErrorEntry = BatchPutPropertyErrorEntry'+  { -- | A list of objects that contain information about errors returned by the+    -- @BatchPutProperty@ action.+    errors :: Prelude.NonEmpty BatchPutPropertyError+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BatchPutPropertyErrorEntry' 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', 'batchPutPropertyErrorEntry_errors' - A list of objects that contain information about errors returned by the+-- @BatchPutProperty@ action.+newBatchPutPropertyErrorEntry ::+  -- | 'errors'+  Prelude.NonEmpty BatchPutPropertyError ->+  BatchPutPropertyErrorEntry+newBatchPutPropertyErrorEntry pErrors_ =+  BatchPutPropertyErrorEntry'+    { errors =+        Lens.coerced Lens.# pErrors_+    }++-- | A list of objects that contain information about errors returned by the+-- @BatchPutProperty@ action.+batchPutPropertyErrorEntry_errors :: Lens.Lens' BatchPutPropertyErrorEntry (Prelude.NonEmpty BatchPutPropertyError)+batchPutPropertyErrorEntry_errors = Lens.lens (\BatchPutPropertyErrorEntry' {errors} -> errors) (\s@BatchPutPropertyErrorEntry' {} a -> s {errors = a} :: BatchPutPropertyErrorEntry) Prelude.. Lens.coerced++instance Data.FromJSON BatchPutPropertyErrorEntry where+  parseJSON =+    Data.withObject+      "BatchPutPropertyErrorEntry"+      ( \x ->+          BatchPutPropertyErrorEntry'+            Prelude.<$> (x Data..: "errors")+      )++instance Prelude.Hashable BatchPutPropertyErrorEntry where+  hashWithSalt _salt BatchPutPropertyErrorEntry' {..} =+    _salt `Prelude.hashWithSalt` errors++instance Prelude.NFData BatchPutPropertyErrorEntry where+  rnf BatchPutPropertyErrorEntry' {..} =+    Prelude.rnf errors
+ gen/Amazonka/IotTwinMaker/Types/BundleInformation.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.IotTwinMaker.Types.BundleInformation+-- 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.IotTwinMaker.Types.BundleInformation where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IotTwinMaker.Types.PricingTier+import qualified Amazonka.Prelude as Prelude++-- | Information about pricing bundle.+--+-- /See:/ 'newBundleInformation' smart constructor.+data BundleInformation = BundleInformation'+  { -- | The pricing tier.+    pricingTier :: Prelude.Maybe PricingTier,+    -- | The bundle names.+    bundleNames :: Prelude.NonEmpty Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BundleInformation' 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:+--+-- 'pricingTier', 'bundleInformation_pricingTier' - The pricing tier.+--+-- 'bundleNames', 'bundleInformation_bundleNames' - The bundle names.+newBundleInformation ::+  -- | 'bundleNames'+  Prelude.NonEmpty Prelude.Text ->+  BundleInformation+newBundleInformation pBundleNames_ =+  BundleInformation'+    { pricingTier = Prelude.Nothing,+      bundleNames = Lens.coerced Lens.# pBundleNames_+    }++-- | The pricing tier.+bundleInformation_pricingTier :: Lens.Lens' BundleInformation (Prelude.Maybe PricingTier)+bundleInformation_pricingTier = Lens.lens (\BundleInformation' {pricingTier} -> pricingTier) (\s@BundleInformation' {} a -> s {pricingTier = a} :: BundleInformation)++-- | The bundle names.+bundleInformation_bundleNames :: Lens.Lens' BundleInformation (Prelude.NonEmpty Prelude.Text)+bundleInformation_bundleNames = Lens.lens (\BundleInformation' {bundleNames} -> bundleNames) (\s@BundleInformation' {} a -> s {bundleNames = a} :: BundleInformation) Prelude.. Lens.coerced++instance Data.FromJSON BundleInformation where+  parseJSON =+    Data.withObject+      "BundleInformation"+      ( \x ->+          BundleInformation'+            Prelude.<$> (x Data..:? "pricingTier")+            Prelude.<*> (x Data..: "bundleNames")+      )++instance Prelude.Hashable BundleInformation where+  hashWithSalt _salt BundleInformation' {..} =+    _salt+      `Prelude.hashWithSalt` pricingTier+      `Prelude.hashWithSalt` bundleNames++instance Prelude.NFData BundleInformation where+  rnf BundleInformation' {..} =+    Prelude.rnf pricingTier+      `Prelude.seq` Prelude.rnf bundleNames
+ gen/Amazonka/IotTwinMaker/Types/ColumnDescription.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.IotTwinMaker.Types.ColumnDescription+-- 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.IotTwinMaker.Types.ColumnDescription where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IotTwinMaker.Types.ColumnType+import qualified Amazonka.Prelude as Prelude++-- | A description of the column in the query results.+--+-- /See:/ 'newColumnDescription' smart constructor.+data ColumnDescription = ColumnDescription'+  { -- | The name of the column description.+    name :: Prelude.Maybe Prelude.Text,+    -- | The type of the column description.+    type' :: Prelude.Maybe ColumnType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ColumnDescription' 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', 'columnDescription_name' - The name of the column description.+--+-- 'type'', 'columnDescription_type' - The type of the column description.+newColumnDescription ::+  ColumnDescription+newColumnDescription =+  ColumnDescription'+    { name = Prelude.Nothing,+      type' = Prelude.Nothing+    }++-- | The name of the column description.+columnDescription_name :: Lens.Lens' ColumnDescription (Prelude.Maybe Prelude.Text)+columnDescription_name = Lens.lens (\ColumnDescription' {name} -> name) (\s@ColumnDescription' {} a -> s {name = a} :: ColumnDescription)++-- | The type of the column description.+columnDescription_type :: Lens.Lens' ColumnDescription (Prelude.Maybe ColumnType)+columnDescription_type = Lens.lens (\ColumnDescription' {type'} -> type') (\s@ColumnDescription' {} a -> s {type' = a} :: ColumnDescription)++instance Data.FromJSON ColumnDescription where+  parseJSON =+    Data.withObject+      "ColumnDescription"+      ( \x ->+          ColumnDescription'+            Prelude.<$> (x Data..:? "name")+            Prelude.<*> (x Data..:? "type")+      )++instance Prelude.Hashable ColumnDescription where+  hashWithSalt _salt ColumnDescription' {..} =+    _salt+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` type'++instance Prelude.NFData ColumnDescription where+  rnf ColumnDescription' {..} =+    Prelude.rnf name `Prelude.seq` Prelude.rnf type'
+ gen/Amazonka/IotTwinMaker/Types/ColumnType.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.IotTwinMaker.Types.ColumnType+-- 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.IotTwinMaker.Types.ColumnType+  ( ColumnType+      ( ..,+        ColumnType_EDGE,+        ColumnType_NODE,+        ColumnType_VALUE+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ColumnType = ColumnType'+  { fromColumnType ::+      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 ColumnType_EDGE :: ColumnType+pattern ColumnType_EDGE = ColumnType' "EDGE"++pattern ColumnType_NODE :: ColumnType+pattern ColumnType_NODE = ColumnType' "NODE"++pattern ColumnType_VALUE :: ColumnType+pattern ColumnType_VALUE = ColumnType' "VALUE"++{-# COMPLETE+  ColumnType_EDGE,+  ColumnType_NODE,+  ColumnType_VALUE,+  ColumnType'+  #-}
+ gen/Amazonka/IotTwinMaker/Types/ComponentPropertyGroupRequest.hs view
@@ -0,0 +1,101 @@+{-# 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.IotTwinMaker.Types.ComponentPropertyGroupRequest+-- 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.IotTwinMaker.Types.ComponentPropertyGroupRequest where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IotTwinMaker.Types.GroupType+import Amazonka.IotTwinMaker.Types.PropertyGroupUpdateType+import qualified Amazonka.Prelude as Prelude++-- |+--+-- /See:/ 'newComponentPropertyGroupRequest' smart constructor.+data ComponentPropertyGroupRequest = ComponentPropertyGroupRequest'+  { -- | The group type.+    groupType :: Prelude.Maybe GroupType,+    -- | The property names.+    propertyNames :: Prelude.Maybe [Prelude.Text],+    -- | The update type.+    updateType :: Prelude.Maybe PropertyGroupUpdateType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ComponentPropertyGroupRequest' 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:+--+-- 'groupType', 'componentPropertyGroupRequest_groupType' - The group type.+--+-- 'propertyNames', 'componentPropertyGroupRequest_propertyNames' - The property names.+--+-- 'updateType', 'componentPropertyGroupRequest_updateType' - The update type.+newComponentPropertyGroupRequest ::+  ComponentPropertyGroupRequest+newComponentPropertyGroupRequest =+  ComponentPropertyGroupRequest'+    { groupType =+        Prelude.Nothing,+      propertyNames = Prelude.Nothing,+      updateType = Prelude.Nothing+    }++-- | The group type.+componentPropertyGroupRequest_groupType :: Lens.Lens' ComponentPropertyGroupRequest (Prelude.Maybe GroupType)+componentPropertyGroupRequest_groupType = Lens.lens (\ComponentPropertyGroupRequest' {groupType} -> groupType) (\s@ComponentPropertyGroupRequest' {} a -> s {groupType = a} :: ComponentPropertyGroupRequest)++-- | The property names.+componentPropertyGroupRequest_propertyNames :: Lens.Lens' ComponentPropertyGroupRequest (Prelude.Maybe [Prelude.Text])+componentPropertyGroupRequest_propertyNames = Lens.lens (\ComponentPropertyGroupRequest' {propertyNames} -> propertyNames) (\s@ComponentPropertyGroupRequest' {} a -> s {propertyNames = a} :: ComponentPropertyGroupRequest) Prelude.. Lens.mapping Lens.coerced++-- | The update type.+componentPropertyGroupRequest_updateType :: Lens.Lens' ComponentPropertyGroupRequest (Prelude.Maybe PropertyGroupUpdateType)+componentPropertyGroupRequest_updateType = Lens.lens (\ComponentPropertyGroupRequest' {updateType} -> updateType) (\s@ComponentPropertyGroupRequest' {} a -> s {updateType = a} :: ComponentPropertyGroupRequest)++instance+  Prelude.Hashable+    ComponentPropertyGroupRequest+  where+  hashWithSalt _salt ComponentPropertyGroupRequest' {..} =+    _salt+      `Prelude.hashWithSalt` groupType+      `Prelude.hashWithSalt` propertyNames+      `Prelude.hashWithSalt` updateType++instance Prelude.NFData ComponentPropertyGroupRequest where+  rnf ComponentPropertyGroupRequest' {..} =+    Prelude.rnf groupType+      `Prelude.seq` Prelude.rnf propertyNames+      `Prelude.seq` Prelude.rnf updateType++instance Data.ToJSON ComponentPropertyGroupRequest where+  toJSON ComponentPropertyGroupRequest' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("groupType" Data..=) Prelude.<$> groupType,+            ("propertyNames" Data..=) Prelude.<$> propertyNames,+            ("updateType" Data..=) Prelude.<$> updateType+          ]+      )
+ gen/Amazonka/IotTwinMaker/Types/ComponentPropertyGroupResponse.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.IotTwinMaker.Types.ComponentPropertyGroupResponse+-- 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.IotTwinMaker.Types.ComponentPropertyGroupResponse where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IotTwinMaker.Types.GroupType+import qualified Amazonka.Prelude as Prelude++-- | The component property group response.+--+-- /See:/ 'newComponentPropertyGroupResponse' smart constructor.+data ComponentPropertyGroupResponse = ComponentPropertyGroupResponse'+  { -- | The group type.+    groupType :: GroupType,+    -- | The names of properties+    propertyNames :: [Prelude.Text],+    -- | A Boolean value that specifies whether the property group is inherited+    -- from a parent entity+    isInherited :: Prelude.Bool+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ComponentPropertyGroupResponse' 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:+--+-- 'groupType', 'componentPropertyGroupResponse_groupType' - The group type.+--+-- 'propertyNames', 'componentPropertyGroupResponse_propertyNames' - The names of properties+--+-- 'isInherited', 'componentPropertyGroupResponse_isInherited' - A Boolean value that specifies whether the property group is inherited+-- from a parent entity+newComponentPropertyGroupResponse ::+  -- | 'groupType'+  GroupType ->+  -- | 'isInherited'+  Prelude.Bool ->+  ComponentPropertyGroupResponse+newComponentPropertyGroupResponse+  pGroupType_+  pIsInherited_ =+    ComponentPropertyGroupResponse'+      { groupType =+          pGroupType_,+        propertyNames = Prelude.mempty,+        isInherited = pIsInherited_+      }++-- | The group type.+componentPropertyGroupResponse_groupType :: Lens.Lens' ComponentPropertyGroupResponse GroupType+componentPropertyGroupResponse_groupType = Lens.lens (\ComponentPropertyGroupResponse' {groupType} -> groupType) (\s@ComponentPropertyGroupResponse' {} a -> s {groupType = a} :: ComponentPropertyGroupResponse)++-- | The names of properties+componentPropertyGroupResponse_propertyNames :: Lens.Lens' ComponentPropertyGroupResponse [Prelude.Text]+componentPropertyGroupResponse_propertyNames = Lens.lens (\ComponentPropertyGroupResponse' {propertyNames} -> propertyNames) (\s@ComponentPropertyGroupResponse' {} a -> s {propertyNames = a} :: ComponentPropertyGroupResponse) Prelude.. Lens.coerced++-- | A Boolean value that specifies whether the property group is inherited+-- from a parent entity+componentPropertyGroupResponse_isInherited :: Lens.Lens' ComponentPropertyGroupResponse Prelude.Bool+componentPropertyGroupResponse_isInherited = Lens.lens (\ComponentPropertyGroupResponse' {isInherited} -> isInherited) (\s@ComponentPropertyGroupResponse' {} a -> s {isInherited = a} :: ComponentPropertyGroupResponse)++instance Data.FromJSON ComponentPropertyGroupResponse where+  parseJSON =+    Data.withObject+      "ComponentPropertyGroupResponse"+      ( \x ->+          ComponentPropertyGroupResponse'+            Prelude.<$> (x Data..: "groupType")+            Prelude.<*> (x Data..:? "propertyNames" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..: "isInherited")+      )++instance+  Prelude.Hashable+    ComponentPropertyGroupResponse+  where+  hashWithSalt+    _salt+    ComponentPropertyGroupResponse' {..} =+      _salt+        `Prelude.hashWithSalt` groupType+        `Prelude.hashWithSalt` propertyNames+        `Prelude.hashWithSalt` isInherited++instance+  Prelude.NFData+    ComponentPropertyGroupResponse+  where+  rnf ComponentPropertyGroupResponse' {..} =+    Prelude.rnf groupType+      `Prelude.seq` Prelude.rnf propertyNames+      `Prelude.seq` Prelude.rnf isInherited
+ gen/Amazonka/IotTwinMaker/Types/ComponentRequest.hs view
@@ -0,0 +1,116 @@+{-# 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.IotTwinMaker.Types.ComponentRequest+-- 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.IotTwinMaker.Types.ComponentRequest where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IotTwinMaker.Types.ComponentPropertyGroupRequest+import Amazonka.IotTwinMaker.Types.PropertyRequest+import qualified Amazonka.Prelude as Prelude++-- | An object that sets information about a component type create or update+-- request.+--+-- /See:/ 'newComponentRequest' smart constructor.+data ComponentRequest = ComponentRequest'+  { -- | The ID of the component type.+    componentTypeId :: Prelude.Maybe Prelude.Text,+    -- | The description of the component request.+    description :: Prelude.Maybe Prelude.Text,+    -- | An object that maps strings to the properties to set in the component+    -- type. Each string in the mapping must be unique to this object.+    properties :: Prelude.Maybe (Prelude.HashMap Prelude.Text PropertyRequest),+    -- | The property groups.+    propertyGroups :: Prelude.Maybe (Prelude.HashMap Prelude.Text ComponentPropertyGroupRequest)+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ComponentRequest' 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:+--+-- 'componentTypeId', 'componentRequest_componentTypeId' - The ID of the component type.+--+-- 'description', 'componentRequest_description' - The description of the component request.+--+-- 'properties', 'componentRequest_properties' - An object that maps strings to the properties to set in the component+-- type. Each string in the mapping must be unique to this object.+--+-- 'propertyGroups', 'componentRequest_propertyGroups' - The property groups.+newComponentRequest ::+  ComponentRequest+newComponentRequest =+  ComponentRequest'+    { componentTypeId =+        Prelude.Nothing,+      description = Prelude.Nothing,+      properties = Prelude.Nothing,+      propertyGroups = Prelude.Nothing+    }++-- | The ID of the component type.+componentRequest_componentTypeId :: Lens.Lens' ComponentRequest (Prelude.Maybe Prelude.Text)+componentRequest_componentTypeId = Lens.lens (\ComponentRequest' {componentTypeId} -> componentTypeId) (\s@ComponentRequest' {} a -> s {componentTypeId = a} :: ComponentRequest)++-- | The description of the component request.+componentRequest_description :: Lens.Lens' ComponentRequest (Prelude.Maybe Prelude.Text)+componentRequest_description = Lens.lens (\ComponentRequest' {description} -> description) (\s@ComponentRequest' {} a -> s {description = a} :: ComponentRequest)++-- | An object that maps strings to the properties to set in the component+-- type. Each string in the mapping must be unique to this object.+componentRequest_properties :: Lens.Lens' ComponentRequest (Prelude.Maybe (Prelude.HashMap Prelude.Text PropertyRequest))+componentRequest_properties = Lens.lens (\ComponentRequest' {properties} -> properties) (\s@ComponentRequest' {} a -> s {properties = a} :: ComponentRequest) Prelude.. Lens.mapping Lens.coerced++-- | The property groups.+componentRequest_propertyGroups :: Lens.Lens' ComponentRequest (Prelude.Maybe (Prelude.HashMap Prelude.Text ComponentPropertyGroupRequest))+componentRequest_propertyGroups = Lens.lens (\ComponentRequest' {propertyGroups} -> propertyGroups) (\s@ComponentRequest' {} a -> s {propertyGroups = a} :: ComponentRequest) Prelude.. Lens.mapping Lens.coerced++instance Prelude.Hashable ComponentRequest where+  hashWithSalt _salt ComponentRequest' {..} =+    _salt+      `Prelude.hashWithSalt` componentTypeId+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` properties+      `Prelude.hashWithSalt` propertyGroups++instance Prelude.NFData ComponentRequest where+  rnf ComponentRequest' {..} =+    Prelude.rnf componentTypeId+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf properties+      `Prelude.seq` Prelude.rnf propertyGroups++instance Data.ToJSON ComponentRequest where+  toJSON ComponentRequest' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("componentTypeId" Data..=)+              Prelude.<$> componentTypeId,+            ("description" Data..=) Prelude.<$> description,+            ("properties" Data..=) Prelude.<$> properties,+            ("propertyGroups" Data..=)+              Prelude.<$> propertyGroups+          ]+      )
+ gen/Amazonka/IotTwinMaker/Types/ComponentResponse.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.IotTwinMaker.Types.ComponentResponse+-- 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.IotTwinMaker.Types.ComponentResponse where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IotTwinMaker.Types.ComponentPropertyGroupResponse+import Amazonka.IotTwinMaker.Types.PropertyResponse+import Amazonka.IotTwinMaker.Types.Status+import qualified Amazonka.Prelude as Prelude++-- | An object that returns information about a component type create or+-- update request.+--+-- /See:/ 'newComponentResponse' smart constructor.+data ComponentResponse = ComponentResponse'+  { -- | The name of the component.+    componentName :: Prelude.Maybe Prelude.Text,+    -- | The ID of the component type.+    componentTypeId :: Prelude.Maybe Prelude.Text,+    -- | The name of the property definition set in the request.+    definedIn :: Prelude.Maybe Prelude.Text,+    -- | The description of the component type.+    description :: Prelude.Maybe Prelude.Text,+    -- | An object that maps strings to the properties to set in the component+    -- type. Each string in the mapping must be unique to this object.+    properties :: Prelude.Maybe (Prelude.HashMap Prelude.Text PropertyResponse),+    -- | The property groups.+    propertyGroups :: Prelude.Maybe (Prelude.HashMap Prelude.Text ComponentPropertyGroupResponse),+    -- | The status of the component type.+    status :: Prelude.Maybe Status,+    -- | The syncSource of the sync job, if this entity was created by a sync+    -- job.+    syncSource :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ComponentResponse' 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:+--+-- 'componentName', 'componentResponse_componentName' - The name of the component.+--+-- 'componentTypeId', 'componentResponse_componentTypeId' - The ID of the component type.+--+-- 'definedIn', 'componentResponse_definedIn' - The name of the property definition set in the request.+--+-- 'description', 'componentResponse_description' - The description of the component type.+--+-- 'properties', 'componentResponse_properties' - An object that maps strings to the properties to set in the component+-- type. Each string in the mapping must be unique to this object.+--+-- 'propertyGroups', 'componentResponse_propertyGroups' - The property groups.+--+-- 'status', 'componentResponse_status' - The status of the component type.+--+-- 'syncSource', 'componentResponse_syncSource' - The syncSource of the sync job, if this entity was created by a sync+-- job.+newComponentResponse ::+  ComponentResponse+newComponentResponse =+  ComponentResponse'+    { componentName = Prelude.Nothing,+      componentTypeId = Prelude.Nothing,+      definedIn = Prelude.Nothing,+      description = Prelude.Nothing,+      properties = Prelude.Nothing,+      propertyGroups = Prelude.Nothing,+      status = Prelude.Nothing,+      syncSource = Prelude.Nothing+    }++-- | The name of the component.+componentResponse_componentName :: Lens.Lens' ComponentResponse (Prelude.Maybe Prelude.Text)+componentResponse_componentName = Lens.lens (\ComponentResponse' {componentName} -> componentName) (\s@ComponentResponse' {} a -> s {componentName = a} :: ComponentResponse)++-- | The ID of the component type.+componentResponse_componentTypeId :: Lens.Lens' ComponentResponse (Prelude.Maybe Prelude.Text)+componentResponse_componentTypeId = Lens.lens (\ComponentResponse' {componentTypeId} -> componentTypeId) (\s@ComponentResponse' {} a -> s {componentTypeId = a} :: ComponentResponse)++-- | The name of the property definition set in the request.+componentResponse_definedIn :: Lens.Lens' ComponentResponse (Prelude.Maybe Prelude.Text)+componentResponse_definedIn = Lens.lens (\ComponentResponse' {definedIn} -> definedIn) (\s@ComponentResponse' {} a -> s {definedIn = a} :: ComponentResponse)++-- | The description of the component type.+componentResponse_description :: Lens.Lens' ComponentResponse (Prelude.Maybe Prelude.Text)+componentResponse_description = Lens.lens (\ComponentResponse' {description} -> description) (\s@ComponentResponse' {} a -> s {description = a} :: ComponentResponse)++-- | An object that maps strings to the properties to set in the component+-- type. Each string in the mapping must be unique to this object.+componentResponse_properties :: Lens.Lens' ComponentResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text PropertyResponse))+componentResponse_properties = Lens.lens (\ComponentResponse' {properties} -> properties) (\s@ComponentResponse' {} a -> s {properties = a} :: ComponentResponse) Prelude.. Lens.mapping Lens.coerced++-- | The property groups.+componentResponse_propertyGroups :: Lens.Lens' ComponentResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text ComponentPropertyGroupResponse))+componentResponse_propertyGroups = Lens.lens (\ComponentResponse' {propertyGroups} -> propertyGroups) (\s@ComponentResponse' {} a -> s {propertyGroups = a} :: ComponentResponse) Prelude.. Lens.mapping Lens.coerced++-- | The status of the component type.+componentResponse_status :: Lens.Lens' ComponentResponse (Prelude.Maybe Status)+componentResponse_status = Lens.lens (\ComponentResponse' {status} -> status) (\s@ComponentResponse' {} a -> s {status = a} :: ComponentResponse)++-- | The syncSource of the sync job, if this entity was created by a sync+-- job.+componentResponse_syncSource :: Lens.Lens' ComponentResponse (Prelude.Maybe Prelude.Text)+componentResponse_syncSource = Lens.lens (\ComponentResponse' {syncSource} -> syncSource) (\s@ComponentResponse' {} a -> s {syncSource = a} :: ComponentResponse)++instance Data.FromJSON ComponentResponse where+  parseJSON =+    Data.withObject+      "ComponentResponse"+      ( \x ->+          ComponentResponse'+            Prelude.<$> (x Data..:? "componentName")+            Prelude.<*> (x Data..:? "componentTypeId")+            Prelude.<*> (x Data..:? "definedIn")+            Prelude.<*> (x Data..:? "description")+            Prelude.<*> (x Data..:? "properties" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "propertyGroups" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "status")+            Prelude.<*> (x Data..:? "syncSource")+      )++instance Prelude.Hashable ComponentResponse where+  hashWithSalt _salt ComponentResponse' {..} =+    _salt+      `Prelude.hashWithSalt` componentName+      `Prelude.hashWithSalt` componentTypeId+      `Prelude.hashWithSalt` definedIn+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` properties+      `Prelude.hashWithSalt` propertyGroups+      `Prelude.hashWithSalt` status+      `Prelude.hashWithSalt` syncSource++instance Prelude.NFData ComponentResponse where+  rnf ComponentResponse' {..} =+    Prelude.rnf componentName+      `Prelude.seq` Prelude.rnf componentTypeId+      `Prelude.seq` Prelude.rnf definedIn+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf properties+      `Prelude.seq` Prelude.rnf propertyGroups+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf syncSource
+ gen/Amazonka/IotTwinMaker/Types/ComponentTypeSummary.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.IotTwinMaker.Types.ComponentTypeSummary+-- 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.IotTwinMaker.Types.ComponentTypeSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IotTwinMaker.Types.Status+import qualified Amazonka.Prelude as Prelude++-- | An object that contains information about a component type.+--+-- /See:/ 'newComponentTypeSummary' smart constructor.+data ComponentTypeSummary = ComponentTypeSummary'+  { -- | The component type name.+    componentTypeName :: Prelude.Maybe Prelude.Text,+    -- | The description of the component type.+    description :: Prelude.Maybe Prelude.Text,+    -- | The current status of the component type.+    status :: Prelude.Maybe Status,+    -- | The ARN of the component type.+    arn :: Prelude.Text,+    -- | The ID of the component type.+    componentTypeId :: Prelude.Text,+    -- | The date and time when the component type was created.+    creationDateTime :: Data.POSIX,+    -- | The date and time when the component type was last updated.+    updateDateTime :: Data.POSIX+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ComponentTypeSummary' 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:+--+-- 'componentTypeName', 'componentTypeSummary_componentTypeName' - The component type name.+--+-- 'description', 'componentTypeSummary_description' - The description of the component type.+--+-- 'status', 'componentTypeSummary_status' - The current status of the component type.+--+-- 'arn', 'componentTypeSummary_arn' - The ARN of the component type.+--+-- 'componentTypeId', 'componentTypeSummary_componentTypeId' - The ID of the component type.+--+-- 'creationDateTime', 'componentTypeSummary_creationDateTime' - The date and time when the component type was created.+--+-- 'updateDateTime', 'componentTypeSummary_updateDateTime' - The date and time when the component type was last updated.+newComponentTypeSummary ::+  -- | 'arn'+  Prelude.Text ->+  -- | 'componentTypeId'+  Prelude.Text ->+  -- | 'creationDateTime'+  Prelude.UTCTime ->+  -- | 'updateDateTime'+  Prelude.UTCTime ->+  ComponentTypeSummary+newComponentTypeSummary+  pArn_+  pComponentTypeId_+  pCreationDateTime_+  pUpdateDateTime_ =+    ComponentTypeSummary'+      { componentTypeName =+          Prelude.Nothing,+        description = Prelude.Nothing,+        status = Prelude.Nothing,+        arn = pArn_,+        componentTypeId = pComponentTypeId_,+        creationDateTime =+          Data._Time Lens.# pCreationDateTime_,+        updateDateTime = Data._Time Lens.# pUpdateDateTime_+      }++-- | The component type name.+componentTypeSummary_componentTypeName :: Lens.Lens' ComponentTypeSummary (Prelude.Maybe Prelude.Text)+componentTypeSummary_componentTypeName = Lens.lens (\ComponentTypeSummary' {componentTypeName} -> componentTypeName) (\s@ComponentTypeSummary' {} a -> s {componentTypeName = a} :: ComponentTypeSummary)++-- | The description of the component type.+componentTypeSummary_description :: Lens.Lens' ComponentTypeSummary (Prelude.Maybe Prelude.Text)+componentTypeSummary_description = Lens.lens (\ComponentTypeSummary' {description} -> description) (\s@ComponentTypeSummary' {} a -> s {description = a} :: ComponentTypeSummary)++-- | The current status of the component type.+componentTypeSummary_status :: Lens.Lens' ComponentTypeSummary (Prelude.Maybe Status)+componentTypeSummary_status = Lens.lens (\ComponentTypeSummary' {status} -> status) (\s@ComponentTypeSummary' {} a -> s {status = a} :: ComponentTypeSummary)++-- | The ARN of the component type.+componentTypeSummary_arn :: Lens.Lens' ComponentTypeSummary Prelude.Text+componentTypeSummary_arn = Lens.lens (\ComponentTypeSummary' {arn} -> arn) (\s@ComponentTypeSummary' {} a -> s {arn = a} :: ComponentTypeSummary)++-- | The ID of the component type.+componentTypeSummary_componentTypeId :: Lens.Lens' ComponentTypeSummary Prelude.Text+componentTypeSummary_componentTypeId = Lens.lens (\ComponentTypeSummary' {componentTypeId} -> componentTypeId) (\s@ComponentTypeSummary' {} a -> s {componentTypeId = a} :: ComponentTypeSummary)++-- | The date and time when the component type was created.+componentTypeSummary_creationDateTime :: Lens.Lens' ComponentTypeSummary Prelude.UTCTime+componentTypeSummary_creationDateTime = Lens.lens (\ComponentTypeSummary' {creationDateTime} -> creationDateTime) (\s@ComponentTypeSummary' {} a -> s {creationDateTime = a} :: ComponentTypeSummary) Prelude.. Data._Time++-- | The date and time when the component type was last updated.+componentTypeSummary_updateDateTime :: Lens.Lens' ComponentTypeSummary Prelude.UTCTime+componentTypeSummary_updateDateTime = Lens.lens (\ComponentTypeSummary' {updateDateTime} -> updateDateTime) (\s@ComponentTypeSummary' {} a -> s {updateDateTime = a} :: ComponentTypeSummary) Prelude.. Data._Time++instance Data.FromJSON ComponentTypeSummary where+  parseJSON =+    Data.withObject+      "ComponentTypeSummary"+      ( \x ->+          ComponentTypeSummary'+            Prelude.<$> (x Data..:? "componentTypeName")+            Prelude.<*> (x Data..:? "description")+            Prelude.<*> (x Data..:? "status")+            Prelude.<*> (x Data..: "arn")+            Prelude.<*> (x Data..: "componentTypeId")+            Prelude.<*> (x Data..: "creationDateTime")+            Prelude.<*> (x Data..: "updateDateTime")+      )++instance Prelude.Hashable ComponentTypeSummary where+  hashWithSalt _salt ComponentTypeSummary' {..} =+    _salt+      `Prelude.hashWithSalt` componentTypeName+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` status+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` componentTypeId+      `Prelude.hashWithSalt` creationDateTime+      `Prelude.hashWithSalt` updateDateTime++instance Prelude.NFData ComponentTypeSummary where+  rnf ComponentTypeSummary' {..} =+    Prelude.rnf componentTypeName+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf arn+      `Prelude.seq` Prelude.rnf componentTypeId+      `Prelude.seq` Prelude.rnf creationDateTime+      `Prelude.seq` Prelude.rnf updateDateTime
+ gen/Amazonka/IotTwinMaker/Types/ComponentUpdateRequest.hs view
@@ -0,0 +1,129 @@+{-# 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.IotTwinMaker.Types.ComponentUpdateRequest+-- 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.IotTwinMaker.Types.ComponentUpdateRequest where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IotTwinMaker.Types.ComponentPropertyGroupRequest+import Amazonka.IotTwinMaker.Types.ComponentUpdateType+import Amazonka.IotTwinMaker.Types.PropertyRequest+import qualified Amazonka.Prelude as Prelude++-- | The component update request.+--+-- /See:/ 'newComponentUpdateRequest' smart constructor.+data ComponentUpdateRequest = ComponentUpdateRequest'+  { -- | The ID of the component type.+    componentTypeId :: Prelude.Maybe Prelude.Text,+    -- | The description of the component type.+    description :: Prelude.Maybe Prelude.Text,+    -- | The property group updates.+    propertyGroupUpdates :: Prelude.Maybe (Prelude.HashMap Prelude.Text ComponentPropertyGroupRequest),+    -- | An object that maps strings to the properties to set in the component+    -- type update. Each string in the mapping must be unique to this object.+    propertyUpdates :: Prelude.Maybe (Prelude.HashMap Prelude.Text PropertyRequest),+    -- | The update type of the component update request.+    updateType :: Prelude.Maybe ComponentUpdateType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ComponentUpdateRequest' 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:+--+-- 'componentTypeId', 'componentUpdateRequest_componentTypeId' - The ID of the component type.+--+-- 'description', 'componentUpdateRequest_description' - The description of the component type.+--+-- 'propertyGroupUpdates', 'componentUpdateRequest_propertyGroupUpdates' - The property group updates.+--+-- 'propertyUpdates', 'componentUpdateRequest_propertyUpdates' - An object that maps strings to the properties to set in the component+-- type update. Each string in the mapping must be unique to this object.+--+-- 'updateType', 'componentUpdateRequest_updateType' - The update type of the component update request.+newComponentUpdateRequest ::+  ComponentUpdateRequest+newComponentUpdateRequest =+  ComponentUpdateRequest'+    { componentTypeId =+        Prelude.Nothing,+      description = Prelude.Nothing,+      propertyGroupUpdates = Prelude.Nothing,+      propertyUpdates = Prelude.Nothing,+      updateType = Prelude.Nothing+    }++-- | The ID of the component type.+componentUpdateRequest_componentTypeId :: Lens.Lens' ComponentUpdateRequest (Prelude.Maybe Prelude.Text)+componentUpdateRequest_componentTypeId = Lens.lens (\ComponentUpdateRequest' {componentTypeId} -> componentTypeId) (\s@ComponentUpdateRequest' {} a -> s {componentTypeId = a} :: ComponentUpdateRequest)++-- | The description of the component type.+componentUpdateRequest_description :: Lens.Lens' ComponentUpdateRequest (Prelude.Maybe Prelude.Text)+componentUpdateRequest_description = Lens.lens (\ComponentUpdateRequest' {description} -> description) (\s@ComponentUpdateRequest' {} a -> s {description = a} :: ComponentUpdateRequest)++-- | The property group updates.+componentUpdateRequest_propertyGroupUpdates :: Lens.Lens' ComponentUpdateRequest (Prelude.Maybe (Prelude.HashMap Prelude.Text ComponentPropertyGroupRequest))+componentUpdateRequest_propertyGroupUpdates = Lens.lens (\ComponentUpdateRequest' {propertyGroupUpdates} -> propertyGroupUpdates) (\s@ComponentUpdateRequest' {} a -> s {propertyGroupUpdates = a} :: ComponentUpdateRequest) Prelude.. Lens.mapping Lens.coerced++-- | An object that maps strings to the properties to set in the component+-- type update. Each string in the mapping must be unique to this object.+componentUpdateRequest_propertyUpdates :: Lens.Lens' ComponentUpdateRequest (Prelude.Maybe (Prelude.HashMap Prelude.Text PropertyRequest))+componentUpdateRequest_propertyUpdates = Lens.lens (\ComponentUpdateRequest' {propertyUpdates} -> propertyUpdates) (\s@ComponentUpdateRequest' {} a -> s {propertyUpdates = a} :: ComponentUpdateRequest) Prelude.. Lens.mapping Lens.coerced++-- | The update type of the component update request.+componentUpdateRequest_updateType :: Lens.Lens' ComponentUpdateRequest (Prelude.Maybe ComponentUpdateType)+componentUpdateRequest_updateType = Lens.lens (\ComponentUpdateRequest' {updateType} -> updateType) (\s@ComponentUpdateRequest' {} a -> s {updateType = a} :: ComponentUpdateRequest)++instance Prelude.Hashable ComponentUpdateRequest where+  hashWithSalt _salt ComponentUpdateRequest' {..} =+    _salt+      `Prelude.hashWithSalt` componentTypeId+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` propertyGroupUpdates+      `Prelude.hashWithSalt` propertyUpdates+      `Prelude.hashWithSalt` updateType++instance Prelude.NFData ComponentUpdateRequest where+  rnf ComponentUpdateRequest' {..} =+    Prelude.rnf componentTypeId+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf propertyGroupUpdates+      `Prelude.seq` Prelude.rnf propertyUpdates+      `Prelude.seq` Prelude.rnf updateType++instance Data.ToJSON ComponentUpdateRequest where+  toJSON ComponentUpdateRequest' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("componentTypeId" Data..=)+              Prelude.<$> componentTypeId,+            ("description" Data..=) Prelude.<$> description,+            ("propertyGroupUpdates" Data..=)+              Prelude.<$> propertyGroupUpdates,+            ("propertyUpdates" Data..=)+              Prelude.<$> propertyUpdates,+            ("updateType" Data..=) Prelude.<$> updateType+          ]+      )
+ gen/Amazonka/IotTwinMaker/Types/ComponentUpdateType.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.IotTwinMaker.Types.ComponentUpdateType+-- 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.IotTwinMaker.Types.ComponentUpdateType+  ( ComponentUpdateType+      ( ..,+        ComponentUpdateType_CREATE,+        ComponentUpdateType_DELETE,+        ComponentUpdateType_UPDATE+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ComponentUpdateType = ComponentUpdateType'+  { fromComponentUpdateType ::+      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 ComponentUpdateType_CREATE :: ComponentUpdateType+pattern ComponentUpdateType_CREATE = ComponentUpdateType' "CREATE"++pattern ComponentUpdateType_DELETE :: ComponentUpdateType+pattern ComponentUpdateType_DELETE = ComponentUpdateType' "DELETE"++pattern ComponentUpdateType_UPDATE :: ComponentUpdateType+pattern ComponentUpdateType_UPDATE = ComponentUpdateType' "UPDATE"++{-# COMPLETE+  ComponentUpdateType_CREATE,+  ComponentUpdateType_DELETE,+  ComponentUpdateType_UPDATE,+  ComponentUpdateType'+  #-}
+ gen/Amazonka/IotTwinMaker/Types/DataConnector.hs view
@@ -0,0 +1,97 @@+{-# 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.IotTwinMaker.Types.DataConnector+-- 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.IotTwinMaker.Types.DataConnector where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IotTwinMaker.Types.LambdaFunction+import qualified Amazonka.Prelude as Prelude++-- | The data connector.+--+-- /See:/ 'newDataConnector' smart constructor.+data DataConnector = DataConnector'+  { -- | A Boolean value that specifies whether the data connector is native to+    -- IoT TwinMaker.+    isNative :: Prelude.Maybe Prelude.Bool,+    -- | The Lambda function associated with this data connector.+    lambda :: Prelude.Maybe LambdaFunction+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DataConnector' 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:+--+-- 'isNative', 'dataConnector_isNative' - A Boolean value that specifies whether the data connector is native to+-- IoT TwinMaker.+--+-- 'lambda', 'dataConnector_lambda' - The Lambda function associated with this data connector.+newDataConnector ::+  DataConnector+newDataConnector =+  DataConnector'+    { isNative = Prelude.Nothing,+      lambda = Prelude.Nothing+    }++-- | A Boolean value that specifies whether the data connector is native to+-- IoT TwinMaker.+dataConnector_isNative :: Lens.Lens' DataConnector (Prelude.Maybe Prelude.Bool)+dataConnector_isNative = Lens.lens (\DataConnector' {isNative} -> isNative) (\s@DataConnector' {} a -> s {isNative = a} :: DataConnector)++-- | The Lambda function associated with this data connector.+dataConnector_lambda :: Lens.Lens' DataConnector (Prelude.Maybe LambdaFunction)+dataConnector_lambda = Lens.lens (\DataConnector' {lambda} -> lambda) (\s@DataConnector' {} a -> s {lambda = a} :: DataConnector)++instance Data.FromJSON DataConnector where+  parseJSON =+    Data.withObject+      "DataConnector"+      ( \x ->+          DataConnector'+            Prelude.<$> (x Data..:? "isNative")+            Prelude.<*> (x Data..:? "lambda")+      )++instance Prelude.Hashable DataConnector where+  hashWithSalt _salt DataConnector' {..} =+    _salt+      `Prelude.hashWithSalt` isNative+      `Prelude.hashWithSalt` lambda++instance Prelude.NFData DataConnector where+  rnf DataConnector' {..} =+    Prelude.rnf isNative+      `Prelude.seq` Prelude.rnf lambda++instance Data.ToJSON DataConnector where+  toJSON DataConnector' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("isNative" Data..=) Prelude.<$> isNative,+            ("lambda" Data..=) Prelude.<$> lambda+          ]+      )
+ gen/Amazonka/IotTwinMaker/Types/DataType.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.IotTwinMaker.Types.DataType+-- 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.IotTwinMaker.Types.DataType where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IotTwinMaker.Types.DataValue+import Amazonka.IotTwinMaker.Types.Relationship+import Amazonka.IotTwinMaker.Types.Type+import qualified Amazonka.Prelude as Prelude++-- | An object that specifies the data type of a property.+--+-- /See:/ 'newDataType' smart constructor.+data DataType = DataType'+  { -- | The allowed values for this data type.+    allowedValues :: Prelude.Maybe [DataValue],+    -- | The nested type in the data type.+    nestedType :: Prelude.Maybe DataType,+    -- | A relationship that associates a component with another component.+    relationship :: Prelude.Maybe Relationship,+    -- | The unit of measure used in this data type.+    unitOfMeasure :: Prelude.Maybe Prelude.Text,+    -- | The underlying type of the data type.+    type' :: Type+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DataType' 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', 'dataType_allowedValues' - The allowed values for this data type.+--+-- 'nestedType', 'dataType_nestedType' - The nested type in the data type.+--+-- 'relationship', 'dataType_relationship' - A relationship that associates a component with another component.+--+-- 'unitOfMeasure', 'dataType_unitOfMeasure' - The unit of measure used in this data type.+--+-- 'type'', 'dataType_type' - The underlying type of the data type.+newDataType ::+  -- | 'type''+  Type ->+  DataType+newDataType pType_ =+  DataType'+    { allowedValues = Prelude.Nothing,+      nestedType = Prelude.Nothing,+      relationship = Prelude.Nothing,+      unitOfMeasure = Prelude.Nothing,+      type' = pType_+    }++-- | The allowed values for this data type.+dataType_allowedValues :: Lens.Lens' DataType (Prelude.Maybe [DataValue])+dataType_allowedValues = Lens.lens (\DataType' {allowedValues} -> allowedValues) (\s@DataType' {} a -> s {allowedValues = a} :: DataType) Prelude.. Lens.mapping Lens.coerced++-- | The nested type in the data type.+dataType_nestedType :: Lens.Lens' DataType (Prelude.Maybe DataType)+dataType_nestedType = Lens.lens (\DataType' {nestedType} -> nestedType) (\s@DataType' {} a -> s {nestedType = a} :: DataType)++-- | A relationship that associates a component with another component.+dataType_relationship :: Lens.Lens' DataType (Prelude.Maybe Relationship)+dataType_relationship = Lens.lens (\DataType' {relationship} -> relationship) (\s@DataType' {} a -> s {relationship = a} :: DataType)++-- | The unit of measure used in this data type.+dataType_unitOfMeasure :: Lens.Lens' DataType (Prelude.Maybe Prelude.Text)+dataType_unitOfMeasure = Lens.lens (\DataType' {unitOfMeasure} -> unitOfMeasure) (\s@DataType' {} a -> s {unitOfMeasure = a} :: DataType)++-- | The underlying type of the data type.+dataType_type :: Lens.Lens' DataType Type+dataType_type = Lens.lens (\DataType' {type'} -> type') (\s@DataType' {} a -> s {type' = a} :: DataType)++instance Data.FromJSON DataType where+  parseJSON =+    Data.withObject+      "DataType"+      ( \x ->+          DataType'+            Prelude.<$> (x Data..:? "allowedValues" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "nestedType")+            Prelude.<*> (x Data..:? "relationship")+            Prelude.<*> (x Data..:? "unitOfMeasure")+            Prelude.<*> (x Data..: "type")+      )++instance Prelude.Hashable DataType where+  hashWithSalt _salt DataType' {..} =+    _salt+      `Prelude.hashWithSalt` allowedValues+      `Prelude.hashWithSalt` nestedType+      `Prelude.hashWithSalt` relationship+      `Prelude.hashWithSalt` unitOfMeasure+      `Prelude.hashWithSalt` type'++instance Prelude.NFData DataType where+  rnf DataType' {..} =+    Prelude.rnf allowedValues+      `Prelude.seq` Prelude.rnf nestedType+      `Prelude.seq` Prelude.rnf relationship+      `Prelude.seq` Prelude.rnf unitOfMeasure+      `Prelude.seq` Prelude.rnf type'++instance Data.ToJSON DataType where+  toJSON DataType' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("allowedValues" Data..=) Prelude.<$> allowedValues,+            ("nestedType" Data..=) Prelude.<$> nestedType,+            ("relationship" Data..=) Prelude.<$> relationship,+            ("unitOfMeasure" Data..=) Prelude.<$> unitOfMeasure,+            Prelude.Just ("type" Data..= type')+          ]+      )
+ gen/Amazonka/IotTwinMaker/Types/DataValue.hs view
@@ -0,0 +1,186 @@+{-# 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.IotTwinMaker.Types.DataValue+-- 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.IotTwinMaker.Types.DataValue where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IotTwinMaker.Types.RelationshipValue+import qualified Amazonka.Prelude as Prelude++-- | An object that specifies a value for a property.+--+-- /See:/ 'newDataValue' smart constructor.+data DataValue = DataValue'+  { -- | A Boolean value.+    booleanValue :: Prelude.Maybe Prelude.Bool,+    -- | A double value.+    doubleValue :: Prelude.Maybe Prelude.Double,+    -- | An expression that produces the value.+    expression :: Prelude.Maybe Prelude.Text,+    -- | An integer value.+    integerValue :: Prelude.Maybe Prelude.Int,+    -- | A list of multiple values.+    listValue :: Prelude.Maybe [DataValue],+    -- | A long value.+    longValue :: Prelude.Maybe Prelude.Integer,+    -- | An object that maps strings to multiple @DataValue@ objects.+    mapValue :: Prelude.Maybe (Prelude.HashMap Prelude.Text DataValue),+    -- | A value that relates a component to another component.+    relationshipValue :: Prelude.Maybe RelationshipValue,+    -- | A string value.+    stringValue :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DataValue' 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:+--+-- 'booleanValue', 'dataValue_booleanValue' - A Boolean value.+--+-- 'doubleValue', 'dataValue_doubleValue' - A double value.+--+-- 'expression', 'dataValue_expression' - An expression that produces the value.+--+-- 'integerValue', 'dataValue_integerValue' - An integer value.+--+-- 'listValue', 'dataValue_listValue' - A list of multiple values.+--+-- 'longValue', 'dataValue_longValue' - A long value.+--+-- 'mapValue', 'dataValue_mapValue' - An object that maps strings to multiple @DataValue@ objects.+--+-- 'relationshipValue', 'dataValue_relationshipValue' - A value that relates a component to another component.+--+-- 'stringValue', 'dataValue_stringValue' - A string value.+newDataValue ::+  DataValue+newDataValue =+  DataValue'+    { booleanValue = Prelude.Nothing,+      doubleValue = Prelude.Nothing,+      expression = Prelude.Nothing,+      integerValue = Prelude.Nothing,+      listValue = Prelude.Nothing,+      longValue = Prelude.Nothing,+      mapValue = Prelude.Nothing,+      relationshipValue = Prelude.Nothing,+      stringValue = Prelude.Nothing+    }++-- | A Boolean value.+dataValue_booleanValue :: Lens.Lens' DataValue (Prelude.Maybe Prelude.Bool)+dataValue_booleanValue = Lens.lens (\DataValue' {booleanValue} -> booleanValue) (\s@DataValue' {} a -> s {booleanValue = a} :: DataValue)++-- | A double value.+dataValue_doubleValue :: Lens.Lens' DataValue (Prelude.Maybe Prelude.Double)+dataValue_doubleValue = Lens.lens (\DataValue' {doubleValue} -> doubleValue) (\s@DataValue' {} a -> s {doubleValue = a} :: DataValue)++-- | An expression that produces the value.+dataValue_expression :: Lens.Lens' DataValue (Prelude.Maybe Prelude.Text)+dataValue_expression = Lens.lens (\DataValue' {expression} -> expression) (\s@DataValue' {} a -> s {expression = a} :: DataValue)++-- | An integer value.+dataValue_integerValue :: Lens.Lens' DataValue (Prelude.Maybe Prelude.Int)+dataValue_integerValue = Lens.lens (\DataValue' {integerValue} -> integerValue) (\s@DataValue' {} a -> s {integerValue = a} :: DataValue)++-- | A list of multiple values.+dataValue_listValue :: Lens.Lens' DataValue (Prelude.Maybe [DataValue])+dataValue_listValue = Lens.lens (\DataValue' {listValue} -> listValue) (\s@DataValue' {} a -> s {listValue = a} :: DataValue) Prelude.. Lens.mapping Lens.coerced++-- | A long value.+dataValue_longValue :: Lens.Lens' DataValue (Prelude.Maybe Prelude.Integer)+dataValue_longValue = Lens.lens (\DataValue' {longValue} -> longValue) (\s@DataValue' {} a -> s {longValue = a} :: DataValue)++-- | An object that maps strings to multiple @DataValue@ objects.+dataValue_mapValue :: Lens.Lens' DataValue (Prelude.Maybe (Prelude.HashMap Prelude.Text DataValue))+dataValue_mapValue = Lens.lens (\DataValue' {mapValue} -> mapValue) (\s@DataValue' {} a -> s {mapValue = a} :: DataValue) Prelude.. Lens.mapping Lens.coerced++-- | A value that relates a component to another component.+dataValue_relationshipValue :: Lens.Lens' DataValue (Prelude.Maybe RelationshipValue)+dataValue_relationshipValue = Lens.lens (\DataValue' {relationshipValue} -> relationshipValue) (\s@DataValue' {} a -> s {relationshipValue = a} :: DataValue)++-- | A string value.+dataValue_stringValue :: Lens.Lens' DataValue (Prelude.Maybe Prelude.Text)+dataValue_stringValue = Lens.lens (\DataValue' {stringValue} -> stringValue) (\s@DataValue' {} a -> s {stringValue = a} :: DataValue)++instance Data.FromJSON DataValue where+  parseJSON =+    Data.withObject+      "DataValue"+      ( \x ->+          DataValue'+            Prelude.<$> (x Data..:? "booleanValue")+            Prelude.<*> (x Data..:? "doubleValue")+            Prelude.<*> (x Data..:? "expression")+            Prelude.<*> (x Data..:? "integerValue")+            Prelude.<*> (x Data..:? "listValue" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "longValue")+            Prelude.<*> (x Data..:? "mapValue" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "relationshipValue")+            Prelude.<*> (x Data..:? "stringValue")+      )++instance Prelude.Hashable DataValue where+  hashWithSalt _salt DataValue' {..} =+    _salt+      `Prelude.hashWithSalt` booleanValue+      `Prelude.hashWithSalt` doubleValue+      `Prelude.hashWithSalt` expression+      `Prelude.hashWithSalt` integerValue+      `Prelude.hashWithSalt` listValue+      `Prelude.hashWithSalt` longValue+      `Prelude.hashWithSalt` mapValue+      `Prelude.hashWithSalt` relationshipValue+      `Prelude.hashWithSalt` stringValue++instance Prelude.NFData DataValue where+  rnf DataValue' {..} =+    Prelude.rnf booleanValue+      `Prelude.seq` Prelude.rnf doubleValue+      `Prelude.seq` Prelude.rnf expression+      `Prelude.seq` Prelude.rnf integerValue+      `Prelude.seq` Prelude.rnf listValue+      `Prelude.seq` Prelude.rnf longValue+      `Prelude.seq` Prelude.rnf mapValue+      `Prelude.seq` Prelude.rnf relationshipValue+      `Prelude.seq` Prelude.rnf stringValue++instance Data.ToJSON DataValue where+  toJSON DataValue' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("booleanValue" Data..=) Prelude.<$> booleanValue,+            ("doubleValue" Data..=) Prelude.<$> doubleValue,+            ("expression" Data..=) Prelude.<$> expression,+            ("integerValue" Data..=) Prelude.<$> integerValue,+            ("listValue" Data..=) Prelude.<$> listValue,+            ("longValue" Data..=) Prelude.<$> longValue,+            ("mapValue" Data..=) Prelude.<$> mapValue,+            ("relationshipValue" Data..=)+              Prelude.<$> relationshipValue,+            ("stringValue" Data..=) Prelude.<$> stringValue+          ]+      )
+ gen/Amazonka/IotTwinMaker/Types/EntityPropertyReference.hs view
@@ -0,0 +1,129 @@+{-# 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.IotTwinMaker.Types.EntityPropertyReference+-- 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.IotTwinMaker.Types.EntityPropertyReference 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 object that uniquely identifies an entity property.+--+-- /See:/ 'newEntityPropertyReference' smart constructor.+data EntityPropertyReference = EntityPropertyReference'+  { -- | The name of the component.+    componentName :: Prelude.Maybe Prelude.Text,+    -- | The ID of the entity.+    entityId :: Prelude.Maybe Prelude.Text,+    -- | A mapping of external IDs to property names. External IDs uniquely+    -- identify properties from external data stores.+    externalIdProperty :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The name of the property.+    propertyName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'EntityPropertyReference' 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:+--+-- 'componentName', 'entityPropertyReference_componentName' - The name of the component.+--+-- 'entityId', 'entityPropertyReference_entityId' - The ID of the entity.+--+-- 'externalIdProperty', 'entityPropertyReference_externalIdProperty' - A mapping of external IDs to property names. External IDs uniquely+-- identify properties from external data stores.+--+-- 'propertyName', 'entityPropertyReference_propertyName' - The name of the property.+newEntityPropertyReference ::+  -- | 'propertyName'+  Prelude.Text ->+  EntityPropertyReference+newEntityPropertyReference pPropertyName_ =+  EntityPropertyReference'+    { componentName =+        Prelude.Nothing,+      entityId = Prelude.Nothing,+      externalIdProperty = Prelude.Nothing,+      propertyName = pPropertyName_+    }++-- | The name of the component.+entityPropertyReference_componentName :: Lens.Lens' EntityPropertyReference (Prelude.Maybe Prelude.Text)+entityPropertyReference_componentName = Lens.lens (\EntityPropertyReference' {componentName} -> componentName) (\s@EntityPropertyReference' {} a -> s {componentName = a} :: EntityPropertyReference)++-- | The ID of the entity.+entityPropertyReference_entityId :: Lens.Lens' EntityPropertyReference (Prelude.Maybe Prelude.Text)+entityPropertyReference_entityId = Lens.lens (\EntityPropertyReference' {entityId} -> entityId) (\s@EntityPropertyReference' {} a -> s {entityId = a} :: EntityPropertyReference)++-- | A mapping of external IDs to property names. External IDs uniquely+-- identify properties from external data stores.+entityPropertyReference_externalIdProperty :: Lens.Lens' EntityPropertyReference (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+entityPropertyReference_externalIdProperty = Lens.lens (\EntityPropertyReference' {externalIdProperty} -> externalIdProperty) (\s@EntityPropertyReference' {} a -> s {externalIdProperty = a} :: EntityPropertyReference) Prelude.. Lens.mapping Lens.coerced++-- | The name of the property.+entityPropertyReference_propertyName :: Lens.Lens' EntityPropertyReference Prelude.Text+entityPropertyReference_propertyName = Lens.lens (\EntityPropertyReference' {propertyName} -> propertyName) (\s@EntityPropertyReference' {} a -> s {propertyName = a} :: EntityPropertyReference)++instance Data.FromJSON EntityPropertyReference where+  parseJSON =+    Data.withObject+      "EntityPropertyReference"+      ( \x ->+          EntityPropertyReference'+            Prelude.<$> (x Data..:? "componentName")+            Prelude.<*> (x Data..:? "entityId")+            Prelude.<*> ( x+                            Data..:? "externalIdProperty"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..: "propertyName")+      )++instance Prelude.Hashable EntityPropertyReference where+  hashWithSalt _salt EntityPropertyReference' {..} =+    _salt+      `Prelude.hashWithSalt` componentName+      `Prelude.hashWithSalt` entityId+      `Prelude.hashWithSalt` externalIdProperty+      `Prelude.hashWithSalt` propertyName++instance Prelude.NFData EntityPropertyReference where+  rnf EntityPropertyReference' {..} =+    Prelude.rnf componentName+      `Prelude.seq` Prelude.rnf entityId+      `Prelude.seq` Prelude.rnf externalIdProperty+      `Prelude.seq` Prelude.rnf propertyName++instance Data.ToJSON EntityPropertyReference where+  toJSON EntityPropertyReference' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("componentName" Data..=) Prelude.<$> componentName,+            ("entityId" Data..=) Prelude.<$> entityId,+            ("externalIdProperty" Data..=)+              Prelude.<$> externalIdProperty,+            Prelude.Just ("propertyName" Data..= propertyName)+          ]+      )
+ gen/Amazonka/IotTwinMaker/Types/EntitySummary.hs view
@@ -0,0 +1,191 @@+{-# 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.IotTwinMaker.Types.EntitySummary+-- 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.IotTwinMaker.Types.EntitySummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IotTwinMaker.Types.Status+import qualified Amazonka.Prelude as Prelude++-- | An object that contains information about an entity.+--+-- /See:/ 'newEntitySummary' smart constructor.+data EntitySummary = EntitySummary'+  { -- | The description of the entity.+    description :: Prelude.Maybe Prelude.Text,+    -- | A Boolean value that specifies whether the entity has child entities or+    -- not.+    hasChildEntities :: Prelude.Maybe Prelude.Bool,+    -- | The ID of the parent entity.+    parentEntityId :: Prelude.Maybe Prelude.Text,+    -- | The ID of the entity.+    entityId :: Prelude.Text,+    -- | The name of the entity.+    entityName :: Prelude.Text,+    -- | The ARN of the entity.+    arn :: Prelude.Text,+    -- | The current status of the entity.+    status :: Status,+    -- | The date and time when the entity was created.+    creationDateTime :: Data.POSIX,+    -- | The last date and time when the entity was updated.+    updateDateTime :: Data.POSIX+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'EntitySummary' 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', 'entitySummary_description' - The description of the entity.+--+-- 'hasChildEntities', 'entitySummary_hasChildEntities' - A Boolean value that specifies whether the entity has child entities or+-- not.+--+-- 'parentEntityId', 'entitySummary_parentEntityId' - The ID of the parent entity.+--+-- 'entityId', 'entitySummary_entityId' - The ID of the entity.+--+-- 'entityName', 'entitySummary_entityName' - The name of the entity.+--+-- 'arn', 'entitySummary_arn' - The ARN of the entity.+--+-- 'status', 'entitySummary_status' - The current status of the entity.+--+-- 'creationDateTime', 'entitySummary_creationDateTime' - The date and time when the entity was created.+--+-- 'updateDateTime', 'entitySummary_updateDateTime' - The last date and time when the entity was updated.+newEntitySummary ::+  -- | 'entityId'+  Prelude.Text ->+  -- | 'entityName'+  Prelude.Text ->+  -- | 'arn'+  Prelude.Text ->+  -- | 'status'+  Status ->+  -- | 'creationDateTime'+  Prelude.UTCTime ->+  -- | 'updateDateTime'+  Prelude.UTCTime ->+  EntitySummary+newEntitySummary+  pEntityId_+  pEntityName_+  pArn_+  pStatus_+  pCreationDateTime_+  pUpdateDateTime_ =+    EntitySummary'+      { description = Prelude.Nothing,+        hasChildEntities = Prelude.Nothing,+        parentEntityId = Prelude.Nothing,+        entityId = pEntityId_,+        entityName = pEntityName_,+        arn = pArn_,+        status = pStatus_,+        creationDateTime =+          Data._Time Lens.# pCreationDateTime_,+        updateDateTime = Data._Time Lens.# pUpdateDateTime_+      }++-- | The description of the entity.+entitySummary_description :: Lens.Lens' EntitySummary (Prelude.Maybe Prelude.Text)+entitySummary_description = Lens.lens (\EntitySummary' {description} -> description) (\s@EntitySummary' {} a -> s {description = a} :: EntitySummary)++-- | A Boolean value that specifies whether the entity has child entities or+-- not.+entitySummary_hasChildEntities :: Lens.Lens' EntitySummary (Prelude.Maybe Prelude.Bool)+entitySummary_hasChildEntities = Lens.lens (\EntitySummary' {hasChildEntities} -> hasChildEntities) (\s@EntitySummary' {} a -> s {hasChildEntities = a} :: EntitySummary)++-- | The ID of the parent entity.+entitySummary_parentEntityId :: Lens.Lens' EntitySummary (Prelude.Maybe Prelude.Text)+entitySummary_parentEntityId = Lens.lens (\EntitySummary' {parentEntityId} -> parentEntityId) (\s@EntitySummary' {} a -> s {parentEntityId = a} :: EntitySummary)++-- | The ID of the entity.+entitySummary_entityId :: Lens.Lens' EntitySummary Prelude.Text+entitySummary_entityId = Lens.lens (\EntitySummary' {entityId} -> entityId) (\s@EntitySummary' {} a -> s {entityId = a} :: EntitySummary)++-- | The name of the entity.+entitySummary_entityName :: Lens.Lens' EntitySummary Prelude.Text+entitySummary_entityName = Lens.lens (\EntitySummary' {entityName} -> entityName) (\s@EntitySummary' {} a -> s {entityName = a} :: EntitySummary)++-- | The ARN of the entity.+entitySummary_arn :: Lens.Lens' EntitySummary Prelude.Text+entitySummary_arn = Lens.lens (\EntitySummary' {arn} -> arn) (\s@EntitySummary' {} a -> s {arn = a} :: EntitySummary)++-- | The current status of the entity.+entitySummary_status :: Lens.Lens' EntitySummary Status+entitySummary_status = Lens.lens (\EntitySummary' {status} -> status) (\s@EntitySummary' {} a -> s {status = a} :: EntitySummary)++-- | The date and time when the entity was created.+entitySummary_creationDateTime :: Lens.Lens' EntitySummary Prelude.UTCTime+entitySummary_creationDateTime = Lens.lens (\EntitySummary' {creationDateTime} -> creationDateTime) (\s@EntitySummary' {} a -> s {creationDateTime = a} :: EntitySummary) Prelude.. Data._Time++-- | The last date and time when the entity was updated.+entitySummary_updateDateTime :: Lens.Lens' EntitySummary Prelude.UTCTime+entitySummary_updateDateTime = Lens.lens (\EntitySummary' {updateDateTime} -> updateDateTime) (\s@EntitySummary' {} a -> s {updateDateTime = a} :: EntitySummary) Prelude.. Data._Time++instance Data.FromJSON EntitySummary where+  parseJSON =+    Data.withObject+      "EntitySummary"+      ( \x ->+          EntitySummary'+            Prelude.<$> (x Data..:? "description")+            Prelude.<*> (x Data..:? "hasChildEntities")+            Prelude.<*> (x Data..:? "parentEntityId")+            Prelude.<*> (x Data..: "entityId")+            Prelude.<*> (x Data..: "entityName")+            Prelude.<*> (x Data..: "arn")+            Prelude.<*> (x Data..: "status")+            Prelude.<*> (x Data..: "creationDateTime")+            Prelude.<*> (x Data..: "updateDateTime")+      )++instance Prelude.Hashable EntitySummary where+  hashWithSalt _salt EntitySummary' {..} =+    _salt+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` hasChildEntities+      `Prelude.hashWithSalt` parentEntityId+      `Prelude.hashWithSalt` entityId+      `Prelude.hashWithSalt` entityName+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` status+      `Prelude.hashWithSalt` creationDateTime+      `Prelude.hashWithSalt` updateDateTime++instance Prelude.NFData EntitySummary where+  rnf EntitySummary' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf hasChildEntities+      `Prelude.seq` Prelude.rnf parentEntityId+      `Prelude.seq` Prelude.rnf entityId+      `Prelude.seq` Prelude.rnf entityName+      `Prelude.seq` Prelude.rnf arn+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf creationDateTime+      `Prelude.seq` Prelude.rnf updateDateTime
+ gen/Amazonka/IotTwinMaker/Types/ErrorCode.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.IotTwinMaker.Types.ErrorCode+-- 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.IotTwinMaker.Types.ErrorCode+  ( ErrorCode+      ( ..,+        ErrorCode_INTERNAL_FAILURE,+        ErrorCode_SYNC_CREATING_ERROR,+        ErrorCode_SYNC_INITIALIZING_ERROR,+        ErrorCode_SYNC_PROCESSING_ERROR,+        ErrorCode_VALIDATION_ERROR+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ErrorCode = ErrorCode'+  { fromErrorCode ::+      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 ErrorCode_INTERNAL_FAILURE :: ErrorCode+pattern ErrorCode_INTERNAL_FAILURE = ErrorCode' "INTERNAL_FAILURE"++pattern ErrorCode_SYNC_CREATING_ERROR :: ErrorCode+pattern ErrorCode_SYNC_CREATING_ERROR = ErrorCode' "SYNC_CREATING_ERROR"++pattern ErrorCode_SYNC_INITIALIZING_ERROR :: ErrorCode+pattern ErrorCode_SYNC_INITIALIZING_ERROR = ErrorCode' "SYNC_INITIALIZING_ERROR"++pattern ErrorCode_SYNC_PROCESSING_ERROR :: ErrorCode+pattern ErrorCode_SYNC_PROCESSING_ERROR = ErrorCode' "SYNC_PROCESSING_ERROR"++pattern ErrorCode_VALIDATION_ERROR :: ErrorCode+pattern ErrorCode_VALIDATION_ERROR = ErrorCode' "VALIDATION_ERROR"++{-# COMPLETE+  ErrorCode_INTERNAL_FAILURE,+  ErrorCode_SYNC_CREATING_ERROR,+  ErrorCode_SYNC_INITIALIZING_ERROR,+  ErrorCode_SYNC_PROCESSING_ERROR,+  ErrorCode_VALIDATION_ERROR,+  ErrorCode'+  #-}
+ gen/Amazonka/IotTwinMaker/Types/ErrorDetails.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.IotTwinMaker.Types.ErrorDetails+-- 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.IotTwinMaker.Types.ErrorDetails where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IotTwinMaker.Types.ErrorCode+import qualified Amazonka.Prelude as Prelude++-- | The error details.+--+-- /See:/ 'newErrorDetails' smart constructor.+data ErrorDetails = ErrorDetails'+  { -- | The error code.+    code :: Prelude.Maybe ErrorCode,+    -- | The error message.+    message :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ErrorDetails' 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', 'errorDetails_code' - The error code.+--+-- 'message', 'errorDetails_message' - The error message.+newErrorDetails ::+  ErrorDetails+newErrorDetails =+  ErrorDetails'+    { code = Prelude.Nothing,+      message = Prelude.Nothing+    }++-- | The error code.+errorDetails_code :: Lens.Lens' ErrorDetails (Prelude.Maybe ErrorCode)+errorDetails_code = Lens.lens (\ErrorDetails' {code} -> code) (\s@ErrorDetails' {} a -> s {code = a} :: ErrorDetails)++-- | The error message.+errorDetails_message :: Lens.Lens' ErrorDetails (Prelude.Maybe Prelude.Text)+errorDetails_message = Lens.lens (\ErrorDetails' {message} -> message) (\s@ErrorDetails' {} a -> s {message = a} :: ErrorDetails)++instance Data.FromJSON ErrorDetails where+  parseJSON =+    Data.withObject+      "ErrorDetails"+      ( \x ->+          ErrorDetails'+            Prelude.<$> (x Data..:? "code")+            Prelude.<*> (x Data..:? "message")+      )++instance Prelude.Hashable ErrorDetails where+  hashWithSalt _salt ErrorDetails' {..} =+    _salt+      `Prelude.hashWithSalt` code+      `Prelude.hashWithSalt` message++instance Prelude.NFData ErrorDetails where+  rnf ErrorDetails' {..} =+    Prelude.rnf code `Prelude.seq` Prelude.rnf message
+ gen/Amazonka/IotTwinMaker/Types/FunctionRequest.hs view
@@ -0,0 +1,98 @@+{-# 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.IotTwinMaker.Types.FunctionRequest+-- 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.IotTwinMaker.Types.FunctionRequest where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IotTwinMaker.Types.DataConnector+import Amazonka.IotTwinMaker.Types.Scope+import qualified Amazonka.Prelude as Prelude++-- | The function request body.+--+-- /See:/ 'newFunctionRequest' smart constructor.+data FunctionRequest = FunctionRequest'+  { -- | The data connector.+    implementedBy :: Prelude.Maybe DataConnector,+    -- | The required properties of the function.+    requiredProperties :: Prelude.Maybe [Prelude.Text],+    -- | The scope of the function.+    scope :: Prelude.Maybe Scope+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'FunctionRequest' 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:+--+-- 'implementedBy', 'functionRequest_implementedBy' - The data connector.+--+-- 'requiredProperties', 'functionRequest_requiredProperties' - The required properties of the function.+--+-- 'scope', 'functionRequest_scope' - The scope of the function.+newFunctionRequest ::+  FunctionRequest+newFunctionRequest =+  FunctionRequest'+    { implementedBy = Prelude.Nothing,+      requiredProperties = Prelude.Nothing,+      scope = Prelude.Nothing+    }++-- | The data connector.+functionRequest_implementedBy :: Lens.Lens' FunctionRequest (Prelude.Maybe DataConnector)+functionRequest_implementedBy = Lens.lens (\FunctionRequest' {implementedBy} -> implementedBy) (\s@FunctionRequest' {} a -> s {implementedBy = a} :: FunctionRequest)++-- | The required properties of the function.+functionRequest_requiredProperties :: Lens.Lens' FunctionRequest (Prelude.Maybe [Prelude.Text])+functionRequest_requiredProperties = Lens.lens (\FunctionRequest' {requiredProperties} -> requiredProperties) (\s@FunctionRequest' {} a -> s {requiredProperties = a} :: FunctionRequest) Prelude.. Lens.mapping Lens.coerced++-- | The scope of the function.+functionRequest_scope :: Lens.Lens' FunctionRequest (Prelude.Maybe Scope)+functionRequest_scope = Lens.lens (\FunctionRequest' {scope} -> scope) (\s@FunctionRequest' {} a -> s {scope = a} :: FunctionRequest)++instance Prelude.Hashable FunctionRequest where+  hashWithSalt _salt FunctionRequest' {..} =+    _salt+      `Prelude.hashWithSalt` implementedBy+      `Prelude.hashWithSalt` requiredProperties+      `Prelude.hashWithSalt` scope++instance Prelude.NFData FunctionRequest where+  rnf FunctionRequest' {..} =+    Prelude.rnf implementedBy+      `Prelude.seq` Prelude.rnf requiredProperties+      `Prelude.seq` Prelude.rnf scope++instance Data.ToJSON FunctionRequest where+  toJSON FunctionRequest' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("implementedBy" Data..=) Prelude.<$> implementedBy,+            ("requiredProperties" Data..=)+              Prelude.<$> requiredProperties,+            ("scope" Data..=) Prelude.<$> scope+          ]+      )
+ gen/Amazonka/IotTwinMaker/Types/FunctionResponse.hs view
@@ -0,0 +1,113 @@+{-# 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.IotTwinMaker.Types.FunctionResponse+-- 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.IotTwinMaker.Types.FunctionResponse where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IotTwinMaker.Types.DataConnector+import Amazonka.IotTwinMaker.Types.Scope+import qualified Amazonka.Prelude as Prelude++-- | The function response.+--+-- /See:/ 'newFunctionResponse' smart constructor.+data FunctionResponse = FunctionResponse'+  { -- | The data connector.+    implementedBy :: Prelude.Maybe DataConnector,+    -- | Indicates whether this function is inherited.+    isInherited :: Prelude.Maybe Prelude.Bool,+    -- | The required properties of the function.+    requiredProperties :: Prelude.Maybe [Prelude.Text],+    -- | The scope of the function.+    scope :: Prelude.Maybe Scope+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'FunctionResponse' 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:+--+-- 'implementedBy', 'functionResponse_implementedBy' - The data connector.+--+-- 'isInherited', 'functionResponse_isInherited' - Indicates whether this function is inherited.+--+-- 'requiredProperties', 'functionResponse_requiredProperties' - The required properties of the function.+--+-- 'scope', 'functionResponse_scope' - The scope of the function.+newFunctionResponse ::+  FunctionResponse+newFunctionResponse =+  FunctionResponse'+    { implementedBy = Prelude.Nothing,+      isInherited = Prelude.Nothing,+      requiredProperties = Prelude.Nothing,+      scope = Prelude.Nothing+    }++-- | The data connector.+functionResponse_implementedBy :: Lens.Lens' FunctionResponse (Prelude.Maybe DataConnector)+functionResponse_implementedBy = Lens.lens (\FunctionResponse' {implementedBy} -> implementedBy) (\s@FunctionResponse' {} a -> s {implementedBy = a} :: FunctionResponse)++-- | Indicates whether this function is inherited.+functionResponse_isInherited :: Lens.Lens' FunctionResponse (Prelude.Maybe Prelude.Bool)+functionResponse_isInherited = Lens.lens (\FunctionResponse' {isInherited} -> isInherited) (\s@FunctionResponse' {} a -> s {isInherited = a} :: FunctionResponse)++-- | The required properties of the function.+functionResponse_requiredProperties :: Lens.Lens' FunctionResponse (Prelude.Maybe [Prelude.Text])+functionResponse_requiredProperties = Lens.lens (\FunctionResponse' {requiredProperties} -> requiredProperties) (\s@FunctionResponse' {} a -> s {requiredProperties = a} :: FunctionResponse) Prelude.. Lens.mapping Lens.coerced++-- | The scope of the function.+functionResponse_scope :: Lens.Lens' FunctionResponse (Prelude.Maybe Scope)+functionResponse_scope = Lens.lens (\FunctionResponse' {scope} -> scope) (\s@FunctionResponse' {} a -> s {scope = a} :: FunctionResponse)++instance Data.FromJSON FunctionResponse where+  parseJSON =+    Data.withObject+      "FunctionResponse"+      ( \x ->+          FunctionResponse'+            Prelude.<$> (x Data..:? "implementedBy")+            Prelude.<*> (x Data..:? "isInherited")+            Prelude.<*> ( x+                            Data..:? "requiredProperties"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "scope")+      )++instance Prelude.Hashable FunctionResponse where+  hashWithSalt _salt FunctionResponse' {..} =+    _salt+      `Prelude.hashWithSalt` implementedBy+      `Prelude.hashWithSalt` isInherited+      `Prelude.hashWithSalt` requiredProperties+      `Prelude.hashWithSalt` scope++instance Prelude.NFData FunctionResponse where+  rnf FunctionResponse' {..} =+    Prelude.rnf implementedBy+      `Prelude.seq` Prelude.rnf isInherited+      `Prelude.seq` Prelude.rnf requiredProperties+      `Prelude.seq` Prelude.rnf scope
+ gen/Amazonka/IotTwinMaker/Types/GroupType.hs view
@@ -0,0 +1,66 @@+{-# 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.IotTwinMaker.Types.GroupType+-- 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.IotTwinMaker.Types.GroupType+  ( GroupType+      ( ..,+        GroupType_TABULAR+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype GroupType = GroupType'+  { fromGroupType ::+      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 GroupType_TABULAR :: GroupType+pattern GroupType_TABULAR = GroupType' "TABULAR"++{-# COMPLETE+  GroupType_TABULAR,+  GroupType'+  #-}
+ gen/Amazonka/IotTwinMaker/Types/InterpolationParameters.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.IotTwinMaker.Types.InterpolationParameters+-- 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.IotTwinMaker.Types.InterpolationParameters where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IotTwinMaker.Types.InterpolationType+import qualified Amazonka.Prelude as Prelude++-- | An object that specifies how to interpolate data in a list.+--+-- /See:/ 'newInterpolationParameters' smart constructor.+data InterpolationParameters = InterpolationParameters'+  { -- | The interpolation type.+    interpolationType :: Prelude.Maybe InterpolationType,+    -- | The interpolation time interval in seconds.+    intervalInSeconds :: Prelude.Maybe Prelude.Integer+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'InterpolationParameters' 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:+--+-- 'interpolationType', 'interpolationParameters_interpolationType' - The interpolation type.+--+-- 'intervalInSeconds', 'interpolationParameters_intervalInSeconds' - The interpolation time interval in seconds.+newInterpolationParameters ::+  InterpolationParameters+newInterpolationParameters =+  InterpolationParameters'+    { interpolationType =+        Prelude.Nothing,+      intervalInSeconds = Prelude.Nothing+    }++-- | The interpolation type.+interpolationParameters_interpolationType :: Lens.Lens' InterpolationParameters (Prelude.Maybe InterpolationType)+interpolationParameters_interpolationType = Lens.lens (\InterpolationParameters' {interpolationType} -> interpolationType) (\s@InterpolationParameters' {} a -> s {interpolationType = a} :: InterpolationParameters)++-- | The interpolation time interval in seconds.+interpolationParameters_intervalInSeconds :: Lens.Lens' InterpolationParameters (Prelude.Maybe Prelude.Integer)+interpolationParameters_intervalInSeconds = Lens.lens (\InterpolationParameters' {intervalInSeconds} -> intervalInSeconds) (\s@InterpolationParameters' {} a -> s {intervalInSeconds = a} :: InterpolationParameters)++instance Prelude.Hashable InterpolationParameters where+  hashWithSalt _salt InterpolationParameters' {..} =+    _salt+      `Prelude.hashWithSalt` interpolationType+      `Prelude.hashWithSalt` intervalInSeconds++instance Prelude.NFData InterpolationParameters where+  rnf InterpolationParameters' {..} =+    Prelude.rnf interpolationType+      `Prelude.seq` Prelude.rnf intervalInSeconds++instance Data.ToJSON InterpolationParameters where+  toJSON InterpolationParameters' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("interpolationType" Data..=)+              Prelude.<$> interpolationType,+            ("intervalInSeconds" Data..=)+              Prelude.<$> intervalInSeconds+          ]+      )
+ gen/Amazonka/IotTwinMaker/Types/InterpolationType.hs view
@@ -0,0 +1,66 @@+{-# 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.IotTwinMaker.Types.InterpolationType+-- 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.IotTwinMaker.Types.InterpolationType+  ( InterpolationType+      ( ..,+        InterpolationType_LINEAR+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype InterpolationType = InterpolationType'+  { fromInterpolationType ::+      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 InterpolationType_LINEAR :: InterpolationType+pattern InterpolationType_LINEAR = InterpolationType' "LINEAR"++{-# COMPLETE+  InterpolationType_LINEAR,+  InterpolationType'+  #-}
+ gen/Amazonka/IotTwinMaker/Types/LambdaFunction.hs view
@@ -0,0 +1,76 @@+{-# 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.IotTwinMaker.Types.LambdaFunction+-- 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.IotTwinMaker.Types.LambdaFunction 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 Lambda function.+--+-- /See:/ 'newLambdaFunction' smart constructor.+data LambdaFunction = LambdaFunction'+  { -- | The ARN of the Lambda function.+    arn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'LambdaFunction' 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', 'lambdaFunction_arn' - The ARN of the Lambda function.+newLambdaFunction ::+  -- | 'arn'+  Prelude.Text ->+  LambdaFunction+newLambdaFunction pArn_ =+  LambdaFunction' {arn = pArn_}++-- | The ARN of the Lambda function.+lambdaFunction_arn :: Lens.Lens' LambdaFunction Prelude.Text+lambdaFunction_arn = Lens.lens (\LambdaFunction' {arn} -> arn) (\s@LambdaFunction' {} a -> s {arn = a} :: LambdaFunction)++instance Data.FromJSON LambdaFunction where+  parseJSON =+    Data.withObject+      "LambdaFunction"+      ( \x ->+          LambdaFunction' Prelude.<$> (x Data..: "arn")+      )++instance Prelude.Hashable LambdaFunction where+  hashWithSalt _salt LambdaFunction' {..} =+    _salt `Prelude.hashWithSalt` arn++instance Prelude.NFData LambdaFunction where+  rnf LambdaFunction' {..} = Prelude.rnf arn++instance Data.ToJSON LambdaFunction where+  toJSON LambdaFunction' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("arn" Data..= arn)]+      )
+ gen/Amazonka/IotTwinMaker/Types/ListComponentTypesFilter.hs view
@@ -0,0 +1,101 @@+{-# 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.IotTwinMaker.Types.ListComponentTypesFilter+-- 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.IotTwinMaker.Types.ListComponentTypesFilter 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 object that filters items in a list of component types.+--+-- Only one object is accepted as a valid input.+--+-- /See:/ 'newListComponentTypesFilter' smart constructor.+data ListComponentTypesFilter = ListComponentTypesFilter'+  { -- | The component type that the component types in the list extend.+    extendsFrom :: Prelude.Maybe Prelude.Text,+    -- | A Boolean value that specifies whether the component types in the list+    -- are abstract.+    isAbstract :: Prelude.Maybe Prelude.Bool,+    -- | The namespace to which the component types in the list belong.+    namespace :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListComponentTypesFilter' 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:+--+-- 'extendsFrom', 'listComponentTypesFilter_extendsFrom' - The component type that the component types in the list extend.+--+-- 'isAbstract', 'listComponentTypesFilter_isAbstract' - A Boolean value that specifies whether the component types in the list+-- are abstract.+--+-- 'namespace', 'listComponentTypesFilter_namespace' - The namespace to which the component types in the list belong.+newListComponentTypesFilter ::+  ListComponentTypesFilter+newListComponentTypesFilter =+  ListComponentTypesFilter'+    { extendsFrom =+        Prelude.Nothing,+      isAbstract = Prelude.Nothing,+      namespace = Prelude.Nothing+    }++-- | The component type that the component types in the list extend.+listComponentTypesFilter_extendsFrom :: Lens.Lens' ListComponentTypesFilter (Prelude.Maybe Prelude.Text)+listComponentTypesFilter_extendsFrom = Lens.lens (\ListComponentTypesFilter' {extendsFrom} -> extendsFrom) (\s@ListComponentTypesFilter' {} a -> s {extendsFrom = a} :: ListComponentTypesFilter)++-- | A Boolean value that specifies whether the component types in the list+-- are abstract.+listComponentTypesFilter_isAbstract :: Lens.Lens' ListComponentTypesFilter (Prelude.Maybe Prelude.Bool)+listComponentTypesFilter_isAbstract = Lens.lens (\ListComponentTypesFilter' {isAbstract} -> isAbstract) (\s@ListComponentTypesFilter' {} a -> s {isAbstract = a} :: ListComponentTypesFilter)++-- | The namespace to which the component types in the list belong.+listComponentTypesFilter_namespace :: Lens.Lens' ListComponentTypesFilter (Prelude.Maybe Prelude.Text)+listComponentTypesFilter_namespace = Lens.lens (\ListComponentTypesFilter' {namespace} -> namespace) (\s@ListComponentTypesFilter' {} a -> s {namespace = a} :: ListComponentTypesFilter)++instance Prelude.Hashable ListComponentTypesFilter where+  hashWithSalt _salt ListComponentTypesFilter' {..} =+    _salt+      `Prelude.hashWithSalt` extendsFrom+      `Prelude.hashWithSalt` isAbstract+      `Prelude.hashWithSalt` namespace++instance Prelude.NFData ListComponentTypesFilter where+  rnf ListComponentTypesFilter' {..} =+    Prelude.rnf extendsFrom+      `Prelude.seq` Prelude.rnf isAbstract+      `Prelude.seq` Prelude.rnf namespace++instance Data.ToJSON ListComponentTypesFilter where+  toJSON ListComponentTypesFilter' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("extendsFrom" Data..=) Prelude.<$> extendsFrom,+            ("isAbstract" Data..=) Prelude.<$> isAbstract,+            ("namespace" Data..=) Prelude.<$> namespace+          ]+      )
+ gen/Amazonka/IotTwinMaker/Types/ListEntitiesFilter.hs view
@@ -0,0 +1,101 @@+{-# 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.IotTwinMaker.Types.ListEntitiesFilter+-- 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.IotTwinMaker.Types.ListEntitiesFilter 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 object that filters items in a list of entities.+--+-- /See:/ 'newListEntitiesFilter' smart constructor.+data ListEntitiesFilter = ListEntitiesFilter'+  { -- | The ID of the component type in the entities in the list.+    componentTypeId :: Prelude.Maybe Prelude.Text,+    -- | The external-Id property of a component. The external-Id property is the+    -- primary key of an external storage system.+    externalId :: Prelude.Maybe Prelude.Text,+    -- | The parent of the entities in the list.+    parentEntityId :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListEntitiesFilter' 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:+--+-- 'componentTypeId', 'listEntitiesFilter_componentTypeId' - The ID of the component type in the entities in the list.+--+-- 'externalId', 'listEntitiesFilter_externalId' - The external-Id property of a component. The external-Id property is the+-- primary key of an external storage system.+--+-- 'parentEntityId', 'listEntitiesFilter_parentEntityId' - The parent of the entities in the list.+newListEntitiesFilter ::+  ListEntitiesFilter+newListEntitiesFilter =+  ListEntitiesFilter'+    { componentTypeId =+        Prelude.Nothing,+      externalId = Prelude.Nothing,+      parentEntityId = Prelude.Nothing+    }++-- | The ID of the component type in the entities in the list.+listEntitiesFilter_componentTypeId :: Lens.Lens' ListEntitiesFilter (Prelude.Maybe Prelude.Text)+listEntitiesFilter_componentTypeId = Lens.lens (\ListEntitiesFilter' {componentTypeId} -> componentTypeId) (\s@ListEntitiesFilter' {} a -> s {componentTypeId = a} :: ListEntitiesFilter)++-- | The external-Id property of a component. The external-Id property is the+-- primary key of an external storage system.+listEntitiesFilter_externalId :: Lens.Lens' ListEntitiesFilter (Prelude.Maybe Prelude.Text)+listEntitiesFilter_externalId = Lens.lens (\ListEntitiesFilter' {externalId} -> externalId) (\s@ListEntitiesFilter' {} a -> s {externalId = a} :: ListEntitiesFilter)++-- | The parent of the entities in the list.+listEntitiesFilter_parentEntityId :: Lens.Lens' ListEntitiesFilter (Prelude.Maybe Prelude.Text)+listEntitiesFilter_parentEntityId = Lens.lens (\ListEntitiesFilter' {parentEntityId} -> parentEntityId) (\s@ListEntitiesFilter' {} a -> s {parentEntityId = a} :: ListEntitiesFilter)++instance Prelude.Hashable ListEntitiesFilter where+  hashWithSalt _salt ListEntitiesFilter' {..} =+    _salt+      `Prelude.hashWithSalt` componentTypeId+      `Prelude.hashWithSalt` externalId+      `Prelude.hashWithSalt` parentEntityId++instance Prelude.NFData ListEntitiesFilter where+  rnf ListEntitiesFilter' {..} =+    Prelude.rnf componentTypeId+      `Prelude.seq` Prelude.rnf externalId+      `Prelude.seq` Prelude.rnf parentEntityId++instance Data.ToJSON ListEntitiesFilter where+  toJSON ListEntitiesFilter' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("componentTypeId" Data..=)+              Prelude.<$> componentTypeId,+            ("externalId" Data..=) Prelude.<$> externalId,+            ("parentEntityId" Data..=)+              Prelude.<$> parentEntityId+          ]+      )
+ gen/Amazonka/IotTwinMaker/Types/Order.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.IotTwinMaker.Types.Order+-- 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.IotTwinMaker.Types.Order+  ( Order+      ( ..,+        Order_ASCENDING,+        Order_DESCENDING+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype Order = Order' {fromOrder :: 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 Order_ASCENDING :: Order+pattern Order_ASCENDING = Order' "ASCENDING"++pattern Order_DESCENDING :: Order+pattern Order_DESCENDING = Order' "DESCENDING"++{-# COMPLETE+  Order_ASCENDING,+  Order_DESCENDING,+  Order'+  #-}
+ gen/Amazonka/IotTwinMaker/Types/OrderBy.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.IotTwinMaker.Types.OrderBy+-- 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.IotTwinMaker.Types.OrderBy where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IotTwinMaker.Types.Order+import qualified Amazonka.Prelude as Prelude++-- | Filter criteria that orders the return output. It can be sorted in+-- ascending or descending order.+--+-- /See:/ 'newOrderBy' smart constructor.+data OrderBy = OrderBy'+  { -- | The set order that filters results.+    order :: Prelude.Maybe Order,+    -- | The property name.+    propertyName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'OrderBy' 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:+--+-- 'order', 'orderBy_order' - The set order that filters results.+--+-- 'propertyName', 'orderBy_propertyName' - The property name.+newOrderBy ::+  -- | 'propertyName'+  Prelude.Text ->+  OrderBy+newOrderBy pPropertyName_ =+  OrderBy'+    { order = Prelude.Nothing,+      propertyName = pPropertyName_+    }++-- | The set order that filters results.+orderBy_order :: Lens.Lens' OrderBy (Prelude.Maybe Order)+orderBy_order = Lens.lens (\OrderBy' {order} -> order) (\s@OrderBy' {} a -> s {order = a} :: OrderBy)++-- | The property name.+orderBy_propertyName :: Lens.Lens' OrderBy Prelude.Text+orderBy_propertyName = Lens.lens (\OrderBy' {propertyName} -> propertyName) (\s@OrderBy' {} a -> s {propertyName = a} :: OrderBy)++instance Prelude.Hashable OrderBy where+  hashWithSalt _salt OrderBy' {..} =+    _salt+      `Prelude.hashWithSalt` order+      `Prelude.hashWithSalt` propertyName++instance Prelude.NFData OrderBy where+  rnf OrderBy' {..} =+    Prelude.rnf order+      `Prelude.seq` Prelude.rnf propertyName++instance Data.ToJSON OrderBy where+  toJSON OrderBy' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("order" Data..=) Prelude.<$> order,+            Prelude.Just ("propertyName" Data..= propertyName)+          ]+      )
+ gen/Amazonka/IotTwinMaker/Types/OrderByTime.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.IotTwinMaker.Types.OrderByTime+-- 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.IotTwinMaker.Types.OrderByTime+  ( OrderByTime+      ( ..,+        OrderByTime_ASCENDING,+        OrderByTime_DESCENDING+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype OrderByTime = OrderByTime'+  { fromOrderByTime ::+      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 OrderByTime_ASCENDING :: OrderByTime+pattern OrderByTime_ASCENDING = OrderByTime' "ASCENDING"++pattern OrderByTime_DESCENDING :: OrderByTime+pattern OrderByTime_DESCENDING = OrderByTime' "DESCENDING"++{-# COMPLETE+  OrderByTime_ASCENDING,+  OrderByTime_DESCENDING,+  OrderByTime'+  #-}
+ gen/Amazonka/IotTwinMaker/Types/ParentEntityUpdateRequest.hs view
@@ -0,0 +1,88 @@+{-# 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.IotTwinMaker.Types.ParentEntityUpdateRequest+-- 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.IotTwinMaker.Types.ParentEntityUpdateRequest where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IotTwinMaker.Types.ParentEntityUpdateType+import qualified Amazonka.Prelude as Prelude++-- | The parent entity update request.+--+-- /See:/ 'newParentEntityUpdateRequest' smart constructor.+data ParentEntityUpdateRequest = ParentEntityUpdateRequest'+  { -- | The ID of the parent entity.+    parentEntityId :: Prelude.Maybe Prelude.Text,+    -- | The type of the update.+    updateType :: ParentEntityUpdateType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ParentEntityUpdateRequest' 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:+--+-- 'parentEntityId', 'parentEntityUpdateRequest_parentEntityId' - The ID of the parent entity.+--+-- 'updateType', 'parentEntityUpdateRequest_updateType' - The type of the update.+newParentEntityUpdateRequest ::+  -- | 'updateType'+  ParentEntityUpdateType ->+  ParentEntityUpdateRequest+newParentEntityUpdateRequest pUpdateType_ =+  ParentEntityUpdateRequest'+    { parentEntityId =+        Prelude.Nothing,+      updateType = pUpdateType_+    }++-- | The ID of the parent entity.+parentEntityUpdateRequest_parentEntityId :: Lens.Lens' ParentEntityUpdateRequest (Prelude.Maybe Prelude.Text)+parentEntityUpdateRequest_parentEntityId = Lens.lens (\ParentEntityUpdateRequest' {parentEntityId} -> parentEntityId) (\s@ParentEntityUpdateRequest' {} a -> s {parentEntityId = a} :: ParentEntityUpdateRequest)++-- | The type of the update.+parentEntityUpdateRequest_updateType :: Lens.Lens' ParentEntityUpdateRequest ParentEntityUpdateType+parentEntityUpdateRequest_updateType = Lens.lens (\ParentEntityUpdateRequest' {updateType} -> updateType) (\s@ParentEntityUpdateRequest' {} a -> s {updateType = a} :: ParentEntityUpdateRequest)++instance Prelude.Hashable ParentEntityUpdateRequest where+  hashWithSalt _salt ParentEntityUpdateRequest' {..} =+    _salt+      `Prelude.hashWithSalt` parentEntityId+      `Prelude.hashWithSalt` updateType++instance Prelude.NFData ParentEntityUpdateRequest where+  rnf ParentEntityUpdateRequest' {..} =+    Prelude.rnf parentEntityId+      `Prelude.seq` Prelude.rnf updateType++instance Data.ToJSON ParentEntityUpdateRequest where+  toJSON ParentEntityUpdateRequest' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("parentEntityId" Data..=)+              Prelude.<$> parentEntityId,+            Prelude.Just ("updateType" Data..= updateType)+          ]+      )
+ gen/Amazonka/IotTwinMaker/Types/ParentEntityUpdateType.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.IotTwinMaker.Types.ParentEntityUpdateType+-- 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.IotTwinMaker.Types.ParentEntityUpdateType+  ( ParentEntityUpdateType+      ( ..,+        ParentEntityUpdateType_DELETE,+        ParentEntityUpdateType_UPDATE+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ParentEntityUpdateType = ParentEntityUpdateType'+  { fromParentEntityUpdateType ::+      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 ParentEntityUpdateType_DELETE :: ParentEntityUpdateType+pattern ParentEntityUpdateType_DELETE = ParentEntityUpdateType' "DELETE"++pattern ParentEntityUpdateType_UPDATE :: ParentEntityUpdateType+pattern ParentEntityUpdateType_UPDATE = ParentEntityUpdateType' "UPDATE"++{-# COMPLETE+  ParentEntityUpdateType_DELETE,+  ParentEntityUpdateType_UPDATE,+  ParentEntityUpdateType'+  #-}
+ gen/Amazonka/IotTwinMaker/Types/PricingMode.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.IotTwinMaker.Types.PricingMode+-- 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.IotTwinMaker.Types.PricingMode+  ( PricingMode+      ( ..,+        PricingMode_BASIC,+        PricingMode_STANDARD,+        PricingMode_TIERED_BUNDLE+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype PricingMode = PricingMode'+  { fromPricingMode ::+      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 PricingMode_BASIC :: PricingMode+pattern PricingMode_BASIC = PricingMode' "BASIC"++pattern PricingMode_STANDARD :: PricingMode+pattern PricingMode_STANDARD = PricingMode' "STANDARD"++pattern PricingMode_TIERED_BUNDLE :: PricingMode+pattern PricingMode_TIERED_BUNDLE = PricingMode' "TIERED_BUNDLE"++{-# COMPLETE+  PricingMode_BASIC,+  PricingMode_STANDARD,+  PricingMode_TIERED_BUNDLE,+  PricingMode'+  #-}
+ gen/Amazonka/IotTwinMaker/Types/PricingPlan.hs view
@@ -0,0 +1,148 @@+{-# 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.IotTwinMaker.Types.PricingPlan+-- 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.IotTwinMaker.Types.PricingPlan where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IotTwinMaker.Types.BundleInformation+import Amazonka.IotTwinMaker.Types.PricingMode+import Amazonka.IotTwinMaker.Types.UpdateReason+import qualified Amazonka.Prelude as Prelude++-- | The pricing plan.+--+-- /See:/ 'newPricingPlan' smart constructor.+data PricingPlan = PricingPlan'+  { -- | The billable entity count.+    billableEntityCount :: Prelude.Maybe Prelude.Integer,+    -- | The pricing plan\'s bundle information.+    bundleInformation :: Prelude.Maybe BundleInformation,+    -- | The effective date and time of the pricing plan.+    effectiveDateTime :: Data.POSIX,+    -- | The pricing mode.+    pricingMode :: PricingMode,+    -- | The set date and time for updating a pricing plan.+    updateDateTime :: Data.POSIX,+    -- | The update reason, for changing a pricing plan.+    updateReason :: UpdateReason+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PricingPlan' 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:+--+-- 'billableEntityCount', 'pricingPlan_billableEntityCount' - The billable entity count.+--+-- 'bundleInformation', 'pricingPlan_bundleInformation' - The pricing plan\'s bundle information.+--+-- 'effectiveDateTime', 'pricingPlan_effectiveDateTime' - The effective date and time of the pricing plan.+--+-- 'pricingMode', 'pricingPlan_pricingMode' - The pricing mode.+--+-- 'updateDateTime', 'pricingPlan_updateDateTime' - The set date and time for updating a pricing plan.+--+-- 'updateReason', 'pricingPlan_updateReason' - The update reason, for changing a pricing plan.+newPricingPlan ::+  -- | 'effectiveDateTime'+  Prelude.UTCTime ->+  -- | 'pricingMode'+  PricingMode ->+  -- | 'updateDateTime'+  Prelude.UTCTime ->+  -- | 'updateReason'+  UpdateReason ->+  PricingPlan+newPricingPlan+  pEffectiveDateTime_+  pPricingMode_+  pUpdateDateTime_+  pUpdateReason_ =+    PricingPlan'+      { billableEntityCount = Prelude.Nothing,+        bundleInformation = Prelude.Nothing,+        effectiveDateTime =+          Data._Time Lens.# pEffectiveDateTime_,+        pricingMode = pPricingMode_,+        updateDateTime = Data._Time Lens.# pUpdateDateTime_,+        updateReason = pUpdateReason_+      }++-- | The billable entity count.+pricingPlan_billableEntityCount :: Lens.Lens' PricingPlan (Prelude.Maybe Prelude.Integer)+pricingPlan_billableEntityCount = Lens.lens (\PricingPlan' {billableEntityCount} -> billableEntityCount) (\s@PricingPlan' {} a -> s {billableEntityCount = a} :: PricingPlan)++-- | The pricing plan\'s bundle information.+pricingPlan_bundleInformation :: Lens.Lens' PricingPlan (Prelude.Maybe BundleInformation)+pricingPlan_bundleInformation = Lens.lens (\PricingPlan' {bundleInformation} -> bundleInformation) (\s@PricingPlan' {} a -> s {bundleInformation = a} :: PricingPlan)++-- | The effective date and time of the pricing plan.+pricingPlan_effectiveDateTime :: Lens.Lens' PricingPlan Prelude.UTCTime+pricingPlan_effectiveDateTime = Lens.lens (\PricingPlan' {effectiveDateTime} -> effectiveDateTime) (\s@PricingPlan' {} a -> s {effectiveDateTime = a} :: PricingPlan) Prelude.. Data._Time++-- | The pricing mode.+pricingPlan_pricingMode :: Lens.Lens' PricingPlan PricingMode+pricingPlan_pricingMode = Lens.lens (\PricingPlan' {pricingMode} -> pricingMode) (\s@PricingPlan' {} a -> s {pricingMode = a} :: PricingPlan)++-- | The set date and time for updating a pricing plan.+pricingPlan_updateDateTime :: Lens.Lens' PricingPlan Prelude.UTCTime+pricingPlan_updateDateTime = Lens.lens (\PricingPlan' {updateDateTime} -> updateDateTime) (\s@PricingPlan' {} a -> s {updateDateTime = a} :: PricingPlan) Prelude.. Data._Time++-- | The update reason, for changing a pricing plan.+pricingPlan_updateReason :: Lens.Lens' PricingPlan UpdateReason+pricingPlan_updateReason = Lens.lens (\PricingPlan' {updateReason} -> updateReason) (\s@PricingPlan' {} a -> s {updateReason = a} :: PricingPlan)++instance Data.FromJSON PricingPlan where+  parseJSON =+    Data.withObject+      "PricingPlan"+      ( \x ->+          PricingPlan'+            Prelude.<$> (x Data..:? "billableEntityCount")+            Prelude.<*> (x Data..:? "bundleInformation")+            Prelude.<*> (x Data..: "effectiveDateTime")+            Prelude.<*> (x Data..: "pricingMode")+            Prelude.<*> (x Data..: "updateDateTime")+            Prelude.<*> (x Data..: "updateReason")+      )++instance Prelude.Hashable PricingPlan where+  hashWithSalt _salt PricingPlan' {..} =+    _salt+      `Prelude.hashWithSalt` billableEntityCount+      `Prelude.hashWithSalt` bundleInformation+      `Prelude.hashWithSalt` effectiveDateTime+      `Prelude.hashWithSalt` pricingMode+      `Prelude.hashWithSalt` updateDateTime+      `Prelude.hashWithSalt` updateReason++instance Prelude.NFData PricingPlan where+  rnf PricingPlan' {..} =+    Prelude.rnf billableEntityCount+      `Prelude.seq` Prelude.rnf bundleInformation+      `Prelude.seq` Prelude.rnf effectiveDateTime+      `Prelude.seq` Prelude.rnf pricingMode+      `Prelude.seq` Prelude.rnf updateDateTime+      `Prelude.seq` Prelude.rnf updateReason
+ gen/Amazonka/IotTwinMaker/Types/PricingTier.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.IotTwinMaker.Types.PricingTier+-- 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.IotTwinMaker.Types.PricingTier+  ( PricingTier+      ( ..,+        PricingTier_TIER_1,+        PricingTier_TIER_2,+        PricingTier_TIER_3,+        PricingTier_TIER_4+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype PricingTier = PricingTier'+  { fromPricingTier ::+      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 PricingTier_TIER_1 :: PricingTier+pattern PricingTier_TIER_1 = PricingTier' "TIER_1"++pattern PricingTier_TIER_2 :: PricingTier+pattern PricingTier_TIER_2 = PricingTier' "TIER_2"++pattern PricingTier_TIER_3 :: PricingTier+pattern PricingTier_TIER_3 = PricingTier' "TIER_3"++pattern PricingTier_TIER_4 :: PricingTier+pattern PricingTier_TIER_4 = PricingTier' "TIER_4"++{-# COMPLETE+  PricingTier_TIER_1,+  PricingTier_TIER_2,+  PricingTier_TIER_3,+  PricingTier_TIER_4,+  PricingTier'+  #-}
+ gen/Amazonka/IotTwinMaker/Types/PropertyDefinitionRequest.hs view
@@ -0,0 +1,175 @@+{-# 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.IotTwinMaker.Types.PropertyDefinitionRequest+-- 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.IotTwinMaker.Types.PropertyDefinitionRequest where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IotTwinMaker.Types.DataType+import Amazonka.IotTwinMaker.Types.DataValue+import qualified Amazonka.Prelude as Prelude++-- | An object that sets information about a property.+--+-- /See:/ 'newPropertyDefinitionRequest' smart constructor.+data PropertyDefinitionRequest = PropertyDefinitionRequest'+  { -- | A mapping that specifies configuration information about the property.+    -- Use this field to specify information that you read from and write to an+    -- external source.+    configuration :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | An object that contains information about the data type.+    dataType :: Prelude.Maybe DataType,+    -- | An object that contains the default value.+    defaultValue :: Prelude.Maybe DataValue,+    -- | A friendly name for the property.+    displayName :: Prelude.Maybe Prelude.Text,+    -- | A Boolean value that specifies whether the property ID comes from an+    -- external data store.+    isExternalId :: Prelude.Maybe Prelude.Bool,+    -- | A Boolean value that specifies whether the property is required.+    isRequiredInEntity :: Prelude.Maybe Prelude.Bool,+    -- | A Boolean value that specifies whether the property is stored+    -- externally.+    isStoredExternally :: Prelude.Maybe Prelude.Bool,+    -- | A Boolean value that specifies whether the property consists of time+    -- series data.+    isTimeSeries :: Prelude.Maybe Prelude.Bool+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PropertyDefinitionRequest' 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:+--+-- 'configuration', 'propertyDefinitionRequest_configuration' - A mapping that specifies configuration information about the property.+-- Use this field to specify information that you read from and write to an+-- external source.+--+-- 'dataType', 'propertyDefinitionRequest_dataType' - An object that contains information about the data type.+--+-- 'defaultValue', 'propertyDefinitionRequest_defaultValue' - An object that contains the default value.+--+-- 'displayName', 'propertyDefinitionRequest_displayName' - A friendly name for the property.+--+-- 'isExternalId', 'propertyDefinitionRequest_isExternalId' - A Boolean value that specifies whether the property ID comes from an+-- external data store.+--+-- 'isRequiredInEntity', 'propertyDefinitionRequest_isRequiredInEntity' - A Boolean value that specifies whether the property is required.+--+-- 'isStoredExternally', 'propertyDefinitionRequest_isStoredExternally' - A Boolean value that specifies whether the property is stored+-- externally.+--+-- 'isTimeSeries', 'propertyDefinitionRequest_isTimeSeries' - A Boolean value that specifies whether the property consists of time+-- series data.+newPropertyDefinitionRequest ::+  PropertyDefinitionRequest+newPropertyDefinitionRequest =+  PropertyDefinitionRequest'+    { configuration =+        Prelude.Nothing,+      dataType = Prelude.Nothing,+      defaultValue = Prelude.Nothing,+      displayName = Prelude.Nothing,+      isExternalId = Prelude.Nothing,+      isRequiredInEntity = Prelude.Nothing,+      isStoredExternally = Prelude.Nothing,+      isTimeSeries = Prelude.Nothing+    }++-- | A mapping that specifies configuration information about the property.+-- Use this field to specify information that you read from and write to an+-- external source.+propertyDefinitionRequest_configuration :: Lens.Lens' PropertyDefinitionRequest (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+propertyDefinitionRequest_configuration = Lens.lens (\PropertyDefinitionRequest' {configuration} -> configuration) (\s@PropertyDefinitionRequest' {} a -> s {configuration = a} :: PropertyDefinitionRequest) Prelude.. Lens.mapping Lens.coerced++-- | An object that contains information about the data type.+propertyDefinitionRequest_dataType :: Lens.Lens' PropertyDefinitionRequest (Prelude.Maybe DataType)+propertyDefinitionRequest_dataType = Lens.lens (\PropertyDefinitionRequest' {dataType} -> dataType) (\s@PropertyDefinitionRequest' {} a -> s {dataType = a} :: PropertyDefinitionRequest)++-- | An object that contains the default value.+propertyDefinitionRequest_defaultValue :: Lens.Lens' PropertyDefinitionRequest (Prelude.Maybe DataValue)+propertyDefinitionRequest_defaultValue = Lens.lens (\PropertyDefinitionRequest' {defaultValue} -> defaultValue) (\s@PropertyDefinitionRequest' {} a -> s {defaultValue = a} :: PropertyDefinitionRequest)++-- | A friendly name for the property.+propertyDefinitionRequest_displayName :: Lens.Lens' PropertyDefinitionRequest (Prelude.Maybe Prelude.Text)+propertyDefinitionRequest_displayName = Lens.lens (\PropertyDefinitionRequest' {displayName} -> displayName) (\s@PropertyDefinitionRequest' {} a -> s {displayName = a} :: PropertyDefinitionRequest)++-- | A Boolean value that specifies whether the property ID comes from an+-- external data store.+propertyDefinitionRequest_isExternalId :: Lens.Lens' PropertyDefinitionRequest (Prelude.Maybe Prelude.Bool)+propertyDefinitionRequest_isExternalId = Lens.lens (\PropertyDefinitionRequest' {isExternalId} -> isExternalId) (\s@PropertyDefinitionRequest' {} a -> s {isExternalId = a} :: PropertyDefinitionRequest)++-- | A Boolean value that specifies whether the property is required.+propertyDefinitionRequest_isRequiredInEntity :: Lens.Lens' PropertyDefinitionRequest (Prelude.Maybe Prelude.Bool)+propertyDefinitionRequest_isRequiredInEntity = Lens.lens (\PropertyDefinitionRequest' {isRequiredInEntity} -> isRequiredInEntity) (\s@PropertyDefinitionRequest' {} a -> s {isRequiredInEntity = a} :: PropertyDefinitionRequest)++-- | A Boolean value that specifies whether the property is stored+-- externally.+propertyDefinitionRequest_isStoredExternally :: Lens.Lens' PropertyDefinitionRequest (Prelude.Maybe Prelude.Bool)+propertyDefinitionRequest_isStoredExternally = Lens.lens (\PropertyDefinitionRequest' {isStoredExternally} -> isStoredExternally) (\s@PropertyDefinitionRequest' {} a -> s {isStoredExternally = a} :: PropertyDefinitionRequest)++-- | A Boolean value that specifies whether the property consists of time+-- series data.+propertyDefinitionRequest_isTimeSeries :: Lens.Lens' PropertyDefinitionRequest (Prelude.Maybe Prelude.Bool)+propertyDefinitionRequest_isTimeSeries = Lens.lens (\PropertyDefinitionRequest' {isTimeSeries} -> isTimeSeries) (\s@PropertyDefinitionRequest' {} a -> s {isTimeSeries = a} :: PropertyDefinitionRequest)++instance Prelude.Hashable PropertyDefinitionRequest where+  hashWithSalt _salt PropertyDefinitionRequest' {..} =+    _salt+      `Prelude.hashWithSalt` configuration+      `Prelude.hashWithSalt` dataType+      `Prelude.hashWithSalt` defaultValue+      `Prelude.hashWithSalt` displayName+      `Prelude.hashWithSalt` isExternalId+      `Prelude.hashWithSalt` isRequiredInEntity+      `Prelude.hashWithSalt` isStoredExternally+      `Prelude.hashWithSalt` isTimeSeries++instance Prelude.NFData PropertyDefinitionRequest where+  rnf PropertyDefinitionRequest' {..} =+    Prelude.rnf configuration+      `Prelude.seq` Prelude.rnf dataType+      `Prelude.seq` Prelude.rnf defaultValue+      `Prelude.seq` Prelude.rnf displayName+      `Prelude.seq` Prelude.rnf isExternalId+      `Prelude.seq` Prelude.rnf isRequiredInEntity+      `Prelude.seq` Prelude.rnf isStoredExternally+      `Prelude.seq` Prelude.rnf isTimeSeries++instance Data.ToJSON PropertyDefinitionRequest where+  toJSON PropertyDefinitionRequest' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("configuration" Data..=) Prelude.<$> configuration,+            ("dataType" Data..=) Prelude.<$> dataType,+            ("defaultValue" Data..=) Prelude.<$> defaultValue,+            ("displayName" Data..=) Prelude.<$> displayName,+            ("isExternalId" Data..=) Prelude.<$> isExternalId,+            ("isRequiredInEntity" Data..=)+              Prelude.<$> isRequiredInEntity,+            ("isStoredExternally" Data..=)+              Prelude.<$> isStoredExternally,+            ("isTimeSeries" Data..=) Prelude.<$> isTimeSeries+          ]+      )
+ gen/Amazonka/IotTwinMaker/Types/PropertyDefinitionResponse.hs view
@@ -0,0 +1,241 @@+{-# 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.IotTwinMaker.Types.PropertyDefinitionResponse+-- 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.IotTwinMaker.Types.PropertyDefinitionResponse where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IotTwinMaker.Types.DataType+import Amazonka.IotTwinMaker.Types.DataValue+import qualified Amazonka.Prelude as Prelude++-- | An object that contains response data from a property definition+-- request.+--+-- /See:/ 'newPropertyDefinitionResponse' smart constructor.+data PropertyDefinitionResponse = PropertyDefinitionResponse'+  { -- | A mapping that specifies configuration information about the property.+    configuration :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | An object that contains the default value.+    defaultValue :: Prelude.Maybe DataValue,+    -- | A friendly name for the property.+    displayName :: Prelude.Maybe Prelude.Text,+    -- | An object that contains information about the data type.+    dataType :: DataType,+    -- | A Boolean value that specifies whether the property consists of time+    -- series data.+    isTimeSeries :: Prelude.Bool,+    -- | A Boolean value that specifies whether the property is required in an+    -- entity.+    isRequiredInEntity :: Prelude.Bool,+    -- | A Boolean value that specifies whether the property ID comes from an+    -- external data store.+    isExternalId :: Prelude.Bool,+    -- | A Boolean value that specifies whether the property is stored+    -- externally.+    isStoredExternally :: Prelude.Bool,+    -- | A Boolean value that specifies whether the property definition is+    -- imported from an external data store.+    isImported :: Prelude.Bool,+    -- | A Boolean value that specifies whether the property definition can be+    -- updated.+    isFinal :: Prelude.Bool,+    -- | A Boolean value that specifies whether the property definition is+    -- inherited from a parent entity.+    isInherited :: Prelude.Bool+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PropertyDefinitionResponse' 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:+--+-- 'configuration', 'propertyDefinitionResponse_configuration' - A mapping that specifies configuration information about the property.+--+-- 'defaultValue', 'propertyDefinitionResponse_defaultValue' - An object that contains the default value.+--+-- 'displayName', 'propertyDefinitionResponse_displayName' - A friendly name for the property.+--+-- 'dataType', 'propertyDefinitionResponse_dataType' - An object that contains information about the data type.+--+-- 'isTimeSeries', 'propertyDefinitionResponse_isTimeSeries' - A Boolean value that specifies whether the property consists of time+-- series data.+--+-- 'isRequiredInEntity', 'propertyDefinitionResponse_isRequiredInEntity' - A Boolean value that specifies whether the property is required in an+-- entity.+--+-- 'isExternalId', 'propertyDefinitionResponse_isExternalId' - A Boolean value that specifies whether the property ID comes from an+-- external data store.+--+-- 'isStoredExternally', 'propertyDefinitionResponse_isStoredExternally' - A Boolean value that specifies whether the property is stored+-- externally.+--+-- 'isImported', 'propertyDefinitionResponse_isImported' - A Boolean value that specifies whether the property definition is+-- imported from an external data store.+--+-- 'isFinal', 'propertyDefinitionResponse_isFinal' - A Boolean value that specifies whether the property definition can be+-- updated.+--+-- 'isInherited', 'propertyDefinitionResponse_isInherited' - A Boolean value that specifies whether the property definition is+-- inherited from a parent entity.+newPropertyDefinitionResponse ::+  -- | 'dataType'+  DataType ->+  -- | 'isTimeSeries'+  Prelude.Bool ->+  -- | 'isRequiredInEntity'+  Prelude.Bool ->+  -- | 'isExternalId'+  Prelude.Bool ->+  -- | 'isStoredExternally'+  Prelude.Bool ->+  -- | 'isImported'+  Prelude.Bool ->+  -- | 'isFinal'+  Prelude.Bool ->+  -- | 'isInherited'+  Prelude.Bool ->+  PropertyDefinitionResponse+newPropertyDefinitionResponse+  pDataType_+  pIsTimeSeries_+  pIsRequiredInEntity_+  pIsExternalId_+  pIsStoredExternally_+  pIsImported_+  pIsFinal_+  pIsInherited_ =+    PropertyDefinitionResponse'+      { configuration =+          Prelude.Nothing,+        defaultValue = Prelude.Nothing,+        displayName = Prelude.Nothing,+        dataType = pDataType_,+        isTimeSeries = pIsTimeSeries_,+        isRequiredInEntity = pIsRequiredInEntity_,+        isExternalId = pIsExternalId_,+        isStoredExternally = pIsStoredExternally_,+        isImported = pIsImported_,+        isFinal = pIsFinal_,+        isInherited = pIsInherited_+      }++-- | A mapping that specifies configuration information about the property.+propertyDefinitionResponse_configuration :: Lens.Lens' PropertyDefinitionResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+propertyDefinitionResponse_configuration = Lens.lens (\PropertyDefinitionResponse' {configuration} -> configuration) (\s@PropertyDefinitionResponse' {} a -> s {configuration = a} :: PropertyDefinitionResponse) Prelude.. Lens.mapping Lens.coerced++-- | An object that contains the default value.+propertyDefinitionResponse_defaultValue :: Lens.Lens' PropertyDefinitionResponse (Prelude.Maybe DataValue)+propertyDefinitionResponse_defaultValue = Lens.lens (\PropertyDefinitionResponse' {defaultValue} -> defaultValue) (\s@PropertyDefinitionResponse' {} a -> s {defaultValue = a} :: PropertyDefinitionResponse)++-- | A friendly name for the property.+propertyDefinitionResponse_displayName :: Lens.Lens' PropertyDefinitionResponse (Prelude.Maybe Prelude.Text)+propertyDefinitionResponse_displayName = Lens.lens (\PropertyDefinitionResponse' {displayName} -> displayName) (\s@PropertyDefinitionResponse' {} a -> s {displayName = a} :: PropertyDefinitionResponse)++-- | An object that contains information about the data type.+propertyDefinitionResponse_dataType :: Lens.Lens' PropertyDefinitionResponse DataType+propertyDefinitionResponse_dataType = Lens.lens (\PropertyDefinitionResponse' {dataType} -> dataType) (\s@PropertyDefinitionResponse' {} a -> s {dataType = a} :: PropertyDefinitionResponse)++-- | A Boolean value that specifies whether the property consists of time+-- series data.+propertyDefinitionResponse_isTimeSeries :: Lens.Lens' PropertyDefinitionResponse Prelude.Bool+propertyDefinitionResponse_isTimeSeries = Lens.lens (\PropertyDefinitionResponse' {isTimeSeries} -> isTimeSeries) (\s@PropertyDefinitionResponse' {} a -> s {isTimeSeries = a} :: PropertyDefinitionResponse)++-- | A Boolean value that specifies whether the property is required in an+-- entity.+propertyDefinitionResponse_isRequiredInEntity :: Lens.Lens' PropertyDefinitionResponse Prelude.Bool+propertyDefinitionResponse_isRequiredInEntity = Lens.lens (\PropertyDefinitionResponse' {isRequiredInEntity} -> isRequiredInEntity) (\s@PropertyDefinitionResponse' {} a -> s {isRequiredInEntity = a} :: PropertyDefinitionResponse)++-- | A Boolean value that specifies whether the property ID comes from an+-- external data store.+propertyDefinitionResponse_isExternalId :: Lens.Lens' PropertyDefinitionResponse Prelude.Bool+propertyDefinitionResponse_isExternalId = Lens.lens (\PropertyDefinitionResponse' {isExternalId} -> isExternalId) (\s@PropertyDefinitionResponse' {} a -> s {isExternalId = a} :: PropertyDefinitionResponse)++-- | A Boolean value that specifies whether the property is stored+-- externally.+propertyDefinitionResponse_isStoredExternally :: Lens.Lens' PropertyDefinitionResponse Prelude.Bool+propertyDefinitionResponse_isStoredExternally = Lens.lens (\PropertyDefinitionResponse' {isStoredExternally} -> isStoredExternally) (\s@PropertyDefinitionResponse' {} a -> s {isStoredExternally = a} :: PropertyDefinitionResponse)++-- | A Boolean value that specifies whether the property definition is+-- imported from an external data store.+propertyDefinitionResponse_isImported :: Lens.Lens' PropertyDefinitionResponse Prelude.Bool+propertyDefinitionResponse_isImported = Lens.lens (\PropertyDefinitionResponse' {isImported} -> isImported) (\s@PropertyDefinitionResponse' {} a -> s {isImported = a} :: PropertyDefinitionResponse)++-- | A Boolean value that specifies whether the property definition can be+-- updated.+propertyDefinitionResponse_isFinal :: Lens.Lens' PropertyDefinitionResponse Prelude.Bool+propertyDefinitionResponse_isFinal = Lens.lens (\PropertyDefinitionResponse' {isFinal} -> isFinal) (\s@PropertyDefinitionResponse' {} a -> s {isFinal = a} :: PropertyDefinitionResponse)++-- | A Boolean value that specifies whether the property definition is+-- inherited from a parent entity.+propertyDefinitionResponse_isInherited :: Lens.Lens' PropertyDefinitionResponse Prelude.Bool+propertyDefinitionResponse_isInherited = Lens.lens (\PropertyDefinitionResponse' {isInherited} -> isInherited) (\s@PropertyDefinitionResponse' {} a -> s {isInherited = a} :: PropertyDefinitionResponse)++instance Data.FromJSON PropertyDefinitionResponse where+  parseJSON =+    Data.withObject+      "PropertyDefinitionResponse"+      ( \x ->+          PropertyDefinitionResponse'+            Prelude.<$> (x Data..:? "configuration" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "defaultValue")+            Prelude.<*> (x Data..:? "displayName")+            Prelude.<*> (x Data..: "dataType")+            Prelude.<*> (x Data..: "isTimeSeries")+            Prelude.<*> (x Data..: "isRequiredInEntity")+            Prelude.<*> (x Data..: "isExternalId")+            Prelude.<*> (x Data..: "isStoredExternally")+            Prelude.<*> (x Data..: "isImported")+            Prelude.<*> (x Data..: "isFinal")+            Prelude.<*> (x Data..: "isInherited")+      )++instance Prelude.Hashable PropertyDefinitionResponse where+  hashWithSalt _salt PropertyDefinitionResponse' {..} =+    _salt+      `Prelude.hashWithSalt` configuration+      `Prelude.hashWithSalt` defaultValue+      `Prelude.hashWithSalt` displayName+      `Prelude.hashWithSalt` dataType+      `Prelude.hashWithSalt` isTimeSeries+      `Prelude.hashWithSalt` isRequiredInEntity+      `Prelude.hashWithSalt` isExternalId+      `Prelude.hashWithSalt` isStoredExternally+      `Prelude.hashWithSalt` isImported+      `Prelude.hashWithSalt` isFinal+      `Prelude.hashWithSalt` isInherited++instance Prelude.NFData PropertyDefinitionResponse where+  rnf PropertyDefinitionResponse' {..} =+    Prelude.rnf configuration+      `Prelude.seq` Prelude.rnf defaultValue+      `Prelude.seq` Prelude.rnf displayName+      `Prelude.seq` Prelude.rnf dataType+      `Prelude.seq` Prelude.rnf isTimeSeries+      `Prelude.seq` Prelude.rnf isRequiredInEntity+      `Prelude.seq` Prelude.rnf isExternalId+      `Prelude.seq` Prelude.rnf isStoredExternally+      `Prelude.seq` Prelude.rnf isImported+      `Prelude.seq` Prelude.rnf isFinal+      `Prelude.seq` Prelude.rnf isInherited
+ gen/Amazonka/IotTwinMaker/Types/PropertyFilter.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.IotTwinMaker.Types.PropertyFilter+-- 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.IotTwinMaker.Types.PropertyFilter where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IotTwinMaker.Types.DataValue+import qualified Amazonka.Prelude as Prelude++-- | An object that filters items returned by a property request.+--+-- /See:/ 'newPropertyFilter' smart constructor.+data PropertyFilter = PropertyFilter'+  { -- | The operator associated with this property filter.+    operator :: Prelude.Maybe Prelude.Text,+    -- | The property name associated with this property filter.+    propertyName :: Prelude.Maybe Prelude.Text,+    -- | The value associated with this property filter.+    value :: Prelude.Maybe DataValue+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PropertyFilter' 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:+--+-- 'operator', 'propertyFilter_operator' - The operator associated with this property filter.+--+-- 'propertyName', 'propertyFilter_propertyName' - The property name associated with this property filter.+--+-- 'value', 'propertyFilter_value' - The value associated with this property filter.+newPropertyFilter ::+  PropertyFilter+newPropertyFilter =+  PropertyFilter'+    { operator = Prelude.Nothing,+      propertyName = Prelude.Nothing,+      value = Prelude.Nothing+    }++-- | The operator associated with this property filter.+propertyFilter_operator :: Lens.Lens' PropertyFilter (Prelude.Maybe Prelude.Text)+propertyFilter_operator = Lens.lens (\PropertyFilter' {operator} -> operator) (\s@PropertyFilter' {} a -> s {operator = a} :: PropertyFilter)++-- | The property name associated with this property filter.+propertyFilter_propertyName :: Lens.Lens' PropertyFilter (Prelude.Maybe Prelude.Text)+propertyFilter_propertyName = Lens.lens (\PropertyFilter' {propertyName} -> propertyName) (\s@PropertyFilter' {} a -> s {propertyName = a} :: PropertyFilter)++-- | The value associated with this property filter.+propertyFilter_value :: Lens.Lens' PropertyFilter (Prelude.Maybe DataValue)+propertyFilter_value = Lens.lens (\PropertyFilter' {value} -> value) (\s@PropertyFilter' {} a -> s {value = a} :: PropertyFilter)++instance Prelude.Hashable PropertyFilter where+  hashWithSalt _salt PropertyFilter' {..} =+    _salt+      `Prelude.hashWithSalt` operator+      `Prelude.hashWithSalt` propertyName+      `Prelude.hashWithSalt` value++instance Prelude.NFData PropertyFilter where+  rnf PropertyFilter' {..} =+    Prelude.rnf operator+      `Prelude.seq` Prelude.rnf propertyName+      `Prelude.seq` Prelude.rnf value++instance Data.ToJSON PropertyFilter where+  toJSON PropertyFilter' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("operator" Data..=) Prelude.<$> operator,+            ("propertyName" Data..=) Prelude.<$> propertyName,+            ("value" Data..=) Prelude.<$> value+          ]+      )
+ gen/Amazonka/IotTwinMaker/Types/PropertyGroupRequest.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.IotTwinMaker.Types.PropertyGroupRequest+-- 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.IotTwinMaker.Types.PropertyGroupRequest where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IotTwinMaker.Types.GroupType+import qualified Amazonka.Prelude as Prelude++-- |+--+-- /See:/ 'newPropertyGroupRequest' smart constructor.+data PropertyGroupRequest = PropertyGroupRequest'+  { -- | The group type.+    groupType :: Prelude.Maybe GroupType,+    -- | The names of properties.+    propertyNames :: Prelude.Maybe [Prelude.Text]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PropertyGroupRequest' 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:+--+-- 'groupType', 'propertyGroupRequest_groupType' - The group type.+--+-- 'propertyNames', 'propertyGroupRequest_propertyNames' - The names of properties.+newPropertyGroupRequest ::+  PropertyGroupRequest+newPropertyGroupRequest =+  PropertyGroupRequest'+    { groupType = Prelude.Nothing,+      propertyNames = Prelude.Nothing+    }++-- | The group type.+propertyGroupRequest_groupType :: Lens.Lens' PropertyGroupRequest (Prelude.Maybe GroupType)+propertyGroupRequest_groupType = Lens.lens (\PropertyGroupRequest' {groupType} -> groupType) (\s@PropertyGroupRequest' {} a -> s {groupType = a} :: PropertyGroupRequest)++-- | The names of properties.+propertyGroupRequest_propertyNames :: Lens.Lens' PropertyGroupRequest (Prelude.Maybe [Prelude.Text])+propertyGroupRequest_propertyNames = Lens.lens (\PropertyGroupRequest' {propertyNames} -> propertyNames) (\s@PropertyGroupRequest' {} a -> s {propertyNames = a} :: PropertyGroupRequest) Prelude.. Lens.mapping Lens.coerced++instance Prelude.Hashable PropertyGroupRequest where+  hashWithSalt _salt PropertyGroupRequest' {..} =+    _salt+      `Prelude.hashWithSalt` groupType+      `Prelude.hashWithSalt` propertyNames++instance Prelude.NFData PropertyGroupRequest where+  rnf PropertyGroupRequest' {..} =+    Prelude.rnf groupType+      `Prelude.seq` Prelude.rnf propertyNames++instance Data.ToJSON PropertyGroupRequest where+  toJSON PropertyGroupRequest' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("groupType" Data..=) Prelude.<$> groupType,+            ("propertyNames" Data..=) Prelude.<$> propertyNames+          ]+      )
+ gen/Amazonka/IotTwinMaker/Types/PropertyGroupResponse.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.IotTwinMaker.Types.PropertyGroupResponse+-- 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.IotTwinMaker.Types.PropertyGroupResponse where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IotTwinMaker.Types.GroupType+import qualified Amazonka.Prelude as Prelude++-- | The property group response+--+-- /See:/ 'newPropertyGroupResponse' smart constructor.+data PropertyGroupResponse = PropertyGroupResponse'+  { -- | The group types.+    groupType :: GroupType,+    -- | The names of properties.+    propertyNames :: [Prelude.Text],+    -- | A Boolean value that specifies whether the property group is inherited+    -- from a parent entity+    isInherited :: Prelude.Bool+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PropertyGroupResponse' 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:+--+-- 'groupType', 'propertyGroupResponse_groupType' - The group types.+--+-- 'propertyNames', 'propertyGroupResponse_propertyNames' - The names of properties.+--+-- 'isInherited', 'propertyGroupResponse_isInherited' - A Boolean value that specifies whether the property group is inherited+-- from a parent entity+newPropertyGroupResponse ::+  -- | 'groupType'+  GroupType ->+  -- | 'isInherited'+  Prelude.Bool ->+  PropertyGroupResponse+newPropertyGroupResponse pGroupType_ pIsInherited_ =+  PropertyGroupResponse'+    { groupType = pGroupType_,+      propertyNames = Prelude.mempty,+      isInherited = pIsInherited_+    }++-- | The group types.+propertyGroupResponse_groupType :: Lens.Lens' PropertyGroupResponse GroupType+propertyGroupResponse_groupType = Lens.lens (\PropertyGroupResponse' {groupType} -> groupType) (\s@PropertyGroupResponse' {} a -> s {groupType = a} :: PropertyGroupResponse)++-- | The names of properties.+propertyGroupResponse_propertyNames :: Lens.Lens' PropertyGroupResponse [Prelude.Text]+propertyGroupResponse_propertyNames = Lens.lens (\PropertyGroupResponse' {propertyNames} -> propertyNames) (\s@PropertyGroupResponse' {} a -> s {propertyNames = a} :: PropertyGroupResponse) Prelude.. Lens.coerced++-- | A Boolean value that specifies whether the property group is inherited+-- from a parent entity+propertyGroupResponse_isInherited :: Lens.Lens' PropertyGroupResponse Prelude.Bool+propertyGroupResponse_isInherited = Lens.lens (\PropertyGroupResponse' {isInherited} -> isInherited) (\s@PropertyGroupResponse' {} a -> s {isInherited = a} :: PropertyGroupResponse)++instance Data.FromJSON PropertyGroupResponse where+  parseJSON =+    Data.withObject+      "PropertyGroupResponse"+      ( \x ->+          PropertyGroupResponse'+            Prelude.<$> (x Data..: "groupType")+            Prelude.<*> (x Data..:? "propertyNames" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..: "isInherited")+      )++instance Prelude.Hashable PropertyGroupResponse where+  hashWithSalt _salt PropertyGroupResponse' {..} =+    _salt+      `Prelude.hashWithSalt` groupType+      `Prelude.hashWithSalt` propertyNames+      `Prelude.hashWithSalt` isInherited++instance Prelude.NFData PropertyGroupResponse where+  rnf PropertyGroupResponse' {..} =+    Prelude.rnf groupType+      `Prelude.seq` Prelude.rnf propertyNames+      `Prelude.seq` Prelude.rnf isInherited
+ gen/Amazonka/IotTwinMaker/Types/PropertyGroupUpdateType.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.IotTwinMaker.Types.PropertyGroupUpdateType+-- 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.IotTwinMaker.Types.PropertyGroupUpdateType+  ( PropertyGroupUpdateType+      ( ..,+        PropertyGroupUpdateType_CREATE,+        PropertyGroupUpdateType_DELETE,+        PropertyGroupUpdateType_UPDATE+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype PropertyGroupUpdateType = PropertyGroupUpdateType'+  { fromPropertyGroupUpdateType ::+      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 PropertyGroupUpdateType_CREATE :: PropertyGroupUpdateType+pattern PropertyGroupUpdateType_CREATE = PropertyGroupUpdateType' "CREATE"++pattern PropertyGroupUpdateType_DELETE :: PropertyGroupUpdateType+pattern PropertyGroupUpdateType_DELETE = PropertyGroupUpdateType' "DELETE"++pattern PropertyGroupUpdateType_UPDATE :: PropertyGroupUpdateType+pattern PropertyGroupUpdateType_UPDATE = PropertyGroupUpdateType' "UPDATE"++{-# COMPLETE+  PropertyGroupUpdateType_CREATE,+  PropertyGroupUpdateType_DELETE,+  PropertyGroupUpdateType_UPDATE,+  PropertyGroupUpdateType'+  #-}
+ gen/Amazonka/IotTwinMaker/Types/PropertyLatestValue.hs view
@@ -0,0 +1,89 @@+{-# 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.IotTwinMaker.Types.PropertyLatestValue+-- 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.IotTwinMaker.Types.PropertyLatestValue where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IotTwinMaker.Types.DataValue+import Amazonka.IotTwinMaker.Types.EntityPropertyReference+import qualified Amazonka.Prelude as Prelude++-- | The latest value of the property.+--+-- /See:/ 'newPropertyLatestValue' smart constructor.+data PropertyLatestValue = PropertyLatestValue'+  { -- | The value of the property.+    propertyValue :: Prelude.Maybe DataValue,+    -- | An object that specifies information about a property.>+    propertyReference :: EntityPropertyReference+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PropertyLatestValue' 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:+--+-- 'propertyValue', 'propertyLatestValue_propertyValue' - The value of the property.+--+-- 'propertyReference', 'propertyLatestValue_propertyReference' - An object that specifies information about a property.>+newPropertyLatestValue ::+  -- | 'propertyReference'+  EntityPropertyReference ->+  PropertyLatestValue+newPropertyLatestValue pPropertyReference_ =+  PropertyLatestValue'+    { propertyValue =+        Prelude.Nothing,+      propertyReference = pPropertyReference_+    }++-- | The value of the property.+propertyLatestValue_propertyValue :: Lens.Lens' PropertyLatestValue (Prelude.Maybe DataValue)+propertyLatestValue_propertyValue = Lens.lens (\PropertyLatestValue' {propertyValue} -> propertyValue) (\s@PropertyLatestValue' {} a -> s {propertyValue = a} :: PropertyLatestValue)++-- | An object that specifies information about a property.>+propertyLatestValue_propertyReference :: Lens.Lens' PropertyLatestValue EntityPropertyReference+propertyLatestValue_propertyReference = Lens.lens (\PropertyLatestValue' {propertyReference} -> propertyReference) (\s@PropertyLatestValue' {} a -> s {propertyReference = a} :: PropertyLatestValue)++instance Data.FromJSON PropertyLatestValue where+  parseJSON =+    Data.withObject+      "PropertyLatestValue"+      ( \x ->+          PropertyLatestValue'+            Prelude.<$> (x Data..:? "propertyValue")+            Prelude.<*> (x Data..: "propertyReference")+      )++instance Prelude.Hashable PropertyLatestValue where+  hashWithSalt _salt PropertyLatestValue' {..} =+    _salt+      `Prelude.hashWithSalt` propertyValue+      `Prelude.hashWithSalt` propertyReference++instance Prelude.NFData PropertyLatestValue where+  rnf PropertyLatestValue' {..} =+    Prelude.rnf propertyValue+      `Prelude.seq` Prelude.rnf propertyReference
+ gen/Amazonka/IotTwinMaker/Types/PropertyRequest.hs view
@@ -0,0 +1,98 @@+{-# 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.IotTwinMaker.Types.PropertyRequest+-- 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.IotTwinMaker.Types.PropertyRequest where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IotTwinMaker.Types.DataValue+import Amazonka.IotTwinMaker.Types.PropertyDefinitionRequest+import Amazonka.IotTwinMaker.Types.PropertyUpdateType+import qualified Amazonka.Prelude as Prelude++-- | An object that sets information about a property.+--+-- /See:/ 'newPropertyRequest' smart constructor.+data PropertyRequest = PropertyRequest'+  { -- | An object that specifies information about a property.+    definition :: Prelude.Maybe PropertyDefinitionRequest,+    -- | The update type of the update property request.+    updateType :: Prelude.Maybe PropertyUpdateType,+    -- | The value of the property.+    value :: Prelude.Maybe DataValue+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PropertyRequest' 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:+--+-- 'definition', 'propertyRequest_definition' - An object that specifies information about a property.+--+-- 'updateType', 'propertyRequest_updateType' - The update type of the update property request.+--+-- 'value', 'propertyRequest_value' - The value of the property.+newPropertyRequest ::+  PropertyRequest+newPropertyRequest =+  PropertyRequest'+    { definition = Prelude.Nothing,+      updateType = Prelude.Nothing,+      value = Prelude.Nothing+    }++-- | An object that specifies information about a property.+propertyRequest_definition :: Lens.Lens' PropertyRequest (Prelude.Maybe PropertyDefinitionRequest)+propertyRequest_definition = Lens.lens (\PropertyRequest' {definition} -> definition) (\s@PropertyRequest' {} a -> s {definition = a} :: PropertyRequest)++-- | The update type of the update property request.+propertyRequest_updateType :: Lens.Lens' PropertyRequest (Prelude.Maybe PropertyUpdateType)+propertyRequest_updateType = Lens.lens (\PropertyRequest' {updateType} -> updateType) (\s@PropertyRequest' {} a -> s {updateType = a} :: PropertyRequest)++-- | The value of the property.+propertyRequest_value :: Lens.Lens' PropertyRequest (Prelude.Maybe DataValue)+propertyRequest_value = Lens.lens (\PropertyRequest' {value} -> value) (\s@PropertyRequest' {} a -> s {value = a} :: PropertyRequest)++instance Prelude.Hashable PropertyRequest where+  hashWithSalt _salt PropertyRequest' {..} =+    _salt+      `Prelude.hashWithSalt` definition+      `Prelude.hashWithSalt` updateType+      `Prelude.hashWithSalt` value++instance Prelude.NFData PropertyRequest where+  rnf PropertyRequest' {..} =+    Prelude.rnf definition+      `Prelude.seq` Prelude.rnf updateType+      `Prelude.seq` Prelude.rnf value++instance Data.ToJSON PropertyRequest where+  toJSON PropertyRequest' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("definition" Data..=) Prelude.<$> definition,+            ("updateType" Data..=) Prelude.<$> updateType,+            ("value" Data..=) Prelude.<$> value+          ]+      )
+ gen/Amazonka/IotTwinMaker/Types/PropertyResponse.hs view
@@ -0,0 +1,86 @@+{-# 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.IotTwinMaker.Types.PropertyResponse+-- 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.IotTwinMaker.Types.PropertyResponse where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IotTwinMaker.Types.DataValue+import Amazonka.IotTwinMaker.Types.PropertyDefinitionResponse+import qualified Amazonka.Prelude as Prelude++-- | An object that contains information about a property response.+--+-- /See:/ 'newPropertyResponse' smart constructor.+data PropertyResponse = PropertyResponse'+  { -- | An object that specifies information about a property.+    definition :: Prelude.Maybe PropertyDefinitionResponse,+    -- | The value of the property.+    value :: Prelude.Maybe DataValue+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PropertyResponse' 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:+--+-- 'definition', 'propertyResponse_definition' - An object that specifies information about a property.+--+-- 'value', 'propertyResponse_value' - The value of the property.+newPropertyResponse ::+  PropertyResponse+newPropertyResponse =+  PropertyResponse'+    { definition = Prelude.Nothing,+      value = Prelude.Nothing+    }++-- | An object that specifies information about a property.+propertyResponse_definition :: Lens.Lens' PropertyResponse (Prelude.Maybe PropertyDefinitionResponse)+propertyResponse_definition = Lens.lens (\PropertyResponse' {definition} -> definition) (\s@PropertyResponse' {} a -> s {definition = a} :: PropertyResponse)++-- | The value of the property.+propertyResponse_value :: Lens.Lens' PropertyResponse (Prelude.Maybe DataValue)+propertyResponse_value = Lens.lens (\PropertyResponse' {value} -> value) (\s@PropertyResponse' {} a -> s {value = a} :: PropertyResponse)++instance Data.FromJSON PropertyResponse where+  parseJSON =+    Data.withObject+      "PropertyResponse"+      ( \x ->+          PropertyResponse'+            Prelude.<$> (x Data..:? "definition")+            Prelude.<*> (x Data..:? "value")+      )++instance Prelude.Hashable PropertyResponse where+  hashWithSalt _salt PropertyResponse' {..} =+    _salt+      `Prelude.hashWithSalt` definition+      `Prelude.hashWithSalt` value++instance Prelude.NFData PropertyResponse where+  rnf PropertyResponse' {..} =+    Prelude.rnf definition+      `Prelude.seq` Prelude.rnf value
+ gen/Amazonka/IotTwinMaker/Types/PropertyUpdateType.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.IotTwinMaker.Types.PropertyUpdateType+-- 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.IotTwinMaker.Types.PropertyUpdateType+  ( PropertyUpdateType+      ( ..,+        PropertyUpdateType_CREATE,+        PropertyUpdateType_DELETE,+        PropertyUpdateType_UPDATE+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype PropertyUpdateType = PropertyUpdateType'+  { fromPropertyUpdateType ::+      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 PropertyUpdateType_CREATE :: PropertyUpdateType+pattern PropertyUpdateType_CREATE = PropertyUpdateType' "CREATE"++pattern PropertyUpdateType_DELETE :: PropertyUpdateType+pattern PropertyUpdateType_DELETE = PropertyUpdateType' "DELETE"++pattern PropertyUpdateType_UPDATE :: PropertyUpdateType+pattern PropertyUpdateType_UPDATE = PropertyUpdateType' "UPDATE"++{-# COMPLETE+  PropertyUpdateType_CREATE,+  PropertyUpdateType_DELETE,+  PropertyUpdateType_UPDATE,+  PropertyUpdateType'+  #-}
+ gen/Amazonka/IotTwinMaker/Types/PropertyValue.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.IotTwinMaker.Types.PropertyValue+-- 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.IotTwinMaker.Types.PropertyValue where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IotTwinMaker.Types.DataValue+import qualified Amazonka.Prelude as Prelude++-- | An object that contains information about a value for a time series+-- property.+--+-- /See:/ 'newPropertyValue' smart constructor.+data PropertyValue = PropertyValue'+  { -- | ISO8601 DateTime of a value for a time series property.+    --+    -- The time for when the property value was recorded in ISO 8601 format:+    -- /YYYY-MM-DDThh:mm:ss[.SSSSSSSSS][Z\/±HH:mm]/.+    --+    -- -   /[YYYY]/: year+    --+    -- -   /[MM]/: month+    --+    -- -   /[DD]/: day+    --+    -- -   /[hh]/: hour+    --+    -- -   /[mm]/: minute+    --+    -- -   /[ss]/: seconds+    --+    -- -   /[.SSSSSSSSS]/: additional precision, where precedence is+    --     maintained. For example: [.573123] is equal to 573123000+    --     nanoseconds.+    --+    -- -   /Z/: default timezone UTC+    --+    -- -   /± HH:mm/: time zone offset in Hours and Minutes.+    --+    -- /Required sub-fields/: YYYY-MM-DDThh:mm:ss and [Z\/±HH:mm]+    time :: Prelude.Maybe Prelude.Text,+    -- | The timestamp of a value for a time series property.+    timestamp :: Prelude.Maybe Data.POSIX,+    -- | An object that specifies a value for a time series property.+    value :: DataValue+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PropertyValue' 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:+--+-- 'time', 'propertyValue_time' - ISO8601 DateTime of a value for a time series property.+--+-- The time for when the property value was recorded in ISO 8601 format:+-- /YYYY-MM-DDThh:mm:ss[.SSSSSSSSS][Z\/±HH:mm]/.+--+-- -   /[YYYY]/: year+--+-- -   /[MM]/: month+--+-- -   /[DD]/: day+--+-- -   /[hh]/: hour+--+-- -   /[mm]/: minute+--+-- -   /[ss]/: seconds+--+-- -   /[.SSSSSSSSS]/: additional precision, where precedence is+--     maintained. For example: [.573123] is equal to 573123000+--     nanoseconds.+--+-- -   /Z/: default timezone UTC+--+-- -   /± HH:mm/: time zone offset in Hours and Minutes.+--+-- /Required sub-fields/: YYYY-MM-DDThh:mm:ss and [Z\/±HH:mm]+--+-- 'timestamp', 'propertyValue_timestamp' - The timestamp of a value for a time series property.+--+-- 'value', 'propertyValue_value' - An object that specifies a value for a time series property.+newPropertyValue ::+  -- | 'value'+  DataValue ->+  PropertyValue+newPropertyValue pValue_ =+  PropertyValue'+    { time = Prelude.Nothing,+      timestamp = Prelude.Nothing,+      value = pValue_+    }++-- | ISO8601 DateTime of a value for a time series property.+--+-- The time for when the property value was recorded in ISO 8601 format:+-- /YYYY-MM-DDThh:mm:ss[.SSSSSSSSS][Z\/±HH:mm]/.+--+-- -   /[YYYY]/: year+--+-- -   /[MM]/: month+--+-- -   /[DD]/: day+--+-- -   /[hh]/: hour+--+-- -   /[mm]/: minute+--+-- -   /[ss]/: seconds+--+-- -   /[.SSSSSSSSS]/: additional precision, where precedence is+--     maintained. For example: [.573123] is equal to 573123000+--     nanoseconds.+--+-- -   /Z/: default timezone UTC+--+-- -   /± HH:mm/: time zone offset in Hours and Minutes.+--+-- /Required sub-fields/: YYYY-MM-DDThh:mm:ss and [Z\/±HH:mm]+propertyValue_time :: Lens.Lens' PropertyValue (Prelude.Maybe Prelude.Text)+propertyValue_time = Lens.lens (\PropertyValue' {time} -> time) (\s@PropertyValue' {} a -> s {time = a} :: PropertyValue)++-- | The timestamp of a value for a time series property.+propertyValue_timestamp :: Lens.Lens' PropertyValue (Prelude.Maybe Prelude.UTCTime)+propertyValue_timestamp = Lens.lens (\PropertyValue' {timestamp} -> timestamp) (\s@PropertyValue' {} a -> s {timestamp = a} :: PropertyValue) Prelude.. Lens.mapping Data._Time++-- | An object that specifies a value for a time series property.+propertyValue_value :: Lens.Lens' PropertyValue DataValue+propertyValue_value = Lens.lens (\PropertyValue' {value} -> value) (\s@PropertyValue' {} a -> s {value = a} :: PropertyValue)++instance Data.FromJSON PropertyValue where+  parseJSON =+    Data.withObject+      "PropertyValue"+      ( \x ->+          PropertyValue'+            Prelude.<$> (x Data..:? "time")+            Prelude.<*> (x Data..:? "timestamp")+            Prelude.<*> (x Data..: "value")+      )++instance Prelude.Hashable PropertyValue where+  hashWithSalt _salt PropertyValue' {..} =+    _salt+      `Prelude.hashWithSalt` time+      `Prelude.hashWithSalt` timestamp+      `Prelude.hashWithSalt` value++instance Prelude.NFData PropertyValue where+  rnf PropertyValue' {..} =+    Prelude.rnf time+      `Prelude.seq` Prelude.rnf timestamp+      `Prelude.seq` Prelude.rnf value++instance Data.ToJSON PropertyValue where+  toJSON PropertyValue' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("time" Data..=) Prelude.<$> time,+            ("timestamp" Data..=) Prelude.<$> timestamp,+            Prelude.Just ("value" Data..= value)+          ]+      )
+ gen/Amazonka/IotTwinMaker/Types/PropertyValueEntry.hs view
@@ -0,0 +1,108 @@+{-# 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.IotTwinMaker.Types.PropertyValueEntry+-- 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.IotTwinMaker.Types.PropertyValueEntry where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IotTwinMaker.Types.EntityPropertyReference+import Amazonka.IotTwinMaker.Types.PropertyValue+import qualified Amazonka.Prelude as Prelude++-- | An object that specifies information about time series property values.+-- This object is used and consumed by the+-- <https://docs.aws.amazon.com/iot-twinmaker/latest/apireference/API_BatchPutPropertyValues.html BatchPutPropertyValues>+-- action.+--+-- /See:/ 'newPropertyValueEntry' smart constructor.+data PropertyValueEntry = PropertyValueEntry'+  { -- | A list of objects that specify time series property values.+    propertyValues :: Prelude.Maybe (Prelude.NonEmpty PropertyValue),+    -- | An object that contains information about the entity that has the+    -- property.+    entityPropertyReference :: EntityPropertyReference+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PropertyValueEntry' 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:+--+-- 'propertyValues', 'propertyValueEntry_propertyValues' - A list of objects that specify time series property values.+--+-- 'entityPropertyReference', 'propertyValueEntry_entityPropertyReference' - An object that contains information about the entity that has the+-- property.+newPropertyValueEntry ::+  -- | 'entityPropertyReference'+  EntityPropertyReference ->+  PropertyValueEntry+newPropertyValueEntry pEntityPropertyReference_ =+  PropertyValueEntry'+    { propertyValues =+        Prelude.Nothing,+      entityPropertyReference = pEntityPropertyReference_+    }++-- | A list of objects that specify time series property values.+propertyValueEntry_propertyValues :: Lens.Lens' PropertyValueEntry (Prelude.Maybe (Prelude.NonEmpty PropertyValue))+propertyValueEntry_propertyValues = Lens.lens (\PropertyValueEntry' {propertyValues} -> propertyValues) (\s@PropertyValueEntry' {} a -> s {propertyValues = a} :: PropertyValueEntry) Prelude.. Lens.mapping Lens.coerced++-- | An object that contains information about the entity that has the+-- property.+propertyValueEntry_entityPropertyReference :: Lens.Lens' PropertyValueEntry EntityPropertyReference+propertyValueEntry_entityPropertyReference = Lens.lens (\PropertyValueEntry' {entityPropertyReference} -> entityPropertyReference) (\s@PropertyValueEntry' {} a -> s {entityPropertyReference = a} :: PropertyValueEntry)++instance Data.FromJSON PropertyValueEntry where+  parseJSON =+    Data.withObject+      "PropertyValueEntry"+      ( \x ->+          PropertyValueEntry'+            Prelude.<$> (x Data..:? "propertyValues")+            Prelude.<*> (x Data..: "entityPropertyReference")+      )++instance Prelude.Hashable PropertyValueEntry where+  hashWithSalt _salt PropertyValueEntry' {..} =+    _salt+      `Prelude.hashWithSalt` propertyValues+      `Prelude.hashWithSalt` entityPropertyReference++instance Prelude.NFData PropertyValueEntry where+  rnf PropertyValueEntry' {..} =+    Prelude.rnf propertyValues+      `Prelude.seq` Prelude.rnf entityPropertyReference++instance Data.ToJSON PropertyValueEntry where+  toJSON PropertyValueEntry' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("propertyValues" Data..=)+              Prelude.<$> propertyValues,+            Prelude.Just+              ( "entityPropertyReference"+                  Data..= entityPropertyReference+              )+          ]+      )
+ gen/Amazonka/IotTwinMaker/Types/PropertyValueHistory.hs view
@@ -0,0 +1,91 @@+{-# 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.IotTwinMaker.Types.PropertyValueHistory+-- 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.IotTwinMaker.Types.PropertyValueHistory where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IotTwinMaker.Types.EntityPropertyReference+import Amazonka.IotTwinMaker.Types.PropertyValue+import qualified Amazonka.Prelude as Prelude++-- | The history of values for a time series property.+--+-- /See:/ 'newPropertyValueHistory' smart constructor.+data PropertyValueHistory = PropertyValueHistory'+  { -- | A list of objects that contain information about the values in the+    -- history of a time series property.+    values :: Prelude.Maybe [PropertyValue],+    -- | An object that uniquely identifies an entity property.+    entityPropertyReference :: EntityPropertyReference+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PropertyValueHistory' 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:+--+-- 'values', 'propertyValueHistory_values' - A list of objects that contain information about the values in the+-- history of a time series property.+--+-- 'entityPropertyReference', 'propertyValueHistory_entityPropertyReference' - An object that uniquely identifies an entity property.+newPropertyValueHistory ::+  -- | 'entityPropertyReference'+  EntityPropertyReference ->+  PropertyValueHistory+newPropertyValueHistory pEntityPropertyReference_ =+  PropertyValueHistory'+    { values = Prelude.Nothing,+      entityPropertyReference = pEntityPropertyReference_+    }++-- | A list of objects that contain information about the values in the+-- history of a time series property.+propertyValueHistory_values :: Lens.Lens' PropertyValueHistory (Prelude.Maybe [PropertyValue])+propertyValueHistory_values = Lens.lens (\PropertyValueHistory' {values} -> values) (\s@PropertyValueHistory' {} a -> s {values = a} :: PropertyValueHistory) Prelude.. Lens.mapping Lens.coerced++-- | An object that uniquely identifies an entity property.+propertyValueHistory_entityPropertyReference :: Lens.Lens' PropertyValueHistory EntityPropertyReference+propertyValueHistory_entityPropertyReference = Lens.lens (\PropertyValueHistory' {entityPropertyReference} -> entityPropertyReference) (\s@PropertyValueHistory' {} a -> s {entityPropertyReference = a} :: PropertyValueHistory)++instance Data.FromJSON PropertyValueHistory where+  parseJSON =+    Data.withObject+      "PropertyValueHistory"+      ( \x ->+          PropertyValueHistory'+            Prelude.<$> (x Data..:? "values" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..: "entityPropertyReference")+      )++instance Prelude.Hashable PropertyValueHistory where+  hashWithSalt _salt PropertyValueHistory' {..} =+    _salt+      `Prelude.hashWithSalt` values+      `Prelude.hashWithSalt` entityPropertyReference++instance Prelude.NFData PropertyValueHistory where+  rnf PropertyValueHistory' {..} =+    Prelude.rnf values+      `Prelude.seq` Prelude.rnf entityPropertyReference
+ gen/Amazonka/IotTwinMaker/Types/QueryResultValue.hs view
@@ -0,0 +1,52 @@+{-# 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.IotTwinMaker.Types.QueryResultValue+-- 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.IotTwinMaker.Types.QueryResultValue 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++-- | /See:/ 'newQueryResultValue' smart constructor.+data QueryResultValue = QueryResultValue'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'QueryResultValue' 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.+newQueryResultValue ::+  QueryResultValue+newQueryResultValue = QueryResultValue'++instance Data.FromJSON QueryResultValue where+  parseJSON =+    Data.withObject+      "QueryResultValue"+      (\x -> Prelude.pure QueryResultValue')++instance Prelude.Hashable QueryResultValue where+  hashWithSalt _salt _ =+    _salt `Prelude.hashWithSalt` ()++instance Prelude.NFData QueryResultValue where+  rnf _ = ()
+ gen/Amazonka/IotTwinMaker/Types/Relationship.hs view
@@ -0,0 +1,95 @@+{-# 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.IotTwinMaker.Types.Relationship+-- 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.IotTwinMaker.Types.Relationship 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 object that specifies a relationship with another component type.+--+-- /See:/ 'newRelationship' smart constructor.+data Relationship = Relationship'+  { -- | The type of the relationship.+    relationshipType :: Prelude.Maybe Prelude.Text,+    -- | The ID of the target component type associated with this relationship.+    targetComponentTypeId :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Relationship' 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:+--+-- 'relationshipType', 'relationship_relationshipType' - The type of the relationship.+--+-- 'targetComponentTypeId', 'relationship_targetComponentTypeId' - The ID of the target component type associated with this relationship.+newRelationship ::+  Relationship+newRelationship =+  Relationship'+    { relationshipType = Prelude.Nothing,+      targetComponentTypeId = Prelude.Nothing+    }++-- | The type of the relationship.+relationship_relationshipType :: Lens.Lens' Relationship (Prelude.Maybe Prelude.Text)+relationship_relationshipType = Lens.lens (\Relationship' {relationshipType} -> relationshipType) (\s@Relationship' {} a -> s {relationshipType = a} :: Relationship)++-- | The ID of the target component type associated with this relationship.+relationship_targetComponentTypeId :: Lens.Lens' Relationship (Prelude.Maybe Prelude.Text)+relationship_targetComponentTypeId = Lens.lens (\Relationship' {targetComponentTypeId} -> targetComponentTypeId) (\s@Relationship' {} a -> s {targetComponentTypeId = a} :: Relationship)++instance Data.FromJSON Relationship where+  parseJSON =+    Data.withObject+      "Relationship"+      ( \x ->+          Relationship'+            Prelude.<$> (x Data..:? "relationshipType")+            Prelude.<*> (x Data..:? "targetComponentTypeId")+      )++instance Prelude.Hashable Relationship where+  hashWithSalt _salt Relationship' {..} =+    _salt+      `Prelude.hashWithSalt` relationshipType+      `Prelude.hashWithSalt` targetComponentTypeId++instance Prelude.NFData Relationship where+  rnf Relationship' {..} =+    Prelude.rnf relationshipType+      `Prelude.seq` Prelude.rnf targetComponentTypeId++instance Data.ToJSON Relationship where+  toJSON Relationship' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("relationshipType" Data..=)+              Prelude.<$> relationshipType,+            ("targetComponentTypeId" Data..=)+              Prelude.<$> targetComponentTypeId+          ]+      )
+ gen/Amazonka/IotTwinMaker/Types/RelationshipValue.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.IotTwinMaker.Types.RelationshipValue+-- 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.IotTwinMaker.Types.RelationshipValue 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 value that associates a component and an entity.+--+-- /See:/ 'newRelationshipValue' smart constructor.+data RelationshipValue = RelationshipValue'+  { -- | The name of the target component associated with the relationship value.+    targetComponentName :: Prelude.Maybe Prelude.Text,+    -- | The ID of the target entity associated with this relationship value.+    targetEntityId :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RelationshipValue' 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:+--+-- 'targetComponentName', 'relationshipValue_targetComponentName' - The name of the target component associated with the relationship value.+--+-- 'targetEntityId', 'relationshipValue_targetEntityId' - The ID of the target entity associated with this relationship value.+newRelationshipValue ::+  RelationshipValue+newRelationshipValue =+  RelationshipValue'+    { targetComponentName =+        Prelude.Nothing,+      targetEntityId = Prelude.Nothing+    }++-- | The name of the target component associated with the relationship value.+relationshipValue_targetComponentName :: Lens.Lens' RelationshipValue (Prelude.Maybe Prelude.Text)+relationshipValue_targetComponentName = Lens.lens (\RelationshipValue' {targetComponentName} -> targetComponentName) (\s@RelationshipValue' {} a -> s {targetComponentName = a} :: RelationshipValue)++-- | The ID of the target entity associated with this relationship value.+relationshipValue_targetEntityId :: Lens.Lens' RelationshipValue (Prelude.Maybe Prelude.Text)+relationshipValue_targetEntityId = Lens.lens (\RelationshipValue' {targetEntityId} -> targetEntityId) (\s@RelationshipValue' {} a -> s {targetEntityId = a} :: RelationshipValue)++instance Data.FromJSON RelationshipValue where+  parseJSON =+    Data.withObject+      "RelationshipValue"+      ( \x ->+          RelationshipValue'+            Prelude.<$> (x Data..:? "targetComponentName")+            Prelude.<*> (x Data..:? "targetEntityId")+      )++instance Prelude.Hashable RelationshipValue where+  hashWithSalt _salt RelationshipValue' {..} =+    _salt+      `Prelude.hashWithSalt` targetComponentName+      `Prelude.hashWithSalt` targetEntityId++instance Prelude.NFData RelationshipValue where+  rnf RelationshipValue' {..} =+    Prelude.rnf targetComponentName+      `Prelude.seq` Prelude.rnf targetEntityId++instance Data.ToJSON RelationshipValue where+  toJSON RelationshipValue' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("targetComponentName" Data..=)+              Prelude.<$> targetComponentName,+            ("targetEntityId" Data..=)+              Prelude.<$> targetEntityId+          ]+      )
+ gen/Amazonka/IotTwinMaker/Types/Row.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.IotTwinMaker.Types.Row+-- 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.IotTwinMaker.Types.Row where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IotTwinMaker.Types.QueryResultValue+import qualified Amazonka.Prelude as Prelude++-- | Represents a single row in the query results.+--+-- /See:/ 'newRow' smart constructor.+data Row = Row'+  { -- | The data in a row of query results.+    rowData :: Prelude.Maybe [QueryResultValue]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Row' 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:+--+-- 'rowData', 'row_rowData' - The data in a row of query results.+newRow ::+  Row+newRow = Row' {rowData = Prelude.Nothing}++-- | The data in a row of query results.+row_rowData :: Lens.Lens' Row (Prelude.Maybe [QueryResultValue])+row_rowData = Lens.lens (\Row' {rowData} -> rowData) (\s@Row' {} a -> s {rowData = a} :: Row) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON Row where+  parseJSON =+    Data.withObject+      "Row"+      ( \x ->+          Row'+            Prelude.<$> (x Data..:? "rowData" Data..!= Prelude.mempty)+      )++instance Prelude.Hashable Row where+  hashWithSalt _salt Row' {..} =+    _salt `Prelude.hashWithSalt` rowData++instance Prelude.NFData Row where+  rnf Row' {..} = Prelude.rnf rowData
+ gen/Amazonka/IotTwinMaker/Types/SceneSummary.hs view
@@ -0,0 +1,151 @@+{-# 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.IotTwinMaker.Types.SceneSummary+-- 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.IotTwinMaker.Types.SceneSummary 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 object that contains information about a scene.+--+-- /See:/ 'newSceneSummary' smart constructor.+data SceneSummary = SceneSummary'+  { -- | The scene description.+    description :: Prelude.Maybe Prelude.Text,+    -- | The ID of the scene.+    sceneId :: Prelude.Text,+    -- | The relative path that specifies the location of the content definition+    -- file.+    contentLocation :: Prelude.Text,+    -- | The ARN of the scene.+    arn :: Prelude.Text,+    -- | The date and time when the scene was created.+    creationDateTime :: Data.POSIX,+    -- | The date and time when the scene was last updated.+    updateDateTime :: Data.POSIX+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SceneSummary' 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', 'sceneSummary_description' - The scene description.+--+-- 'sceneId', 'sceneSummary_sceneId' - The ID of the scene.+--+-- 'contentLocation', 'sceneSummary_contentLocation' - The relative path that specifies the location of the content definition+-- file.+--+-- 'arn', 'sceneSummary_arn' - The ARN of the scene.+--+-- 'creationDateTime', 'sceneSummary_creationDateTime' - The date and time when the scene was created.+--+-- 'updateDateTime', 'sceneSummary_updateDateTime' - The date and time when the scene was last updated.+newSceneSummary ::+  -- | 'sceneId'+  Prelude.Text ->+  -- | 'contentLocation'+  Prelude.Text ->+  -- | 'arn'+  Prelude.Text ->+  -- | 'creationDateTime'+  Prelude.UTCTime ->+  -- | 'updateDateTime'+  Prelude.UTCTime ->+  SceneSummary+newSceneSummary+  pSceneId_+  pContentLocation_+  pArn_+  pCreationDateTime_+  pUpdateDateTime_ =+    SceneSummary'+      { description = Prelude.Nothing,+        sceneId = pSceneId_,+        contentLocation = pContentLocation_,+        arn = pArn_,+        creationDateTime =+          Data._Time Lens.# pCreationDateTime_,+        updateDateTime = Data._Time Lens.# pUpdateDateTime_+      }++-- | The scene description.+sceneSummary_description :: Lens.Lens' SceneSummary (Prelude.Maybe Prelude.Text)+sceneSummary_description = Lens.lens (\SceneSummary' {description} -> description) (\s@SceneSummary' {} a -> s {description = a} :: SceneSummary)++-- | The ID of the scene.+sceneSummary_sceneId :: Lens.Lens' SceneSummary Prelude.Text+sceneSummary_sceneId = Lens.lens (\SceneSummary' {sceneId} -> sceneId) (\s@SceneSummary' {} a -> s {sceneId = a} :: SceneSummary)++-- | The relative path that specifies the location of the content definition+-- file.+sceneSummary_contentLocation :: Lens.Lens' SceneSummary Prelude.Text+sceneSummary_contentLocation = Lens.lens (\SceneSummary' {contentLocation} -> contentLocation) (\s@SceneSummary' {} a -> s {contentLocation = a} :: SceneSummary)++-- | The ARN of the scene.+sceneSummary_arn :: Lens.Lens' SceneSummary Prelude.Text+sceneSummary_arn = Lens.lens (\SceneSummary' {arn} -> arn) (\s@SceneSummary' {} a -> s {arn = a} :: SceneSummary)++-- | The date and time when the scene was created.+sceneSummary_creationDateTime :: Lens.Lens' SceneSummary Prelude.UTCTime+sceneSummary_creationDateTime = Lens.lens (\SceneSummary' {creationDateTime} -> creationDateTime) (\s@SceneSummary' {} a -> s {creationDateTime = a} :: SceneSummary) Prelude.. Data._Time++-- | The date and time when the scene was last updated.+sceneSummary_updateDateTime :: Lens.Lens' SceneSummary Prelude.UTCTime+sceneSummary_updateDateTime = Lens.lens (\SceneSummary' {updateDateTime} -> updateDateTime) (\s@SceneSummary' {} a -> s {updateDateTime = a} :: SceneSummary) Prelude.. Data._Time++instance Data.FromJSON SceneSummary where+  parseJSON =+    Data.withObject+      "SceneSummary"+      ( \x ->+          SceneSummary'+            Prelude.<$> (x Data..:? "description")+            Prelude.<*> (x Data..: "sceneId")+            Prelude.<*> (x Data..: "contentLocation")+            Prelude.<*> (x Data..: "arn")+            Prelude.<*> (x Data..: "creationDateTime")+            Prelude.<*> (x Data..: "updateDateTime")+      )++instance Prelude.Hashable SceneSummary where+  hashWithSalt _salt SceneSummary' {..} =+    _salt+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` sceneId+      `Prelude.hashWithSalt` contentLocation+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` creationDateTime+      `Prelude.hashWithSalt` updateDateTime++instance Prelude.NFData SceneSummary where+  rnf SceneSummary' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf sceneId+      `Prelude.seq` Prelude.rnf contentLocation+      `Prelude.seq` Prelude.rnf arn+      `Prelude.seq` Prelude.rnf creationDateTime+      `Prelude.seq` Prelude.rnf updateDateTime
+ gen/Amazonka/IotTwinMaker/Types/Scope.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.IotTwinMaker.Types.Scope+-- 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.IotTwinMaker.Types.Scope+  ( Scope+      ( ..,+        Scope_ENTITY,+        Scope_WORKSPACE+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype Scope = Scope' {fromScope :: 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 Scope_ENTITY :: Scope+pattern Scope_ENTITY = Scope' "ENTITY"++pattern Scope_WORKSPACE :: Scope+pattern Scope_WORKSPACE = Scope' "WORKSPACE"++{-# COMPLETE+  Scope_ENTITY,+  Scope_WORKSPACE,+  Scope'+  #-}
+ gen/Amazonka/IotTwinMaker/Types/State.hs view
@@ -0,0 +1,83 @@+{-# 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.IotTwinMaker.Types.State+-- 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.IotTwinMaker.Types.State+  ( State+      ( ..,+        State_ACTIVE,+        State_CREATING,+        State_DELETING,+        State_ERROR,+        State_UPDATING+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype State = State' {fromState :: 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 State_ACTIVE :: State+pattern State_ACTIVE = State' "ACTIVE"++pattern State_CREATING :: State+pattern State_CREATING = State' "CREATING"++pattern State_DELETING :: State+pattern State_DELETING = State' "DELETING"++pattern State_ERROR :: State+pattern State_ERROR = State' "ERROR"++pattern State_UPDATING :: State+pattern State_UPDATING = State' "UPDATING"++{-# COMPLETE+  State_ACTIVE,+  State_CREATING,+  State_DELETING,+  State_ERROR,+  State_UPDATING,+  State'+  #-}
+ gen/Amazonka/IotTwinMaker/Types/Status.hs view
@@ -0,0 +1,89 @@+{-# 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.IotTwinMaker.Types.Status+-- 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.IotTwinMaker.Types.Status where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IotTwinMaker.Types.ErrorDetails+import Amazonka.IotTwinMaker.Types.State+import qualified Amazonka.Prelude as Prelude++-- | An object that represents the status of an entity, component, component+-- type, or workspace.+--+-- /See:/ 'newStatus' smart constructor.+data Status = Status'+  { -- | The error message.+    error :: Prelude.Maybe ErrorDetails,+    -- | The current state of the entity, component, component type, or+    -- workspace.+    state :: Prelude.Maybe State+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Status' 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:+--+-- 'error', 'status_error' - The error message.+--+-- 'state', 'status_state' - The current state of the entity, component, component type, or+-- workspace.+newStatus ::+  Status+newStatus =+  Status'+    { error = Prelude.Nothing,+      state = Prelude.Nothing+    }++-- | The error message.+status_error :: Lens.Lens' Status (Prelude.Maybe ErrorDetails)+status_error = Lens.lens (\Status' {error} -> error) (\s@Status' {} a -> s {error = a} :: Status)++-- | The current state of the entity, component, component type, or+-- workspace.+status_state :: Lens.Lens' Status (Prelude.Maybe State)+status_state = Lens.lens (\Status' {state} -> state) (\s@Status' {} a -> s {state = a} :: Status)++instance Data.FromJSON Status where+  parseJSON =+    Data.withObject+      "Status"+      ( \x ->+          Status'+            Prelude.<$> (x Data..:? "error")+            Prelude.<*> (x Data..:? "state")+      )++instance Prelude.Hashable Status where+  hashWithSalt _salt Status' {..} =+    _salt+      `Prelude.hashWithSalt` error+      `Prelude.hashWithSalt` state++instance Prelude.NFData Status where+  rnf Status' {..} =+    Prelude.rnf error `Prelude.seq` Prelude.rnf state
+ gen/Amazonka/IotTwinMaker/Types/SyncJobState.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.IotTwinMaker.Types.SyncJobState+-- 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.IotTwinMaker.Types.SyncJobState+  ( SyncJobState+      ( ..,+        SyncJobState_ACTIVE,+        SyncJobState_CREATING,+        SyncJobState_DELETING,+        SyncJobState_ERROR,+        SyncJobState_INITIALIZING+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype SyncJobState = SyncJobState'+  { fromSyncJobState ::+      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 SyncJobState_ACTIVE :: SyncJobState+pattern SyncJobState_ACTIVE = SyncJobState' "ACTIVE"++pattern SyncJobState_CREATING :: SyncJobState+pattern SyncJobState_CREATING = SyncJobState' "CREATING"++pattern SyncJobState_DELETING :: SyncJobState+pattern SyncJobState_DELETING = SyncJobState' "DELETING"++pattern SyncJobState_ERROR :: SyncJobState+pattern SyncJobState_ERROR = SyncJobState' "ERROR"++pattern SyncJobState_INITIALIZING :: SyncJobState+pattern SyncJobState_INITIALIZING = SyncJobState' "INITIALIZING"++{-# COMPLETE+  SyncJobState_ACTIVE,+  SyncJobState_CREATING,+  SyncJobState_DELETING,+  SyncJobState_ERROR,+  SyncJobState_INITIALIZING,+  SyncJobState'+  #-}
+ gen/Amazonka/IotTwinMaker/Types/SyncJobStatus.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.IotTwinMaker.Types.SyncJobStatus+-- 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.IotTwinMaker.Types.SyncJobStatus where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IotTwinMaker.Types.ErrorDetails+import Amazonka.IotTwinMaker.Types.SyncJobState+import qualified Amazonka.Prelude as Prelude++-- | The SyncJob status.+--+-- /See:/ 'newSyncJobStatus' smart constructor.+data SyncJobStatus = SyncJobStatus'+  { -- | The SyncJob error.+    error :: Prelude.Maybe ErrorDetails,+    -- | The SyncJob status state.+    state :: Prelude.Maybe SyncJobState+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SyncJobStatus' 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:+--+-- 'error', 'syncJobStatus_error' - The SyncJob error.+--+-- 'state', 'syncJobStatus_state' - The SyncJob status state.+newSyncJobStatus ::+  SyncJobStatus+newSyncJobStatus =+  SyncJobStatus'+    { error = Prelude.Nothing,+      state = Prelude.Nothing+    }++-- | The SyncJob error.+syncJobStatus_error :: Lens.Lens' SyncJobStatus (Prelude.Maybe ErrorDetails)+syncJobStatus_error = Lens.lens (\SyncJobStatus' {error} -> error) (\s@SyncJobStatus' {} a -> s {error = a} :: SyncJobStatus)++-- | The SyncJob status state.+syncJobStatus_state :: Lens.Lens' SyncJobStatus (Prelude.Maybe SyncJobState)+syncJobStatus_state = Lens.lens (\SyncJobStatus' {state} -> state) (\s@SyncJobStatus' {} a -> s {state = a} :: SyncJobStatus)++instance Data.FromJSON SyncJobStatus where+  parseJSON =+    Data.withObject+      "SyncJobStatus"+      ( \x ->+          SyncJobStatus'+            Prelude.<$> (x Data..:? "error")+            Prelude.<*> (x Data..:? "state")+      )++instance Prelude.Hashable SyncJobStatus where+  hashWithSalt _salt SyncJobStatus' {..} =+    _salt+      `Prelude.hashWithSalt` error+      `Prelude.hashWithSalt` state++instance Prelude.NFData SyncJobStatus where+  rnf SyncJobStatus' {..} =+    Prelude.rnf error `Prelude.seq` Prelude.rnf state
+ gen/Amazonka/IotTwinMaker/Types/SyncJobSummary.hs view
@@ -0,0 +1,133 @@+{-# 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.IotTwinMaker.Types.SyncJobSummary+-- 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.IotTwinMaker.Types.SyncJobSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IotTwinMaker.Types.SyncJobStatus+import qualified Amazonka.Prelude as Prelude++-- | The SyncJob summary.+--+-- /See:/ 'newSyncJobSummary' smart constructor.+data SyncJobSummary = SyncJobSummary'+  { -- | The SyncJob summary ARN.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The creation date and time.+    creationDateTime :: Prelude.Maybe Data.POSIX,+    -- | The SyncJob summaries status.+    status :: Prelude.Maybe SyncJobStatus,+    -- | The sync source.+    syncSource :: Prelude.Maybe Prelude.Text,+    -- | The update date and time.+    updateDateTime :: Prelude.Maybe Data.POSIX,+    -- | The ID of the workspace that contains the sync job.+    workspaceId :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SyncJobSummary' 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', 'syncJobSummary_arn' - The SyncJob summary ARN.+--+-- 'creationDateTime', 'syncJobSummary_creationDateTime' - The creation date and time.+--+-- 'status', 'syncJobSummary_status' - The SyncJob summaries status.+--+-- 'syncSource', 'syncJobSummary_syncSource' - The sync source.+--+-- 'updateDateTime', 'syncJobSummary_updateDateTime' - The update date and time.+--+-- 'workspaceId', 'syncJobSummary_workspaceId' - The ID of the workspace that contains the sync job.+newSyncJobSummary ::+  SyncJobSummary+newSyncJobSummary =+  SyncJobSummary'+    { arn = Prelude.Nothing,+      creationDateTime = Prelude.Nothing,+      status = Prelude.Nothing,+      syncSource = Prelude.Nothing,+      updateDateTime = Prelude.Nothing,+      workspaceId = Prelude.Nothing+    }++-- | The SyncJob summary ARN.+syncJobSummary_arn :: Lens.Lens' SyncJobSummary (Prelude.Maybe Prelude.Text)+syncJobSummary_arn = Lens.lens (\SyncJobSummary' {arn} -> arn) (\s@SyncJobSummary' {} a -> s {arn = a} :: SyncJobSummary)++-- | The creation date and time.+syncJobSummary_creationDateTime :: Lens.Lens' SyncJobSummary (Prelude.Maybe Prelude.UTCTime)+syncJobSummary_creationDateTime = Lens.lens (\SyncJobSummary' {creationDateTime} -> creationDateTime) (\s@SyncJobSummary' {} a -> s {creationDateTime = a} :: SyncJobSummary) Prelude.. Lens.mapping Data._Time++-- | The SyncJob summaries status.+syncJobSummary_status :: Lens.Lens' SyncJobSummary (Prelude.Maybe SyncJobStatus)+syncJobSummary_status = Lens.lens (\SyncJobSummary' {status} -> status) (\s@SyncJobSummary' {} a -> s {status = a} :: SyncJobSummary)++-- | The sync source.+syncJobSummary_syncSource :: Lens.Lens' SyncJobSummary (Prelude.Maybe Prelude.Text)+syncJobSummary_syncSource = Lens.lens (\SyncJobSummary' {syncSource} -> syncSource) (\s@SyncJobSummary' {} a -> s {syncSource = a} :: SyncJobSummary)++-- | The update date and time.+syncJobSummary_updateDateTime :: Lens.Lens' SyncJobSummary (Prelude.Maybe Prelude.UTCTime)+syncJobSummary_updateDateTime = Lens.lens (\SyncJobSummary' {updateDateTime} -> updateDateTime) (\s@SyncJobSummary' {} a -> s {updateDateTime = a} :: SyncJobSummary) Prelude.. Lens.mapping Data._Time++-- | The ID of the workspace that contains the sync job.+syncJobSummary_workspaceId :: Lens.Lens' SyncJobSummary (Prelude.Maybe Prelude.Text)+syncJobSummary_workspaceId = Lens.lens (\SyncJobSummary' {workspaceId} -> workspaceId) (\s@SyncJobSummary' {} a -> s {workspaceId = a} :: SyncJobSummary)++instance Data.FromJSON SyncJobSummary where+  parseJSON =+    Data.withObject+      "SyncJobSummary"+      ( \x ->+          SyncJobSummary'+            Prelude.<$> (x Data..:? "arn")+            Prelude.<*> (x Data..:? "creationDateTime")+            Prelude.<*> (x Data..:? "status")+            Prelude.<*> (x Data..:? "syncSource")+            Prelude.<*> (x Data..:? "updateDateTime")+            Prelude.<*> (x Data..:? "workspaceId")+      )++instance Prelude.Hashable SyncJobSummary where+  hashWithSalt _salt SyncJobSummary' {..} =+    _salt+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` creationDateTime+      `Prelude.hashWithSalt` status+      `Prelude.hashWithSalt` syncSource+      `Prelude.hashWithSalt` updateDateTime+      `Prelude.hashWithSalt` workspaceId++instance Prelude.NFData SyncJobSummary where+  rnf SyncJobSummary' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf creationDateTime+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf syncSource+      `Prelude.seq` Prelude.rnf updateDateTime+      `Prelude.seq` Prelude.rnf workspaceId
+ gen/Amazonka/IotTwinMaker/Types/SyncResourceFilter.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.IotTwinMaker.Types.SyncResourceFilter+-- 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.IotTwinMaker.Types.SyncResourceFilter where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IotTwinMaker.Types.SyncResourceState+import Amazonka.IotTwinMaker.Types.SyncResourceType+import qualified Amazonka.Prelude as Prelude++-- | The sync resource filter.+--+-- /See:/ 'newSyncResourceFilter' smart constructor.+data SyncResourceFilter = SyncResourceFilter'+  { -- | The external Id.+    externalId :: Prelude.Maybe Prelude.Text,+    -- | The sync resource filter resource Id.+    resourceId :: Prelude.Maybe Prelude.Text,+    -- | The sync resource filter resoucre type+    resourceType :: Prelude.Maybe SyncResourceType,+    -- | The sync resource filter\'s state.+    state :: Prelude.Maybe SyncResourceState+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SyncResourceFilter' 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:+--+-- 'externalId', 'syncResourceFilter_externalId' - The external Id.+--+-- 'resourceId', 'syncResourceFilter_resourceId' - The sync resource filter resource Id.+--+-- 'resourceType', 'syncResourceFilter_resourceType' - The sync resource filter resoucre type+--+-- 'state', 'syncResourceFilter_state' - The sync resource filter\'s state.+newSyncResourceFilter ::+  SyncResourceFilter+newSyncResourceFilter =+  SyncResourceFilter'+    { externalId = Prelude.Nothing,+      resourceId = Prelude.Nothing,+      resourceType = Prelude.Nothing,+      state = Prelude.Nothing+    }++-- | The external Id.+syncResourceFilter_externalId :: Lens.Lens' SyncResourceFilter (Prelude.Maybe Prelude.Text)+syncResourceFilter_externalId = Lens.lens (\SyncResourceFilter' {externalId} -> externalId) (\s@SyncResourceFilter' {} a -> s {externalId = a} :: SyncResourceFilter)++-- | The sync resource filter resource Id.+syncResourceFilter_resourceId :: Lens.Lens' SyncResourceFilter (Prelude.Maybe Prelude.Text)+syncResourceFilter_resourceId = Lens.lens (\SyncResourceFilter' {resourceId} -> resourceId) (\s@SyncResourceFilter' {} a -> s {resourceId = a} :: SyncResourceFilter)++-- | The sync resource filter resoucre type+syncResourceFilter_resourceType :: Lens.Lens' SyncResourceFilter (Prelude.Maybe SyncResourceType)+syncResourceFilter_resourceType = Lens.lens (\SyncResourceFilter' {resourceType} -> resourceType) (\s@SyncResourceFilter' {} a -> s {resourceType = a} :: SyncResourceFilter)++-- | The sync resource filter\'s state.+syncResourceFilter_state :: Lens.Lens' SyncResourceFilter (Prelude.Maybe SyncResourceState)+syncResourceFilter_state = Lens.lens (\SyncResourceFilter' {state} -> state) (\s@SyncResourceFilter' {} a -> s {state = a} :: SyncResourceFilter)++instance Prelude.Hashable SyncResourceFilter where+  hashWithSalt _salt SyncResourceFilter' {..} =+    _salt+      `Prelude.hashWithSalt` externalId+      `Prelude.hashWithSalt` resourceId+      `Prelude.hashWithSalt` resourceType+      `Prelude.hashWithSalt` state++instance Prelude.NFData SyncResourceFilter where+  rnf SyncResourceFilter' {..} =+    Prelude.rnf externalId+      `Prelude.seq` Prelude.rnf resourceId+      `Prelude.seq` Prelude.rnf resourceType+      `Prelude.seq` Prelude.rnf state++instance Data.ToJSON SyncResourceFilter where+  toJSON SyncResourceFilter' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("externalId" Data..=) Prelude.<$> externalId,+            ("resourceId" Data..=) Prelude.<$> resourceId,+            ("resourceType" Data..=) Prelude.<$> resourceType,+            ("state" Data..=) Prelude.<$> state+          ]+      )
+ gen/Amazonka/IotTwinMaker/Types/SyncResourceState.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.IotTwinMaker.Types.SyncResourceState+-- 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.IotTwinMaker.Types.SyncResourceState+  ( SyncResourceState+      ( ..,+        SyncResourceState_DELETED,+        SyncResourceState_ERROR,+        SyncResourceState_INITIALIZING,+        SyncResourceState_IN_SYNC,+        SyncResourceState_PROCESSING+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype SyncResourceState = SyncResourceState'+  { fromSyncResourceState ::+      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 SyncResourceState_DELETED :: SyncResourceState+pattern SyncResourceState_DELETED = SyncResourceState' "DELETED"++pattern SyncResourceState_ERROR :: SyncResourceState+pattern SyncResourceState_ERROR = SyncResourceState' "ERROR"++pattern SyncResourceState_INITIALIZING :: SyncResourceState+pattern SyncResourceState_INITIALIZING = SyncResourceState' "INITIALIZING"++pattern SyncResourceState_IN_SYNC :: SyncResourceState+pattern SyncResourceState_IN_SYNC = SyncResourceState' "IN_SYNC"++pattern SyncResourceState_PROCESSING :: SyncResourceState+pattern SyncResourceState_PROCESSING = SyncResourceState' "PROCESSING"++{-# COMPLETE+  SyncResourceState_DELETED,+  SyncResourceState_ERROR,+  SyncResourceState_INITIALIZING,+  SyncResourceState_IN_SYNC,+  SyncResourceState_PROCESSING,+  SyncResourceState'+  #-}
+ gen/Amazonka/IotTwinMaker/Types/SyncResourceStatus.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.IotTwinMaker.Types.SyncResourceStatus+-- 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.IotTwinMaker.Types.SyncResourceStatus where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IotTwinMaker.Types.ErrorDetails+import Amazonka.IotTwinMaker.Types.SyncResourceState+import qualified Amazonka.Prelude as Prelude++-- | The sync resource status.+--+-- /See:/ 'newSyncResourceStatus' smart constructor.+data SyncResourceStatus = SyncResourceStatus'+  { -- | The status error.+    error :: Prelude.Maybe ErrorDetails,+    -- | The sync resource status state.+    state :: Prelude.Maybe SyncResourceState+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SyncResourceStatus' 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:+--+-- 'error', 'syncResourceStatus_error' - The status error.+--+-- 'state', 'syncResourceStatus_state' - The sync resource status state.+newSyncResourceStatus ::+  SyncResourceStatus+newSyncResourceStatus =+  SyncResourceStatus'+    { error = Prelude.Nothing,+      state = Prelude.Nothing+    }++-- | The status error.+syncResourceStatus_error :: Lens.Lens' SyncResourceStatus (Prelude.Maybe ErrorDetails)+syncResourceStatus_error = Lens.lens (\SyncResourceStatus' {error} -> error) (\s@SyncResourceStatus' {} a -> s {error = a} :: SyncResourceStatus)++-- | The sync resource status state.+syncResourceStatus_state :: Lens.Lens' SyncResourceStatus (Prelude.Maybe SyncResourceState)+syncResourceStatus_state = Lens.lens (\SyncResourceStatus' {state} -> state) (\s@SyncResourceStatus' {} a -> s {state = a} :: SyncResourceStatus)++instance Data.FromJSON SyncResourceStatus where+  parseJSON =+    Data.withObject+      "SyncResourceStatus"+      ( \x ->+          SyncResourceStatus'+            Prelude.<$> (x Data..:? "error")+            Prelude.<*> (x Data..:? "state")+      )++instance Prelude.Hashable SyncResourceStatus where+  hashWithSalt _salt SyncResourceStatus' {..} =+    _salt+      `Prelude.hashWithSalt` error+      `Prelude.hashWithSalt` state++instance Prelude.NFData SyncResourceStatus where+  rnf SyncResourceStatus' {..} =+    Prelude.rnf error `Prelude.seq` Prelude.rnf state
+ gen/Amazonka/IotTwinMaker/Types/SyncResourceSummary.hs view
@@ -0,0 +1,122 @@+{-# 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.IotTwinMaker.Types.SyncResourceSummary+-- 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.IotTwinMaker.Types.SyncResourceSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IotTwinMaker.Types.SyncResourceStatus+import Amazonka.IotTwinMaker.Types.SyncResourceType+import qualified Amazonka.Prelude as Prelude++-- | The sync resource summary.+--+-- /See:/ 'newSyncResourceSummary' smart constructor.+data SyncResourceSummary = SyncResourceSummary'+  { -- | The external Id.+    externalId :: Prelude.Maybe Prelude.Text,+    -- | The resource Id.+    resourceId :: Prelude.Maybe Prelude.Text,+    -- | The resource type.+    resourceType :: Prelude.Maybe SyncResourceType,+    -- | The sync resource summary status.+    status :: Prelude.Maybe SyncResourceStatus,+    -- | The update date and time.+    updateDateTime :: Prelude.Maybe Data.POSIX+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SyncResourceSummary' 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:+--+-- 'externalId', 'syncResourceSummary_externalId' - The external Id.+--+-- 'resourceId', 'syncResourceSummary_resourceId' - The resource Id.+--+-- 'resourceType', 'syncResourceSummary_resourceType' - The resource type.+--+-- 'status', 'syncResourceSummary_status' - The sync resource summary status.+--+-- 'updateDateTime', 'syncResourceSummary_updateDateTime' - The update date and time.+newSyncResourceSummary ::+  SyncResourceSummary+newSyncResourceSummary =+  SyncResourceSummary'+    { externalId = Prelude.Nothing,+      resourceId = Prelude.Nothing,+      resourceType = Prelude.Nothing,+      status = Prelude.Nothing,+      updateDateTime = Prelude.Nothing+    }++-- | The external Id.+syncResourceSummary_externalId :: Lens.Lens' SyncResourceSummary (Prelude.Maybe Prelude.Text)+syncResourceSummary_externalId = Lens.lens (\SyncResourceSummary' {externalId} -> externalId) (\s@SyncResourceSummary' {} a -> s {externalId = a} :: SyncResourceSummary)++-- | The resource Id.+syncResourceSummary_resourceId :: Lens.Lens' SyncResourceSummary (Prelude.Maybe Prelude.Text)+syncResourceSummary_resourceId = Lens.lens (\SyncResourceSummary' {resourceId} -> resourceId) (\s@SyncResourceSummary' {} a -> s {resourceId = a} :: SyncResourceSummary)++-- | The resource type.+syncResourceSummary_resourceType :: Lens.Lens' SyncResourceSummary (Prelude.Maybe SyncResourceType)+syncResourceSummary_resourceType = Lens.lens (\SyncResourceSummary' {resourceType} -> resourceType) (\s@SyncResourceSummary' {} a -> s {resourceType = a} :: SyncResourceSummary)++-- | The sync resource summary status.+syncResourceSummary_status :: Lens.Lens' SyncResourceSummary (Prelude.Maybe SyncResourceStatus)+syncResourceSummary_status = Lens.lens (\SyncResourceSummary' {status} -> status) (\s@SyncResourceSummary' {} a -> s {status = a} :: SyncResourceSummary)++-- | The update date and time.+syncResourceSummary_updateDateTime :: Lens.Lens' SyncResourceSummary (Prelude.Maybe Prelude.UTCTime)+syncResourceSummary_updateDateTime = Lens.lens (\SyncResourceSummary' {updateDateTime} -> updateDateTime) (\s@SyncResourceSummary' {} a -> s {updateDateTime = a} :: SyncResourceSummary) Prelude.. Lens.mapping Data._Time++instance Data.FromJSON SyncResourceSummary where+  parseJSON =+    Data.withObject+      "SyncResourceSummary"+      ( \x ->+          SyncResourceSummary'+            Prelude.<$> (x Data..:? "externalId")+            Prelude.<*> (x Data..:? "resourceId")+            Prelude.<*> (x Data..:? "resourceType")+            Prelude.<*> (x Data..:? "status")+            Prelude.<*> (x Data..:? "updateDateTime")+      )++instance Prelude.Hashable SyncResourceSummary where+  hashWithSalt _salt SyncResourceSummary' {..} =+    _salt+      `Prelude.hashWithSalt` externalId+      `Prelude.hashWithSalt` resourceId+      `Prelude.hashWithSalt` resourceType+      `Prelude.hashWithSalt` status+      `Prelude.hashWithSalt` updateDateTime++instance Prelude.NFData SyncResourceSummary where+  rnf SyncResourceSummary' {..} =+    Prelude.rnf externalId+      `Prelude.seq` Prelude.rnf resourceId+      `Prelude.seq` Prelude.rnf resourceType+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf updateDateTime
+ gen/Amazonka/IotTwinMaker/Types/SyncResourceType.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.IotTwinMaker.Types.SyncResourceType+-- 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.IotTwinMaker.Types.SyncResourceType+  ( SyncResourceType+      ( ..,+        SyncResourceType_COMPONENT_TYPE,+        SyncResourceType_ENTITY+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype SyncResourceType = SyncResourceType'+  { fromSyncResourceType ::+      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 SyncResourceType_COMPONENT_TYPE :: SyncResourceType+pattern SyncResourceType_COMPONENT_TYPE = SyncResourceType' "COMPONENT_TYPE"++pattern SyncResourceType_ENTITY :: SyncResourceType+pattern SyncResourceType_ENTITY = SyncResourceType' "ENTITY"++{-# COMPLETE+  SyncResourceType_COMPONENT_TYPE,+  SyncResourceType_ENTITY,+  SyncResourceType'+  #-}
+ gen/Amazonka/IotTwinMaker/Types/TabularConditions.hs view
@@ -0,0 +1,98 @@+{-# 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.IotTwinMaker.Types.TabularConditions+-- 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.IotTwinMaker.Types.TabularConditions where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IotTwinMaker.Types.OrderBy+import Amazonka.IotTwinMaker.Types.PropertyFilter+import qualified Amazonka.Prelude as Prelude++-- | The tabular conditions.+--+-- /See:/ 'newTabularConditions' smart constructor.+data TabularConditions = TabularConditions'+  { -- | Filter criteria that orders the output. It can be sorted in ascending or+    -- descending order.+    orderBy :: Prelude.Maybe (Prelude.NonEmpty OrderBy),+    -- | You can filter the request using various logical operators and a+    -- key-value format. For example:+    --+    -- @{\"key\": \"serverType\", \"value\": \"webServer\"}@+    propertyFilters :: Prelude.Maybe (Prelude.NonEmpty PropertyFilter)+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TabularConditions' 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:+--+-- 'orderBy', 'tabularConditions_orderBy' - Filter criteria that orders the output. It can be sorted in ascending or+-- descending order.+--+-- 'propertyFilters', 'tabularConditions_propertyFilters' - You can filter the request using various logical operators and a+-- key-value format. For example:+--+-- @{\"key\": \"serverType\", \"value\": \"webServer\"}@+newTabularConditions ::+  TabularConditions+newTabularConditions =+  TabularConditions'+    { orderBy = Prelude.Nothing,+      propertyFilters = Prelude.Nothing+    }++-- | Filter criteria that orders the output. It can be sorted in ascending or+-- descending order.+tabularConditions_orderBy :: Lens.Lens' TabularConditions (Prelude.Maybe (Prelude.NonEmpty OrderBy))+tabularConditions_orderBy = Lens.lens (\TabularConditions' {orderBy} -> orderBy) (\s@TabularConditions' {} a -> s {orderBy = a} :: TabularConditions) Prelude.. Lens.mapping Lens.coerced++-- | You can filter the request using various logical operators and a+-- key-value format. For example:+--+-- @{\"key\": \"serverType\", \"value\": \"webServer\"}@+tabularConditions_propertyFilters :: Lens.Lens' TabularConditions (Prelude.Maybe (Prelude.NonEmpty PropertyFilter))+tabularConditions_propertyFilters = Lens.lens (\TabularConditions' {propertyFilters} -> propertyFilters) (\s@TabularConditions' {} a -> s {propertyFilters = a} :: TabularConditions) Prelude.. Lens.mapping Lens.coerced++instance Prelude.Hashable TabularConditions where+  hashWithSalt _salt TabularConditions' {..} =+    _salt+      `Prelude.hashWithSalt` orderBy+      `Prelude.hashWithSalt` propertyFilters++instance Prelude.NFData TabularConditions where+  rnf TabularConditions' {..} =+    Prelude.rnf orderBy+      `Prelude.seq` Prelude.rnf propertyFilters++instance Data.ToJSON TabularConditions where+  toJSON TabularConditions' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("orderBy" Data..=) Prelude.<$> orderBy,+            ("propertyFilters" Data..=)+              Prelude.<$> propertyFilters+          ]+      )
+ gen/Amazonka/IotTwinMaker/Types/Type.hs view
@@ -0,0 +1,98 @@+{-# 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.IotTwinMaker.Types.Type+-- 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.IotTwinMaker.Types.Type+  ( Type+      ( ..,+        Type_BOOLEAN,+        Type_DOUBLE,+        Type_INTEGER,+        Type_LIST,+        Type_LONG,+        Type_MAP,+        Type_RELATIONSHIP,+        Type_STRING+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype Type = Type' {fromType :: 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 Type_BOOLEAN :: Type+pattern Type_BOOLEAN = Type' "BOOLEAN"++pattern Type_DOUBLE :: Type+pattern Type_DOUBLE = Type' "DOUBLE"++pattern Type_INTEGER :: Type+pattern Type_INTEGER = Type' "INTEGER"++pattern Type_LIST :: Type+pattern Type_LIST = Type' "LIST"++pattern Type_LONG :: Type+pattern Type_LONG = Type' "LONG"++pattern Type_MAP :: Type+pattern Type_MAP = Type' "MAP"++pattern Type_RELATIONSHIP :: Type+pattern Type_RELATIONSHIP = Type' "RELATIONSHIP"++pattern Type_STRING :: Type+pattern Type_STRING = Type' "STRING"++{-# COMPLETE+  Type_BOOLEAN,+  Type_DOUBLE,+  Type_INTEGER,+  Type_LIST,+  Type_LONG,+  Type_MAP,+  Type_RELATIONSHIP,+  Type_STRING,+  Type'+  #-}
+ gen/Amazonka/IotTwinMaker/Types/UpdateReason.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.IotTwinMaker.Types.UpdateReason+-- 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.IotTwinMaker.Types.UpdateReason+  ( UpdateReason+      ( ..,+        UpdateReason_DEFAULT,+        UpdateReason_ENTITY_COUNT_UPDATE,+        UpdateReason_OVERWRITTEN,+        UpdateReason_PRICING_MODE_UPDATE,+        UpdateReason_PRICING_TIER_UPDATE+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype UpdateReason = UpdateReason'+  { fromUpdateReason ::+      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 UpdateReason_DEFAULT :: UpdateReason+pattern UpdateReason_DEFAULT = UpdateReason' "DEFAULT"++pattern UpdateReason_ENTITY_COUNT_UPDATE :: UpdateReason+pattern UpdateReason_ENTITY_COUNT_UPDATE = UpdateReason' "ENTITY_COUNT_UPDATE"++pattern UpdateReason_OVERWRITTEN :: UpdateReason+pattern UpdateReason_OVERWRITTEN = UpdateReason' "OVERWRITTEN"++pattern UpdateReason_PRICING_MODE_UPDATE :: UpdateReason+pattern UpdateReason_PRICING_MODE_UPDATE = UpdateReason' "PRICING_MODE_UPDATE"++pattern UpdateReason_PRICING_TIER_UPDATE :: UpdateReason+pattern UpdateReason_PRICING_TIER_UPDATE = UpdateReason' "PRICING_TIER_UPDATE"++{-# COMPLETE+  UpdateReason_DEFAULT,+  UpdateReason_ENTITY_COUNT_UPDATE,+  UpdateReason_OVERWRITTEN,+  UpdateReason_PRICING_MODE_UPDATE,+  UpdateReason_PRICING_TIER_UPDATE,+  UpdateReason'+  #-}
+ gen/Amazonka/IotTwinMaker/Types/WorkspaceSummary.hs view
@@ -0,0 +1,133 @@+{-# 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.IotTwinMaker.Types.WorkspaceSummary+-- 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.IotTwinMaker.Types.WorkspaceSummary 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 object that contains information about a workspace.+--+-- /See:/ 'newWorkspaceSummary' smart constructor.+data WorkspaceSummary = WorkspaceSummary'+  { -- | The description of the workspace.+    description :: Prelude.Maybe Prelude.Text,+    -- | The ID of the workspace.+    workspaceId :: Prelude.Text,+    -- | The ARN of the workspace.+    arn :: Prelude.Text,+    -- | The date and time when the workspace was created.+    creationDateTime :: Data.POSIX,+    -- | The date and time when the workspace was last updated.+    updateDateTime :: Data.POSIX+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'WorkspaceSummary' 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', 'workspaceSummary_description' - The description of the workspace.+--+-- 'workspaceId', 'workspaceSummary_workspaceId' - The ID of the workspace.+--+-- 'arn', 'workspaceSummary_arn' - The ARN of the workspace.+--+-- 'creationDateTime', 'workspaceSummary_creationDateTime' - The date and time when the workspace was created.+--+-- 'updateDateTime', 'workspaceSummary_updateDateTime' - The date and time when the workspace was last updated.+newWorkspaceSummary ::+  -- | 'workspaceId'+  Prelude.Text ->+  -- | 'arn'+  Prelude.Text ->+  -- | 'creationDateTime'+  Prelude.UTCTime ->+  -- | 'updateDateTime'+  Prelude.UTCTime ->+  WorkspaceSummary+newWorkspaceSummary+  pWorkspaceId_+  pArn_+  pCreationDateTime_+  pUpdateDateTime_ =+    WorkspaceSummary'+      { description = Prelude.Nothing,+        workspaceId = pWorkspaceId_,+        arn = pArn_,+        creationDateTime =+          Data._Time Lens.# pCreationDateTime_,+        updateDateTime = Data._Time Lens.# pUpdateDateTime_+      }++-- | The description of the workspace.+workspaceSummary_description :: Lens.Lens' WorkspaceSummary (Prelude.Maybe Prelude.Text)+workspaceSummary_description = Lens.lens (\WorkspaceSummary' {description} -> description) (\s@WorkspaceSummary' {} a -> s {description = a} :: WorkspaceSummary)++-- | The ID of the workspace.+workspaceSummary_workspaceId :: Lens.Lens' WorkspaceSummary Prelude.Text+workspaceSummary_workspaceId = Lens.lens (\WorkspaceSummary' {workspaceId} -> workspaceId) (\s@WorkspaceSummary' {} a -> s {workspaceId = a} :: WorkspaceSummary)++-- | The ARN of the workspace.+workspaceSummary_arn :: Lens.Lens' WorkspaceSummary Prelude.Text+workspaceSummary_arn = Lens.lens (\WorkspaceSummary' {arn} -> arn) (\s@WorkspaceSummary' {} a -> s {arn = a} :: WorkspaceSummary)++-- | The date and time when the workspace was created.+workspaceSummary_creationDateTime :: Lens.Lens' WorkspaceSummary Prelude.UTCTime+workspaceSummary_creationDateTime = Lens.lens (\WorkspaceSummary' {creationDateTime} -> creationDateTime) (\s@WorkspaceSummary' {} a -> s {creationDateTime = a} :: WorkspaceSummary) Prelude.. Data._Time++-- | The date and time when the workspace was last updated.+workspaceSummary_updateDateTime :: Lens.Lens' WorkspaceSummary Prelude.UTCTime+workspaceSummary_updateDateTime = Lens.lens (\WorkspaceSummary' {updateDateTime} -> updateDateTime) (\s@WorkspaceSummary' {} a -> s {updateDateTime = a} :: WorkspaceSummary) Prelude.. Data._Time++instance Data.FromJSON WorkspaceSummary where+  parseJSON =+    Data.withObject+      "WorkspaceSummary"+      ( \x ->+          WorkspaceSummary'+            Prelude.<$> (x Data..:? "description")+            Prelude.<*> (x Data..: "workspaceId")+            Prelude.<*> (x Data..: "arn")+            Prelude.<*> (x Data..: "creationDateTime")+            Prelude.<*> (x Data..: "updateDateTime")+      )++instance Prelude.Hashable WorkspaceSummary where+  hashWithSalt _salt WorkspaceSummary' {..} =+    _salt+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` workspaceId+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` creationDateTime+      `Prelude.hashWithSalt` updateDateTime++instance Prelude.NFData WorkspaceSummary where+  rnf WorkspaceSummary' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf workspaceId+      `Prelude.seq` Prelude.rnf arn+      `Prelude.seq` Prelude.rnf creationDateTime+      `Prelude.seq` Prelude.rnf updateDateTime
+ gen/Amazonka/IotTwinMaker/UntagResource.hs view
@@ -0,0 +1,165 @@+{-# 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.IotTwinMaker.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 tags from a resource.+module Amazonka.IotTwinMaker.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.IotTwinMaker.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 tag key names to remove from the resource. You don\'t specify+    -- the value. Both the key and its associated value are removed.+    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 tag key names to remove from the resource. You don\'t specify+-- the value. Both the key and its associated value are removed.+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 tag key names to remove from the resource. You don\'t specify+-- the value. Both the key and its associated value are removed.+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.delete (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+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath UntagResource where+  toPath = Prelude.const "/tags"++instance Data.ToQuery UntagResource where+  toQuery UntagResource' {..} =+    Prelude.mconcat+      [ "resourceARN" Data.=: resourceARN,+        "tagKeys" Data.=: Data.toQueryList "member" tagKeys+      ]++-- | /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/IotTwinMaker/UpdateComponentType.hs view
@@ -0,0 +1,343 @@+{-# 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.IotTwinMaker.UpdateComponentType+-- 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 information in a component type.+module Amazonka.IotTwinMaker.UpdateComponentType+  ( -- * Creating a Request+    UpdateComponentType (..),+    newUpdateComponentType,++    -- * Request Lenses+    updateComponentType_componentTypeName,+    updateComponentType_description,+    updateComponentType_extendsFrom,+    updateComponentType_functions,+    updateComponentType_isSingleton,+    updateComponentType_propertyDefinitions,+    updateComponentType_propertyGroups,+    updateComponentType_workspaceId,+    updateComponentType_componentTypeId,++    -- * Destructuring the Response+    UpdateComponentTypeResponse (..),+    newUpdateComponentTypeResponse,++    -- * Response Lenses+    updateComponentTypeResponse_httpStatus,+    updateComponentTypeResponse_workspaceId,+    updateComponentTypeResponse_arn,+    updateComponentTypeResponse_componentTypeId,+    updateComponentTypeResponse_state,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IotTwinMaker.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateComponentType' smart constructor.+data UpdateComponentType = UpdateComponentType'+  { -- | The component type name.+    componentTypeName :: Prelude.Maybe Prelude.Text,+    -- | The description of the component type.+    description :: Prelude.Maybe Prelude.Text,+    -- | Specifies the component type that this component type extends.+    extendsFrom :: Prelude.Maybe [Prelude.Text],+    -- | An object that maps strings to the functions in the component type. Each+    -- string in the mapping must be unique to this object.+    functions :: Prelude.Maybe (Prelude.HashMap Prelude.Text FunctionRequest),+    -- | A Boolean value that specifies whether an entity can have more than one+    -- component of this type.+    isSingleton :: Prelude.Maybe Prelude.Bool,+    -- | An object that maps strings to the property definitions in the component+    -- type. Each string in the mapping must be unique to this object.+    propertyDefinitions :: Prelude.Maybe (Prelude.HashMap Prelude.Text PropertyDefinitionRequest),+    -- | The property groups+    propertyGroups :: Prelude.Maybe (Prelude.HashMap Prelude.Text PropertyGroupRequest),+    -- | The ID of the workspace.+    workspaceId :: Prelude.Text,+    -- | The ID of the component type.+    componentTypeId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateComponentType' 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:+--+-- 'componentTypeName', 'updateComponentType_componentTypeName' - The component type name.+--+-- 'description', 'updateComponentType_description' - The description of the component type.+--+-- 'extendsFrom', 'updateComponentType_extendsFrom' - Specifies the component type that this component type extends.+--+-- 'functions', 'updateComponentType_functions' - An object that maps strings to the functions in the component type. Each+-- string in the mapping must be unique to this object.+--+-- 'isSingleton', 'updateComponentType_isSingleton' - A Boolean value that specifies whether an entity can have more than one+-- component of this type.+--+-- 'propertyDefinitions', 'updateComponentType_propertyDefinitions' - An object that maps strings to the property definitions in the component+-- type. Each string in the mapping must be unique to this object.+--+-- 'propertyGroups', 'updateComponentType_propertyGroups' - The property groups+--+-- 'workspaceId', 'updateComponentType_workspaceId' - The ID of the workspace.+--+-- 'componentTypeId', 'updateComponentType_componentTypeId' - The ID of the component type.+newUpdateComponentType ::+  -- | 'workspaceId'+  Prelude.Text ->+  -- | 'componentTypeId'+  Prelude.Text ->+  UpdateComponentType+newUpdateComponentType+  pWorkspaceId_+  pComponentTypeId_ =+    UpdateComponentType'+      { componentTypeName =+          Prelude.Nothing,+        description = Prelude.Nothing,+        extendsFrom = Prelude.Nothing,+        functions = Prelude.Nothing,+        isSingleton = Prelude.Nothing,+        propertyDefinitions = Prelude.Nothing,+        propertyGroups = Prelude.Nothing,+        workspaceId = pWorkspaceId_,+        componentTypeId = pComponentTypeId_+      }++-- | The component type name.+updateComponentType_componentTypeName :: Lens.Lens' UpdateComponentType (Prelude.Maybe Prelude.Text)+updateComponentType_componentTypeName = Lens.lens (\UpdateComponentType' {componentTypeName} -> componentTypeName) (\s@UpdateComponentType' {} a -> s {componentTypeName = a} :: UpdateComponentType)++-- | The description of the component type.+updateComponentType_description :: Lens.Lens' UpdateComponentType (Prelude.Maybe Prelude.Text)+updateComponentType_description = Lens.lens (\UpdateComponentType' {description} -> description) (\s@UpdateComponentType' {} a -> s {description = a} :: UpdateComponentType)++-- | Specifies the component type that this component type extends.+updateComponentType_extendsFrom :: Lens.Lens' UpdateComponentType (Prelude.Maybe [Prelude.Text])+updateComponentType_extendsFrom = Lens.lens (\UpdateComponentType' {extendsFrom} -> extendsFrom) (\s@UpdateComponentType' {} a -> s {extendsFrom = a} :: UpdateComponentType) Prelude.. Lens.mapping Lens.coerced++-- | An object that maps strings to the functions in the component type. Each+-- string in the mapping must be unique to this object.+updateComponentType_functions :: Lens.Lens' UpdateComponentType (Prelude.Maybe (Prelude.HashMap Prelude.Text FunctionRequest))+updateComponentType_functions = Lens.lens (\UpdateComponentType' {functions} -> functions) (\s@UpdateComponentType' {} a -> s {functions = a} :: UpdateComponentType) Prelude.. Lens.mapping Lens.coerced++-- | A Boolean value that specifies whether an entity can have more than one+-- component of this type.+updateComponentType_isSingleton :: Lens.Lens' UpdateComponentType (Prelude.Maybe Prelude.Bool)+updateComponentType_isSingleton = Lens.lens (\UpdateComponentType' {isSingleton} -> isSingleton) (\s@UpdateComponentType' {} a -> s {isSingleton = a} :: UpdateComponentType)++-- | An object that maps strings to the property definitions in the component+-- type. Each string in the mapping must be unique to this object.+updateComponentType_propertyDefinitions :: Lens.Lens' UpdateComponentType (Prelude.Maybe (Prelude.HashMap Prelude.Text PropertyDefinitionRequest))+updateComponentType_propertyDefinitions = Lens.lens (\UpdateComponentType' {propertyDefinitions} -> propertyDefinitions) (\s@UpdateComponentType' {} a -> s {propertyDefinitions = a} :: UpdateComponentType) Prelude.. Lens.mapping Lens.coerced++-- | The property groups+updateComponentType_propertyGroups :: Lens.Lens' UpdateComponentType (Prelude.Maybe (Prelude.HashMap Prelude.Text PropertyGroupRequest))+updateComponentType_propertyGroups = Lens.lens (\UpdateComponentType' {propertyGroups} -> propertyGroups) (\s@UpdateComponentType' {} a -> s {propertyGroups = a} :: UpdateComponentType) Prelude.. Lens.mapping Lens.coerced++-- | The ID of the workspace.+updateComponentType_workspaceId :: Lens.Lens' UpdateComponentType Prelude.Text+updateComponentType_workspaceId = Lens.lens (\UpdateComponentType' {workspaceId} -> workspaceId) (\s@UpdateComponentType' {} a -> s {workspaceId = a} :: UpdateComponentType)++-- | The ID of the component type.+updateComponentType_componentTypeId :: Lens.Lens' UpdateComponentType Prelude.Text+updateComponentType_componentTypeId = Lens.lens (\UpdateComponentType' {componentTypeId} -> componentTypeId) (\s@UpdateComponentType' {} a -> s {componentTypeId = a} :: UpdateComponentType)++instance Core.AWSRequest UpdateComponentType where+  type+    AWSResponse UpdateComponentType =+      UpdateComponentTypeResponse+  request overrides =+    Request.putJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateComponentTypeResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "workspaceId")+            Prelude.<*> (x Data..:> "arn")+            Prelude.<*> (x Data..:> "componentTypeId")+            Prelude.<*> (x Data..:> "state")+      )++instance Prelude.Hashable UpdateComponentType where+  hashWithSalt _salt UpdateComponentType' {..} =+    _salt+      `Prelude.hashWithSalt` componentTypeName+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` extendsFrom+      `Prelude.hashWithSalt` functions+      `Prelude.hashWithSalt` isSingleton+      `Prelude.hashWithSalt` propertyDefinitions+      `Prelude.hashWithSalt` propertyGroups+      `Prelude.hashWithSalt` workspaceId+      `Prelude.hashWithSalt` componentTypeId++instance Prelude.NFData UpdateComponentType where+  rnf UpdateComponentType' {..} =+    Prelude.rnf componentTypeName+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf extendsFrom+      `Prelude.seq` Prelude.rnf functions+      `Prelude.seq` Prelude.rnf isSingleton+      `Prelude.seq` Prelude.rnf propertyDefinitions+      `Prelude.seq` Prelude.rnf propertyGroups+      `Prelude.seq` Prelude.rnf workspaceId+      `Prelude.seq` Prelude.rnf componentTypeId++instance Data.ToHeaders UpdateComponentType where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateComponentType where+  toJSON UpdateComponentType' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("componentTypeName" Data..=)+              Prelude.<$> componentTypeName,+            ("description" Data..=) Prelude.<$> description,+            ("extendsFrom" Data..=) Prelude.<$> extendsFrom,+            ("functions" Data..=) Prelude.<$> functions,+            ("isSingleton" Data..=) Prelude.<$> isSingleton,+            ("propertyDefinitions" Data..=)+              Prelude.<$> propertyDefinitions,+            ("propertyGroups" Data..=)+              Prelude.<$> propertyGroups+          ]+      )++instance Data.ToPath UpdateComponentType where+  toPath UpdateComponentType' {..} =+    Prelude.mconcat+      [ "/workspaces/",+        Data.toBS workspaceId,+        "/component-types/",+        Data.toBS componentTypeId+      ]++instance Data.ToQuery UpdateComponentType where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateComponentTypeResponse' smart constructor.+data UpdateComponentTypeResponse = UpdateComponentTypeResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The ID of the workspace that contains the component type.+    workspaceId :: Prelude.Text,+    -- | The ARN of the component type.+    arn :: Prelude.Text,+    -- | The ID of the component type.+    componentTypeId :: Prelude.Text,+    -- | The current state of the component type.+    state :: State+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateComponentTypeResponse' 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', 'updateComponentTypeResponse_httpStatus' - The response's http status code.+--+-- 'workspaceId', 'updateComponentTypeResponse_workspaceId' - The ID of the workspace that contains the component type.+--+-- 'arn', 'updateComponentTypeResponse_arn' - The ARN of the component type.+--+-- 'componentTypeId', 'updateComponentTypeResponse_componentTypeId' - The ID of the component type.+--+-- 'state', 'updateComponentTypeResponse_state' - The current state of the component type.+newUpdateComponentTypeResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'workspaceId'+  Prelude.Text ->+  -- | 'arn'+  Prelude.Text ->+  -- | 'componentTypeId'+  Prelude.Text ->+  -- | 'state'+  State ->+  UpdateComponentTypeResponse+newUpdateComponentTypeResponse+  pHttpStatus_+  pWorkspaceId_+  pArn_+  pComponentTypeId_+  pState_ =+    UpdateComponentTypeResponse'+      { httpStatus =+          pHttpStatus_,+        workspaceId = pWorkspaceId_,+        arn = pArn_,+        componentTypeId = pComponentTypeId_,+        state = pState_+      }++-- | The response's http status code.+updateComponentTypeResponse_httpStatus :: Lens.Lens' UpdateComponentTypeResponse Prelude.Int+updateComponentTypeResponse_httpStatus = Lens.lens (\UpdateComponentTypeResponse' {httpStatus} -> httpStatus) (\s@UpdateComponentTypeResponse' {} a -> s {httpStatus = a} :: UpdateComponentTypeResponse)++-- | The ID of the workspace that contains the component type.+updateComponentTypeResponse_workspaceId :: Lens.Lens' UpdateComponentTypeResponse Prelude.Text+updateComponentTypeResponse_workspaceId = Lens.lens (\UpdateComponentTypeResponse' {workspaceId} -> workspaceId) (\s@UpdateComponentTypeResponse' {} a -> s {workspaceId = a} :: UpdateComponentTypeResponse)++-- | The ARN of the component type.+updateComponentTypeResponse_arn :: Lens.Lens' UpdateComponentTypeResponse Prelude.Text+updateComponentTypeResponse_arn = Lens.lens (\UpdateComponentTypeResponse' {arn} -> arn) (\s@UpdateComponentTypeResponse' {} a -> s {arn = a} :: UpdateComponentTypeResponse)++-- | The ID of the component type.+updateComponentTypeResponse_componentTypeId :: Lens.Lens' UpdateComponentTypeResponse Prelude.Text+updateComponentTypeResponse_componentTypeId = Lens.lens (\UpdateComponentTypeResponse' {componentTypeId} -> componentTypeId) (\s@UpdateComponentTypeResponse' {} a -> s {componentTypeId = a} :: UpdateComponentTypeResponse)++-- | The current state of the component type.+updateComponentTypeResponse_state :: Lens.Lens' UpdateComponentTypeResponse State+updateComponentTypeResponse_state = Lens.lens (\UpdateComponentTypeResponse' {state} -> state) (\s@UpdateComponentTypeResponse' {} a -> s {state = a} :: UpdateComponentTypeResponse)++instance Prelude.NFData UpdateComponentTypeResponse where+  rnf UpdateComponentTypeResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf workspaceId+      `Prelude.seq` Prelude.rnf arn+      `Prelude.seq` Prelude.rnf componentTypeId+      `Prelude.seq` Prelude.rnf state
+ gen/Amazonka/IotTwinMaker/UpdateEntity.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.IotTwinMaker.UpdateEntity+-- 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 an entity.+module Amazonka.IotTwinMaker.UpdateEntity+  ( -- * Creating a Request+    UpdateEntity (..),+    newUpdateEntity,++    -- * Request Lenses+    updateEntity_componentUpdates,+    updateEntity_description,+    updateEntity_entityName,+    updateEntity_parentEntityUpdate,+    updateEntity_workspaceId,+    updateEntity_entityId,++    -- * Destructuring the Response+    UpdateEntityResponse (..),+    newUpdateEntityResponse,++    -- * Response Lenses+    updateEntityResponse_httpStatus,+    updateEntityResponse_updateDateTime,+    updateEntityResponse_state,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IotTwinMaker.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateEntity' smart constructor.+data UpdateEntity = UpdateEntity'+  { -- | An object that maps strings to the component updates in the request.+    -- Each string in the mapping must be unique to this object.+    componentUpdates :: Prelude.Maybe (Prelude.HashMap Prelude.Text ComponentUpdateRequest),+    -- | The description of the entity.+    description :: Prelude.Maybe Prelude.Text,+    -- | The name of the entity.+    entityName :: Prelude.Maybe Prelude.Text,+    -- | An object that describes the update request for a parent entity.+    parentEntityUpdate :: Prelude.Maybe ParentEntityUpdateRequest,+    -- | The ID of the workspace that contains the entity.+    workspaceId :: Prelude.Text,+    -- | The ID of the entity.+    entityId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateEntity' 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:+--+-- 'componentUpdates', 'updateEntity_componentUpdates' - An object that maps strings to the component updates in the request.+-- Each string in the mapping must be unique to this object.+--+-- 'description', 'updateEntity_description' - The description of the entity.+--+-- 'entityName', 'updateEntity_entityName' - The name of the entity.+--+-- 'parentEntityUpdate', 'updateEntity_parentEntityUpdate' - An object that describes the update request for a parent entity.+--+-- 'workspaceId', 'updateEntity_workspaceId' - The ID of the workspace that contains the entity.+--+-- 'entityId', 'updateEntity_entityId' - The ID of the entity.+newUpdateEntity ::+  -- | 'workspaceId'+  Prelude.Text ->+  -- | 'entityId'+  Prelude.Text ->+  UpdateEntity+newUpdateEntity pWorkspaceId_ pEntityId_ =+  UpdateEntity'+    { componentUpdates = Prelude.Nothing,+      description = Prelude.Nothing,+      entityName = Prelude.Nothing,+      parentEntityUpdate = Prelude.Nothing,+      workspaceId = pWorkspaceId_,+      entityId = pEntityId_+    }++-- | An object that maps strings to the component updates in the request.+-- Each string in the mapping must be unique to this object.+updateEntity_componentUpdates :: Lens.Lens' UpdateEntity (Prelude.Maybe (Prelude.HashMap Prelude.Text ComponentUpdateRequest))+updateEntity_componentUpdates = Lens.lens (\UpdateEntity' {componentUpdates} -> componentUpdates) (\s@UpdateEntity' {} a -> s {componentUpdates = a} :: UpdateEntity) Prelude.. Lens.mapping Lens.coerced++-- | The description of the entity.+updateEntity_description :: Lens.Lens' UpdateEntity (Prelude.Maybe Prelude.Text)+updateEntity_description = Lens.lens (\UpdateEntity' {description} -> description) (\s@UpdateEntity' {} a -> s {description = a} :: UpdateEntity)++-- | The name of the entity.+updateEntity_entityName :: Lens.Lens' UpdateEntity (Prelude.Maybe Prelude.Text)+updateEntity_entityName = Lens.lens (\UpdateEntity' {entityName} -> entityName) (\s@UpdateEntity' {} a -> s {entityName = a} :: UpdateEntity)++-- | An object that describes the update request for a parent entity.+updateEntity_parentEntityUpdate :: Lens.Lens' UpdateEntity (Prelude.Maybe ParentEntityUpdateRequest)+updateEntity_parentEntityUpdate = Lens.lens (\UpdateEntity' {parentEntityUpdate} -> parentEntityUpdate) (\s@UpdateEntity' {} a -> s {parentEntityUpdate = a} :: UpdateEntity)++-- | The ID of the workspace that contains the entity.+updateEntity_workspaceId :: Lens.Lens' UpdateEntity Prelude.Text+updateEntity_workspaceId = Lens.lens (\UpdateEntity' {workspaceId} -> workspaceId) (\s@UpdateEntity' {} a -> s {workspaceId = a} :: UpdateEntity)++-- | The ID of the entity.+updateEntity_entityId :: Lens.Lens' UpdateEntity Prelude.Text+updateEntity_entityId = Lens.lens (\UpdateEntity' {entityId} -> entityId) (\s@UpdateEntity' {} a -> s {entityId = a} :: UpdateEntity)++instance Core.AWSRequest UpdateEntity where+  type AWSResponse UpdateEntity = UpdateEntityResponse+  request overrides =+    Request.putJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateEntityResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "updateDateTime")+            Prelude.<*> (x Data..:> "state")+      )++instance Prelude.Hashable UpdateEntity where+  hashWithSalt _salt UpdateEntity' {..} =+    _salt+      `Prelude.hashWithSalt` componentUpdates+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` entityName+      `Prelude.hashWithSalt` parentEntityUpdate+      `Prelude.hashWithSalt` workspaceId+      `Prelude.hashWithSalt` entityId++instance Prelude.NFData UpdateEntity where+  rnf UpdateEntity' {..} =+    Prelude.rnf componentUpdates+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf entityName+      `Prelude.seq` Prelude.rnf parentEntityUpdate+      `Prelude.seq` Prelude.rnf workspaceId+      `Prelude.seq` Prelude.rnf entityId++instance Data.ToHeaders UpdateEntity where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateEntity where+  toJSON UpdateEntity' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("componentUpdates" Data..=)+              Prelude.<$> componentUpdates,+            ("description" Data..=) Prelude.<$> description,+            ("entityName" Data..=) Prelude.<$> entityName,+            ("parentEntityUpdate" Data..=)+              Prelude.<$> parentEntityUpdate+          ]+      )++instance Data.ToPath UpdateEntity where+  toPath UpdateEntity' {..} =+    Prelude.mconcat+      [ "/workspaces/",+        Data.toBS workspaceId,+        "/entities/",+        Data.toBS entityId+      ]++instance Data.ToQuery UpdateEntity where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateEntityResponse' smart constructor.+data UpdateEntityResponse = UpdateEntityResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The date and time when the entity was last updated.+    updateDateTime :: Data.POSIX,+    -- | The current state of the entity update.+    state :: State+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateEntityResponse' 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', 'updateEntityResponse_httpStatus' - The response's http status code.+--+-- 'updateDateTime', 'updateEntityResponse_updateDateTime' - The date and time when the entity was last updated.+--+-- 'state', 'updateEntityResponse_state' - The current state of the entity update.+newUpdateEntityResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'updateDateTime'+  Prelude.UTCTime ->+  -- | 'state'+  State ->+  UpdateEntityResponse+newUpdateEntityResponse+  pHttpStatus_+  pUpdateDateTime_+  pState_ =+    UpdateEntityResponse'+      { httpStatus = pHttpStatus_,+        updateDateTime = Data._Time Lens.# pUpdateDateTime_,+        state = pState_+      }++-- | The response's http status code.+updateEntityResponse_httpStatus :: Lens.Lens' UpdateEntityResponse Prelude.Int+updateEntityResponse_httpStatus = Lens.lens (\UpdateEntityResponse' {httpStatus} -> httpStatus) (\s@UpdateEntityResponse' {} a -> s {httpStatus = a} :: UpdateEntityResponse)++-- | The date and time when the entity was last updated.+updateEntityResponse_updateDateTime :: Lens.Lens' UpdateEntityResponse Prelude.UTCTime+updateEntityResponse_updateDateTime = Lens.lens (\UpdateEntityResponse' {updateDateTime} -> updateDateTime) (\s@UpdateEntityResponse' {} a -> s {updateDateTime = a} :: UpdateEntityResponse) Prelude.. Data._Time++-- | The current state of the entity update.+updateEntityResponse_state :: Lens.Lens' UpdateEntityResponse State+updateEntityResponse_state = Lens.lens (\UpdateEntityResponse' {state} -> state) (\s@UpdateEntityResponse' {} a -> s {state = a} :: UpdateEntityResponse)++instance Prelude.NFData UpdateEntityResponse where+  rnf UpdateEntityResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf updateDateTime+      `Prelude.seq` Prelude.rnf state
+ gen/Amazonka/IotTwinMaker/UpdatePricingPlan.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.IotTwinMaker.UpdatePricingPlan+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Update the pricing plan.+module Amazonka.IotTwinMaker.UpdatePricingPlan+  ( -- * Creating a Request+    UpdatePricingPlan (..),+    newUpdatePricingPlan,++    -- * Request Lenses+    updatePricingPlan_bundleNames,+    updatePricingPlan_pricingMode,++    -- * Destructuring the Response+    UpdatePricingPlanResponse (..),+    newUpdatePricingPlanResponse,++    -- * Response Lenses+    updatePricingPlanResponse_pendingPricingPlan,+    updatePricingPlanResponse_httpStatus,+    updatePricingPlanResponse_currentPricingPlan,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IotTwinMaker.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdatePricingPlan' smart constructor.+data UpdatePricingPlan = UpdatePricingPlan'+  { -- | The bundle names.+    bundleNames :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+    -- | The pricing mode.+    pricingMode :: PricingMode+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdatePricingPlan' 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:+--+-- 'bundleNames', 'updatePricingPlan_bundleNames' - The bundle names.+--+-- 'pricingMode', 'updatePricingPlan_pricingMode' - The pricing mode.+newUpdatePricingPlan ::+  -- | 'pricingMode'+  PricingMode ->+  UpdatePricingPlan+newUpdatePricingPlan pPricingMode_ =+  UpdatePricingPlan'+    { bundleNames = Prelude.Nothing,+      pricingMode = pPricingMode_+    }++-- | The bundle names.+updatePricingPlan_bundleNames :: Lens.Lens' UpdatePricingPlan (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+updatePricingPlan_bundleNames = Lens.lens (\UpdatePricingPlan' {bundleNames} -> bundleNames) (\s@UpdatePricingPlan' {} a -> s {bundleNames = a} :: UpdatePricingPlan) Prelude.. Lens.mapping Lens.coerced++-- | The pricing mode.+updatePricingPlan_pricingMode :: Lens.Lens' UpdatePricingPlan PricingMode+updatePricingPlan_pricingMode = Lens.lens (\UpdatePricingPlan' {pricingMode} -> pricingMode) (\s@UpdatePricingPlan' {} a -> s {pricingMode = a} :: UpdatePricingPlan)++instance Core.AWSRequest UpdatePricingPlan where+  type+    AWSResponse UpdatePricingPlan =+      UpdatePricingPlanResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdatePricingPlanResponse'+            Prelude.<$> (x Data..?> "pendingPricingPlan")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "currentPricingPlan")+      )++instance Prelude.Hashable UpdatePricingPlan where+  hashWithSalt _salt UpdatePricingPlan' {..} =+    _salt+      `Prelude.hashWithSalt` bundleNames+      `Prelude.hashWithSalt` pricingMode++instance Prelude.NFData UpdatePricingPlan where+  rnf UpdatePricingPlan' {..} =+    Prelude.rnf bundleNames+      `Prelude.seq` Prelude.rnf pricingMode++instance Data.ToHeaders UpdatePricingPlan where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdatePricingPlan where+  toJSON UpdatePricingPlan' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("bundleNames" Data..=) Prelude.<$> bundleNames,+            Prelude.Just ("pricingMode" Data..= pricingMode)+          ]+      )++instance Data.ToPath UpdatePricingPlan where+  toPath = Prelude.const "/pricingplan"++instance Data.ToQuery UpdatePricingPlan where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdatePricingPlanResponse' smart constructor.+data UpdatePricingPlanResponse = UpdatePricingPlanResponse'+  { -- | Update the pending pricing plan.+    pendingPricingPlan :: Prelude.Maybe PricingPlan,+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | Update the current pricing plan.+    currentPricingPlan :: PricingPlan+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdatePricingPlanResponse' 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:+--+-- 'pendingPricingPlan', 'updatePricingPlanResponse_pendingPricingPlan' - Update the pending pricing plan.+--+-- 'httpStatus', 'updatePricingPlanResponse_httpStatus' - The response's http status code.+--+-- 'currentPricingPlan', 'updatePricingPlanResponse_currentPricingPlan' - Update the current pricing plan.+newUpdatePricingPlanResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'currentPricingPlan'+  PricingPlan ->+  UpdatePricingPlanResponse+newUpdatePricingPlanResponse+  pHttpStatus_+  pCurrentPricingPlan_ =+    UpdatePricingPlanResponse'+      { pendingPricingPlan =+          Prelude.Nothing,+        httpStatus = pHttpStatus_,+        currentPricingPlan = pCurrentPricingPlan_+      }++-- | Update the pending pricing plan.+updatePricingPlanResponse_pendingPricingPlan :: Lens.Lens' UpdatePricingPlanResponse (Prelude.Maybe PricingPlan)+updatePricingPlanResponse_pendingPricingPlan = Lens.lens (\UpdatePricingPlanResponse' {pendingPricingPlan} -> pendingPricingPlan) (\s@UpdatePricingPlanResponse' {} a -> s {pendingPricingPlan = a} :: UpdatePricingPlanResponse)++-- | The response's http status code.+updatePricingPlanResponse_httpStatus :: Lens.Lens' UpdatePricingPlanResponse Prelude.Int+updatePricingPlanResponse_httpStatus = Lens.lens (\UpdatePricingPlanResponse' {httpStatus} -> httpStatus) (\s@UpdatePricingPlanResponse' {} a -> s {httpStatus = a} :: UpdatePricingPlanResponse)++-- | Update the current pricing plan.+updatePricingPlanResponse_currentPricingPlan :: Lens.Lens' UpdatePricingPlanResponse PricingPlan+updatePricingPlanResponse_currentPricingPlan = Lens.lens (\UpdatePricingPlanResponse' {currentPricingPlan} -> currentPricingPlan) (\s@UpdatePricingPlanResponse' {} a -> s {currentPricingPlan = a} :: UpdatePricingPlanResponse)++instance Prelude.NFData UpdatePricingPlanResponse where+  rnf UpdatePricingPlanResponse' {..} =+    Prelude.rnf pendingPricingPlan+      `Prelude.seq` Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf currentPricingPlan
+ gen/Amazonka/IotTwinMaker/UpdateScene.hs view
@@ -0,0 +1,230 @@+{-# 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.IotTwinMaker.UpdateScene+-- 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 scene.+module Amazonka.IotTwinMaker.UpdateScene+  ( -- * Creating a Request+    UpdateScene (..),+    newUpdateScene,++    -- * Request Lenses+    updateScene_capabilities,+    updateScene_contentLocation,+    updateScene_description,+    updateScene_workspaceId,+    updateScene_sceneId,++    -- * Destructuring the Response+    UpdateSceneResponse (..),+    newUpdateSceneResponse,++    -- * Response Lenses+    updateSceneResponse_httpStatus,+    updateSceneResponse_updateDateTime,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IotTwinMaker.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateScene' smart constructor.+data UpdateScene = UpdateScene'+  { -- | A list of capabilities that the scene uses to render.+    capabilities :: Prelude.Maybe [Prelude.Text],+    -- | The relative path that specifies the location of the content definition+    -- file.+    contentLocation :: Prelude.Maybe Prelude.Text,+    -- | The description of this scene.+    description :: Prelude.Maybe Prelude.Text,+    -- | The ID of the workspace that contains the scene.+    workspaceId :: Prelude.Text,+    -- | The ID of the scene.+    sceneId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateScene' 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:+--+-- 'capabilities', 'updateScene_capabilities' - A list of capabilities that the scene uses to render.+--+-- 'contentLocation', 'updateScene_contentLocation' - The relative path that specifies the location of the content definition+-- file.+--+-- 'description', 'updateScene_description' - The description of this scene.+--+-- 'workspaceId', 'updateScene_workspaceId' - The ID of the workspace that contains the scene.+--+-- 'sceneId', 'updateScene_sceneId' - The ID of the scene.+newUpdateScene ::+  -- | 'workspaceId'+  Prelude.Text ->+  -- | 'sceneId'+  Prelude.Text ->+  UpdateScene+newUpdateScene pWorkspaceId_ pSceneId_ =+  UpdateScene'+    { capabilities = Prelude.Nothing,+      contentLocation = Prelude.Nothing,+      description = Prelude.Nothing,+      workspaceId = pWorkspaceId_,+      sceneId = pSceneId_+    }++-- | A list of capabilities that the scene uses to render.+updateScene_capabilities :: Lens.Lens' UpdateScene (Prelude.Maybe [Prelude.Text])+updateScene_capabilities = Lens.lens (\UpdateScene' {capabilities} -> capabilities) (\s@UpdateScene' {} a -> s {capabilities = a} :: UpdateScene) Prelude.. Lens.mapping Lens.coerced++-- | The relative path that specifies the location of the content definition+-- file.+updateScene_contentLocation :: Lens.Lens' UpdateScene (Prelude.Maybe Prelude.Text)+updateScene_contentLocation = Lens.lens (\UpdateScene' {contentLocation} -> contentLocation) (\s@UpdateScene' {} a -> s {contentLocation = a} :: UpdateScene)++-- | The description of this scene.+updateScene_description :: Lens.Lens' UpdateScene (Prelude.Maybe Prelude.Text)+updateScene_description = Lens.lens (\UpdateScene' {description} -> description) (\s@UpdateScene' {} a -> s {description = a} :: UpdateScene)++-- | The ID of the workspace that contains the scene.+updateScene_workspaceId :: Lens.Lens' UpdateScene Prelude.Text+updateScene_workspaceId = Lens.lens (\UpdateScene' {workspaceId} -> workspaceId) (\s@UpdateScene' {} a -> s {workspaceId = a} :: UpdateScene)++-- | The ID of the scene.+updateScene_sceneId :: Lens.Lens' UpdateScene Prelude.Text+updateScene_sceneId = Lens.lens (\UpdateScene' {sceneId} -> sceneId) (\s@UpdateScene' {} a -> s {sceneId = a} :: UpdateScene)++instance Core.AWSRequest UpdateScene where+  type AWSResponse UpdateScene = UpdateSceneResponse+  request overrides =+    Request.putJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateSceneResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "updateDateTime")+      )++instance Prelude.Hashable UpdateScene where+  hashWithSalt _salt UpdateScene' {..} =+    _salt+      `Prelude.hashWithSalt` capabilities+      `Prelude.hashWithSalt` contentLocation+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` workspaceId+      `Prelude.hashWithSalt` sceneId++instance Prelude.NFData UpdateScene where+  rnf UpdateScene' {..} =+    Prelude.rnf capabilities+      `Prelude.seq` Prelude.rnf contentLocation+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf workspaceId+      `Prelude.seq` Prelude.rnf sceneId++instance Data.ToHeaders UpdateScene where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateScene where+  toJSON UpdateScene' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("capabilities" Data..=) Prelude.<$> capabilities,+            ("contentLocation" Data..=)+              Prelude.<$> contentLocation,+            ("description" Data..=) Prelude.<$> description+          ]+      )++instance Data.ToPath UpdateScene where+  toPath UpdateScene' {..} =+    Prelude.mconcat+      [ "/workspaces/",+        Data.toBS workspaceId,+        "/scenes/",+        Data.toBS sceneId+      ]++instance Data.ToQuery UpdateScene where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateSceneResponse' smart constructor.+data UpdateSceneResponse = UpdateSceneResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The date and time when the scene was last updated.+    updateDateTime :: Data.POSIX+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateSceneResponse' 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', 'updateSceneResponse_httpStatus' - The response's http status code.+--+-- 'updateDateTime', 'updateSceneResponse_updateDateTime' - The date and time when the scene was last updated.+newUpdateSceneResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'updateDateTime'+  Prelude.UTCTime ->+  UpdateSceneResponse+newUpdateSceneResponse pHttpStatus_ pUpdateDateTime_ =+  UpdateSceneResponse'+    { httpStatus = pHttpStatus_,+      updateDateTime = Data._Time Lens.# pUpdateDateTime_+    }++-- | The response's http status code.+updateSceneResponse_httpStatus :: Lens.Lens' UpdateSceneResponse Prelude.Int+updateSceneResponse_httpStatus = Lens.lens (\UpdateSceneResponse' {httpStatus} -> httpStatus) (\s@UpdateSceneResponse' {} a -> s {httpStatus = a} :: UpdateSceneResponse)++-- | The date and time when the scene was last updated.+updateSceneResponse_updateDateTime :: Lens.Lens' UpdateSceneResponse Prelude.UTCTime+updateSceneResponse_updateDateTime = Lens.lens (\UpdateSceneResponse' {updateDateTime} -> updateDateTime) (\s@UpdateSceneResponse' {} a -> s {updateDateTime = a} :: UpdateSceneResponse) Prelude.. Data._Time++instance Prelude.NFData UpdateSceneResponse where+  rnf UpdateSceneResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf updateDateTime
+ gen/Amazonka/IotTwinMaker/UpdateWorkspace.hs view
@@ -0,0 +1,200 @@+{-# 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.IotTwinMaker.UpdateWorkspace+-- 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 workspace.+module Amazonka.IotTwinMaker.UpdateWorkspace+  ( -- * Creating a Request+    UpdateWorkspace (..),+    newUpdateWorkspace,++    -- * Request Lenses+    updateWorkspace_description,+    updateWorkspace_role,+    updateWorkspace_workspaceId,++    -- * Destructuring the Response+    UpdateWorkspaceResponse (..),+    newUpdateWorkspaceResponse,++    -- * Response Lenses+    updateWorkspaceResponse_httpStatus,+    updateWorkspaceResponse_updateDateTime,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IotTwinMaker.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateWorkspace' smart constructor.+data UpdateWorkspace = UpdateWorkspace'+  { -- | The description of the workspace.+    description :: Prelude.Maybe Prelude.Text,+    -- | The ARN of the execution role associated with the workspace.+    role' :: Prelude.Maybe Prelude.Text,+    -- | The ID of the workspace.+    workspaceId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateWorkspace' 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', 'updateWorkspace_description' - The description of the workspace.+--+-- 'role'', 'updateWorkspace_role' - The ARN of the execution role associated with the workspace.+--+-- 'workspaceId', 'updateWorkspace_workspaceId' - The ID of the workspace.+newUpdateWorkspace ::+  -- | 'workspaceId'+  Prelude.Text ->+  UpdateWorkspace+newUpdateWorkspace pWorkspaceId_ =+  UpdateWorkspace'+    { description = Prelude.Nothing,+      role' = Prelude.Nothing,+      workspaceId = pWorkspaceId_+    }++-- | The description of the workspace.+updateWorkspace_description :: Lens.Lens' UpdateWorkspace (Prelude.Maybe Prelude.Text)+updateWorkspace_description = Lens.lens (\UpdateWorkspace' {description} -> description) (\s@UpdateWorkspace' {} a -> s {description = a} :: UpdateWorkspace)++-- | The ARN of the execution role associated with the workspace.+updateWorkspace_role :: Lens.Lens' UpdateWorkspace (Prelude.Maybe Prelude.Text)+updateWorkspace_role = Lens.lens (\UpdateWorkspace' {role'} -> role') (\s@UpdateWorkspace' {} a -> s {role' = a} :: UpdateWorkspace)++-- | The ID of the workspace.+updateWorkspace_workspaceId :: Lens.Lens' UpdateWorkspace Prelude.Text+updateWorkspace_workspaceId = Lens.lens (\UpdateWorkspace' {workspaceId} -> workspaceId) (\s@UpdateWorkspace' {} a -> s {workspaceId = a} :: UpdateWorkspace)++instance Core.AWSRequest UpdateWorkspace where+  type+    AWSResponse UpdateWorkspace =+      UpdateWorkspaceResponse+  request overrides =+    Request.putJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateWorkspaceResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "updateDateTime")+      )++instance Prelude.Hashable UpdateWorkspace where+  hashWithSalt _salt UpdateWorkspace' {..} =+    _salt+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` role'+      `Prelude.hashWithSalt` workspaceId++instance Prelude.NFData UpdateWorkspace where+  rnf UpdateWorkspace' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf role'+      `Prelude.seq` Prelude.rnf workspaceId++instance Data.ToHeaders UpdateWorkspace where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateWorkspace where+  toJSON UpdateWorkspace' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("description" Data..=) Prelude.<$> description,+            ("role" Data..=) Prelude.<$> role'+          ]+      )++instance Data.ToPath UpdateWorkspace where+  toPath UpdateWorkspace' {..} =+    Prelude.mconcat+      ["/workspaces/", Data.toBS workspaceId]++instance Data.ToQuery UpdateWorkspace where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateWorkspaceResponse' smart constructor.+data UpdateWorkspaceResponse = UpdateWorkspaceResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The date and time of the current update.+    updateDateTime :: Data.POSIX+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateWorkspaceResponse' 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', 'updateWorkspaceResponse_httpStatus' - The response's http status code.+--+-- 'updateDateTime', 'updateWorkspaceResponse_updateDateTime' - The date and time of the current update.+newUpdateWorkspaceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'updateDateTime'+  Prelude.UTCTime ->+  UpdateWorkspaceResponse+newUpdateWorkspaceResponse+  pHttpStatus_+  pUpdateDateTime_ =+    UpdateWorkspaceResponse'+      { httpStatus = pHttpStatus_,+        updateDateTime =+          Data._Time Lens.# pUpdateDateTime_+      }++-- | The response's http status code.+updateWorkspaceResponse_httpStatus :: Lens.Lens' UpdateWorkspaceResponse Prelude.Int+updateWorkspaceResponse_httpStatus = Lens.lens (\UpdateWorkspaceResponse' {httpStatus} -> httpStatus) (\s@UpdateWorkspaceResponse' {} a -> s {httpStatus = a} :: UpdateWorkspaceResponse)++-- | The date and time of the current update.+updateWorkspaceResponse_updateDateTime :: Lens.Lens' UpdateWorkspaceResponse Prelude.UTCTime+updateWorkspaceResponse_updateDateTime = Lens.lens (\UpdateWorkspaceResponse' {updateDateTime} -> updateDateTime) (\s@UpdateWorkspaceResponse' {} a -> s {updateDateTime = a} :: UpdateWorkspaceResponse) Prelude.. Data._Time++instance Prelude.NFData UpdateWorkspaceResponse where+  rnf UpdateWorkspaceResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf updateDateTime
+ gen/Amazonka/IotTwinMaker/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.IotTwinMaker.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.IotTwinMaker.Waiters where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IotTwinMaker.Lens+import Amazonka.IotTwinMaker.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.IotTwinMaker+import Test.Amazonka.IotTwinMaker.Internal+import Test.Tasty++main :: IO ()+main =+  defaultMain $+    testGroup+      "IotTwinMaker"+      [ testGroup "tests" tests,+        testGroup "fixtures" fixtures+      ]
+ test/Test/Amazonka/Gen/IotTwinMaker.hs view
@@ -0,0 +1,718 @@+{-# 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.IotTwinMaker+-- 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.IotTwinMaker where++import Amazonka.IotTwinMaker+import qualified Data.Proxy as Proxy+import Test.Amazonka.Fixture+import Test.Amazonka.IotTwinMaker.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"+--         [ requestBatchPutPropertyValues $+--             newBatchPutPropertyValues+--+--         , requestCreateComponentType $+--             newCreateComponentType+--+--         , requestCreateEntity $+--             newCreateEntity+--+--         , requestCreateScene $+--             newCreateScene+--+--         , requestCreateSyncJob $+--             newCreateSyncJob+--+--         , requestCreateWorkspace $+--             newCreateWorkspace+--+--         , requestDeleteComponentType $+--             newDeleteComponentType+--+--         , requestDeleteEntity $+--             newDeleteEntity+--+--         , requestDeleteScene $+--             newDeleteScene+--+--         , requestDeleteSyncJob $+--             newDeleteSyncJob+--+--         , requestDeleteWorkspace $+--             newDeleteWorkspace+--+--         , requestExecuteQuery $+--             newExecuteQuery+--+--         , requestGetComponentType $+--             newGetComponentType+--+--         , requestGetEntity $+--             newGetEntity+--+--         , requestGetPricingPlan $+--             newGetPricingPlan+--+--         , requestGetPropertyValue $+--             newGetPropertyValue+--+--         , requestGetPropertyValueHistory $+--             newGetPropertyValueHistory+--+--         , requestGetScene $+--             newGetScene+--+--         , requestGetSyncJob $+--             newGetSyncJob+--+--         , requestGetWorkspace $+--             newGetWorkspace+--+--         , requestListComponentTypes $+--             newListComponentTypes+--+--         , requestListEntities $+--             newListEntities+--+--         , requestListScenes $+--             newListScenes+--+--         , requestListSyncJobs $+--             newListSyncJobs+--+--         , requestListSyncResources $+--             newListSyncResources+--+--         , requestListTagsForResource $+--             newListTagsForResource+--+--         , requestListWorkspaces $+--             newListWorkspaces+--+--         , requestTagResource $+--             newTagResource+--+--         , requestUntagResource $+--             newUntagResource+--+--         , requestUpdateComponentType $+--             newUpdateComponentType+--+--         , requestUpdateEntity $+--             newUpdateEntity+--+--         , requestUpdatePricingPlan $+--             newUpdatePricingPlan+--+--         , requestUpdateScene $+--             newUpdateScene+--+--         , requestUpdateWorkspace $+--             newUpdateWorkspace+--+--           ]++--     , testGroup "response"+--         [ responseBatchPutPropertyValues $+--             newBatchPutPropertyValuesResponse+--+--         , responseCreateComponentType $+--             newCreateComponentTypeResponse+--+--         , responseCreateEntity $+--             newCreateEntityResponse+--+--         , responseCreateScene $+--             newCreateSceneResponse+--+--         , responseCreateSyncJob $+--             newCreateSyncJobResponse+--+--         , responseCreateWorkspace $+--             newCreateWorkspaceResponse+--+--         , responseDeleteComponentType $+--             newDeleteComponentTypeResponse+--+--         , responseDeleteEntity $+--             newDeleteEntityResponse+--+--         , responseDeleteScene $+--             newDeleteSceneResponse+--+--         , responseDeleteSyncJob $+--             newDeleteSyncJobResponse+--+--         , responseDeleteWorkspace $+--             newDeleteWorkspaceResponse+--+--         , responseExecuteQuery $+--             newExecuteQueryResponse+--+--         , responseGetComponentType $+--             newGetComponentTypeResponse+--+--         , responseGetEntity $+--             newGetEntityResponse+--+--         , responseGetPricingPlan $+--             newGetPricingPlanResponse+--+--         , responseGetPropertyValue $+--             newGetPropertyValueResponse+--+--         , responseGetPropertyValueHistory $+--             newGetPropertyValueHistoryResponse+--+--         , responseGetScene $+--             newGetSceneResponse+--+--         , responseGetSyncJob $+--             newGetSyncJobResponse+--+--         , responseGetWorkspace $+--             newGetWorkspaceResponse+--+--         , responseListComponentTypes $+--             newListComponentTypesResponse+--+--         , responseListEntities $+--             newListEntitiesResponse+--+--         , responseListScenes $+--             newListScenesResponse+--+--         , responseListSyncJobs $+--             newListSyncJobsResponse+--+--         , responseListSyncResources $+--             newListSyncResourcesResponse+--+--         , responseListTagsForResource $+--             newListTagsForResourceResponse+--+--         , responseListWorkspaces $+--             newListWorkspacesResponse+--+--         , responseTagResource $+--             newTagResourceResponse+--+--         , responseUntagResource $+--             newUntagResourceResponse+--+--         , responseUpdateComponentType $+--             newUpdateComponentTypeResponse+--+--         , responseUpdateEntity $+--             newUpdateEntityResponse+--+--         , responseUpdatePricingPlan $+--             newUpdatePricingPlanResponse+--+--         , responseUpdateScene $+--             newUpdateSceneResponse+--+--         , responseUpdateWorkspace $+--             newUpdateWorkspaceResponse+--+--           ]+--     ]++-- Requests++requestBatchPutPropertyValues :: BatchPutPropertyValues -> TestTree+requestBatchPutPropertyValues =+  req+    "BatchPutPropertyValues"+    "fixture/BatchPutPropertyValues.yaml"++requestCreateComponentType :: CreateComponentType -> TestTree+requestCreateComponentType =+  req+    "CreateComponentType"+    "fixture/CreateComponentType.yaml"++requestCreateEntity :: CreateEntity -> TestTree+requestCreateEntity =+  req+    "CreateEntity"+    "fixture/CreateEntity.yaml"++requestCreateScene :: CreateScene -> TestTree+requestCreateScene =+  req+    "CreateScene"+    "fixture/CreateScene.yaml"++requestCreateSyncJob :: CreateSyncJob -> TestTree+requestCreateSyncJob =+  req+    "CreateSyncJob"+    "fixture/CreateSyncJob.yaml"++requestCreateWorkspace :: CreateWorkspace -> TestTree+requestCreateWorkspace =+  req+    "CreateWorkspace"+    "fixture/CreateWorkspace.yaml"++requestDeleteComponentType :: DeleteComponentType -> TestTree+requestDeleteComponentType =+  req+    "DeleteComponentType"+    "fixture/DeleteComponentType.yaml"++requestDeleteEntity :: DeleteEntity -> TestTree+requestDeleteEntity =+  req+    "DeleteEntity"+    "fixture/DeleteEntity.yaml"++requestDeleteScene :: DeleteScene -> TestTree+requestDeleteScene =+  req+    "DeleteScene"+    "fixture/DeleteScene.yaml"++requestDeleteSyncJob :: DeleteSyncJob -> TestTree+requestDeleteSyncJob =+  req+    "DeleteSyncJob"+    "fixture/DeleteSyncJob.yaml"++requestDeleteWorkspace :: DeleteWorkspace -> TestTree+requestDeleteWorkspace =+  req+    "DeleteWorkspace"+    "fixture/DeleteWorkspace.yaml"++requestExecuteQuery :: ExecuteQuery -> TestTree+requestExecuteQuery =+  req+    "ExecuteQuery"+    "fixture/ExecuteQuery.yaml"++requestGetComponentType :: GetComponentType -> TestTree+requestGetComponentType =+  req+    "GetComponentType"+    "fixture/GetComponentType.yaml"++requestGetEntity :: GetEntity -> TestTree+requestGetEntity =+  req+    "GetEntity"+    "fixture/GetEntity.yaml"++requestGetPricingPlan :: GetPricingPlan -> TestTree+requestGetPricingPlan =+  req+    "GetPricingPlan"+    "fixture/GetPricingPlan.yaml"++requestGetPropertyValue :: GetPropertyValue -> TestTree+requestGetPropertyValue =+  req+    "GetPropertyValue"+    "fixture/GetPropertyValue.yaml"++requestGetPropertyValueHistory :: GetPropertyValueHistory -> TestTree+requestGetPropertyValueHistory =+  req+    "GetPropertyValueHistory"+    "fixture/GetPropertyValueHistory.yaml"++requestGetScene :: GetScene -> TestTree+requestGetScene =+  req+    "GetScene"+    "fixture/GetScene.yaml"++requestGetSyncJob :: GetSyncJob -> TestTree+requestGetSyncJob =+  req+    "GetSyncJob"+    "fixture/GetSyncJob.yaml"++requestGetWorkspace :: GetWorkspace -> TestTree+requestGetWorkspace =+  req+    "GetWorkspace"+    "fixture/GetWorkspace.yaml"++requestListComponentTypes :: ListComponentTypes -> TestTree+requestListComponentTypes =+  req+    "ListComponentTypes"+    "fixture/ListComponentTypes.yaml"++requestListEntities :: ListEntities -> TestTree+requestListEntities =+  req+    "ListEntities"+    "fixture/ListEntities.yaml"++requestListScenes :: ListScenes -> TestTree+requestListScenes =+  req+    "ListScenes"+    "fixture/ListScenes.yaml"++requestListSyncJobs :: ListSyncJobs -> TestTree+requestListSyncJobs =+  req+    "ListSyncJobs"+    "fixture/ListSyncJobs.yaml"++requestListSyncResources :: ListSyncResources -> TestTree+requestListSyncResources =+  req+    "ListSyncResources"+    "fixture/ListSyncResources.yaml"++requestListTagsForResource :: ListTagsForResource -> TestTree+requestListTagsForResource =+  req+    "ListTagsForResource"+    "fixture/ListTagsForResource.yaml"++requestListWorkspaces :: ListWorkspaces -> TestTree+requestListWorkspaces =+  req+    "ListWorkspaces"+    "fixture/ListWorkspaces.yaml"++requestTagResource :: TagResource -> TestTree+requestTagResource =+  req+    "TagResource"+    "fixture/TagResource.yaml"++requestUntagResource :: UntagResource -> TestTree+requestUntagResource =+  req+    "UntagResource"+    "fixture/UntagResource.yaml"++requestUpdateComponentType :: UpdateComponentType -> TestTree+requestUpdateComponentType =+  req+    "UpdateComponentType"+    "fixture/UpdateComponentType.yaml"++requestUpdateEntity :: UpdateEntity -> TestTree+requestUpdateEntity =+  req+    "UpdateEntity"+    "fixture/UpdateEntity.yaml"++requestUpdatePricingPlan :: UpdatePricingPlan -> TestTree+requestUpdatePricingPlan =+  req+    "UpdatePricingPlan"+    "fixture/UpdatePricingPlan.yaml"++requestUpdateScene :: UpdateScene -> TestTree+requestUpdateScene =+  req+    "UpdateScene"+    "fixture/UpdateScene.yaml"++requestUpdateWorkspace :: UpdateWorkspace -> TestTree+requestUpdateWorkspace =+  req+    "UpdateWorkspace"+    "fixture/UpdateWorkspace.yaml"++-- Responses++responseBatchPutPropertyValues :: BatchPutPropertyValuesResponse -> TestTree+responseBatchPutPropertyValues =+  res+    "BatchPutPropertyValuesResponse"+    "fixture/BatchPutPropertyValuesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy BatchPutPropertyValues)++responseCreateComponentType :: CreateComponentTypeResponse -> TestTree+responseCreateComponentType =+  res+    "CreateComponentTypeResponse"+    "fixture/CreateComponentTypeResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateComponentType)++responseCreateEntity :: CreateEntityResponse -> TestTree+responseCreateEntity =+  res+    "CreateEntityResponse"+    "fixture/CreateEntityResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateEntity)++responseCreateScene :: CreateSceneResponse -> TestTree+responseCreateScene =+  res+    "CreateSceneResponse"+    "fixture/CreateSceneResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateScene)++responseCreateSyncJob :: CreateSyncJobResponse -> TestTree+responseCreateSyncJob =+  res+    "CreateSyncJobResponse"+    "fixture/CreateSyncJobResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateSyncJob)++responseCreateWorkspace :: CreateWorkspaceResponse -> TestTree+responseCreateWorkspace =+  res+    "CreateWorkspaceResponse"+    "fixture/CreateWorkspaceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateWorkspace)++responseDeleteComponentType :: DeleteComponentTypeResponse -> TestTree+responseDeleteComponentType =+  res+    "DeleteComponentTypeResponse"+    "fixture/DeleteComponentTypeResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteComponentType)++responseDeleteEntity :: DeleteEntityResponse -> TestTree+responseDeleteEntity =+  res+    "DeleteEntityResponse"+    "fixture/DeleteEntityResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteEntity)++responseDeleteScene :: DeleteSceneResponse -> TestTree+responseDeleteScene =+  res+    "DeleteSceneResponse"+    "fixture/DeleteSceneResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteScene)++responseDeleteSyncJob :: DeleteSyncJobResponse -> TestTree+responseDeleteSyncJob =+  res+    "DeleteSyncJobResponse"+    "fixture/DeleteSyncJobResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteSyncJob)++responseDeleteWorkspace :: DeleteWorkspaceResponse -> TestTree+responseDeleteWorkspace =+  res+    "DeleteWorkspaceResponse"+    "fixture/DeleteWorkspaceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteWorkspace)++responseExecuteQuery :: ExecuteQueryResponse -> TestTree+responseExecuteQuery =+  res+    "ExecuteQueryResponse"+    "fixture/ExecuteQueryResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ExecuteQuery)++responseGetComponentType :: GetComponentTypeResponse -> TestTree+responseGetComponentType =+  res+    "GetComponentTypeResponse"+    "fixture/GetComponentTypeResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetComponentType)++responseGetEntity :: GetEntityResponse -> TestTree+responseGetEntity =+  res+    "GetEntityResponse"+    "fixture/GetEntityResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetEntity)++responseGetPricingPlan :: GetPricingPlanResponse -> TestTree+responseGetPricingPlan =+  res+    "GetPricingPlanResponse"+    "fixture/GetPricingPlanResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetPricingPlan)++responseGetPropertyValue :: GetPropertyValueResponse -> TestTree+responseGetPropertyValue =+  res+    "GetPropertyValueResponse"+    "fixture/GetPropertyValueResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetPropertyValue)++responseGetPropertyValueHistory :: GetPropertyValueHistoryResponse -> TestTree+responseGetPropertyValueHistory =+  res+    "GetPropertyValueHistoryResponse"+    "fixture/GetPropertyValueHistoryResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetPropertyValueHistory)++responseGetScene :: GetSceneResponse -> TestTree+responseGetScene =+  res+    "GetSceneResponse"+    "fixture/GetSceneResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetScene)++responseGetSyncJob :: GetSyncJobResponse -> TestTree+responseGetSyncJob =+  res+    "GetSyncJobResponse"+    "fixture/GetSyncJobResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetSyncJob)++responseGetWorkspace :: GetWorkspaceResponse -> TestTree+responseGetWorkspace =+  res+    "GetWorkspaceResponse"+    "fixture/GetWorkspaceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetWorkspace)++responseListComponentTypes :: ListComponentTypesResponse -> TestTree+responseListComponentTypes =+  res+    "ListComponentTypesResponse"+    "fixture/ListComponentTypesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListComponentTypes)++responseListEntities :: ListEntitiesResponse -> TestTree+responseListEntities =+  res+    "ListEntitiesResponse"+    "fixture/ListEntitiesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListEntities)++responseListScenes :: ListScenesResponse -> TestTree+responseListScenes =+  res+    "ListScenesResponse"+    "fixture/ListScenesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListScenes)++responseListSyncJobs :: ListSyncJobsResponse -> TestTree+responseListSyncJobs =+  res+    "ListSyncJobsResponse"+    "fixture/ListSyncJobsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListSyncJobs)++responseListSyncResources :: ListSyncResourcesResponse -> TestTree+responseListSyncResources =+  res+    "ListSyncResourcesResponse"+    "fixture/ListSyncResourcesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListSyncResources)++responseListTagsForResource :: ListTagsForResourceResponse -> TestTree+responseListTagsForResource =+  res+    "ListTagsForResourceResponse"+    "fixture/ListTagsForResourceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListTagsForResource)++responseListWorkspaces :: ListWorkspacesResponse -> TestTree+responseListWorkspaces =+  res+    "ListWorkspacesResponse"+    "fixture/ListWorkspacesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListWorkspaces)++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)++responseUpdateComponentType :: UpdateComponentTypeResponse -> TestTree+responseUpdateComponentType =+  res+    "UpdateComponentTypeResponse"+    "fixture/UpdateComponentTypeResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateComponentType)++responseUpdateEntity :: UpdateEntityResponse -> TestTree+responseUpdateEntity =+  res+    "UpdateEntityResponse"+    "fixture/UpdateEntityResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateEntity)++responseUpdatePricingPlan :: UpdatePricingPlanResponse -> TestTree+responseUpdatePricingPlan =+  res+    "UpdatePricingPlanResponse"+    "fixture/UpdatePricingPlanResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdatePricingPlan)++responseUpdateScene :: UpdateSceneResponse -> TestTree+responseUpdateScene =+  res+    "UpdateSceneResponse"+    "fixture/UpdateSceneResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateScene)++responseUpdateWorkspace :: UpdateWorkspaceResponse -> TestTree+responseUpdateWorkspace =+  res+    "UpdateWorkspaceResponse"+    "fixture/UpdateWorkspaceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateWorkspace)
+ test/Test/Amazonka/IotTwinMaker.hs view
@@ -0,0 +1,20 @@+-- |+-- Module      : Test.Amazonka.IotTwinMaker+-- 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.IotTwinMaker+  ( tests,+    fixtures,+  )+where++import Test.Tasty (TestTree)++tests :: [TestTree]+tests = []++fixtures :: [TestTree]+fixtures = []
+ test/Test/Amazonka/IotTwinMaker/Internal.hs view
@@ -0,0 +1,8 @@+-- |+-- Module      : Test.Amazonka.IotTwinMaker.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.IotTwinMaker.Internal where