packages feed

amazonka-timestream-write (empty) → 2.0

raw patch · 74 files changed

+6779/−0 lines, 74 filesdep +amazonka-coredep +amazonka-testdep +amazonka-timestream-write

Dependencies added: amazonka-core, amazonka-test, amazonka-timestream-write, 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 Timestream Write SDK++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version+ +`2.0` - Derived from API version @2018-11-01@ of the AWS service descriptions, licensed under Apache 2.0.++## Description++Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-timestream-write)+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.TimeStreamWrite](http://hackage.haskell.org/package/amazonka-timestream-write/docs/Amazonka-TimeStreamWrite.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-timestream-write` 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-timestream-write.cabal view
@@ -0,0 +1,115 @@+cabal-version:      2.2+name:               amazonka-timestream-write+version:            2.0+synopsis:           Amazon Timestream Write 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 @2018-11-01@ 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.TimeStreamWrite.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.TimeStreamWrite" 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-timestream-write++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.TimeStreamWrite+    Amazonka.TimeStreamWrite.CreateDatabase+    Amazonka.TimeStreamWrite.CreateTable+    Amazonka.TimeStreamWrite.DeleteDatabase+    Amazonka.TimeStreamWrite.DeleteTable+    Amazonka.TimeStreamWrite.DescribeDatabase+    Amazonka.TimeStreamWrite.DescribeEndpoints+    Amazonka.TimeStreamWrite.DescribeTable+    Amazonka.TimeStreamWrite.Lens+    Amazonka.TimeStreamWrite.ListDatabases+    Amazonka.TimeStreamWrite.ListTables+    Amazonka.TimeStreamWrite.ListTagsForResource+    Amazonka.TimeStreamWrite.TagResource+    Amazonka.TimeStreamWrite.Types+    Amazonka.TimeStreamWrite.Types.Database+    Amazonka.TimeStreamWrite.Types.Dimension+    Amazonka.TimeStreamWrite.Types.DimensionValueType+    Amazonka.TimeStreamWrite.Types.Endpoint+    Amazonka.TimeStreamWrite.Types.MagneticStoreRejectedDataLocation+    Amazonka.TimeStreamWrite.Types.MagneticStoreWriteProperties+    Amazonka.TimeStreamWrite.Types.MeasureValue+    Amazonka.TimeStreamWrite.Types.MeasureValueType+    Amazonka.TimeStreamWrite.Types.Record+    Amazonka.TimeStreamWrite.Types.RecordsIngested+    Amazonka.TimeStreamWrite.Types.RetentionProperties+    Amazonka.TimeStreamWrite.Types.S3Configuration+    Amazonka.TimeStreamWrite.Types.S3EncryptionOption+    Amazonka.TimeStreamWrite.Types.Table+    Amazonka.TimeStreamWrite.Types.TableStatus+    Amazonka.TimeStreamWrite.Types.Tag+    Amazonka.TimeStreamWrite.Types.TimeUnit+    Amazonka.TimeStreamWrite.UntagResource+    Amazonka.TimeStreamWrite.UpdateDatabase+    Amazonka.TimeStreamWrite.UpdateTable+    Amazonka.TimeStreamWrite.Waiters+    Amazonka.TimeStreamWrite.WriteRecords++  build-depends:+    , amazonka-core  >=2.0  && <2.1+    , base           >=4.12 && <5++test-suite amazonka-timestream-write-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.TimeStreamWrite+    Test.Amazonka.TimeStreamWrite+    Test.Amazonka.TimeStreamWrite.Internal++  build-depends:+    , amazonka-core              >=2.0 && <2.1+    , amazonka-test              >=2.0 && <2.1+    , amazonka-timestream-write+    , base+    , bytestring+    , case-insensitive+    , tasty+    , tasty-hunit+    , text+    , time+    , unordered-containers
+ fixture/CreateDatabase.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ingest.timestream/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  ingest.timestream.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/CreateDatabaseResponse.proto view
+ fixture/CreateTable.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ingest.timestream/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  ingest.timestream.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/CreateTableResponse.proto view
+ fixture/DeleteDatabase.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ingest.timestream/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  ingest.timestream.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/DeleteDatabaseResponse.proto view
+ fixture/DeleteTable.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ingest.timestream/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  ingest.timestream.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/DeleteTableResponse.proto view
+ fixture/DescribeDatabase.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ingest.timestream/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  ingest.timestream.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/DescribeDatabaseResponse.proto view
+ fixture/DescribeEndpoints.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ingest.timestream/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  ingest.timestream.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/DescribeEndpointsResponse.proto view
+ fixture/DescribeTable.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ingest.timestream/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  ingest.timestream.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/DescribeTableResponse.proto view
+ fixture/ListDatabases.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ingest.timestream/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  ingest.timestream.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/ListDatabasesResponse.proto view
+ fixture/ListTables.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ingest.timestream/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  ingest.timestream.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/ListTablesResponse.proto view
+ fixture/ListTagsForResource.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ingest.timestream/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  ingest.timestream.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/TagResource.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ingest.timestream/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  ingest.timestream.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/TagResourceResponse.proto view
+ fixture/UntagResource.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ingest.timestream/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  ingest.timestream.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/UpdateDatabase.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ingest.timestream/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  ingest.timestream.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/UpdateDatabaseResponse.proto view
+ fixture/UpdateTable.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ingest.timestream/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  ingest.timestream.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/UpdateTableResponse.proto view
+ fixture/WriteRecords.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ingest.timestream/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  ingest.timestream.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/WriteRecordsResponse.proto view
+ gen/Amazonka/TimeStreamWrite.hs view
@@ -0,0 +1,271 @@+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Amazonka.TimeStreamWrite+-- 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 @2018-11-01@ of the AWS service descriptions, licensed under Apache 2.0.+--+-- Amazon Timestream Write+--+-- Amazon Timestream is a fast, scalable, fully managed time series+-- database service that makes it easy to store and analyze trillions of+-- time series data points per day. With Timestream, you can easily store+-- and analyze IoT sensor data to derive insights from your IoT+-- applications. You can analyze industrial telemetry to streamline+-- equipment management and maintenance. You can also store and analyze log+-- data and metrics to improve the performance and availability of your+-- applications. Timestream is built from the ground up to effectively+-- ingest, process, and store time series data. It organizes data to+-- optimize query processing. It automatically scales based on the volume+-- of data ingested and on the query volume to ensure you receive optimal+-- performance while inserting and querying data. As your data grows over+-- time, Timestream’s adaptive query processing engine spans across storage+-- tiers to provide fast analysis while reducing costs.+module Amazonka.TimeStreamWrite+  ( -- * Service Configuration+    defaultService,++    -- * Errors+    -- $errors++    -- ** AccessDeniedException+    _AccessDeniedException,++    -- ** ConflictException+    _ConflictException,++    -- ** InternalServerException+    _InternalServerException,++    -- ** InvalidEndpointException+    _InvalidEndpointException,++    -- ** RejectedRecordsException+    _RejectedRecordsException,++    -- ** ResourceNotFoundException+    _ResourceNotFoundException,++    -- ** ServiceQuotaExceededException+    _ServiceQuotaExceededException,++    -- ** ThrottlingException+    _ThrottlingException,++    -- ** ValidationException+    _ValidationException,++    -- * Waiters+    -- $waiters++    -- * Operations+    -- $operations++    -- ** CreateDatabase+    CreateDatabase (CreateDatabase'),+    newCreateDatabase,+    CreateDatabaseResponse (CreateDatabaseResponse'),+    newCreateDatabaseResponse,++    -- ** CreateTable+    CreateTable (CreateTable'),+    newCreateTable,+    CreateTableResponse (CreateTableResponse'),+    newCreateTableResponse,++    -- ** DeleteDatabase+    DeleteDatabase (DeleteDatabase'),+    newDeleteDatabase,+    DeleteDatabaseResponse (DeleteDatabaseResponse'),+    newDeleteDatabaseResponse,++    -- ** DeleteTable+    DeleteTable (DeleteTable'),+    newDeleteTable,+    DeleteTableResponse (DeleteTableResponse'),+    newDeleteTableResponse,++    -- ** DescribeDatabase+    DescribeDatabase (DescribeDatabase'),+    newDescribeDatabase,+    DescribeDatabaseResponse (DescribeDatabaseResponse'),+    newDescribeDatabaseResponse,++    -- ** DescribeEndpoints+    DescribeEndpoints (DescribeEndpoints'),+    newDescribeEndpoints,+    DescribeEndpointsResponse (DescribeEndpointsResponse'),+    newDescribeEndpointsResponse,++    -- ** DescribeTable+    DescribeTable (DescribeTable'),+    newDescribeTable,+    DescribeTableResponse (DescribeTableResponse'),+    newDescribeTableResponse,++    -- ** ListDatabases+    ListDatabases (ListDatabases'),+    newListDatabases,+    ListDatabasesResponse (ListDatabasesResponse'),+    newListDatabasesResponse,++    -- ** ListTables+    ListTables (ListTables'),+    newListTables,+    ListTablesResponse (ListTablesResponse'),+    newListTablesResponse,++    -- ** ListTagsForResource+    ListTagsForResource (ListTagsForResource'),+    newListTagsForResource,+    ListTagsForResourceResponse (ListTagsForResourceResponse'),+    newListTagsForResourceResponse,++    -- ** TagResource+    TagResource (TagResource'),+    newTagResource,+    TagResourceResponse (TagResourceResponse'),+    newTagResourceResponse,++    -- ** UntagResource+    UntagResource (UntagResource'),+    newUntagResource,+    UntagResourceResponse (UntagResourceResponse'),+    newUntagResourceResponse,++    -- ** UpdateDatabase+    UpdateDatabase (UpdateDatabase'),+    newUpdateDatabase,+    UpdateDatabaseResponse (UpdateDatabaseResponse'),+    newUpdateDatabaseResponse,++    -- ** UpdateTable+    UpdateTable (UpdateTable'),+    newUpdateTable,+    UpdateTableResponse (UpdateTableResponse'),+    newUpdateTableResponse,++    -- ** WriteRecords+    WriteRecords (WriteRecords'),+    newWriteRecords,+    WriteRecordsResponse (WriteRecordsResponse'),+    newWriteRecordsResponse,++    -- * Types++    -- ** DimensionValueType+    DimensionValueType (..),++    -- ** MeasureValueType+    MeasureValueType (..),++    -- ** S3EncryptionOption+    S3EncryptionOption (..),++    -- ** TableStatus+    TableStatus (..),++    -- ** TimeUnit+    TimeUnit (..),++    -- ** Database+    Database (Database'),+    newDatabase,++    -- ** Dimension+    Dimension (Dimension'),+    newDimension,++    -- ** Endpoint+    Endpoint (Endpoint'),+    newEndpoint,++    -- ** MagneticStoreRejectedDataLocation+    MagneticStoreRejectedDataLocation (MagneticStoreRejectedDataLocation'),+    newMagneticStoreRejectedDataLocation,++    -- ** MagneticStoreWriteProperties+    MagneticStoreWriteProperties (MagneticStoreWriteProperties'),+    newMagneticStoreWriteProperties,++    -- ** MeasureValue+    MeasureValue (MeasureValue'),+    newMeasureValue,++    -- ** Record+    Record (Record'),+    newRecord,++    -- ** RecordsIngested+    RecordsIngested (RecordsIngested'),+    newRecordsIngested,++    -- ** RetentionProperties+    RetentionProperties (RetentionProperties'),+    newRetentionProperties,++    -- ** S3Configuration+    S3Configuration (S3Configuration'),+    newS3Configuration,++    -- ** Table+    Table (Table'),+    newTable,++    -- ** Tag+    Tag (Tag'),+    newTag,+  )+where++import Amazonka.TimeStreamWrite.CreateDatabase+import Amazonka.TimeStreamWrite.CreateTable+import Amazonka.TimeStreamWrite.DeleteDatabase+import Amazonka.TimeStreamWrite.DeleteTable+import Amazonka.TimeStreamWrite.DescribeDatabase+import Amazonka.TimeStreamWrite.DescribeEndpoints+import Amazonka.TimeStreamWrite.DescribeTable+import Amazonka.TimeStreamWrite.Lens+import Amazonka.TimeStreamWrite.ListDatabases+import Amazonka.TimeStreamWrite.ListTables+import Amazonka.TimeStreamWrite.ListTagsForResource+import Amazonka.TimeStreamWrite.TagResource+import Amazonka.TimeStreamWrite.Types+import Amazonka.TimeStreamWrite.UntagResource+import Amazonka.TimeStreamWrite.UpdateDatabase+import Amazonka.TimeStreamWrite.UpdateTable+import Amazonka.TimeStreamWrite.Waiters+import Amazonka.TimeStreamWrite.WriteRecords++-- $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 'TimeStreamWrite'.++-- $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/TimeStreamWrite/CreateDatabase.hs view
@@ -0,0 +1,218 @@+{-# 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.TimeStreamWrite.CreateDatabase+-- 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 new Timestream database. If the KMS key is not specified, the+-- database will be encrypted with a Timestream managed KMS key located in+-- your account. Refer to+-- <https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk Amazon Web Services managed KMS keys>+-- for more info.+-- <https://docs.aws.amazon.com/timestream/latest/developerguide/ts-limits.html Service quotas apply>.+-- See+-- <https://docs.aws.amazon.com/timestream/latest/developerguide/code-samples.create-db.html code sample>+-- for details.+module Amazonka.TimeStreamWrite.CreateDatabase+  ( -- * Creating a Request+    CreateDatabase (..),+    newCreateDatabase,++    -- * Request Lenses+    createDatabase_kmsKeyId,+    createDatabase_tags,+    createDatabase_databaseName,++    -- * Destructuring the Response+    CreateDatabaseResponse (..),+    newCreateDatabaseResponse,++    -- * Response Lenses+    createDatabaseResponse_database,+    createDatabaseResponse_httpStatus,+  )+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.TimeStreamWrite.Types++-- | /See:/ 'newCreateDatabase' smart constructor.+data CreateDatabase = CreateDatabase'+  { -- | The KMS key for the database. If the KMS key is not specified, the+    -- database will be encrypted with a Timestream managed KMS key located in+    -- your account. Refer to+    -- <https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk Amazon Web Services managed KMS keys>+    -- for more info.+    kmsKeyId :: Prelude.Maybe Prelude.Text,+    -- | A list of key-value pairs to label the table.+    tags :: Prelude.Maybe [Tag],+    -- | The name of the Timestream database.+    databaseName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateDatabase' 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:+--+-- 'kmsKeyId', 'createDatabase_kmsKeyId' - The KMS key for the database. If the KMS key is not specified, the+-- database will be encrypted with a Timestream managed KMS key located in+-- your account. Refer to+-- <https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk Amazon Web Services managed KMS keys>+-- for more info.+--+-- 'tags', 'createDatabase_tags' - A list of key-value pairs to label the table.+--+-- 'databaseName', 'createDatabase_databaseName' - The name of the Timestream database.+newCreateDatabase ::+  -- | 'databaseName'+  Prelude.Text ->+  CreateDatabase+newCreateDatabase pDatabaseName_ =+  CreateDatabase'+    { kmsKeyId = Prelude.Nothing,+      tags = Prelude.Nothing,+      databaseName = pDatabaseName_+    }++-- | The KMS key for the database. If the KMS key is not specified, the+-- database will be encrypted with a Timestream managed KMS key located in+-- your account. Refer to+-- <https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk Amazon Web Services managed KMS keys>+-- for more info.+createDatabase_kmsKeyId :: Lens.Lens' CreateDatabase (Prelude.Maybe Prelude.Text)+createDatabase_kmsKeyId = Lens.lens (\CreateDatabase' {kmsKeyId} -> kmsKeyId) (\s@CreateDatabase' {} a -> s {kmsKeyId = a} :: CreateDatabase)++-- | A list of key-value pairs to label the table.+createDatabase_tags :: Lens.Lens' CreateDatabase (Prelude.Maybe [Tag])+createDatabase_tags = Lens.lens (\CreateDatabase' {tags} -> tags) (\s@CreateDatabase' {} a -> s {tags = a} :: CreateDatabase) Prelude.. Lens.mapping Lens.coerced++-- | The name of the Timestream database.+createDatabase_databaseName :: Lens.Lens' CreateDatabase Prelude.Text+createDatabase_databaseName = Lens.lens (\CreateDatabase' {databaseName} -> databaseName) (\s@CreateDatabase' {} a -> s {databaseName = a} :: CreateDatabase)++instance Core.AWSRequest CreateDatabase where+  type+    AWSResponse CreateDatabase =+      CreateDatabaseResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateDatabaseResponse'+            Prelude.<$> (x Data..?> "Database")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateDatabase where+  hashWithSalt _salt CreateDatabase' {..} =+    _salt+      `Prelude.hashWithSalt` kmsKeyId+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` databaseName++instance Prelude.NFData CreateDatabase where+  rnf CreateDatabase' {..} =+    Prelude.rnf kmsKeyId+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf databaseName++instance Data.ToHeaders CreateDatabase where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "Timestream_20181101.CreateDatabase" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateDatabase where+  toJSON CreateDatabase' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("KmsKeyId" Data..=) Prelude.<$> kmsKeyId,+            ("Tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("DatabaseName" Data..= databaseName)+          ]+      )++instance Data.ToPath CreateDatabase where+  toPath = Prelude.const "/"++instance Data.ToQuery CreateDatabase where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateDatabaseResponse' smart constructor.+data CreateDatabaseResponse = CreateDatabaseResponse'+  { -- | The newly created Timestream database.+    database :: Prelude.Maybe Database,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateDatabaseResponse' 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:+--+-- 'database', 'createDatabaseResponse_database' - The newly created Timestream database.+--+-- 'httpStatus', 'createDatabaseResponse_httpStatus' - The response's http status code.+newCreateDatabaseResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateDatabaseResponse+newCreateDatabaseResponse pHttpStatus_ =+  CreateDatabaseResponse'+    { database = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The newly created Timestream database.+createDatabaseResponse_database :: Lens.Lens' CreateDatabaseResponse (Prelude.Maybe Database)+createDatabaseResponse_database = Lens.lens (\CreateDatabaseResponse' {database} -> database) (\s@CreateDatabaseResponse' {} a -> s {database = a} :: CreateDatabaseResponse)++-- | The response's http status code.+createDatabaseResponse_httpStatus :: Lens.Lens' CreateDatabaseResponse Prelude.Int+createDatabaseResponse_httpStatus = Lens.lens (\CreateDatabaseResponse' {httpStatus} -> httpStatus) (\s@CreateDatabaseResponse' {} a -> s {httpStatus = a} :: CreateDatabaseResponse)++instance Prelude.NFData CreateDatabaseResponse where+  rnf CreateDatabaseResponse' {..} =+    Prelude.rnf database+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/TimeStreamWrite/CreateTable.hs view
@@ -0,0 +1,242 @@+{-# 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.TimeStreamWrite.CreateTable+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- The CreateTable operation adds a new table to an existing database in+-- your account. In an Amazon Web Services account, table names must be at+-- least unique within each Region if they are in the same database. You+-- may have identical table names in the same Region if the tables are in+-- separate databases. While creating the table, you must specify the table+-- name, database name, and the retention properties.+-- <https://docs.aws.amazon.com/timestream/latest/developerguide/ts-limits.html Service quotas apply>.+-- See+-- <https://docs.aws.amazon.com/timestream/latest/developerguide/code-samples.create-table.html code sample>+-- for details.+module Amazonka.TimeStreamWrite.CreateTable+  ( -- * Creating a Request+    CreateTable (..),+    newCreateTable,++    -- * Request Lenses+    createTable_magneticStoreWriteProperties,+    createTable_retentionProperties,+    createTable_tags,+    createTable_databaseName,+    createTable_tableName,++    -- * Destructuring the Response+    CreateTableResponse (..),+    newCreateTableResponse,++    -- * Response Lenses+    createTableResponse_table,+    createTableResponse_httpStatus,+  )+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.TimeStreamWrite.Types++-- | /See:/ 'newCreateTable' smart constructor.+data CreateTable = CreateTable'+  { -- | Contains properties to set on the table when enabling magnetic store+    -- writes.+    magneticStoreWriteProperties :: Prelude.Maybe MagneticStoreWriteProperties,+    -- | The duration for which your time series data must be stored in the+    -- memory store and the magnetic store.+    retentionProperties :: Prelude.Maybe RetentionProperties,+    -- | A list of key-value pairs to label the table.+    tags :: Prelude.Maybe [Tag],+    -- | The name of the Timestream database.+    databaseName :: Prelude.Text,+    -- | The name of the Timestream table.+    tableName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateTable' 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:+--+-- 'magneticStoreWriteProperties', 'createTable_magneticStoreWriteProperties' - Contains properties to set on the table when enabling magnetic store+-- writes.+--+-- 'retentionProperties', 'createTable_retentionProperties' - The duration for which your time series data must be stored in the+-- memory store and the magnetic store.+--+-- 'tags', 'createTable_tags' - A list of key-value pairs to label the table.+--+-- 'databaseName', 'createTable_databaseName' - The name of the Timestream database.+--+-- 'tableName', 'createTable_tableName' - The name of the Timestream table.+newCreateTable ::+  -- | 'databaseName'+  Prelude.Text ->+  -- | 'tableName'+  Prelude.Text ->+  CreateTable+newCreateTable pDatabaseName_ pTableName_ =+  CreateTable'+    { magneticStoreWriteProperties =+        Prelude.Nothing,+      retentionProperties = Prelude.Nothing,+      tags = Prelude.Nothing,+      databaseName = pDatabaseName_,+      tableName = pTableName_+    }++-- | Contains properties to set on the table when enabling magnetic store+-- writes.+createTable_magneticStoreWriteProperties :: Lens.Lens' CreateTable (Prelude.Maybe MagneticStoreWriteProperties)+createTable_magneticStoreWriteProperties = Lens.lens (\CreateTable' {magneticStoreWriteProperties} -> magneticStoreWriteProperties) (\s@CreateTable' {} a -> s {magneticStoreWriteProperties = a} :: CreateTable)++-- | The duration for which your time series data must be stored in the+-- memory store and the magnetic store.+createTable_retentionProperties :: Lens.Lens' CreateTable (Prelude.Maybe RetentionProperties)+createTable_retentionProperties = Lens.lens (\CreateTable' {retentionProperties} -> retentionProperties) (\s@CreateTable' {} a -> s {retentionProperties = a} :: CreateTable)++-- | A list of key-value pairs to label the table.+createTable_tags :: Lens.Lens' CreateTable (Prelude.Maybe [Tag])+createTable_tags = Lens.lens (\CreateTable' {tags} -> tags) (\s@CreateTable' {} a -> s {tags = a} :: CreateTable) Prelude.. Lens.mapping Lens.coerced++-- | The name of the Timestream database.+createTable_databaseName :: Lens.Lens' CreateTable Prelude.Text+createTable_databaseName = Lens.lens (\CreateTable' {databaseName} -> databaseName) (\s@CreateTable' {} a -> s {databaseName = a} :: CreateTable)++-- | The name of the Timestream table.+createTable_tableName :: Lens.Lens' CreateTable Prelude.Text+createTable_tableName = Lens.lens (\CreateTable' {tableName} -> tableName) (\s@CreateTable' {} a -> s {tableName = a} :: CreateTable)++instance Core.AWSRequest CreateTable where+  type AWSResponse CreateTable = CreateTableResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateTableResponse'+            Prelude.<$> (x Data..?> "Table")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateTable where+  hashWithSalt _salt CreateTable' {..} =+    _salt+      `Prelude.hashWithSalt` magneticStoreWriteProperties+      `Prelude.hashWithSalt` retentionProperties+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` databaseName+      `Prelude.hashWithSalt` tableName++instance Prelude.NFData CreateTable where+  rnf CreateTable' {..} =+    Prelude.rnf magneticStoreWriteProperties+      `Prelude.seq` Prelude.rnf retentionProperties+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf databaseName+      `Prelude.seq` Prelude.rnf tableName++instance Data.ToHeaders CreateTable where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "Timestream_20181101.CreateTable" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateTable where+  toJSON CreateTable' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("MagneticStoreWriteProperties" Data..=)+              Prelude.<$> magneticStoreWriteProperties,+            ("RetentionProperties" Data..=)+              Prelude.<$> retentionProperties,+            ("Tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("DatabaseName" Data..= databaseName),+            Prelude.Just ("TableName" Data..= tableName)+          ]+      )++instance Data.ToPath CreateTable where+  toPath = Prelude.const "/"++instance Data.ToQuery CreateTable where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateTableResponse' smart constructor.+data CreateTableResponse = CreateTableResponse'+  { -- | The newly created Timestream table.+    table :: Prelude.Maybe Table,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateTableResponse' 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:+--+-- 'table', 'createTableResponse_table' - The newly created Timestream table.+--+-- 'httpStatus', 'createTableResponse_httpStatus' - The response's http status code.+newCreateTableResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateTableResponse+newCreateTableResponse pHttpStatus_ =+  CreateTableResponse'+    { table = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The newly created Timestream table.+createTableResponse_table :: Lens.Lens' CreateTableResponse (Prelude.Maybe Table)+createTableResponse_table = Lens.lens (\CreateTableResponse' {table} -> table) (\s@CreateTableResponse' {} a -> s {table = a} :: CreateTableResponse)++-- | The response's http status code.+createTableResponse_httpStatus :: Lens.Lens' CreateTableResponse Prelude.Int+createTableResponse_httpStatus = Lens.lens (\CreateTableResponse' {httpStatus} -> httpStatus) (\s@CreateTableResponse' {} a -> s {httpStatus = a} :: CreateTableResponse)++instance Prelude.NFData CreateTableResponse where+  rnf CreateTableResponse' {..} =+    Prelude.rnf table+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/TimeStreamWrite/DeleteDatabase.hs view
@@ -0,0 +1,145 @@+{-# 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.TimeStreamWrite.DeleteDatabase+-- 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 given Timestream database. /This is an irreversible operation.+-- After a database is deleted, the time series data from its tables cannot+-- be recovered./+--+-- All tables in the database must be deleted first, or a+-- ValidationException error will be thrown.+--+-- Due to the nature of distributed retries, the operation can return+-- either success or a ResourceNotFoundException. Clients should consider+-- them equivalent.+--+-- See+-- <https://docs.aws.amazon.com/timestream/latest/developerguide/code-samples.delete-db.html code sample>+-- for details.+module Amazonka.TimeStreamWrite.DeleteDatabase+  ( -- * Creating a Request+    DeleteDatabase (..),+    newDeleteDatabase,++    -- * Request Lenses+    deleteDatabase_databaseName,++    -- * Destructuring the Response+    DeleteDatabaseResponse (..),+    newDeleteDatabaseResponse,+  )+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.TimeStreamWrite.Types++-- | /See:/ 'newDeleteDatabase' smart constructor.+data DeleteDatabase = DeleteDatabase'+  { -- | The name of the Timestream database to be deleted.+    databaseName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteDatabase' 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:+--+-- 'databaseName', 'deleteDatabase_databaseName' - The name of the Timestream database to be deleted.+newDeleteDatabase ::+  -- | 'databaseName'+  Prelude.Text ->+  DeleteDatabase+newDeleteDatabase pDatabaseName_ =+  DeleteDatabase' {databaseName = pDatabaseName_}++-- | The name of the Timestream database to be deleted.+deleteDatabase_databaseName :: Lens.Lens' DeleteDatabase Prelude.Text+deleteDatabase_databaseName = Lens.lens (\DeleteDatabase' {databaseName} -> databaseName) (\s@DeleteDatabase' {} a -> s {databaseName = a} :: DeleteDatabase)++instance Core.AWSRequest DeleteDatabase where+  type+    AWSResponse DeleteDatabase =+      DeleteDatabaseResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveNull DeleteDatabaseResponse'++instance Prelude.Hashable DeleteDatabase where+  hashWithSalt _salt DeleteDatabase' {..} =+    _salt `Prelude.hashWithSalt` databaseName++instance Prelude.NFData DeleteDatabase where+  rnf DeleteDatabase' {..} = Prelude.rnf databaseName++instance Data.ToHeaders DeleteDatabase where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "Timestream_20181101.DeleteDatabase" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DeleteDatabase where+  toJSON DeleteDatabase' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("DatabaseName" Data..= databaseName)]+      )++instance Data.ToPath DeleteDatabase where+  toPath = Prelude.const "/"++instance Data.ToQuery DeleteDatabase where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteDatabaseResponse' smart constructor.+data DeleteDatabaseResponse = DeleteDatabaseResponse'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteDatabaseResponse' 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.+newDeleteDatabaseResponse ::+  DeleteDatabaseResponse+newDeleteDatabaseResponse = DeleteDatabaseResponse'++instance Prelude.NFData DeleteDatabaseResponse where+  rnf _ = ()
+ gen/Amazonka/TimeStreamWrite/DeleteTable.hs view
@@ -0,0 +1,159 @@+{-# 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.TimeStreamWrite.DeleteTable+-- 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 given Timestream table. This is an irreversible operation.+-- After a Timestream database table is deleted, the time series data+-- stored in the table cannot be recovered.+--+-- Due to the nature of distributed retries, the operation can return+-- either success or a ResourceNotFoundException. Clients should consider+-- them equivalent.+--+-- See+-- <https://docs.aws.amazon.com/timestream/latest/developerguide/code-samples.delete-table.html code sample>+-- for details.+module Amazonka.TimeStreamWrite.DeleteTable+  ( -- * Creating a Request+    DeleteTable (..),+    newDeleteTable,++    -- * Request Lenses+    deleteTable_databaseName,+    deleteTable_tableName,++    -- * Destructuring the Response+    DeleteTableResponse (..),+    newDeleteTableResponse,+  )+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.TimeStreamWrite.Types++-- | /See:/ 'newDeleteTable' smart constructor.+data DeleteTable = DeleteTable'+  { -- | The name of the database where the Timestream database is to be deleted.+    databaseName :: Prelude.Text,+    -- | The name of the Timestream table to be deleted.+    tableName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteTable' 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:+--+-- 'databaseName', 'deleteTable_databaseName' - The name of the database where the Timestream database is to be deleted.+--+-- 'tableName', 'deleteTable_tableName' - The name of the Timestream table to be deleted.+newDeleteTable ::+  -- | 'databaseName'+  Prelude.Text ->+  -- | 'tableName'+  Prelude.Text ->+  DeleteTable+newDeleteTable pDatabaseName_ pTableName_ =+  DeleteTable'+    { databaseName = pDatabaseName_,+      tableName = pTableName_+    }++-- | The name of the database where the Timestream database is to be deleted.+deleteTable_databaseName :: Lens.Lens' DeleteTable Prelude.Text+deleteTable_databaseName = Lens.lens (\DeleteTable' {databaseName} -> databaseName) (\s@DeleteTable' {} a -> s {databaseName = a} :: DeleteTable)++-- | The name of the Timestream table to be deleted.+deleteTable_tableName :: Lens.Lens' DeleteTable Prelude.Text+deleteTable_tableName = Lens.lens (\DeleteTable' {tableName} -> tableName) (\s@DeleteTable' {} a -> s {tableName = a} :: DeleteTable)++instance Core.AWSRequest DeleteTable where+  type AWSResponse DeleteTable = DeleteTableResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response = Response.receiveNull DeleteTableResponse'++instance Prelude.Hashable DeleteTable where+  hashWithSalt _salt DeleteTable' {..} =+    _salt+      `Prelude.hashWithSalt` databaseName+      `Prelude.hashWithSalt` tableName++instance Prelude.NFData DeleteTable where+  rnf DeleteTable' {..} =+    Prelude.rnf databaseName+      `Prelude.seq` Prelude.rnf tableName++instance Data.ToHeaders DeleteTable where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "Timestream_20181101.DeleteTable" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DeleteTable where+  toJSON DeleteTable' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("DatabaseName" Data..= databaseName),+            Prelude.Just ("TableName" Data..= tableName)+          ]+      )++instance Data.ToPath DeleteTable where+  toPath = Prelude.const "/"++instance Data.ToQuery DeleteTable where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteTableResponse' smart constructor.+data DeleteTableResponse = DeleteTableResponse'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteTableResponse' 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.+newDeleteTableResponse ::+  DeleteTableResponse+newDeleteTableResponse = DeleteTableResponse'++instance Prelude.NFData DeleteTableResponse where+  rnf _ = ()
+ gen/Amazonka/TimeStreamWrite/DescribeDatabase.hs view
@@ -0,0 +1,174 @@+{-# 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.TimeStreamWrite.DescribeDatabase+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns information about the database, including the database name,+-- time that the database was created, and the total number of tables found+-- within the database.+-- <https://docs.aws.amazon.com/timestream/latest/developerguide/ts-limits.html Service quotas apply>.+-- See+-- <https://docs.aws.amazon.com/timestream/latest/developerguide/code-samples.describe-db.html code sample>+-- for details.+module Amazonka.TimeStreamWrite.DescribeDatabase+  ( -- * Creating a Request+    DescribeDatabase (..),+    newDescribeDatabase,++    -- * Request Lenses+    describeDatabase_databaseName,++    -- * Destructuring the Response+    DescribeDatabaseResponse (..),+    newDescribeDatabaseResponse,++    -- * Response Lenses+    describeDatabaseResponse_database,+    describeDatabaseResponse_httpStatus,+  )+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.TimeStreamWrite.Types++-- | /See:/ 'newDescribeDatabase' smart constructor.+data DescribeDatabase = DescribeDatabase'+  { -- | The name of the Timestream database.+    databaseName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeDatabase' 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:+--+-- 'databaseName', 'describeDatabase_databaseName' - The name of the Timestream database.+newDescribeDatabase ::+  -- | 'databaseName'+  Prelude.Text ->+  DescribeDatabase+newDescribeDatabase pDatabaseName_ =+  DescribeDatabase' {databaseName = pDatabaseName_}++-- | The name of the Timestream database.+describeDatabase_databaseName :: Lens.Lens' DescribeDatabase Prelude.Text+describeDatabase_databaseName = Lens.lens (\DescribeDatabase' {databaseName} -> databaseName) (\s@DescribeDatabase' {} a -> s {databaseName = a} :: DescribeDatabase)++instance Core.AWSRequest DescribeDatabase where+  type+    AWSResponse DescribeDatabase =+      DescribeDatabaseResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeDatabaseResponse'+            Prelude.<$> (x Data..?> "Database")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeDatabase where+  hashWithSalt _salt DescribeDatabase' {..} =+    _salt `Prelude.hashWithSalt` databaseName++instance Prelude.NFData DescribeDatabase where+  rnf DescribeDatabase' {..} = Prelude.rnf databaseName++instance Data.ToHeaders DescribeDatabase where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "Timestream_20181101.DescribeDatabase" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DescribeDatabase where+  toJSON DescribeDatabase' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("DatabaseName" Data..= databaseName)]+      )++instance Data.ToPath DescribeDatabase where+  toPath = Prelude.const "/"++instance Data.ToQuery DescribeDatabase where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeDatabaseResponse' smart constructor.+data DescribeDatabaseResponse = DescribeDatabaseResponse'+  { -- | The name of the Timestream table.+    database :: Prelude.Maybe Database,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeDatabaseResponse' 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:+--+-- 'database', 'describeDatabaseResponse_database' - The name of the Timestream table.+--+-- 'httpStatus', 'describeDatabaseResponse_httpStatus' - The response's http status code.+newDescribeDatabaseResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeDatabaseResponse+newDescribeDatabaseResponse pHttpStatus_ =+  DescribeDatabaseResponse'+    { database =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The name of the Timestream table.+describeDatabaseResponse_database :: Lens.Lens' DescribeDatabaseResponse (Prelude.Maybe Database)+describeDatabaseResponse_database = Lens.lens (\DescribeDatabaseResponse' {database} -> database) (\s@DescribeDatabaseResponse' {} a -> s {database = a} :: DescribeDatabaseResponse)++-- | The response's http status code.+describeDatabaseResponse_httpStatus :: Lens.Lens' DescribeDatabaseResponse Prelude.Int+describeDatabaseResponse_httpStatus = Lens.lens (\DescribeDatabaseResponse' {httpStatus} -> httpStatus) (\s@DescribeDatabaseResponse' {} a -> s {httpStatus = a} :: DescribeDatabaseResponse)++instance Prelude.NFData DescribeDatabaseResponse where+  rnf DescribeDatabaseResponse' {..} =+    Prelude.rnf database+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/TimeStreamWrite/DescribeEndpoints.hs view
@@ -0,0 +1,169 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.TimeStreamWrite.DescribeEndpoints+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- DescribeEndpoints returns a list of available endpoints to make+-- Timestream API calls against. This API is available through both Write+-- and Query.+--+-- Because the Timestream SDKs are designed to transparently work with the+-- service’s architecture, including the management and mapping of the+-- service endpoints, /it is not recommended that you use this API unless/:+--+-- -   You are using+--     <https://docs.aws.amazon.com/timestream/latest/developerguide/VPCEndpoints VPC endpoints (Amazon Web Services PrivateLink) with Timestream>+--+-- -   Your application uses a programming language that does not yet have+--     SDK support+--+-- -   You require better control over the client-side implementation+--+-- For detailed information on how and when to use and implement+-- DescribeEndpoints, see+-- <https://docs.aws.amazon.com/timestream/latest/developerguide/Using.API.html#Using-API.endpoint-discovery The Endpoint Discovery Pattern>.+module Amazonka.TimeStreamWrite.DescribeEndpoints+  ( -- * Creating a Request+    DescribeEndpoints (..),+    newDescribeEndpoints,++    -- * Destructuring the Response+    DescribeEndpointsResponse (..),+    newDescribeEndpointsResponse,++    -- * Response Lenses+    describeEndpointsResponse_httpStatus,+    describeEndpointsResponse_endpoints,+  )+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.TimeStreamWrite.Types++-- | /See:/ 'newDescribeEndpoints' smart constructor.+data DescribeEndpoints = DescribeEndpoints'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeEndpoints' 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.+newDescribeEndpoints ::+  DescribeEndpoints+newDescribeEndpoints = DescribeEndpoints'++instance Core.AWSRequest DescribeEndpoints where+  type+    AWSResponse DescribeEndpoints =+      DescribeEndpointsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeEndpointsResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..?> "Endpoints" Core..!@ Prelude.mempty)+      )++instance Prelude.Hashable DescribeEndpoints where+  hashWithSalt _salt _ =+    _salt `Prelude.hashWithSalt` ()++instance Prelude.NFData DescribeEndpoints where+  rnf _ = ()++instance Data.ToHeaders DescribeEndpoints where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "Timestream_20181101.DescribeEndpoints" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DescribeEndpoints where+  toJSON = Prelude.const (Data.Object Prelude.mempty)++instance Data.ToPath DescribeEndpoints where+  toPath = Prelude.const "/"++instance Data.ToQuery DescribeEndpoints where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeEndpointsResponse' smart constructor.+data DescribeEndpointsResponse = DescribeEndpointsResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | An @Endpoints@ object is returned when a @DescribeEndpoints@ request is+    -- made.+    endpoints :: [Endpoint]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeEndpointsResponse' 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', 'describeEndpointsResponse_httpStatus' - The response's http status code.+--+-- 'endpoints', 'describeEndpointsResponse_endpoints' - An @Endpoints@ object is returned when a @DescribeEndpoints@ request is+-- made.+newDescribeEndpointsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeEndpointsResponse+newDescribeEndpointsResponse pHttpStatus_ =+  DescribeEndpointsResponse'+    { httpStatus =+        pHttpStatus_,+      endpoints = Prelude.mempty+    }++-- | The response's http status code.+describeEndpointsResponse_httpStatus :: Lens.Lens' DescribeEndpointsResponse Prelude.Int+describeEndpointsResponse_httpStatus = Lens.lens (\DescribeEndpointsResponse' {httpStatus} -> httpStatus) (\s@DescribeEndpointsResponse' {} a -> s {httpStatus = a} :: DescribeEndpointsResponse)++-- | An @Endpoints@ object is returned when a @DescribeEndpoints@ request is+-- made.+describeEndpointsResponse_endpoints :: Lens.Lens' DescribeEndpointsResponse [Endpoint]+describeEndpointsResponse_endpoints = Lens.lens (\DescribeEndpointsResponse' {endpoints} -> endpoints) (\s@DescribeEndpointsResponse' {} a -> s {endpoints = a} :: DescribeEndpointsResponse) Prelude.. Lens.coerced++instance Prelude.NFData DescribeEndpointsResponse where+  rnf DescribeEndpointsResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf endpoints
+ gen/Amazonka/TimeStreamWrite/DescribeTable.hs view
@@ -0,0 +1,192 @@+{-# 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.TimeStreamWrite.DescribeTable+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns information about the table, including the table name, database+-- name, retention duration of the memory store and the magnetic store.+-- <https://docs.aws.amazon.com/timestream/latest/developerguide/ts-limits.html Service quotas apply>.+-- See+-- <https://docs.aws.amazon.com/timestream/latest/developerguide/code-samples.describe-table.html code sample>+-- for details.+module Amazonka.TimeStreamWrite.DescribeTable+  ( -- * Creating a Request+    DescribeTable (..),+    newDescribeTable,++    -- * Request Lenses+    describeTable_databaseName,+    describeTable_tableName,++    -- * Destructuring the Response+    DescribeTableResponse (..),+    newDescribeTableResponse,++    -- * Response Lenses+    describeTableResponse_table,+    describeTableResponse_httpStatus,+  )+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.TimeStreamWrite.Types++-- | /See:/ 'newDescribeTable' smart constructor.+data DescribeTable = DescribeTable'+  { -- | The name of the Timestream database.+    databaseName :: Prelude.Text,+    -- | The name of the Timestream table.+    tableName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeTable' 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:+--+-- 'databaseName', 'describeTable_databaseName' - The name of the Timestream database.+--+-- 'tableName', 'describeTable_tableName' - The name of the Timestream table.+newDescribeTable ::+  -- | 'databaseName'+  Prelude.Text ->+  -- | 'tableName'+  Prelude.Text ->+  DescribeTable+newDescribeTable pDatabaseName_ pTableName_ =+  DescribeTable'+    { databaseName = pDatabaseName_,+      tableName = pTableName_+    }++-- | The name of the Timestream database.+describeTable_databaseName :: Lens.Lens' DescribeTable Prelude.Text+describeTable_databaseName = Lens.lens (\DescribeTable' {databaseName} -> databaseName) (\s@DescribeTable' {} a -> s {databaseName = a} :: DescribeTable)++-- | The name of the Timestream table.+describeTable_tableName :: Lens.Lens' DescribeTable Prelude.Text+describeTable_tableName = Lens.lens (\DescribeTable' {tableName} -> tableName) (\s@DescribeTable' {} a -> s {tableName = a} :: DescribeTable)++instance Core.AWSRequest DescribeTable where+  type+    AWSResponse DescribeTable =+      DescribeTableResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeTableResponse'+            Prelude.<$> (x Data..?> "Table")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeTable where+  hashWithSalt _salt DescribeTable' {..} =+    _salt+      `Prelude.hashWithSalt` databaseName+      `Prelude.hashWithSalt` tableName++instance Prelude.NFData DescribeTable where+  rnf DescribeTable' {..} =+    Prelude.rnf databaseName+      `Prelude.seq` Prelude.rnf tableName++instance Data.ToHeaders DescribeTable where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "Timestream_20181101.DescribeTable" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DescribeTable where+  toJSON DescribeTable' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("DatabaseName" Data..= databaseName),+            Prelude.Just ("TableName" Data..= tableName)+          ]+      )++instance Data.ToPath DescribeTable where+  toPath = Prelude.const "/"++instance Data.ToQuery DescribeTable where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeTableResponse' smart constructor.+data DescribeTableResponse = DescribeTableResponse'+  { -- | The Timestream table.+    table :: Prelude.Maybe Table,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeTableResponse' 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:+--+-- 'table', 'describeTableResponse_table' - The Timestream table.+--+-- 'httpStatus', 'describeTableResponse_httpStatus' - The response's http status code.+newDescribeTableResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeTableResponse+newDescribeTableResponse pHttpStatus_ =+  DescribeTableResponse'+    { table = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The Timestream table.+describeTableResponse_table :: Lens.Lens' DescribeTableResponse (Prelude.Maybe Table)+describeTableResponse_table = Lens.lens (\DescribeTableResponse' {table} -> table) (\s@DescribeTableResponse' {} a -> s {table = a} :: DescribeTableResponse)++-- | The response's http status code.+describeTableResponse_httpStatus :: Lens.Lens' DescribeTableResponse Prelude.Int+describeTableResponse_httpStatus = Lens.lens (\DescribeTableResponse' {httpStatus} -> httpStatus) (\s@DescribeTableResponse' {} a -> s {httpStatus = a} :: DescribeTableResponse)++instance Prelude.NFData DescribeTableResponse where+  rnf DescribeTableResponse' {..} =+    Prelude.rnf table+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/TimeStreamWrite/Lens.hs view
@@ -0,0 +1,205 @@+{-# 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.TimeStreamWrite.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.TimeStreamWrite.Lens+  ( -- * Operations++    -- ** CreateDatabase+    createDatabase_kmsKeyId,+    createDatabase_tags,+    createDatabase_databaseName,+    createDatabaseResponse_database,+    createDatabaseResponse_httpStatus,++    -- ** CreateTable+    createTable_magneticStoreWriteProperties,+    createTable_retentionProperties,+    createTable_tags,+    createTable_databaseName,+    createTable_tableName,+    createTableResponse_table,+    createTableResponse_httpStatus,++    -- ** DeleteDatabase+    deleteDatabase_databaseName,++    -- ** DeleteTable+    deleteTable_databaseName,+    deleteTable_tableName,++    -- ** DescribeDatabase+    describeDatabase_databaseName,+    describeDatabaseResponse_database,+    describeDatabaseResponse_httpStatus,++    -- ** DescribeEndpoints+    describeEndpointsResponse_httpStatus,+    describeEndpointsResponse_endpoints,++    -- ** DescribeTable+    describeTable_databaseName,+    describeTable_tableName,+    describeTableResponse_table,+    describeTableResponse_httpStatus,++    -- ** ListDatabases+    listDatabases_maxResults,+    listDatabases_nextToken,+    listDatabasesResponse_databases,+    listDatabasesResponse_nextToken,+    listDatabasesResponse_httpStatus,++    -- ** ListTables+    listTables_databaseName,+    listTables_maxResults,+    listTables_nextToken,+    listTablesResponse_nextToken,+    listTablesResponse_tables,+    listTablesResponse_httpStatus,++    -- ** ListTagsForResource+    listTagsForResource_resourceARN,+    listTagsForResourceResponse_tags,+    listTagsForResourceResponse_httpStatus,++    -- ** TagResource+    tagResource_resourceARN,+    tagResource_tags,+    tagResourceResponse_httpStatus,++    -- ** UntagResource+    untagResource_resourceARN,+    untagResource_tagKeys,+    untagResourceResponse_httpStatus,++    -- ** UpdateDatabase+    updateDatabase_databaseName,+    updateDatabase_kmsKeyId,+    updateDatabaseResponse_database,+    updateDatabaseResponse_httpStatus,++    -- ** UpdateTable+    updateTable_magneticStoreWriteProperties,+    updateTable_retentionProperties,+    updateTable_databaseName,+    updateTable_tableName,+    updateTableResponse_table,+    updateTableResponse_httpStatus,++    -- ** WriteRecords+    writeRecords_commonAttributes,+    writeRecords_databaseName,+    writeRecords_tableName,+    writeRecords_records,+    writeRecordsResponse_recordsIngested,+    writeRecordsResponse_httpStatus,++    -- * Types++    -- ** Database+    database_arn,+    database_creationTime,+    database_databaseName,+    database_kmsKeyId,+    database_lastUpdatedTime,+    database_tableCount,++    -- ** Dimension+    dimension_dimensionValueType,+    dimension_name,+    dimension_value,++    -- ** Endpoint+    endpoint_address,+    endpoint_cachePeriodInMinutes,++    -- ** MagneticStoreRejectedDataLocation+    magneticStoreRejectedDataLocation_s3Configuration,++    -- ** MagneticStoreWriteProperties+    magneticStoreWriteProperties_magneticStoreRejectedDataLocation,+    magneticStoreWriteProperties_enableMagneticStoreWrites,++    -- ** MeasureValue+    measureValue_name,+    measureValue_value,+    measureValue_type,++    -- ** Record+    record_dimensions,+    record_measureName,+    record_measureValue,+    record_measureValueType,+    record_measureValues,+    record_time,+    record_timeUnit,+    record_version,++    -- ** RecordsIngested+    recordsIngested_magneticStore,+    recordsIngested_memoryStore,+    recordsIngested_total,++    -- ** RetentionProperties+    retentionProperties_memoryStoreRetentionPeriodInHours,+    retentionProperties_magneticStoreRetentionPeriodInDays,++    -- ** S3Configuration+    s3Configuration_bucketName,+    s3Configuration_encryptionOption,+    s3Configuration_kmsKeyId,+    s3Configuration_objectKeyPrefix,++    -- ** Table+    table_arn,+    table_creationTime,+    table_databaseName,+    table_lastUpdatedTime,+    table_magneticStoreWriteProperties,+    table_retentionProperties,+    table_tableName,+    table_tableStatus,++    -- ** Tag+    tag_key,+    tag_value,+  )+where++import Amazonka.TimeStreamWrite.CreateDatabase+import Amazonka.TimeStreamWrite.CreateTable+import Amazonka.TimeStreamWrite.DeleteDatabase+import Amazonka.TimeStreamWrite.DeleteTable+import Amazonka.TimeStreamWrite.DescribeDatabase+import Amazonka.TimeStreamWrite.DescribeEndpoints+import Amazonka.TimeStreamWrite.DescribeTable+import Amazonka.TimeStreamWrite.ListDatabases+import Amazonka.TimeStreamWrite.ListTables+import Amazonka.TimeStreamWrite.ListTagsForResource+import Amazonka.TimeStreamWrite.TagResource+import Amazonka.TimeStreamWrite.Types.Database+import Amazonka.TimeStreamWrite.Types.Dimension+import Amazonka.TimeStreamWrite.Types.Endpoint+import Amazonka.TimeStreamWrite.Types.MagneticStoreRejectedDataLocation+import Amazonka.TimeStreamWrite.Types.MagneticStoreWriteProperties+import Amazonka.TimeStreamWrite.Types.MeasureValue+import Amazonka.TimeStreamWrite.Types.Record+import Amazonka.TimeStreamWrite.Types.RecordsIngested+import Amazonka.TimeStreamWrite.Types.RetentionProperties+import Amazonka.TimeStreamWrite.Types.S3Configuration+import Amazonka.TimeStreamWrite.Types.Table+import Amazonka.TimeStreamWrite.Types.Tag+import Amazonka.TimeStreamWrite.UntagResource+import Amazonka.TimeStreamWrite.UpdateDatabase+import Amazonka.TimeStreamWrite.UpdateTable+import Amazonka.TimeStreamWrite.WriteRecords
+ gen/Amazonka/TimeStreamWrite/ListDatabases.hs view
@@ -0,0 +1,214 @@+{-# 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.TimeStreamWrite.ListDatabases+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a list of your Timestream databases.+-- <https://docs.aws.amazon.com/timestream/latest/developerguide/ts-limits.html Service quotas apply>.+-- See+-- <https://docs.aws.amazon.com/timestream/latest/developerguide/code-samples.list-db.html code sample>+-- for details.+module Amazonka.TimeStreamWrite.ListDatabases+  ( -- * Creating a Request+    ListDatabases (..),+    newListDatabases,++    -- * Request Lenses+    listDatabases_maxResults,+    listDatabases_nextToken,++    -- * Destructuring the Response+    ListDatabasesResponse (..),+    newListDatabasesResponse,++    -- * Response Lenses+    listDatabasesResponse_databases,+    listDatabasesResponse_nextToken,+    listDatabasesResponse_httpStatus,+  )+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.TimeStreamWrite.Types++-- | /See:/ 'newListDatabases' smart constructor.+data ListDatabases = ListDatabases'+  { -- | The total number of items to return in the output. If the total number+    -- of items available is more than the value specified, a NextToken is+    -- provided in the output. To resume pagination, provide the NextToken+    -- value as argument of a subsequent API invocation.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The pagination token. To resume pagination, provide the NextToken value+    -- as argument of a subsequent API invocation.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListDatabases' 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', 'listDatabases_maxResults' - The total number of items to return in the output. If the total number+-- of items available is more than the value specified, a NextToken is+-- provided in the output. To resume pagination, provide the NextToken+-- value as argument of a subsequent API invocation.+--+-- 'nextToken', 'listDatabases_nextToken' - The pagination token. To resume pagination, provide the NextToken value+-- as argument of a subsequent API invocation.+newListDatabases ::+  ListDatabases+newListDatabases =+  ListDatabases'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | The total number of items to return in the output. If the total number+-- of items available is more than the value specified, a NextToken is+-- provided in the output. To resume pagination, provide the NextToken+-- value as argument of a subsequent API invocation.+listDatabases_maxResults :: Lens.Lens' ListDatabases (Prelude.Maybe Prelude.Natural)+listDatabases_maxResults = Lens.lens (\ListDatabases' {maxResults} -> maxResults) (\s@ListDatabases' {} a -> s {maxResults = a} :: ListDatabases)++-- | The pagination token. To resume pagination, provide the NextToken value+-- as argument of a subsequent API invocation.+listDatabases_nextToken :: Lens.Lens' ListDatabases (Prelude.Maybe Prelude.Text)+listDatabases_nextToken = Lens.lens (\ListDatabases' {nextToken} -> nextToken) (\s@ListDatabases' {} a -> s {nextToken = a} :: ListDatabases)++instance Core.AWSRequest ListDatabases where+  type+    AWSResponse ListDatabases =+      ListDatabasesResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListDatabasesResponse'+            Prelude.<$> (x Data..?> "Databases" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "NextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListDatabases where+  hashWithSalt _salt ListDatabases' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListDatabases where+  rnf ListDatabases' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListDatabases where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "Timestream_20181101.ListDatabases" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListDatabases where+  toJSON ListDatabases' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("MaxResults" Data..=) Prelude.<$> maxResults,+            ("NextToken" Data..=) Prelude.<$> nextToken+          ]+      )++instance Data.ToPath ListDatabases where+  toPath = Prelude.const "/"++instance Data.ToQuery ListDatabases where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListDatabasesResponse' smart constructor.+data ListDatabasesResponse = ListDatabasesResponse'+  { -- | A list of database names.+    databases :: Prelude.Maybe [Database],+    -- | The pagination token. This parameter is returned when the response is+    -- truncated.+    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 'ListDatabasesResponse' 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:+--+-- 'databases', 'listDatabasesResponse_databases' - A list of database names.+--+-- 'nextToken', 'listDatabasesResponse_nextToken' - The pagination token. This parameter is returned when the response is+-- truncated.+--+-- 'httpStatus', 'listDatabasesResponse_httpStatus' - The response's http status code.+newListDatabasesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListDatabasesResponse+newListDatabasesResponse pHttpStatus_ =+  ListDatabasesResponse'+    { databases = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A list of database names.+listDatabasesResponse_databases :: Lens.Lens' ListDatabasesResponse (Prelude.Maybe [Database])+listDatabasesResponse_databases = Lens.lens (\ListDatabasesResponse' {databases} -> databases) (\s@ListDatabasesResponse' {} a -> s {databases = a} :: ListDatabasesResponse) Prelude.. Lens.mapping Lens.coerced++-- | The pagination token. This parameter is returned when the response is+-- truncated.+listDatabasesResponse_nextToken :: Lens.Lens' ListDatabasesResponse (Prelude.Maybe Prelude.Text)+listDatabasesResponse_nextToken = Lens.lens (\ListDatabasesResponse' {nextToken} -> nextToken) (\s@ListDatabasesResponse' {} a -> s {nextToken = a} :: ListDatabasesResponse)++-- | The response's http status code.+listDatabasesResponse_httpStatus :: Lens.Lens' ListDatabasesResponse Prelude.Int+listDatabasesResponse_httpStatus = Lens.lens (\ListDatabasesResponse' {httpStatus} -> httpStatus) (\s@ListDatabasesResponse' {} a -> s {httpStatus = a} :: ListDatabasesResponse)++instance Prelude.NFData ListDatabasesResponse where+  rnf ListDatabasesResponse' {..} =+    Prelude.rnf databases+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/TimeStreamWrite/ListTables.hs view
@@ -0,0 +1,224 @@+{-# 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.TimeStreamWrite.ListTables+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- A list of tables, along with the name, status and retention properties+-- of each table. See+-- <https://docs.aws.amazon.com/timestream/latest/developerguide/code-samples.list-table.html code sample>+-- for details.+module Amazonka.TimeStreamWrite.ListTables+  ( -- * Creating a Request+    ListTables (..),+    newListTables,++    -- * Request Lenses+    listTables_databaseName,+    listTables_maxResults,+    listTables_nextToken,++    -- * Destructuring the Response+    ListTablesResponse (..),+    newListTablesResponse,++    -- * Response Lenses+    listTablesResponse_nextToken,+    listTablesResponse_tables,+    listTablesResponse_httpStatus,+  )+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.TimeStreamWrite.Types++-- | /See:/ 'newListTables' smart constructor.+data ListTables = ListTables'+  { -- | The name of the Timestream database.+    databaseName :: Prelude.Maybe Prelude.Text,+    -- | The total number of items to return in the output. If the total number+    -- of items available is more than the value specified, a NextToken is+    -- provided in the output. To resume pagination, provide the NextToken+    -- value as argument of a subsequent API invocation.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The pagination token. To resume pagination, provide the NextToken value+    -- as argument of a subsequent API invocation.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListTables' 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:+--+-- 'databaseName', 'listTables_databaseName' - The name of the Timestream database.+--+-- 'maxResults', 'listTables_maxResults' - The total number of items to return in the output. If the total number+-- of items available is more than the value specified, a NextToken is+-- provided in the output. To resume pagination, provide the NextToken+-- value as argument of a subsequent API invocation.+--+-- 'nextToken', 'listTables_nextToken' - The pagination token. To resume pagination, provide the NextToken value+-- as argument of a subsequent API invocation.+newListTables ::+  ListTables+newListTables =+  ListTables'+    { databaseName = Prelude.Nothing,+      maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | The name of the Timestream database.+listTables_databaseName :: Lens.Lens' ListTables (Prelude.Maybe Prelude.Text)+listTables_databaseName = Lens.lens (\ListTables' {databaseName} -> databaseName) (\s@ListTables' {} a -> s {databaseName = a} :: ListTables)++-- | The total number of items to return in the output. If the total number+-- of items available is more than the value specified, a NextToken is+-- provided in the output. To resume pagination, provide the NextToken+-- value as argument of a subsequent API invocation.+listTables_maxResults :: Lens.Lens' ListTables (Prelude.Maybe Prelude.Natural)+listTables_maxResults = Lens.lens (\ListTables' {maxResults} -> maxResults) (\s@ListTables' {} a -> s {maxResults = a} :: ListTables)++-- | The pagination token. To resume pagination, provide the NextToken value+-- as argument of a subsequent API invocation.+listTables_nextToken :: Lens.Lens' ListTables (Prelude.Maybe Prelude.Text)+listTables_nextToken = Lens.lens (\ListTables' {nextToken} -> nextToken) (\s@ListTables' {} a -> s {nextToken = a} :: ListTables)++instance Core.AWSRequest ListTables where+  type AWSResponse ListTables = ListTablesResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListTablesResponse'+            Prelude.<$> (x Data..?> "NextToken")+            Prelude.<*> (x Data..?> "Tables" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListTables where+  hashWithSalt _salt ListTables' {..} =+    _salt+      `Prelude.hashWithSalt` databaseName+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListTables where+  rnf ListTables' {..} =+    Prelude.rnf databaseName+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListTables where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "Timestream_20181101.ListTables" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListTables where+  toJSON ListTables' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("DatabaseName" Data..=) Prelude.<$> databaseName,+            ("MaxResults" Data..=) Prelude.<$> maxResults,+            ("NextToken" Data..=) Prelude.<$> nextToken+          ]+      )++instance Data.ToPath ListTables where+  toPath = Prelude.const "/"++instance Data.ToQuery ListTables where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListTablesResponse' smart constructor.+data ListTablesResponse = ListTablesResponse'+  { -- | A token to specify where to start paginating. This is the NextToken from+    -- a previously truncated response.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | A list of tables.+    tables :: Prelude.Maybe [Table],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListTablesResponse' 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', 'listTablesResponse_nextToken' - A token to specify where to start paginating. This is the NextToken from+-- a previously truncated response.+--+-- 'tables', 'listTablesResponse_tables' - A list of tables.+--+-- 'httpStatus', 'listTablesResponse_httpStatus' - The response's http status code.+newListTablesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListTablesResponse+newListTablesResponse pHttpStatus_ =+  ListTablesResponse'+    { nextToken = Prelude.Nothing,+      tables = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A token to specify where to start paginating. This is the NextToken from+-- a previously truncated response.+listTablesResponse_nextToken :: Lens.Lens' ListTablesResponse (Prelude.Maybe Prelude.Text)+listTablesResponse_nextToken = Lens.lens (\ListTablesResponse' {nextToken} -> nextToken) (\s@ListTablesResponse' {} a -> s {nextToken = a} :: ListTablesResponse)++-- | A list of tables.+listTablesResponse_tables :: Lens.Lens' ListTablesResponse (Prelude.Maybe [Table])+listTablesResponse_tables = Lens.lens (\ListTablesResponse' {tables} -> tables) (\s@ListTablesResponse' {} a -> s {tables = a} :: ListTablesResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listTablesResponse_httpStatus :: Lens.Lens' ListTablesResponse Prelude.Int+listTablesResponse_httpStatus = Lens.lens (\ListTablesResponse' {httpStatus} -> httpStatus) (\s@ListTablesResponse' {} a -> s {httpStatus = a} :: ListTablesResponse)++instance Prelude.NFData ListTablesResponse where+  rnf ListTablesResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf tables+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/TimeStreamWrite/ListTagsForResource.hs view
@@ -0,0 +1,172 @@+{-# 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.TimeStreamWrite.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)+--+-- List all tags on a Timestream resource.+module Amazonka.TimeStreamWrite.ListTagsForResource+  ( -- * Creating a Request+    ListTagsForResource (..),+    newListTagsForResource,++    -- * Request Lenses+    listTagsForResource_resourceARN,++    -- * Destructuring the Response+    ListTagsForResourceResponse (..),+    newListTagsForResourceResponse,++    -- * Response Lenses+    listTagsForResourceResponse_tags,+    listTagsForResourceResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.TimeStreamWrite.Types++-- | /See:/ 'newListTagsForResource' smart constructor.+data ListTagsForResource = ListTagsForResource'+  { -- | The Timestream resource with tags to be listed. This value is an Amazon+    -- Resource Name (ARN).+    resourceARN :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListTagsForResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceARN', 'listTagsForResource_resourceARN' - The Timestream resource with tags to be listed. This value is an Amazon+-- Resource Name (ARN).+newListTagsForResource ::+  -- | 'resourceARN'+  Prelude.Text ->+  ListTagsForResource+newListTagsForResource pResourceARN_ =+  ListTagsForResource' {resourceARN = pResourceARN_}++-- | The Timestream resource with tags to be listed. This value is an Amazon+-- Resource Name (ARN).+listTagsForResource_resourceARN :: Lens.Lens' ListTagsForResource Prelude.Text+listTagsForResource_resourceARN = Lens.lens (\ListTagsForResource' {resourceARN} -> resourceARN) (\s@ListTagsForResource' {} a -> s {resourceARN = a} :: ListTagsForResource)++instance Core.AWSRequest ListTagsForResource where+  type+    AWSResponse ListTagsForResource =+      ListTagsForResourceResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListTagsForResourceResponse'+            Prelude.<$> (x Data..?> "Tags" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListTagsForResource where+  hashWithSalt _salt ListTagsForResource' {..} =+    _salt `Prelude.hashWithSalt` resourceARN++instance Prelude.NFData ListTagsForResource where+  rnf ListTagsForResource' {..} =+    Prelude.rnf resourceARN++instance Data.ToHeaders ListTagsForResource where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "Timestream_20181101.ListTagsForResource" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListTagsForResource where+  toJSON ListTagsForResource' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("ResourceARN" Data..= resourceARN)]+      )++instance Data.ToPath ListTagsForResource where+  toPath = Prelude.const "/"++instance Data.ToQuery ListTagsForResource where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListTagsForResourceResponse' smart constructor.+data ListTagsForResourceResponse = ListTagsForResourceResponse'+  { -- | The tags currently associated with the Timestream resource.+    tags :: Prelude.Maybe [Tag],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListTagsForResourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'tags', 'listTagsForResourceResponse_tags' - The tags currently associated with the Timestream resource.+--+-- 'httpStatus', 'listTagsForResourceResponse_httpStatus' - The response's http status code.+newListTagsForResourceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListTagsForResourceResponse+newListTagsForResourceResponse pHttpStatus_ =+  ListTagsForResourceResponse'+    { tags =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The tags currently associated with the Timestream resource.+listTagsForResourceResponse_tags :: Lens.Lens' ListTagsForResourceResponse (Prelude.Maybe [Tag])+listTagsForResourceResponse_tags = Lens.lens (\ListTagsForResourceResponse' {tags} -> tags) (\s@ListTagsForResourceResponse' {} a -> s {tags = a} :: ListTagsForResourceResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listTagsForResourceResponse_httpStatus :: Lens.Lens' ListTagsForResourceResponse Prelude.Int+listTagsForResourceResponse_httpStatus = Lens.lens (\ListTagsForResourceResponse' {httpStatus} -> httpStatus) (\s@ListTagsForResourceResponse' {} a -> s {httpStatus = a} :: ListTagsForResourceResponse)++instance Prelude.NFData ListTagsForResourceResponse where+  rnf ListTagsForResourceResponse' {..} =+    Prelude.rnf tags+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/TimeStreamWrite/TagResource.hs view
@@ -0,0 +1,173 @@+{-# 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.TimeStreamWrite.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)+--+-- Associate a set of tags with a Timestream resource. You can then+-- activate these user-defined tags so that they appear on the Billing and+-- Cost Management console for cost allocation tracking.+module Amazonka.TimeStreamWrite.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 qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.TimeStreamWrite.Types++-- | /See:/ 'newTagResource' smart constructor.+data TagResource = TagResource'+  { -- | Identifies the Timestream resource to which tags should be added. This+    -- value is an Amazon Resource Name (ARN).+    resourceARN :: Prelude.Text,+    -- | The tags to be assigned to the Timestream resource.+    tags :: [Tag]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TagResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceARN', 'tagResource_resourceARN' - Identifies the Timestream resource to which tags should be added. This+-- value is an Amazon Resource Name (ARN).+--+-- 'tags', 'tagResource_tags' - The tags to be assigned to the Timestream resource.+newTagResource ::+  -- | 'resourceARN'+  Prelude.Text ->+  TagResource+newTagResource pResourceARN_ =+  TagResource'+    { resourceARN = pResourceARN_,+      tags = Prelude.mempty+    }++-- | Identifies the Timestream resource to which tags should be added. This+-- value is an Amazon Resource Name (ARN).+tagResource_resourceARN :: Lens.Lens' TagResource Prelude.Text+tagResource_resourceARN = Lens.lens (\TagResource' {resourceARN} -> resourceARN) (\s@TagResource' {} a -> s {resourceARN = a} :: TagResource)++-- | The tags to be assigned to the Timestream resource.+tagResource_tags :: Lens.Lens' TagResource [Tag]+tagResource_tags = Lens.lens (\TagResource' {tags} -> tags) (\s@TagResource' {} a -> s {tags = a} :: TagResource) Prelude.. Lens.coerced++instance Core.AWSRequest TagResource where+  type AWSResponse TagResource = TagResourceResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          TagResourceResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable TagResource where+  hashWithSalt _salt TagResource' {..} =+    _salt+      `Prelude.hashWithSalt` resourceARN+      `Prelude.hashWithSalt` tags++instance Prelude.NFData TagResource where+  rnf TagResource' {..} =+    Prelude.rnf resourceARN+      `Prelude.seq` Prelude.rnf tags++instance Data.ToHeaders TagResource where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "Timestream_20181101.TagResource" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON TagResource where+  toJSON TagResource' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("ResourceARN" Data..= resourceARN),+            Prelude.Just ("Tags" Data..= tags)+          ]+      )++instance Data.ToPath TagResource where+  toPath = Prelude.const "/"++instance Data.ToQuery TagResource where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newTagResourceResponse' smart constructor.+data TagResourceResponse = TagResourceResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TagResourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'tagResourceResponse_httpStatus' - The response's http status code.+newTagResourceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  TagResourceResponse+newTagResourceResponse pHttpStatus_ =+  TagResourceResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+tagResourceResponse_httpStatus :: Lens.Lens' TagResourceResponse Prelude.Int+tagResourceResponse_httpStatus = Lens.lens (\TagResourceResponse' {httpStatus} -> httpStatus) (\s@TagResourceResponse' {} a -> s {httpStatus = a} :: TagResourceResponse)++instance Prelude.NFData TagResourceResponse where+  rnf TagResourceResponse' {..} = Prelude.rnf httpStatus
+ gen/Amazonka/TimeStreamWrite/Types.hs view
@@ -0,0 +1,321 @@+{-# 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.TimeStreamWrite.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.TimeStreamWrite.Types+  ( -- * Service Configuration+    defaultService,++    -- * Errors+    _AccessDeniedException,+    _ConflictException,+    _InternalServerException,+    _InvalidEndpointException,+    _RejectedRecordsException,+    _ResourceNotFoundException,+    _ServiceQuotaExceededException,+    _ThrottlingException,+    _ValidationException,++    -- * DimensionValueType+    DimensionValueType (..),++    -- * MeasureValueType+    MeasureValueType (..),++    -- * S3EncryptionOption+    S3EncryptionOption (..),++    -- * TableStatus+    TableStatus (..),++    -- * TimeUnit+    TimeUnit (..),++    -- * Database+    Database (..),+    newDatabase,+    database_arn,+    database_creationTime,+    database_databaseName,+    database_kmsKeyId,+    database_lastUpdatedTime,+    database_tableCount,++    -- * Dimension+    Dimension (..),+    newDimension,+    dimension_dimensionValueType,+    dimension_name,+    dimension_value,++    -- * Endpoint+    Endpoint (..),+    newEndpoint,+    endpoint_address,+    endpoint_cachePeriodInMinutes,++    -- * MagneticStoreRejectedDataLocation+    MagneticStoreRejectedDataLocation (..),+    newMagneticStoreRejectedDataLocation,+    magneticStoreRejectedDataLocation_s3Configuration,++    -- * MagneticStoreWriteProperties+    MagneticStoreWriteProperties (..),+    newMagneticStoreWriteProperties,+    magneticStoreWriteProperties_magneticStoreRejectedDataLocation,+    magneticStoreWriteProperties_enableMagneticStoreWrites,++    -- * MeasureValue+    MeasureValue (..),+    newMeasureValue,+    measureValue_name,+    measureValue_value,+    measureValue_type,++    -- * Record+    Record (..),+    newRecord,+    record_dimensions,+    record_measureName,+    record_measureValue,+    record_measureValueType,+    record_measureValues,+    record_time,+    record_timeUnit,+    record_version,++    -- * RecordsIngested+    RecordsIngested (..),+    newRecordsIngested,+    recordsIngested_magneticStore,+    recordsIngested_memoryStore,+    recordsIngested_total,++    -- * RetentionProperties+    RetentionProperties (..),+    newRetentionProperties,+    retentionProperties_memoryStoreRetentionPeriodInHours,+    retentionProperties_magneticStoreRetentionPeriodInDays,++    -- * S3Configuration+    S3Configuration (..),+    newS3Configuration,+    s3Configuration_bucketName,+    s3Configuration_encryptionOption,+    s3Configuration_kmsKeyId,+    s3Configuration_objectKeyPrefix,++    -- * Table+    Table (..),+    newTable,+    table_arn,+    table_creationTime,+    table_databaseName,+    table_lastUpdatedTime,+    table_magneticStoreWriteProperties,+    table_retentionProperties,+    table_tableName,+    table_tableStatus,++    -- * Tag+    Tag (..),+    newTag,+    tag_key,+    tag_value,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Sign.V4 as Sign+import Amazonka.TimeStreamWrite.Types.Database+import Amazonka.TimeStreamWrite.Types.Dimension+import Amazonka.TimeStreamWrite.Types.DimensionValueType+import Amazonka.TimeStreamWrite.Types.Endpoint+import Amazonka.TimeStreamWrite.Types.MagneticStoreRejectedDataLocation+import Amazonka.TimeStreamWrite.Types.MagneticStoreWriteProperties+import Amazonka.TimeStreamWrite.Types.MeasureValue+import Amazonka.TimeStreamWrite.Types.MeasureValueType+import Amazonka.TimeStreamWrite.Types.Record+import Amazonka.TimeStreamWrite.Types.RecordsIngested+import Amazonka.TimeStreamWrite.Types.RetentionProperties+import Amazonka.TimeStreamWrite.Types.S3Configuration+import Amazonka.TimeStreamWrite.Types.S3EncryptionOption+import Amazonka.TimeStreamWrite.Types.Table+import Amazonka.TimeStreamWrite.Types.TableStatus+import Amazonka.TimeStreamWrite.Types.Tag+import Amazonka.TimeStreamWrite.Types.TimeUnit++-- | API version @2018-11-01@ of the Amazon Timestream Write SDK configuration.+defaultService :: Core.Service+defaultService =+  Core.Service+    { Core.abbrev = "TimeStreamWrite",+      Core.signer = Sign.v4,+      Core.endpointPrefix = "ingest.timestream",+      Core.signingName = "timestream",+      Core.version = "2018-11-01",+      Core.s3AddressingStyle = Core.S3AddressingStyleAuto,+      Core.endpoint = Core.defaultEndpoint defaultService,+      Core.timeout = Prelude.Just 70,+      Core.check = Core.statusSuccess,+      Core.error = Core.parseJSONError "TimeStreamWrite",+      Core.retry = retry+    }+  where+    retry =+      Core.Exponential+        { Core.base = 5.0e-2,+          Core.growth = 2,+          Core.attempts = 5,+          Core.check = check+        }+    check e+      | Lens.has (Core.hasStatus 502) e =+          Prelude.Just "bad_gateway"+      | Lens.has (Core.hasStatus 504) e =+          Prelude.Just "gateway_timeout"+      | Lens.has (Core.hasStatus 500) e =+          Prelude.Just "general_server_error"+      | Lens.has (Core.hasStatus 509) e =+          Prelude.Just "limit_exceeded"+      | Lens.has+          ( Core.hasCode "RequestThrottledException"+              Prelude.. Core.hasStatus 400+          )+          e =+          Prelude.Just "request_throttled_exception"+      | Lens.has (Core.hasStatus 503) e =+          Prelude.Just "service_unavailable"+      | Lens.has+          ( Core.hasCode "ThrottledException"+              Prelude.. Core.hasStatus 400+          )+          e =+          Prelude.Just "throttled_exception"+      | Lens.has+          ( Core.hasCode "Throttling"+              Prelude.. Core.hasStatus 400+          )+          e =+          Prelude.Just "throttling"+      | Lens.has+          ( Core.hasCode "ThrottlingException"+              Prelude.. Core.hasStatus 400+          )+          e =+          Prelude.Just "throttling_exception"+      | Lens.has+          ( Core.hasCode+              "ProvisionedThroughputExceededException"+              Prelude.. Core.hasStatus 400+          )+          e =+          Prelude.Just "throughput_exceeded"+      | Lens.has (Core.hasStatus 429) e =+          Prelude.Just "too_many_requests"+      | Prelude.otherwise = Prelude.Nothing++-- | You are not authorized to perform this action.+_AccessDeniedException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_AccessDeniedException =+  Core._MatchServiceError+    defaultService+    "AccessDeniedException"++-- | Timestream was unable to process this request because it contains+-- resource that already exists.+_ConflictException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ConflictException =+  Core._MatchServiceError+    defaultService+    "ConflictException"++-- | Timestream was unable to fully process this request because of an+-- internal server error.+_InternalServerException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InternalServerException =+  Core._MatchServiceError+    defaultService+    "InternalServerException"++-- | The requested endpoint was invalid.+_InvalidEndpointException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InvalidEndpointException =+  Core._MatchServiceError+    defaultService+    "InvalidEndpointException"++-- | WriteRecords would throw this exception in the following cases:+--+-- -   Records with duplicate data where there are multiple records with+--     the same dimensions, timestamps, and measure names but:+--+--     -   Measure values are different+--+--     -   Version is not present in the request /or/ the value of version+--         in the new record is equal to or lower than the existing value+--+--     In this case, if Timestream rejects data, the @ExistingVersion@+--     field in the @RejectedRecords@ response will indicate the current+--     record’s version. To force an update, you can resend the request+--     with a version for the record set to a value greater than the+--     @ExistingVersion@.+--+-- -   Records with timestamps that lie outside the retention duration of+--     the memory store+--+-- -   Records with dimensions or measures that exceed the Timestream+--     defined limits.+--+-- For more information, see+-- <https://docs.aws.amazon.com/timestream/latest/developerguide/ts-limits.html Quotas>+-- in the Timestream Developer Guide.+_RejectedRecordsException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_RejectedRecordsException =+  Core._MatchServiceError+    defaultService+    "RejectedRecordsException"++-- | The operation tried to access a nonexistent resource. The resource might+-- not be specified correctly, or its status might not be ACTIVE.+_ResourceNotFoundException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ResourceNotFoundException =+  Core._MatchServiceError+    defaultService+    "ResourceNotFoundException"++-- | Instance quota of resource exceeded for this account.+_ServiceQuotaExceededException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ServiceQuotaExceededException =+  Core._MatchServiceError+    defaultService+    "ServiceQuotaExceededException"++-- | Too many requests were made by a user exceeding service quotas. The+-- request was throttled.+_ThrottlingException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ThrottlingException =+  Core._MatchServiceError+    defaultService+    "ThrottlingException"++-- | Invalid or malformed request.+_ValidationException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ValidationException =+  Core._MatchServiceError+    defaultService+    "ValidationException"
+ gen/Amazonka/TimeStreamWrite/Types/Database.hs view
@@ -0,0 +1,140 @@+{-# 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.TimeStreamWrite.Types.Database+-- 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.TimeStreamWrite.Types.Database 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 top level container for a table. Databases and tables are the+-- fundamental management concepts in Amazon Timestream. All tables in a+-- database are encrypted with the same KMS key.+--+-- /See:/ 'newDatabase' smart constructor.+data Database = Database'+  { -- | The Amazon Resource Name that uniquely identifies this database.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The time when the database was created, calculated from the Unix epoch+    -- time.+    creationTime :: Prelude.Maybe Data.POSIX,+    -- | The name of the Timestream database.+    databaseName :: Prelude.Maybe Prelude.Text,+    -- | The identifier of the KMS key used to encrypt the data stored in the+    -- database.+    kmsKeyId :: Prelude.Maybe Prelude.Text,+    -- | The last time that this database was updated.+    lastUpdatedTime :: Prelude.Maybe Data.POSIX,+    -- | The total number of tables found within a Timestream database.+    tableCount :: Prelude.Maybe Prelude.Integer+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Database' 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', 'database_arn' - The Amazon Resource Name that uniquely identifies this database.+--+-- 'creationTime', 'database_creationTime' - The time when the database was created, calculated from the Unix epoch+-- time.+--+-- 'databaseName', 'database_databaseName' - The name of the Timestream database.+--+-- 'kmsKeyId', 'database_kmsKeyId' - The identifier of the KMS key used to encrypt the data stored in the+-- database.+--+-- 'lastUpdatedTime', 'database_lastUpdatedTime' - The last time that this database was updated.+--+-- 'tableCount', 'database_tableCount' - The total number of tables found within a Timestream database.+newDatabase ::+  Database+newDatabase =+  Database'+    { arn = Prelude.Nothing,+      creationTime = Prelude.Nothing,+      databaseName = Prelude.Nothing,+      kmsKeyId = Prelude.Nothing,+      lastUpdatedTime = Prelude.Nothing,+      tableCount = Prelude.Nothing+    }++-- | The Amazon Resource Name that uniquely identifies this database.+database_arn :: Lens.Lens' Database (Prelude.Maybe Prelude.Text)+database_arn = Lens.lens (\Database' {arn} -> arn) (\s@Database' {} a -> s {arn = a} :: Database)++-- | The time when the database was created, calculated from the Unix epoch+-- time.+database_creationTime :: Lens.Lens' Database (Prelude.Maybe Prelude.UTCTime)+database_creationTime = Lens.lens (\Database' {creationTime} -> creationTime) (\s@Database' {} a -> s {creationTime = a} :: Database) Prelude.. Lens.mapping Data._Time++-- | The name of the Timestream database.+database_databaseName :: Lens.Lens' Database (Prelude.Maybe Prelude.Text)+database_databaseName = Lens.lens (\Database' {databaseName} -> databaseName) (\s@Database' {} a -> s {databaseName = a} :: Database)++-- | The identifier of the KMS key used to encrypt the data stored in the+-- database.+database_kmsKeyId :: Lens.Lens' Database (Prelude.Maybe Prelude.Text)+database_kmsKeyId = Lens.lens (\Database' {kmsKeyId} -> kmsKeyId) (\s@Database' {} a -> s {kmsKeyId = a} :: Database)++-- | The last time that this database was updated.+database_lastUpdatedTime :: Lens.Lens' Database (Prelude.Maybe Prelude.UTCTime)+database_lastUpdatedTime = Lens.lens (\Database' {lastUpdatedTime} -> lastUpdatedTime) (\s@Database' {} a -> s {lastUpdatedTime = a} :: Database) Prelude.. Lens.mapping Data._Time++-- | The total number of tables found within a Timestream database.+database_tableCount :: Lens.Lens' Database (Prelude.Maybe Prelude.Integer)+database_tableCount = Lens.lens (\Database' {tableCount} -> tableCount) (\s@Database' {} a -> s {tableCount = a} :: Database)++instance Data.FromJSON Database where+  parseJSON =+    Data.withObject+      "Database"+      ( \x ->+          Database'+            Prelude.<$> (x Data..:? "Arn")+            Prelude.<*> (x Data..:? "CreationTime")+            Prelude.<*> (x Data..:? "DatabaseName")+            Prelude.<*> (x Data..:? "KmsKeyId")+            Prelude.<*> (x Data..:? "LastUpdatedTime")+            Prelude.<*> (x Data..:? "TableCount")+      )++instance Prelude.Hashable Database where+  hashWithSalt _salt Database' {..} =+    _salt+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` creationTime+      `Prelude.hashWithSalt` databaseName+      `Prelude.hashWithSalt` kmsKeyId+      `Prelude.hashWithSalt` lastUpdatedTime+      `Prelude.hashWithSalt` tableCount++instance Prelude.NFData Database where+  rnf Database' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf creationTime+      `Prelude.seq` Prelude.rnf databaseName+      `Prelude.seq` Prelude.rnf kmsKeyId+      `Prelude.seq` Prelude.rnf lastUpdatedTime+      `Prelude.seq` Prelude.rnf tableCount
+ gen/Amazonka/TimeStreamWrite/Types/Dimension.hs view
@@ -0,0 +1,118 @@+{-# 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.TimeStreamWrite.Types.Dimension+-- 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.TimeStreamWrite.Types.Dimension 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+import Amazonka.TimeStreamWrite.Types.DimensionValueType++-- | Dimension represents the meta data attributes of the time series. For+-- example, the name and availability zone of an EC2 instance or the name+-- of the manufacturer of a wind turbine are dimensions.+--+-- /See:/ 'newDimension' smart constructor.+data Dimension = Dimension'+  { -- | The data type of the dimension for the time series data point.+    dimensionValueType :: Prelude.Maybe DimensionValueType,+    -- | Dimension represents the meta data attributes of the time series. For+    -- example, the name and availability zone of an EC2 instance or the name+    -- of the manufacturer of a wind turbine are dimensions.+    --+    -- For constraints on Dimension names, see+    -- <https://docs.aws.amazon.com/timestream/latest/developerguide/ts-limits.html#limits.naming Naming Constraints>.+    name :: Prelude.Text,+    -- | The value of the dimension.+    value :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Dimension' 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:+--+-- 'dimensionValueType', 'dimension_dimensionValueType' - The data type of the dimension for the time series data point.+--+-- 'name', 'dimension_name' - Dimension represents the meta data attributes of the time series. For+-- example, the name and availability zone of an EC2 instance or the name+-- of the manufacturer of a wind turbine are dimensions.+--+-- For constraints on Dimension names, see+-- <https://docs.aws.amazon.com/timestream/latest/developerguide/ts-limits.html#limits.naming Naming Constraints>.+--+-- 'value', 'dimension_value' - The value of the dimension.+newDimension ::+  -- | 'name'+  Prelude.Text ->+  -- | 'value'+  Prelude.Text ->+  Dimension+newDimension pName_ pValue_ =+  Dimension'+    { dimensionValueType = Prelude.Nothing,+      name = pName_,+      value = pValue_+    }++-- | The data type of the dimension for the time series data point.+dimension_dimensionValueType :: Lens.Lens' Dimension (Prelude.Maybe DimensionValueType)+dimension_dimensionValueType = Lens.lens (\Dimension' {dimensionValueType} -> dimensionValueType) (\s@Dimension' {} a -> s {dimensionValueType = a} :: Dimension)++-- | Dimension represents the meta data attributes of the time series. For+-- example, the name and availability zone of an EC2 instance or the name+-- of the manufacturer of a wind turbine are dimensions.+--+-- For constraints on Dimension names, see+-- <https://docs.aws.amazon.com/timestream/latest/developerguide/ts-limits.html#limits.naming Naming Constraints>.+dimension_name :: Lens.Lens' Dimension Prelude.Text+dimension_name = Lens.lens (\Dimension' {name} -> name) (\s@Dimension' {} a -> s {name = a} :: Dimension)++-- | The value of the dimension.+dimension_value :: Lens.Lens' Dimension Prelude.Text+dimension_value = Lens.lens (\Dimension' {value} -> value) (\s@Dimension' {} a -> s {value = a} :: Dimension)++instance Prelude.Hashable Dimension where+  hashWithSalt _salt Dimension' {..} =+    _salt+      `Prelude.hashWithSalt` dimensionValueType+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` value++instance Prelude.NFData Dimension where+  rnf Dimension' {..} =+    Prelude.rnf dimensionValueType+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf value++instance Data.ToJSON Dimension where+  toJSON Dimension' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("DimensionValueType" Data..=)+              Prelude.<$> dimensionValueType,+            Prelude.Just ("Name" Data..= name),+            Prelude.Just ("Value" Data..= value)+          ]+      )
+ gen/Amazonka/TimeStreamWrite/Types/DimensionValueType.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.TimeStreamWrite.Types.DimensionValueType+-- 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.TimeStreamWrite.Types.DimensionValueType+  ( DimensionValueType+      ( ..,+        DimensionValueType_VARCHAR+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype DimensionValueType = DimensionValueType'+  { fromDimensionValueType ::+      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 DimensionValueType_VARCHAR :: DimensionValueType+pattern DimensionValueType_VARCHAR = DimensionValueType' "VARCHAR"++{-# COMPLETE+  DimensionValueType_VARCHAR,+  DimensionValueType'+  #-}
+ gen/Amazonka/TimeStreamWrite/Types/Endpoint.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.TimeStreamWrite.Types.Endpoint+-- 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.TimeStreamWrite.Types.Endpoint 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++-- | Represents an available endpoint against which to make API calls+-- agaisnt, as well as the TTL for that endpoint.+--+-- /See:/ 'newEndpoint' smart constructor.+data Endpoint = Endpoint'+  { -- | An endpoint address.+    address :: Prelude.Text,+    -- | The TTL for the endpoint, in minutes.+    cachePeriodInMinutes :: Prelude.Integer+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Endpoint' 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:+--+-- 'address', 'endpoint_address' - An endpoint address.+--+-- 'cachePeriodInMinutes', 'endpoint_cachePeriodInMinutes' - The TTL for the endpoint, in minutes.+newEndpoint ::+  -- | 'address'+  Prelude.Text ->+  -- | 'cachePeriodInMinutes'+  Prelude.Integer ->+  Endpoint+newEndpoint pAddress_ pCachePeriodInMinutes_ =+  Endpoint'+    { address = pAddress_,+      cachePeriodInMinutes = pCachePeriodInMinutes_+    }++-- | An endpoint address.+endpoint_address :: Lens.Lens' Endpoint Prelude.Text+endpoint_address = Lens.lens (\Endpoint' {address} -> address) (\s@Endpoint' {} a -> s {address = a} :: Endpoint)++-- | The TTL for the endpoint, in minutes.+endpoint_cachePeriodInMinutes :: Lens.Lens' Endpoint Prelude.Integer+endpoint_cachePeriodInMinutes = Lens.lens (\Endpoint' {cachePeriodInMinutes} -> cachePeriodInMinutes) (\s@Endpoint' {} a -> s {cachePeriodInMinutes = a} :: Endpoint)++instance Data.FromJSON Endpoint where+  parseJSON =+    Data.withObject+      "Endpoint"+      ( \x ->+          Endpoint'+            Prelude.<$> (x Data..: "Address")+            Prelude.<*> (x Data..: "CachePeriodInMinutes")+      )++instance Prelude.Hashable Endpoint where+  hashWithSalt _salt Endpoint' {..} =+    _salt+      `Prelude.hashWithSalt` address+      `Prelude.hashWithSalt` cachePeriodInMinutes++instance Prelude.NFData Endpoint where+  rnf Endpoint' {..} =+    Prelude.rnf address+      `Prelude.seq` Prelude.rnf cachePeriodInMinutes
+ gen/Amazonka/TimeStreamWrite/Types/MagneticStoreRejectedDataLocation.hs view
@@ -0,0 +1,100 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.TimeStreamWrite.Types.MagneticStoreRejectedDataLocation+-- 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.TimeStreamWrite.Types.MagneticStoreRejectedDataLocation 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+import Amazonka.TimeStreamWrite.Types.S3Configuration++-- | The location to write error reports for records rejected,+-- asynchronously, during magnetic store writes.+--+-- /See:/ 'newMagneticStoreRejectedDataLocation' smart constructor.+data MagneticStoreRejectedDataLocation = MagneticStoreRejectedDataLocation'+  { -- | Configuration of an S3 location to write error reports for records+    -- rejected, asynchronously, during magnetic store writes.+    s3Configuration :: Prelude.Maybe S3Configuration+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'MagneticStoreRejectedDataLocation' 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:+--+-- 's3Configuration', 'magneticStoreRejectedDataLocation_s3Configuration' - Configuration of an S3 location to write error reports for records+-- rejected, asynchronously, during magnetic store writes.+newMagneticStoreRejectedDataLocation ::+  MagneticStoreRejectedDataLocation+newMagneticStoreRejectedDataLocation =+  MagneticStoreRejectedDataLocation'+    { s3Configuration =+        Prelude.Nothing+    }++-- | Configuration of an S3 location to write error reports for records+-- rejected, asynchronously, during magnetic store writes.+magneticStoreRejectedDataLocation_s3Configuration :: Lens.Lens' MagneticStoreRejectedDataLocation (Prelude.Maybe S3Configuration)+magneticStoreRejectedDataLocation_s3Configuration = Lens.lens (\MagneticStoreRejectedDataLocation' {s3Configuration} -> s3Configuration) (\s@MagneticStoreRejectedDataLocation' {} a -> s {s3Configuration = a} :: MagneticStoreRejectedDataLocation)++instance+  Data.FromJSON+    MagneticStoreRejectedDataLocation+  where+  parseJSON =+    Data.withObject+      "MagneticStoreRejectedDataLocation"+      ( \x ->+          MagneticStoreRejectedDataLocation'+            Prelude.<$> (x Data..:? "S3Configuration")+      )++instance+  Prelude.Hashable+    MagneticStoreRejectedDataLocation+  where+  hashWithSalt+    _salt+    MagneticStoreRejectedDataLocation' {..} =+      _salt `Prelude.hashWithSalt` s3Configuration++instance+  Prelude.NFData+    MagneticStoreRejectedDataLocation+  where+  rnf MagneticStoreRejectedDataLocation' {..} =+    Prelude.rnf s3Configuration++instance+  Data.ToJSON+    MagneticStoreRejectedDataLocation+  where+  toJSON MagneticStoreRejectedDataLocation' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("S3Configuration" Data..=)+              Prelude.<$> s3Configuration+          ]+      )
+ gen/Amazonka/TimeStreamWrite/Types/MagneticStoreWriteProperties.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.TimeStreamWrite.Types.MagneticStoreWriteProperties+-- 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.TimeStreamWrite.Types.MagneticStoreWriteProperties 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+import Amazonka.TimeStreamWrite.Types.MagneticStoreRejectedDataLocation++-- | The set of properties on a table for configuring magnetic store writes.+--+-- /See:/ 'newMagneticStoreWriteProperties' smart constructor.+data MagneticStoreWriteProperties = MagneticStoreWriteProperties'+  { -- | The location to write error reports for records rejected asynchronously+    -- during magnetic store writes.+    magneticStoreRejectedDataLocation :: Prelude.Maybe MagneticStoreRejectedDataLocation,+    -- | A flag to enable magnetic store writes.+    enableMagneticStoreWrites :: Prelude.Bool+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'MagneticStoreWriteProperties' 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:+--+-- 'magneticStoreRejectedDataLocation', 'magneticStoreWriteProperties_magneticStoreRejectedDataLocation' - The location to write error reports for records rejected asynchronously+-- during magnetic store writes.+--+-- 'enableMagneticStoreWrites', 'magneticStoreWriteProperties_enableMagneticStoreWrites' - A flag to enable magnetic store writes.+newMagneticStoreWriteProperties ::+  -- | 'enableMagneticStoreWrites'+  Prelude.Bool ->+  MagneticStoreWriteProperties+newMagneticStoreWriteProperties+  pEnableMagneticStoreWrites_ =+    MagneticStoreWriteProperties'+      { magneticStoreRejectedDataLocation =+          Prelude.Nothing,+        enableMagneticStoreWrites =+          pEnableMagneticStoreWrites_+      }++-- | The location to write error reports for records rejected asynchronously+-- during magnetic store writes.+magneticStoreWriteProperties_magneticStoreRejectedDataLocation :: Lens.Lens' MagneticStoreWriteProperties (Prelude.Maybe MagneticStoreRejectedDataLocation)+magneticStoreWriteProperties_magneticStoreRejectedDataLocation = Lens.lens (\MagneticStoreWriteProperties' {magneticStoreRejectedDataLocation} -> magneticStoreRejectedDataLocation) (\s@MagneticStoreWriteProperties' {} a -> s {magneticStoreRejectedDataLocation = a} :: MagneticStoreWriteProperties)++-- | A flag to enable magnetic store writes.+magneticStoreWriteProperties_enableMagneticStoreWrites :: Lens.Lens' MagneticStoreWriteProperties Prelude.Bool+magneticStoreWriteProperties_enableMagneticStoreWrites = Lens.lens (\MagneticStoreWriteProperties' {enableMagneticStoreWrites} -> enableMagneticStoreWrites) (\s@MagneticStoreWriteProperties' {} a -> s {enableMagneticStoreWrites = a} :: MagneticStoreWriteProperties)++instance Data.FromJSON MagneticStoreWriteProperties where+  parseJSON =+    Data.withObject+      "MagneticStoreWriteProperties"+      ( \x ->+          MagneticStoreWriteProperties'+            Prelude.<$> (x Data..:? "MagneticStoreRejectedDataLocation")+            Prelude.<*> (x Data..: "EnableMagneticStoreWrites")+      )++instance+  Prelude.Hashable+    MagneticStoreWriteProperties+  where+  hashWithSalt _salt MagneticStoreWriteProperties' {..} =+    _salt+      `Prelude.hashWithSalt` magneticStoreRejectedDataLocation+      `Prelude.hashWithSalt` enableMagneticStoreWrites++instance Prelude.NFData MagneticStoreWriteProperties where+  rnf MagneticStoreWriteProperties' {..} =+    Prelude.rnf magneticStoreRejectedDataLocation+      `Prelude.seq` Prelude.rnf enableMagneticStoreWrites++instance Data.ToJSON MagneticStoreWriteProperties where+  toJSON MagneticStoreWriteProperties' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("MagneticStoreRejectedDataLocation" Data..=)+              Prelude.<$> magneticStoreRejectedDataLocation,+            Prelude.Just+              ( "EnableMagneticStoreWrites"+                  Data..= enableMagneticStoreWrites+              )+          ]+      )
+ gen/Amazonka/TimeStreamWrite/Types/MeasureValue.hs view
@@ -0,0 +1,123 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.TimeStreamWrite.Types.MeasureValue+-- 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.TimeStreamWrite.Types.MeasureValue 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+import Amazonka.TimeStreamWrite.Types.MeasureValueType++-- | MeasureValue represents the data attribute of the time series. For+-- example, the CPU utilization of an EC2 instance or the RPM of a wind+-- turbine are measures. MeasureValue has both name and value.+--+-- MeasureValue is only allowed for type @MULTI@. Using @MULTI@ type, you+-- can pass multiple data attributes associated with the same time series+-- in a single record+--+-- /See:/ 'newMeasureValue' smart constructor.+data MeasureValue = MeasureValue'+  { -- | Name of the MeasureValue.+    --+    -- For constraints on MeasureValue names, refer to+    -- <https://docs.aws.amazon.com/timestream/latest/developerguide/ts-limits.html#limits.naming Naming Constraints>+    -- in the Timestream developer guide.+    name :: Prelude.Text,+    -- | Value for the MeasureValue.+    value :: Prelude.Text,+    -- | Contains the data type of the MeasureValue for the time series data+    -- point.+    type' :: MeasureValueType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'MeasureValue' 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', 'measureValue_name' - Name of the MeasureValue.+--+-- For constraints on MeasureValue names, refer to+-- <https://docs.aws.amazon.com/timestream/latest/developerguide/ts-limits.html#limits.naming Naming Constraints>+-- in the Timestream developer guide.+--+-- 'value', 'measureValue_value' - Value for the MeasureValue.+--+-- 'type'', 'measureValue_type' - Contains the data type of the MeasureValue for the time series data+-- point.+newMeasureValue ::+  -- | 'name'+  Prelude.Text ->+  -- | 'value'+  Prelude.Text ->+  -- | 'type''+  MeasureValueType ->+  MeasureValue+newMeasureValue pName_ pValue_ pType_ =+  MeasureValue'+    { name = pName_,+      value = pValue_,+      type' = pType_+    }++-- | Name of the MeasureValue.+--+-- For constraints on MeasureValue names, refer to+-- <https://docs.aws.amazon.com/timestream/latest/developerguide/ts-limits.html#limits.naming Naming Constraints>+-- in the Timestream developer guide.+measureValue_name :: Lens.Lens' MeasureValue Prelude.Text+measureValue_name = Lens.lens (\MeasureValue' {name} -> name) (\s@MeasureValue' {} a -> s {name = a} :: MeasureValue)++-- | Value for the MeasureValue.+measureValue_value :: Lens.Lens' MeasureValue Prelude.Text+measureValue_value = Lens.lens (\MeasureValue' {value} -> value) (\s@MeasureValue' {} a -> s {value = a} :: MeasureValue)++-- | Contains the data type of the MeasureValue for the time series data+-- point.+measureValue_type :: Lens.Lens' MeasureValue MeasureValueType+measureValue_type = Lens.lens (\MeasureValue' {type'} -> type') (\s@MeasureValue' {} a -> s {type' = a} :: MeasureValue)++instance Prelude.Hashable MeasureValue where+  hashWithSalt _salt MeasureValue' {..} =+    _salt+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` value+      `Prelude.hashWithSalt` type'++instance Prelude.NFData MeasureValue where+  rnf MeasureValue' {..} =+    Prelude.rnf name+      `Prelude.seq` Prelude.rnf value+      `Prelude.seq` Prelude.rnf type'++instance Data.ToJSON MeasureValue where+  toJSON MeasureValue' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("Name" Data..= name),+            Prelude.Just ("Value" Data..= value),+            Prelude.Just ("Type" Data..= type')+          ]+      )
+ gen/Amazonka/TimeStreamWrite/Types/MeasureValueType.hs view
@@ -0,0 +1,91 @@+{-# 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.TimeStreamWrite.Types.MeasureValueType+-- 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.TimeStreamWrite.Types.MeasureValueType+  ( MeasureValueType+      ( ..,+        MeasureValueType_BIGINT,+        MeasureValueType_BOOLEAN,+        MeasureValueType_DOUBLE,+        MeasureValueType_MULTI,+        MeasureValueType_TIMESTAMP,+        MeasureValueType_VARCHAR+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype MeasureValueType = MeasureValueType'+  { fromMeasureValueType ::+      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 MeasureValueType_BIGINT :: MeasureValueType+pattern MeasureValueType_BIGINT = MeasureValueType' "BIGINT"++pattern MeasureValueType_BOOLEAN :: MeasureValueType+pattern MeasureValueType_BOOLEAN = MeasureValueType' "BOOLEAN"++pattern MeasureValueType_DOUBLE :: MeasureValueType+pattern MeasureValueType_DOUBLE = MeasureValueType' "DOUBLE"++pattern MeasureValueType_MULTI :: MeasureValueType+pattern MeasureValueType_MULTI = MeasureValueType' "MULTI"++pattern MeasureValueType_TIMESTAMP :: MeasureValueType+pattern MeasureValueType_TIMESTAMP = MeasureValueType' "TIMESTAMP"++pattern MeasureValueType_VARCHAR :: MeasureValueType+pattern MeasureValueType_VARCHAR = MeasureValueType' "VARCHAR"++{-# COMPLETE+  MeasureValueType_BIGINT,+  MeasureValueType_BOOLEAN,+  MeasureValueType_DOUBLE,+  MeasureValueType_MULTI,+  MeasureValueType_TIMESTAMP,+  MeasureValueType_VARCHAR,+  MeasureValueType'+  #-}
+ gen/Amazonka/TimeStreamWrite/Types/Record.hs view
@@ -0,0 +1,227 @@+{-# 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.TimeStreamWrite.Types.Record+-- 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.TimeStreamWrite.Types.Record 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+import Amazonka.TimeStreamWrite.Types.Dimension+import Amazonka.TimeStreamWrite.Types.MeasureValue+import Amazonka.TimeStreamWrite.Types.MeasureValueType+import Amazonka.TimeStreamWrite.Types.TimeUnit++-- | Record represents a time series data point being written into+-- Timestream. Each record contains an array of dimensions. Dimensions+-- represent the meta data attributes of a time series data point such as+-- the instance name or availability zone of an EC2 instance. A record also+-- contains the measure name which is the name of the measure being+-- collected for example the CPU utilization of an EC2 instance. A record+-- also contains the measure value and the value type which is the data+-- type of the measure value. In addition, the record contains the+-- timestamp when the measure was collected that the timestamp unit which+-- represents the granularity of the timestamp.+--+-- Records have a @Version@ field, which is a 64-bit @long@ that you can+-- use for updating data points. Writes of a duplicate record with the same+-- dimension, timestamp, and measure name but different measure value will+-- only succeed if the @Version@ attribute of the record in the write+-- request is higher than that of the existing record. Timestream defaults+-- to a @Version@ of @1@ for records without the @Version@ field.+--+-- /See:/ 'newRecord' smart constructor.+data Record = Record'+  { -- | Contains the list of dimensions for time series data points.+    dimensions :: Prelude.Maybe [Dimension],+    -- | Measure represents the data attribute of the time series. For example,+    -- the CPU utilization of an EC2 instance or the RPM of a wind turbine are+    -- measures.+    measureName :: Prelude.Maybe Prelude.Text,+    -- | Contains the measure value for the time series data point.+    measureValue :: Prelude.Maybe Prelude.Text,+    -- | Contains the data type of the measure value for the time series data+    -- point. Default type is @DOUBLE@.+    measureValueType :: Prelude.Maybe MeasureValueType,+    -- | Contains the list of MeasureValue for time series data points.+    --+    -- This is only allowed for type @MULTI@. For scalar values, use+    -- @MeasureValue@ attribute of the Record directly.+    measureValues :: Prelude.Maybe [MeasureValue],+    -- | Contains the time at which the measure value for the data point was+    -- collected. The time value plus the unit provides the time elapsed since+    -- the epoch. For example, if the time value is @12345@ and the unit is+    -- @ms@, then @12345 ms@ have elapsed since the epoch.+    time :: Prelude.Maybe Prelude.Text,+    -- | The granularity of the timestamp unit. It indicates if the time value is+    -- in seconds, milliseconds, nanoseconds or other supported values. Default+    -- is @MILLISECONDS@.+    timeUnit :: Prelude.Maybe TimeUnit,+    -- | 64-bit attribute used for record updates. Write requests for duplicate+    -- data with a higher version number will update the existing measure value+    -- and version. In cases where the measure value is the same, @Version@+    -- will still be updated . Default value is @1@.+    --+    -- @Version@ must be @1@ or greater, or you will receive a+    -- @ValidationException@ error.+    version :: Prelude.Maybe Prelude.Integer+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Record' 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:+--+-- 'dimensions', 'record_dimensions' - Contains the list of dimensions for time series data points.+--+-- 'measureName', 'record_measureName' - Measure represents the data attribute of the time series. For example,+-- the CPU utilization of an EC2 instance or the RPM of a wind turbine are+-- measures.+--+-- 'measureValue', 'record_measureValue' - Contains the measure value for the time series data point.+--+-- 'measureValueType', 'record_measureValueType' - Contains the data type of the measure value for the time series data+-- point. Default type is @DOUBLE@.+--+-- 'measureValues', 'record_measureValues' - Contains the list of MeasureValue for time series data points.+--+-- This is only allowed for type @MULTI@. For scalar values, use+-- @MeasureValue@ attribute of the Record directly.+--+-- 'time', 'record_time' - Contains the time at which the measure value for the data point was+-- collected. The time value plus the unit provides the time elapsed since+-- the epoch. For example, if the time value is @12345@ and the unit is+-- @ms@, then @12345 ms@ have elapsed since the epoch.+--+-- 'timeUnit', 'record_timeUnit' - The granularity of the timestamp unit. It indicates if the time value is+-- in seconds, milliseconds, nanoseconds or other supported values. Default+-- is @MILLISECONDS@.+--+-- 'version', 'record_version' - 64-bit attribute used for record updates. Write requests for duplicate+-- data with a higher version number will update the existing measure value+-- and version. In cases where the measure value is the same, @Version@+-- will still be updated . Default value is @1@.+--+-- @Version@ must be @1@ or greater, or you will receive a+-- @ValidationException@ error.+newRecord ::+  Record+newRecord =+  Record'+    { dimensions = Prelude.Nothing,+      measureName = Prelude.Nothing,+      measureValue = Prelude.Nothing,+      measureValueType = Prelude.Nothing,+      measureValues = Prelude.Nothing,+      time = Prelude.Nothing,+      timeUnit = Prelude.Nothing,+      version = Prelude.Nothing+    }++-- | Contains the list of dimensions for time series data points.+record_dimensions :: Lens.Lens' Record (Prelude.Maybe [Dimension])+record_dimensions = Lens.lens (\Record' {dimensions} -> dimensions) (\s@Record' {} a -> s {dimensions = a} :: Record) Prelude.. Lens.mapping Lens.coerced++-- | Measure represents the data attribute of the time series. For example,+-- the CPU utilization of an EC2 instance or the RPM of a wind turbine are+-- measures.+record_measureName :: Lens.Lens' Record (Prelude.Maybe Prelude.Text)+record_measureName = Lens.lens (\Record' {measureName} -> measureName) (\s@Record' {} a -> s {measureName = a} :: Record)++-- | Contains the measure value for the time series data point.+record_measureValue :: Lens.Lens' Record (Prelude.Maybe Prelude.Text)+record_measureValue = Lens.lens (\Record' {measureValue} -> measureValue) (\s@Record' {} a -> s {measureValue = a} :: Record)++-- | Contains the data type of the measure value for the time series data+-- point. Default type is @DOUBLE@.+record_measureValueType :: Lens.Lens' Record (Prelude.Maybe MeasureValueType)+record_measureValueType = Lens.lens (\Record' {measureValueType} -> measureValueType) (\s@Record' {} a -> s {measureValueType = a} :: Record)++-- | Contains the list of MeasureValue for time series data points.+--+-- This is only allowed for type @MULTI@. For scalar values, use+-- @MeasureValue@ attribute of the Record directly.+record_measureValues :: Lens.Lens' Record (Prelude.Maybe [MeasureValue])+record_measureValues = Lens.lens (\Record' {measureValues} -> measureValues) (\s@Record' {} a -> s {measureValues = a} :: Record) Prelude.. Lens.mapping Lens.coerced++-- | Contains the time at which the measure value for the data point was+-- collected. The time value plus the unit provides the time elapsed since+-- the epoch. For example, if the time value is @12345@ and the unit is+-- @ms@, then @12345 ms@ have elapsed since the epoch.+record_time :: Lens.Lens' Record (Prelude.Maybe Prelude.Text)+record_time = Lens.lens (\Record' {time} -> time) (\s@Record' {} a -> s {time = a} :: Record)++-- | The granularity of the timestamp unit. It indicates if the time value is+-- in seconds, milliseconds, nanoseconds or other supported values. Default+-- is @MILLISECONDS@.+record_timeUnit :: Lens.Lens' Record (Prelude.Maybe TimeUnit)+record_timeUnit = Lens.lens (\Record' {timeUnit} -> timeUnit) (\s@Record' {} a -> s {timeUnit = a} :: Record)++-- | 64-bit attribute used for record updates. Write requests for duplicate+-- data with a higher version number will update the existing measure value+-- and version. In cases where the measure value is the same, @Version@+-- will still be updated . Default value is @1@.+--+-- @Version@ must be @1@ or greater, or you will receive a+-- @ValidationException@ error.+record_version :: Lens.Lens' Record (Prelude.Maybe Prelude.Integer)+record_version = Lens.lens (\Record' {version} -> version) (\s@Record' {} a -> s {version = a} :: Record)++instance Prelude.Hashable Record where+  hashWithSalt _salt Record' {..} =+    _salt+      `Prelude.hashWithSalt` dimensions+      `Prelude.hashWithSalt` measureName+      `Prelude.hashWithSalt` measureValue+      `Prelude.hashWithSalt` measureValueType+      `Prelude.hashWithSalt` measureValues+      `Prelude.hashWithSalt` time+      `Prelude.hashWithSalt` timeUnit+      `Prelude.hashWithSalt` version++instance Prelude.NFData Record where+  rnf Record' {..} =+    Prelude.rnf dimensions+      `Prelude.seq` Prelude.rnf measureName+      `Prelude.seq` Prelude.rnf measureValue+      `Prelude.seq` Prelude.rnf measureValueType+      `Prelude.seq` Prelude.rnf measureValues+      `Prelude.seq` Prelude.rnf time+      `Prelude.seq` Prelude.rnf timeUnit+      `Prelude.seq` Prelude.rnf version++instance Data.ToJSON Record where+  toJSON Record' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Dimensions" Data..=) Prelude.<$> dimensions,+            ("MeasureName" Data..=) Prelude.<$> measureName,+            ("MeasureValue" Data..=) Prelude.<$> measureValue,+            ("MeasureValueType" Data..=)+              Prelude.<$> measureValueType,+            ("MeasureValues" Data..=) Prelude.<$> measureValues,+            ("Time" Data..=) Prelude.<$> time,+            ("TimeUnit" Data..=) Prelude.<$> timeUnit,+            ("Version" Data..=) Prelude.<$> version+          ]+      )
+ gen/Amazonka/TimeStreamWrite/Types/RecordsIngested.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.TimeStreamWrite.Types.RecordsIngested+-- 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.TimeStreamWrite.Types.RecordsIngested where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Information on the records ingested by this request.+--+-- /See:/ 'newRecordsIngested' smart constructor.+data RecordsIngested = RecordsIngested'+  { -- | Count of records ingested into the magnetic store.+    magneticStore :: Prelude.Maybe Prelude.Int,+    -- | Count of records ingested into the memory store.+    memoryStore :: Prelude.Maybe Prelude.Int,+    -- | Total count of successfully ingested records.+    total :: Prelude.Maybe Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RecordsIngested' 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:+--+-- 'magneticStore', 'recordsIngested_magneticStore' - Count of records ingested into the magnetic store.+--+-- 'memoryStore', 'recordsIngested_memoryStore' - Count of records ingested into the memory store.+--+-- 'total', 'recordsIngested_total' - Total count of successfully ingested records.+newRecordsIngested ::+  RecordsIngested+newRecordsIngested =+  RecordsIngested'+    { magneticStore = Prelude.Nothing,+      memoryStore = Prelude.Nothing,+      total = Prelude.Nothing+    }++-- | Count of records ingested into the magnetic store.+recordsIngested_magneticStore :: Lens.Lens' RecordsIngested (Prelude.Maybe Prelude.Int)+recordsIngested_magneticStore = Lens.lens (\RecordsIngested' {magneticStore} -> magneticStore) (\s@RecordsIngested' {} a -> s {magneticStore = a} :: RecordsIngested)++-- | Count of records ingested into the memory store.+recordsIngested_memoryStore :: Lens.Lens' RecordsIngested (Prelude.Maybe Prelude.Int)+recordsIngested_memoryStore = Lens.lens (\RecordsIngested' {memoryStore} -> memoryStore) (\s@RecordsIngested' {} a -> s {memoryStore = a} :: RecordsIngested)++-- | Total count of successfully ingested records.+recordsIngested_total :: Lens.Lens' RecordsIngested (Prelude.Maybe Prelude.Int)+recordsIngested_total = Lens.lens (\RecordsIngested' {total} -> total) (\s@RecordsIngested' {} a -> s {total = a} :: RecordsIngested)++instance Data.FromJSON RecordsIngested where+  parseJSON =+    Data.withObject+      "RecordsIngested"+      ( \x ->+          RecordsIngested'+            Prelude.<$> (x Data..:? "MagneticStore")+            Prelude.<*> (x Data..:? "MemoryStore")+            Prelude.<*> (x Data..:? "Total")+      )++instance Prelude.Hashable RecordsIngested where+  hashWithSalt _salt RecordsIngested' {..} =+    _salt+      `Prelude.hashWithSalt` magneticStore+      `Prelude.hashWithSalt` memoryStore+      `Prelude.hashWithSalt` total++instance Prelude.NFData RecordsIngested where+  rnf RecordsIngested' {..} =+    Prelude.rnf magneticStore+      `Prelude.seq` Prelude.rnf memoryStore+      `Prelude.seq` Prelude.rnf total
+ gen/Amazonka/TimeStreamWrite/Types/RetentionProperties.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.TimeStreamWrite.Types.RetentionProperties+-- 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.TimeStreamWrite.Types.RetentionProperties 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++-- | Retention properties contain the duration for which your time series+-- data must be stored in the magnetic store and the memory store.+--+-- /See:/ 'newRetentionProperties' smart constructor.+data RetentionProperties = RetentionProperties'+  { -- | The duration for which data must be stored in the memory store.+    memoryStoreRetentionPeriodInHours :: Prelude.Natural,+    -- | The duration for which data must be stored in the magnetic store.+    magneticStoreRetentionPeriodInDays :: Prelude.Natural+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RetentionProperties' 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:+--+-- 'memoryStoreRetentionPeriodInHours', 'retentionProperties_memoryStoreRetentionPeriodInHours' - The duration for which data must be stored in the memory store.+--+-- 'magneticStoreRetentionPeriodInDays', 'retentionProperties_magneticStoreRetentionPeriodInDays' - The duration for which data must be stored in the magnetic store.+newRetentionProperties ::+  -- | 'memoryStoreRetentionPeriodInHours'+  Prelude.Natural ->+  -- | 'magneticStoreRetentionPeriodInDays'+  Prelude.Natural ->+  RetentionProperties+newRetentionProperties+  pMemoryStoreRetentionPeriodInHours_+  pMagneticStoreRetentionPeriodInDays_ =+    RetentionProperties'+      { memoryStoreRetentionPeriodInHours =+          pMemoryStoreRetentionPeriodInHours_,+        magneticStoreRetentionPeriodInDays =+          pMagneticStoreRetentionPeriodInDays_+      }++-- | The duration for which data must be stored in the memory store.+retentionProperties_memoryStoreRetentionPeriodInHours :: Lens.Lens' RetentionProperties Prelude.Natural+retentionProperties_memoryStoreRetentionPeriodInHours = Lens.lens (\RetentionProperties' {memoryStoreRetentionPeriodInHours} -> memoryStoreRetentionPeriodInHours) (\s@RetentionProperties' {} a -> s {memoryStoreRetentionPeriodInHours = a} :: RetentionProperties)++-- | The duration for which data must be stored in the magnetic store.+retentionProperties_magneticStoreRetentionPeriodInDays :: Lens.Lens' RetentionProperties Prelude.Natural+retentionProperties_magneticStoreRetentionPeriodInDays = Lens.lens (\RetentionProperties' {magneticStoreRetentionPeriodInDays} -> magneticStoreRetentionPeriodInDays) (\s@RetentionProperties' {} a -> s {magneticStoreRetentionPeriodInDays = a} :: RetentionProperties)++instance Data.FromJSON RetentionProperties where+  parseJSON =+    Data.withObject+      "RetentionProperties"+      ( \x ->+          RetentionProperties'+            Prelude.<$> (x Data..: "MemoryStoreRetentionPeriodInHours")+            Prelude.<*> (x Data..: "MagneticStoreRetentionPeriodInDays")+      )++instance Prelude.Hashable RetentionProperties where+  hashWithSalt _salt RetentionProperties' {..} =+    _salt+      `Prelude.hashWithSalt` memoryStoreRetentionPeriodInHours+      `Prelude.hashWithSalt` magneticStoreRetentionPeriodInDays++instance Prelude.NFData RetentionProperties where+  rnf RetentionProperties' {..} =+    Prelude.rnf memoryStoreRetentionPeriodInHours+      `Prelude.seq` Prelude.rnf magneticStoreRetentionPeriodInDays++instance Data.ToJSON RetentionProperties where+  toJSON RetentionProperties' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ( "MemoryStoreRetentionPeriodInHours"+                  Data..= memoryStoreRetentionPeriodInHours+              ),+            Prelude.Just+              ( "MagneticStoreRetentionPeriodInDays"+                  Data..= magneticStoreRetentionPeriodInDays+              )+          ]+      )
+ gen/Amazonka/TimeStreamWrite/Types/S3Configuration.hs view
@@ -0,0 +1,128 @@+{-# 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.TimeStreamWrite.Types.S3Configuration+-- 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.TimeStreamWrite.Types.S3Configuration 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+import Amazonka.TimeStreamWrite.Types.S3EncryptionOption++-- | Configuration specifing an S3 location.+--+-- /See:/ 'newS3Configuration' smart constructor.+data S3Configuration = S3Configuration'+  { -- | >Bucket name of the customer S3 bucket.+    bucketName :: Prelude.Maybe Prelude.Text,+    -- | Encryption option for the customer s3 location. Options are S3 server+    -- side encryption with an S3-managed key or KMS managed key.+    encryptionOption :: Prelude.Maybe S3EncryptionOption,+    -- | KMS key id for the customer s3 location when encrypting with a KMS+    -- managed key.+    kmsKeyId :: Prelude.Maybe Prelude.Text,+    -- | Object key preview for the customer S3 location.+    objectKeyPrefix :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'S3Configuration' 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:+--+-- 'bucketName', 's3Configuration_bucketName' - >Bucket name of the customer S3 bucket.+--+-- 'encryptionOption', 's3Configuration_encryptionOption' - Encryption option for the customer s3 location. Options are S3 server+-- side encryption with an S3-managed key or KMS managed key.+--+-- 'kmsKeyId', 's3Configuration_kmsKeyId' - KMS key id for the customer s3 location when encrypting with a KMS+-- managed key.+--+-- 'objectKeyPrefix', 's3Configuration_objectKeyPrefix' - Object key preview for the customer S3 location.+newS3Configuration ::+  S3Configuration+newS3Configuration =+  S3Configuration'+    { bucketName = Prelude.Nothing,+      encryptionOption = Prelude.Nothing,+      kmsKeyId = Prelude.Nothing,+      objectKeyPrefix = Prelude.Nothing+    }++-- | >Bucket name of the customer S3 bucket.+s3Configuration_bucketName :: Lens.Lens' S3Configuration (Prelude.Maybe Prelude.Text)+s3Configuration_bucketName = Lens.lens (\S3Configuration' {bucketName} -> bucketName) (\s@S3Configuration' {} a -> s {bucketName = a} :: S3Configuration)++-- | Encryption option for the customer s3 location. Options are S3 server+-- side encryption with an S3-managed key or KMS managed key.+s3Configuration_encryptionOption :: Lens.Lens' S3Configuration (Prelude.Maybe S3EncryptionOption)+s3Configuration_encryptionOption = Lens.lens (\S3Configuration' {encryptionOption} -> encryptionOption) (\s@S3Configuration' {} a -> s {encryptionOption = a} :: S3Configuration)++-- | KMS key id for the customer s3 location when encrypting with a KMS+-- managed key.+s3Configuration_kmsKeyId :: Lens.Lens' S3Configuration (Prelude.Maybe Prelude.Text)+s3Configuration_kmsKeyId = Lens.lens (\S3Configuration' {kmsKeyId} -> kmsKeyId) (\s@S3Configuration' {} a -> s {kmsKeyId = a} :: S3Configuration)++-- | Object key preview for the customer S3 location.+s3Configuration_objectKeyPrefix :: Lens.Lens' S3Configuration (Prelude.Maybe Prelude.Text)+s3Configuration_objectKeyPrefix = Lens.lens (\S3Configuration' {objectKeyPrefix} -> objectKeyPrefix) (\s@S3Configuration' {} a -> s {objectKeyPrefix = a} :: S3Configuration)++instance Data.FromJSON S3Configuration where+  parseJSON =+    Data.withObject+      "S3Configuration"+      ( \x ->+          S3Configuration'+            Prelude.<$> (x Data..:? "BucketName")+            Prelude.<*> (x Data..:? "EncryptionOption")+            Prelude.<*> (x Data..:? "KmsKeyId")+            Prelude.<*> (x Data..:? "ObjectKeyPrefix")+      )++instance Prelude.Hashable S3Configuration where+  hashWithSalt _salt S3Configuration' {..} =+    _salt+      `Prelude.hashWithSalt` bucketName+      `Prelude.hashWithSalt` encryptionOption+      `Prelude.hashWithSalt` kmsKeyId+      `Prelude.hashWithSalt` objectKeyPrefix++instance Prelude.NFData S3Configuration where+  rnf S3Configuration' {..} =+    Prelude.rnf bucketName+      `Prelude.seq` Prelude.rnf encryptionOption+      `Prelude.seq` Prelude.rnf kmsKeyId+      `Prelude.seq` Prelude.rnf objectKeyPrefix++instance Data.ToJSON S3Configuration where+  toJSON S3Configuration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("BucketName" Data..=) Prelude.<$> bucketName,+            ("EncryptionOption" Data..=)+              Prelude.<$> encryptionOption,+            ("KmsKeyId" Data..=) Prelude.<$> kmsKeyId,+            ("ObjectKeyPrefix" Data..=)+              Prelude.<$> objectKeyPrefix+          ]+      )
+ gen/Amazonka/TimeStreamWrite/Types/S3EncryptionOption.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.TimeStreamWrite.Types.S3EncryptionOption+-- 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.TimeStreamWrite.Types.S3EncryptionOption+  ( S3EncryptionOption+      ( ..,+        S3EncryptionOption_SSE_KMS,+        S3EncryptionOption_SSE_S3+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype S3EncryptionOption = S3EncryptionOption'+  { fromS3EncryptionOption ::+      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 S3EncryptionOption_SSE_KMS :: S3EncryptionOption+pattern S3EncryptionOption_SSE_KMS = S3EncryptionOption' "SSE_KMS"++pattern S3EncryptionOption_SSE_S3 :: S3EncryptionOption+pattern S3EncryptionOption_SSE_S3 = S3EncryptionOption' "SSE_S3"++{-# COMPLETE+  S3EncryptionOption_SSE_KMS,+  S3EncryptionOption_SSE_S3,+  S3EncryptionOption'+  #-}
+ gen/Amazonka/TimeStreamWrite/Types/Table.hs view
@@ -0,0 +1,176 @@+{-# 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.TimeStreamWrite.Types.Table+-- 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.TimeStreamWrite.Types.Table 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+import Amazonka.TimeStreamWrite.Types.MagneticStoreWriteProperties+import Amazonka.TimeStreamWrite.Types.RetentionProperties+import Amazonka.TimeStreamWrite.Types.TableStatus++-- | Table represents a database table in Timestream. Tables contain one or+-- more related time series. You can modify the retention duration of the+-- memory store and the magnetic store for a table.+--+-- /See:/ 'newTable' smart constructor.+data Table = Table'+  { -- | The Amazon Resource Name that uniquely identifies this table.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The time when the Timestream table was created.+    creationTime :: Prelude.Maybe Data.POSIX,+    -- | The name of the Timestream database that contains this table.+    databaseName :: Prelude.Maybe Prelude.Text,+    -- | The time when the Timestream table was last updated.+    lastUpdatedTime :: Prelude.Maybe Data.POSIX,+    -- | Contains properties to set on the table when enabling magnetic store+    -- writes.+    magneticStoreWriteProperties :: Prelude.Maybe MagneticStoreWriteProperties,+    -- | The retention duration for the memory store and magnetic store.+    retentionProperties :: Prelude.Maybe RetentionProperties,+    -- | The name of the Timestream table.+    tableName :: Prelude.Maybe Prelude.Text,+    -- | The current state of the table:+    --+    -- -   @DELETING@ - The table is being deleted.+    --+    -- -   @ACTIVE@ - The table is ready for use.+    tableStatus :: Prelude.Maybe TableStatus+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Table' 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', 'table_arn' - The Amazon Resource Name that uniquely identifies this table.+--+-- 'creationTime', 'table_creationTime' - The time when the Timestream table was created.+--+-- 'databaseName', 'table_databaseName' - The name of the Timestream database that contains this table.+--+-- 'lastUpdatedTime', 'table_lastUpdatedTime' - The time when the Timestream table was last updated.+--+-- 'magneticStoreWriteProperties', 'table_magneticStoreWriteProperties' - Contains properties to set on the table when enabling magnetic store+-- writes.+--+-- 'retentionProperties', 'table_retentionProperties' - The retention duration for the memory store and magnetic store.+--+-- 'tableName', 'table_tableName' - The name of the Timestream table.+--+-- 'tableStatus', 'table_tableStatus' - The current state of the table:+--+-- -   @DELETING@ - The table is being deleted.+--+-- -   @ACTIVE@ - The table is ready for use.+newTable ::+  Table+newTable =+  Table'+    { arn = Prelude.Nothing,+      creationTime = Prelude.Nothing,+      databaseName = Prelude.Nothing,+      lastUpdatedTime = Prelude.Nothing,+      magneticStoreWriteProperties = Prelude.Nothing,+      retentionProperties = Prelude.Nothing,+      tableName = Prelude.Nothing,+      tableStatus = Prelude.Nothing+    }++-- | The Amazon Resource Name that uniquely identifies this table.+table_arn :: Lens.Lens' Table (Prelude.Maybe Prelude.Text)+table_arn = Lens.lens (\Table' {arn} -> arn) (\s@Table' {} a -> s {arn = a} :: Table)++-- | The time when the Timestream table was created.+table_creationTime :: Lens.Lens' Table (Prelude.Maybe Prelude.UTCTime)+table_creationTime = Lens.lens (\Table' {creationTime} -> creationTime) (\s@Table' {} a -> s {creationTime = a} :: Table) Prelude.. Lens.mapping Data._Time++-- | The name of the Timestream database that contains this table.+table_databaseName :: Lens.Lens' Table (Prelude.Maybe Prelude.Text)+table_databaseName = Lens.lens (\Table' {databaseName} -> databaseName) (\s@Table' {} a -> s {databaseName = a} :: Table)++-- | The time when the Timestream table was last updated.+table_lastUpdatedTime :: Lens.Lens' Table (Prelude.Maybe Prelude.UTCTime)+table_lastUpdatedTime = Lens.lens (\Table' {lastUpdatedTime} -> lastUpdatedTime) (\s@Table' {} a -> s {lastUpdatedTime = a} :: Table) Prelude.. Lens.mapping Data._Time++-- | Contains properties to set on the table when enabling magnetic store+-- writes.+table_magneticStoreWriteProperties :: Lens.Lens' Table (Prelude.Maybe MagneticStoreWriteProperties)+table_magneticStoreWriteProperties = Lens.lens (\Table' {magneticStoreWriteProperties} -> magneticStoreWriteProperties) (\s@Table' {} a -> s {magneticStoreWriteProperties = a} :: Table)++-- | The retention duration for the memory store and magnetic store.+table_retentionProperties :: Lens.Lens' Table (Prelude.Maybe RetentionProperties)+table_retentionProperties = Lens.lens (\Table' {retentionProperties} -> retentionProperties) (\s@Table' {} a -> s {retentionProperties = a} :: Table)++-- | The name of the Timestream table.+table_tableName :: Lens.Lens' Table (Prelude.Maybe Prelude.Text)+table_tableName = Lens.lens (\Table' {tableName} -> tableName) (\s@Table' {} a -> s {tableName = a} :: Table)++-- | The current state of the table:+--+-- -   @DELETING@ - The table is being deleted.+--+-- -   @ACTIVE@ - The table is ready for use.+table_tableStatus :: Lens.Lens' Table (Prelude.Maybe TableStatus)+table_tableStatus = Lens.lens (\Table' {tableStatus} -> tableStatus) (\s@Table' {} a -> s {tableStatus = a} :: Table)++instance Data.FromJSON Table where+  parseJSON =+    Data.withObject+      "Table"+      ( \x ->+          Table'+            Prelude.<$> (x Data..:? "Arn")+            Prelude.<*> (x Data..:? "CreationTime")+            Prelude.<*> (x Data..:? "DatabaseName")+            Prelude.<*> (x Data..:? "LastUpdatedTime")+            Prelude.<*> (x Data..:? "MagneticStoreWriteProperties")+            Prelude.<*> (x Data..:? "RetentionProperties")+            Prelude.<*> (x Data..:? "TableName")+            Prelude.<*> (x Data..:? "TableStatus")+      )++instance Prelude.Hashable Table where+  hashWithSalt _salt Table' {..} =+    _salt+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` creationTime+      `Prelude.hashWithSalt` databaseName+      `Prelude.hashWithSalt` lastUpdatedTime+      `Prelude.hashWithSalt` magneticStoreWriteProperties+      `Prelude.hashWithSalt` retentionProperties+      `Prelude.hashWithSalt` tableName+      `Prelude.hashWithSalt` tableStatus++instance Prelude.NFData Table where+  rnf Table' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf creationTime+      `Prelude.seq` Prelude.rnf databaseName+      `Prelude.seq` Prelude.rnf lastUpdatedTime+      `Prelude.seq` Prelude.rnf magneticStoreWriteProperties+      `Prelude.seq` Prelude.rnf retentionProperties+      `Prelude.seq` Prelude.rnf tableName+      `Prelude.seq` Prelude.rnf tableStatus
+ gen/Amazonka/TimeStreamWrite/Types/TableStatus.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.TimeStreamWrite.Types.TableStatus+-- 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.TimeStreamWrite.Types.TableStatus+  ( TableStatus+      ( ..,+        TableStatus_ACTIVE,+        TableStatus_DELETING+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype TableStatus = TableStatus'+  { fromTableStatus ::+      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 TableStatus_ACTIVE :: TableStatus+pattern TableStatus_ACTIVE = TableStatus' "ACTIVE"++pattern TableStatus_DELETING :: TableStatus+pattern TableStatus_DELETING = TableStatus' "DELETING"++{-# COMPLETE+  TableStatus_ACTIVE,+  TableStatus_DELETING,+  TableStatus'+  #-}
+ gen/Amazonka/TimeStreamWrite/Types/Tag.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.TimeStreamWrite.Types.Tag+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.TimeStreamWrite.Types.Tag where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | A tag is a label that you assign to a Timestream database and\/or table.+-- Each tag consists of a key and an optional value, both of which you+-- define. Tags enable you to categorize databases and\/or tables, for+-- example, by purpose, owner, or environment.+--+-- /See:/ 'newTag' smart constructor.+data Tag = Tag'+  { -- | The key of the tag. Tag keys are case sensitive.+    key :: Prelude.Text,+    -- | The value of the tag. Tag values are case-sensitive and can be null.+    value :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Tag' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'key', 'tag_key' - The key of the tag. Tag keys are case sensitive.+--+-- 'value', 'tag_value' - The value of the tag. Tag values are case-sensitive and can be null.+newTag ::+  -- | 'key'+  Prelude.Text ->+  -- | 'value'+  Prelude.Text ->+  Tag+newTag pKey_ pValue_ =+  Tag' {key = pKey_, value = pValue_}++-- | The key of the tag. Tag keys are case sensitive.+tag_key :: Lens.Lens' Tag Prelude.Text+tag_key = Lens.lens (\Tag' {key} -> key) (\s@Tag' {} a -> s {key = a} :: Tag)++-- | The value of the tag. Tag values are case-sensitive and can be null.+tag_value :: Lens.Lens' Tag Prelude.Text+tag_value = Lens.lens (\Tag' {value} -> value) (\s@Tag' {} a -> s {value = a} :: Tag)++instance Data.FromJSON Tag where+  parseJSON =+    Data.withObject+      "Tag"+      ( \x ->+          Tag'+            Prelude.<$> (x Data..: "Key")+            Prelude.<*> (x Data..: "Value")+      )++instance Prelude.Hashable Tag where+  hashWithSalt _salt Tag' {..} =+    _salt+      `Prelude.hashWithSalt` key+      `Prelude.hashWithSalt` value++instance Prelude.NFData Tag where+  rnf Tag' {..} =+    Prelude.rnf key `Prelude.seq` Prelude.rnf value++instance Data.ToJSON Tag where+  toJSON Tag' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("Key" Data..= key),+            Prelude.Just ("Value" Data..= value)+          ]+      )
+ gen/Amazonka/TimeStreamWrite/Types/TimeUnit.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.TimeStreamWrite.Types.TimeUnit+-- 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.TimeStreamWrite.Types.TimeUnit+  ( TimeUnit+      ( ..,+        TimeUnit_MICROSECONDS,+        TimeUnit_MILLISECONDS,+        TimeUnit_NANOSECONDS,+        TimeUnit_SECONDS+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype TimeUnit = TimeUnit'+  { fromTimeUnit ::+      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 TimeUnit_MICROSECONDS :: TimeUnit+pattern TimeUnit_MICROSECONDS = TimeUnit' "MICROSECONDS"++pattern TimeUnit_MILLISECONDS :: TimeUnit+pattern TimeUnit_MILLISECONDS = TimeUnit' "MILLISECONDS"++pattern TimeUnit_NANOSECONDS :: TimeUnit+pattern TimeUnit_NANOSECONDS = TimeUnit' "NANOSECONDS"++pattern TimeUnit_SECONDS :: TimeUnit+pattern TimeUnit_SECONDS = TimeUnit' "SECONDS"++{-# COMPLETE+  TimeUnit_MICROSECONDS,+  TimeUnit_MILLISECONDS,+  TimeUnit_NANOSECONDS,+  TimeUnit_SECONDS,+  TimeUnit'+  #-}
+ gen/Amazonka/TimeStreamWrite/UntagResource.hs view
@@ -0,0 +1,177 @@+{-# 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.TimeStreamWrite.UntagResource+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Removes the association of tags from a Timestream resource.+module Amazonka.TimeStreamWrite.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 qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.TimeStreamWrite.Types++-- | /See:/ 'newUntagResource' smart constructor.+data UntagResource = UntagResource'+  { -- | The Timestream resource that the tags will be removed from. This value+    -- is an Amazon Resource Name (ARN).+    resourceARN :: Prelude.Text,+    -- | A list of tags keys. Existing tags of the resource whose keys are+    -- members of this list will be removed from the Timestream resource.+    tagKeys :: [Prelude.Text]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UntagResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceARN', 'untagResource_resourceARN' - The Timestream resource that the tags will be removed from. This value+-- is an Amazon Resource Name (ARN).+--+-- 'tagKeys', 'untagResource_tagKeys' - A list of tags keys. Existing tags of the resource whose keys are+-- members of this list will be removed from the Timestream resource.+newUntagResource ::+  -- | 'resourceARN'+  Prelude.Text ->+  UntagResource+newUntagResource pResourceARN_ =+  UntagResource'+    { resourceARN = pResourceARN_,+      tagKeys = Prelude.mempty+    }++-- | The Timestream resource that the tags will be removed from. This value+-- is an Amazon Resource Name (ARN).+untagResource_resourceARN :: Lens.Lens' UntagResource Prelude.Text+untagResource_resourceARN = Lens.lens (\UntagResource' {resourceARN} -> resourceARN) (\s@UntagResource' {} a -> s {resourceARN = a} :: UntagResource)++-- | A list of tags keys. Existing tags of the resource whose keys are+-- members of this list will be removed from the Timestream resource.+untagResource_tagKeys :: Lens.Lens' UntagResource [Prelude.Text]+untagResource_tagKeys = Lens.lens (\UntagResource' {tagKeys} -> tagKeys) (\s@UntagResource' {} a -> s {tagKeys = a} :: UntagResource) Prelude.. Lens.coerced++instance Core.AWSRequest UntagResource where+  type+    AWSResponse UntagResource =+      UntagResourceResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          UntagResourceResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UntagResource where+  hashWithSalt _salt UntagResource' {..} =+    _salt+      `Prelude.hashWithSalt` resourceARN+      `Prelude.hashWithSalt` tagKeys++instance Prelude.NFData UntagResource where+  rnf UntagResource' {..} =+    Prelude.rnf resourceARN+      `Prelude.seq` Prelude.rnf tagKeys++instance Data.ToHeaders UntagResource where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "Timestream_20181101.UntagResource" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UntagResource where+  toJSON UntagResource' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("ResourceARN" Data..= resourceARN),+            Prelude.Just ("TagKeys" Data..= tagKeys)+          ]+      )++instance Data.ToPath UntagResource where+  toPath = Prelude.const "/"++instance Data.ToQuery UntagResource where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUntagResourceResponse' smart constructor.+data UntagResourceResponse = UntagResourceResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UntagResourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'untagResourceResponse_httpStatus' - The response's http status code.+newUntagResourceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UntagResourceResponse+newUntagResourceResponse pHttpStatus_ =+  UntagResourceResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+untagResourceResponse_httpStatus :: Lens.Lens' UntagResourceResponse Prelude.Int+untagResourceResponse_httpStatus = Lens.lens (\UntagResourceResponse' {httpStatus} -> httpStatus) (\s@UntagResourceResponse' {} a -> s {httpStatus = a} :: UntagResourceResponse)++instance Prelude.NFData UntagResourceResponse where+  rnf UntagResourceResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/TimeStreamWrite/UpdateDatabase.hs view
@@ -0,0 +1,235 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.TimeStreamWrite.UpdateDatabase+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Modifies the KMS key for an existing database. While updating the+-- database, you must specify the database name and the identifier of the+-- new KMS key to be used (@KmsKeyId@). If there are any concurrent+-- @UpdateDatabase@ requests, first writer wins.+--+-- See+-- <https://docs.aws.amazon.com/timestream/latest/developerguide/code-samples.update-db.html code sample>+-- for details.+module Amazonka.TimeStreamWrite.UpdateDatabase+  ( -- * Creating a Request+    UpdateDatabase (..),+    newUpdateDatabase,++    -- * Request Lenses+    updateDatabase_databaseName,+    updateDatabase_kmsKeyId,++    -- * Destructuring the Response+    UpdateDatabaseResponse (..),+    newUpdateDatabaseResponse,++    -- * Response Lenses+    updateDatabaseResponse_database,+    updateDatabaseResponse_httpStatus,+  )+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.TimeStreamWrite.Types++-- | /See:/ 'newUpdateDatabase' smart constructor.+data UpdateDatabase = UpdateDatabase'+  { -- | The name of the database.+    databaseName :: Prelude.Text,+    -- | The identifier of the new KMS key (@KmsKeyId@) to be used to encrypt the+    -- data stored in the database. If the @KmsKeyId@ currently registered with+    -- the database is the same as the @KmsKeyId@ in the request, there will+    -- not be any update.+    --+    -- You can specify the @KmsKeyId@ using any of the following:+    --+    -- -   Key ID: @1234abcd-12ab-34cd-56ef-1234567890ab@+    --+    -- -   Key ARN:+    --     @arn:aws:kms:us-east-1:111122223333:key\/1234abcd-12ab-34cd-56ef-1234567890ab@+    --+    -- -   Alias name: @alias\/ExampleAlias@+    --+    -- -   Alias ARN: @arn:aws:kms:us-east-1:111122223333:alias\/ExampleAlias@+    kmsKeyId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateDatabase' 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:+--+-- 'databaseName', 'updateDatabase_databaseName' - The name of the database.+--+-- 'kmsKeyId', 'updateDatabase_kmsKeyId' - The identifier of the new KMS key (@KmsKeyId@) to be used to encrypt the+-- data stored in the database. If the @KmsKeyId@ currently registered with+-- the database is the same as the @KmsKeyId@ in the request, there will+-- not be any update.+--+-- You can specify the @KmsKeyId@ using any of the following:+--+-- -   Key ID: @1234abcd-12ab-34cd-56ef-1234567890ab@+--+-- -   Key ARN:+--     @arn:aws:kms:us-east-1:111122223333:key\/1234abcd-12ab-34cd-56ef-1234567890ab@+--+-- -   Alias name: @alias\/ExampleAlias@+--+-- -   Alias ARN: @arn:aws:kms:us-east-1:111122223333:alias\/ExampleAlias@+newUpdateDatabase ::+  -- | 'databaseName'+  Prelude.Text ->+  -- | 'kmsKeyId'+  Prelude.Text ->+  UpdateDatabase+newUpdateDatabase pDatabaseName_ pKmsKeyId_ =+  UpdateDatabase'+    { databaseName = pDatabaseName_,+      kmsKeyId = pKmsKeyId_+    }++-- | The name of the database.+updateDatabase_databaseName :: Lens.Lens' UpdateDatabase Prelude.Text+updateDatabase_databaseName = Lens.lens (\UpdateDatabase' {databaseName} -> databaseName) (\s@UpdateDatabase' {} a -> s {databaseName = a} :: UpdateDatabase)++-- | The identifier of the new KMS key (@KmsKeyId@) to be used to encrypt the+-- data stored in the database. If the @KmsKeyId@ currently registered with+-- the database is the same as the @KmsKeyId@ in the request, there will+-- not be any update.+--+-- You can specify the @KmsKeyId@ using any of the following:+--+-- -   Key ID: @1234abcd-12ab-34cd-56ef-1234567890ab@+--+-- -   Key ARN:+--     @arn:aws:kms:us-east-1:111122223333:key\/1234abcd-12ab-34cd-56ef-1234567890ab@+--+-- -   Alias name: @alias\/ExampleAlias@+--+-- -   Alias ARN: @arn:aws:kms:us-east-1:111122223333:alias\/ExampleAlias@+updateDatabase_kmsKeyId :: Lens.Lens' UpdateDatabase Prelude.Text+updateDatabase_kmsKeyId = Lens.lens (\UpdateDatabase' {kmsKeyId} -> kmsKeyId) (\s@UpdateDatabase' {} a -> s {kmsKeyId = a} :: UpdateDatabase)++instance Core.AWSRequest UpdateDatabase where+  type+    AWSResponse UpdateDatabase =+      UpdateDatabaseResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateDatabaseResponse'+            Prelude.<$> (x Data..?> "Database")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateDatabase where+  hashWithSalt _salt UpdateDatabase' {..} =+    _salt+      `Prelude.hashWithSalt` databaseName+      `Prelude.hashWithSalt` kmsKeyId++instance Prelude.NFData UpdateDatabase where+  rnf UpdateDatabase' {..} =+    Prelude.rnf databaseName+      `Prelude.seq` Prelude.rnf kmsKeyId++instance Data.ToHeaders UpdateDatabase where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "Timestream_20181101.UpdateDatabase" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateDatabase where+  toJSON UpdateDatabase' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("DatabaseName" Data..= databaseName),+            Prelude.Just ("KmsKeyId" Data..= kmsKeyId)+          ]+      )++instance Data.ToPath UpdateDatabase where+  toPath = Prelude.const "/"++instance Data.ToQuery UpdateDatabase where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateDatabaseResponse' smart constructor.+data UpdateDatabaseResponse = UpdateDatabaseResponse'+  { database :: Prelude.Maybe Database,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateDatabaseResponse' 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:+--+-- 'database', 'updateDatabaseResponse_database' - Undocumented member.+--+-- 'httpStatus', 'updateDatabaseResponse_httpStatus' - The response's http status code.+newUpdateDatabaseResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateDatabaseResponse+newUpdateDatabaseResponse pHttpStatus_ =+  UpdateDatabaseResponse'+    { database = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Undocumented member.+updateDatabaseResponse_database :: Lens.Lens' UpdateDatabaseResponse (Prelude.Maybe Database)+updateDatabaseResponse_database = Lens.lens (\UpdateDatabaseResponse' {database} -> database) (\s@UpdateDatabaseResponse' {} a -> s {database = a} :: UpdateDatabaseResponse)++-- | The response's http status code.+updateDatabaseResponse_httpStatus :: Lens.Lens' UpdateDatabaseResponse Prelude.Int+updateDatabaseResponse_httpStatus = Lens.lens (\UpdateDatabaseResponse' {httpStatus} -> httpStatus) (\s@UpdateDatabaseResponse' {} a -> s {httpStatus = a} :: UpdateDatabaseResponse)++instance Prelude.NFData UpdateDatabaseResponse where+  rnf UpdateDatabaseResponse' {..} =+    Prelude.rnf database+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/TimeStreamWrite/UpdateTable.hs view
@@ -0,0 +1,228 @@+{-# 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.TimeStreamWrite.UpdateTable+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Modifies the retention duration of the memory store and magnetic store+-- for your Timestream table. Note that the change in retention duration+-- takes effect immediately. For example, if the retention period of the+-- memory store was initially set to 2 hours and then changed to 24 hours,+-- the memory store will be capable of holding 24 hours of data, but will+-- be populated with 24 hours of data 22 hours after this change was made.+-- Timestream does not retrieve data from the magnetic store to populate+-- the memory store.+--+-- See+-- <https://docs.aws.amazon.com/timestream/latest/developerguide/code-samples.update-table.html code sample>+-- for details.+module Amazonka.TimeStreamWrite.UpdateTable+  ( -- * Creating a Request+    UpdateTable (..),+    newUpdateTable,++    -- * Request Lenses+    updateTable_magneticStoreWriteProperties,+    updateTable_retentionProperties,+    updateTable_databaseName,+    updateTable_tableName,++    -- * Destructuring the Response+    UpdateTableResponse (..),+    newUpdateTableResponse,++    -- * Response Lenses+    updateTableResponse_table,+    updateTableResponse_httpStatus,+  )+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.TimeStreamWrite.Types++-- | /See:/ 'newUpdateTable' smart constructor.+data UpdateTable = UpdateTable'+  { -- | Contains properties to set on the table when enabling magnetic store+    -- writes.+    magneticStoreWriteProperties :: Prelude.Maybe MagneticStoreWriteProperties,+    -- | The retention duration of the memory store and the magnetic store.+    retentionProperties :: Prelude.Maybe RetentionProperties,+    -- | The name of the Timestream database.+    databaseName :: Prelude.Text,+    -- | The name of the Timestream table.+    tableName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateTable' 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:+--+-- 'magneticStoreWriteProperties', 'updateTable_magneticStoreWriteProperties' - Contains properties to set on the table when enabling magnetic store+-- writes.+--+-- 'retentionProperties', 'updateTable_retentionProperties' - The retention duration of the memory store and the magnetic store.+--+-- 'databaseName', 'updateTable_databaseName' - The name of the Timestream database.+--+-- 'tableName', 'updateTable_tableName' - The name of the Timestream table.+newUpdateTable ::+  -- | 'databaseName'+  Prelude.Text ->+  -- | 'tableName'+  Prelude.Text ->+  UpdateTable+newUpdateTable pDatabaseName_ pTableName_ =+  UpdateTable'+    { magneticStoreWriteProperties =+        Prelude.Nothing,+      retentionProperties = Prelude.Nothing,+      databaseName = pDatabaseName_,+      tableName = pTableName_+    }++-- | Contains properties to set on the table when enabling magnetic store+-- writes.+updateTable_magneticStoreWriteProperties :: Lens.Lens' UpdateTable (Prelude.Maybe MagneticStoreWriteProperties)+updateTable_magneticStoreWriteProperties = Lens.lens (\UpdateTable' {magneticStoreWriteProperties} -> magneticStoreWriteProperties) (\s@UpdateTable' {} a -> s {magneticStoreWriteProperties = a} :: UpdateTable)++-- | The retention duration of the memory store and the magnetic store.+updateTable_retentionProperties :: Lens.Lens' UpdateTable (Prelude.Maybe RetentionProperties)+updateTable_retentionProperties = Lens.lens (\UpdateTable' {retentionProperties} -> retentionProperties) (\s@UpdateTable' {} a -> s {retentionProperties = a} :: UpdateTable)++-- | The name of the Timestream database.+updateTable_databaseName :: Lens.Lens' UpdateTable Prelude.Text+updateTable_databaseName = Lens.lens (\UpdateTable' {databaseName} -> databaseName) (\s@UpdateTable' {} a -> s {databaseName = a} :: UpdateTable)++-- | The name of the Timestream table.+updateTable_tableName :: Lens.Lens' UpdateTable Prelude.Text+updateTable_tableName = Lens.lens (\UpdateTable' {tableName} -> tableName) (\s@UpdateTable' {} a -> s {tableName = a} :: UpdateTable)++instance Core.AWSRequest UpdateTable where+  type AWSResponse UpdateTable = UpdateTableResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateTableResponse'+            Prelude.<$> (x Data..?> "Table")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateTable where+  hashWithSalt _salt UpdateTable' {..} =+    _salt+      `Prelude.hashWithSalt` magneticStoreWriteProperties+      `Prelude.hashWithSalt` retentionProperties+      `Prelude.hashWithSalt` databaseName+      `Prelude.hashWithSalt` tableName++instance Prelude.NFData UpdateTable where+  rnf UpdateTable' {..} =+    Prelude.rnf magneticStoreWriteProperties+      `Prelude.seq` Prelude.rnf retentionProperties+      `Prelude.seq` Prelude.rnf databaseName+      `Prelude.seq` Prelude.rnf tableName++instance Data.ToHeaders UpdateTable where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "Timestream_20181101.UpdateTable" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateTable where+  toJSON UpdateTable' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("MagneticStoreWriteProperties" Data..=)+              Prelude.<$> magneticStoreWriteProperties,+            ("RetentionProperties" Data..=)+              Prelude.<$> retentionProperties,+            Prelude.Just ("DatabaseName" Data..= databaseName),+            Prelude.Just ("TableName" Data..= tableName)+          ]+      )++instance Data.ToPath UpdateTable where+  toPath = Prelude.const "/"++instance Data.ToQuery UpdateTable where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateTableResponse' smart constructor.+data UpdateTableResponse = UpdateTableResponse'+  { -- | The updated Timestream table.+    table :: Prelude.Maybe Table,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateTableResponse' 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:+--+-- 'table', 'updateTableResponse_table' - The updated Timestream table.+--+-- 'httpStatus', 'updateTableResponse_httpStatus' - The response's http status code.+newUpdateTableResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateTableResponse+newUpdateTableResponse pHttpStatus_ =+  UpdateTableResponse'+    { table = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The updated Timestream table.+updateTableResponse_table :: Lens.Lens' UpdateTableResponse (Prelude.Maybe Table)+updateTableResponse_table = Lens.lens (\UpdateTableResponse' {table} -> table) (\s@UpdateTableResponse' {} a -> s {table = a} :: UpdateTableResponse)++-- | The response's http status code.+updateTableResponse_httpStatus :: Lens.Lens' UpdateTableResponse Prelude.Int+updateTableResponse_httpStatus = Lens.lens (\UpdateTableResponse' {httpStatus} -> httpStatus) (\s@UpdateTableResponse' {} a -> s {httpStatus = a} :: UpdateTableResponse)++instance Prelude.NFData UpdateTableResponse where+  rnf UpdateTableResponse' {..} =+    Prelude.rnf table+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/TimeStreamWrite/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.TimeStreamWrite.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.TimeStreamWrite.Waiters 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+import Amazonka.TimeStreamWrite.Lens+import Amazonka.TimeStreamWrite.Types
+ gen/Amazonka/TimeStreamWrite/WriteRecords.hs view
@@ -0,0 +1,281 @@+{-# 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.TimeStreamWrite.WriteRecords+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- The WriteRecords operation enables you to write your time series data+-- into Timestream. You can specify a single data point or a batch of data+-- points to be inserted into the system. Timestream offers you with a+-- flexible schema that auto detects the column names and data types for+-- your Timestream tables based on the dimension names and data types of+-- the data points you specify when invoking writes into the database.+-- Timestream support eventual consistency read semantics. This means that+-- when you query data immediately after writing a batch of data into+-- Timestream, the query results might not reflect the results of a+-- recently completed write operation. The results may also include some+-- stale data. If you repeat the query request after a short time, the+-- results should return the latest data.+-- <https://docs.aws.amazon.com/timestream/latest/developerguide/ts-limits.html Service quotas apply>.+--+-- See+-- <https://docs.aws.amazon.com/timestream/latest/developerguide/code-samples.write.html code sample>+-- for details.+--+-- __Upserts__+--+-- You can use the @Version@ parameter in a @WriteRecords@ request to+-- update data points. Timestream tracks a version number with each record.+-- @Version@ defaults to @1@ when not specified for the record in the+-- request. Timestream will update an existing record’s measure value along+-- with its @Version@ upon receiving a write request with a higher+-- @Version@ number for that record. Upon receiving an update request where+-- the measure value is the same as that of the existing record, Timestream+-- still updates @Version@, if it is greater than the existing value of+-- @Version@. You can update a data point as many times as desired, as long+-- as the value of @Version@ continuously increases.+--+-- For example, suppose you write a new record without indicating @Version@+-- in the request. Timestream will store this record, and set @Version@ to+-- @1@. Now, suppose you try to update this record with a @WriteRecords@+-- request of the same record with a different measure value but, like+-- before, do not provide @Version@. In this case, Timestream will reject+-- this update with a @RejectedRecordsException@ since the updated record’s+-- version is not greater than the existing value of Version. However, if+-- you were to resend the update request with @Version@ set to @2@,+-- Timestream would then succeed in updating the record’s value, and the+-- @Version@ would be set to @2@. Next, suppose you sent a @WriteRecords@+-- request with this same record and an identical measure value, but with+-- @Version@ set to @3@. In this case, Timestream would only update+-- @Version@ to @3@. Any further updates would need to send a version+-- number greater than @3@, or the update requests would receive a+-- @RejectedRecordsException@.+module Amazonka.TimeStreamWrite.WriteRecords+  ( -- * Creating a Request+    WriteRecords (..),+    newWriteRecords,++    -- * Request Lenses+    writeRecords_commonAttributes,+    writeRecords_databaseName,+    writeRecords_tableName,+    writeRecords_records,++    -- * Destructuring the Response+    WriteRecordsResponse (..),+    newWriteRecordsResponse,++    -- * Response Lenses+    writeRecordsResponse_recordsIngested,+    writeRecordsResponse_httpStatus,+  )+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+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.TimeStreamWrite.Types++-- | /See:/ 'newWriteRecords' smart constructor.+data WriteRecords = WriteRecords'+  { -- | A record containing the common measure, dimension, time, and version+    -- attributes shared across all the records in the request. The measure and+    -- dimension attributes specified will be merged with the measure and+    -- dimension attributes in the records object when the data is written into+    -- Timestream. Dimensions may not overlap, or a @ValidationException@ will+    -- be thrown. In other words, a record must contain dimensions with unique+    -- names.+    commonAttributes :: Prelude.Maybe Record,+    -- | The name of the Timestream database.+    databaseName :: Prelude.Text,+    -- | The name of the Timestream table.+    tableName :: Prelude.Text,+    -- | An array of records containing the unique measure, dimension, time, and+    -- version attributes for each time series data point.+    records :: Prelude.NonEmpty Record+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'WriteRecords' 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:+--+-- 'commonAttributes', 'writeRecords_commonAttributes' - A record containing the common measure, dimension, time, and version+-- attributes shared across all the records in the request. The measure and+-- dimension attributes specified will be merged with the measure and+-- dimension attributes in the records object when the data is written into+-- Timestream. Dimensions may not overlap, or a @ValidationException@ will+-- be thrown. In other words, a record must contain dimensions with unique+-- names.+--+-- 'databaseName', 'writeRecords_databaseName' - The name of the Timestream database.+--+-- 'tableName', 'writeRecords_tableName' - The name of the Timestream table.+--+-- 'records', 'writeRecords_records' - An array of records containing the unique measure, dimension, time, and+-- version attributes for each time series data point.+newWriteRecords ::+  -- | 'databaseName'+  Prelude.Text ->+  -- | 'tableName'+  Prelude.Text ->+  -- | 'records'+  Prelude.NonEmpty Record ->+  WriteRecords+newWriteRecords pDatabaseName_ pTableName_ pRecords_ =+  WriteRecords'+    { commonAttributes = Prelude.Nothing,+      databaseName = pDatabaseName_,+      tableName = pTableName_,+      records = Lens.coerced Lens.# pRecords_+    }++-- | A record containing the common measure, dimension, time, and version+-- attributes shared across all the records in the request. The measure and+-- dimension attributes specified will be merged with the measure and+-- dimension attributes in the records object when the data is written into+-- Timestream. Dimensions may not overlap, or a @ValidationException@ will+-- be thrown. In other words, a record must contain dimensions with unique+-- names.+writeRecords_commonAttributes :: Lens.Lens' WriteRecords (Prelude.Maybe Record)+writeRecords_commonAttributes = Lens.lens (\WriteRecords' {commonAttributes} -> commonAttributes) (\s@WriteRecords' {} a -> s {commonAttributes = a} :: WriteRecords)++-- | The name of the Timestream database.+writeRecords_databaseName :: Lens.Lens' WriteRecords Prelude.Text+writeRecords_databaseName = Lens.lens (\WriteRecords' {databaseName} -> databaseName) (\s@WriteRecords' {} a -> s {databaseName = a} :: WriteRecords)++-- | The name of the Timestream table.+writeRecords_tableName :: Lens.Lens' WriteRecords Prelude.Text+writeRecords_tableName = Lens.lens (\WriteRecords' {tableName} -> tableName) (\s@WriteRecords' {} a -> s {tableName = a} :: WriteRecords)++-- | An array of records containing the unique measure, dimension, time, and+-- version attributes for each time series data point.+writeRecords_records :: Lens.Lens' WriteRecords (Prelude.NonEmpty Record)+writeRecords_records = Lens.lens (\WriteRecords' {records} -> records) (\s@WriteRecords' {} a -> s {records = a} :: WriteRecords) Prelude.. Lens.coerced++instance Core.AWSRequest WriteRecords where+  type AWSResponse WriteRecords = WriteRecordsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          WriteRecordsResponse'+            Prelude.<$> (x Data..?> "RecordsIngested")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable WriteRecords where+  hashWithSalt _salt WriteRecords' {..} =+    _salt+      `Prelude.hashWithSalt` commonAttributes+      `Prelude.hashWithSalt` databaseName+      `Prelude.hashWithSalt` tableName+      `Prelude.hashWithSalt` records++instance Prelude.NFData WriteRecords where+  rnf WriteRecords' {..} =+    Prelude.rnf commonAttributes+      `Prelude.seq` Prelude.rnf databaseName+      `Prelude.seq` Prelude.rnf tableName+      `Prelude.seq` Prelude.rnf records++instance Data.ToHeaders WriteRecords where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "Timestream_20181101.WriteRecords" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.0" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON WriteRecords where+  toJSON WriteRecords' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("CommonAttributes" Data..=)+              Prelude.<$> commonAttributes,+            Prelude.Just ("DatabaseName" Data..= databaseName),+            Prelude.Just ("TableName" Data..= tableName),+            Prelude.Just ("Records" Data..= records)+          ]+      )++instance Data.ToPath WriteRecords where+  toPath = Prelude.const "/"++instance Data.ToQuery WriteRecords where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newWriteRecordsResponse' smart constructor.+data WriteRecordsResponse = WriteRecordsResponse'+  { -- | Information on the records ingested by this request.+    recordsIngested :: Prelude.Maybe RecordsIngested,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'WriteRecordsResponse' 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:+--+-- 'recordsIngested', 'writeRecordsResponse_recordsIngested' - Information on the records ingested by this request.+--+-- 'httpStatus', 'writeRecordsResponse_httpStatus' - The response's http status code.+newWriteRecordsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  WriteRecordsResponse+newWriteRecordsResponse pHttpStatus_ =+  WriteRecordsResponse'+    { recordsIngested =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Information on the records ingested by this request.+writeRecordsResponse_recordsIngested :: Lens.Lens' WriteRecordsResponse (Prelude.Maybe RecordsIngested)+writeRecordsResponse_recordsIngested = Lens.lens (\WriteRecordsResponse' {recordsIngested} -> recordsIngested) (\s@WriteRecordsResponse' {} a -> s {recordsIngested = a} :: WriteRecordsResponse)++-- | The response's http status code.+writeRecordsResponse_httpStatus :: Lens.Lens' WriteRecordsResponse Prelude.Int+writeRecordsResponse_httpStatus = Lens.lens (\WriteRecordsResponse' {httpStatus} -> httpStatus) (\s@WriteRecordsResponse' {} a -> s {httpStatus = a} :: WriteRecordsResponse)++instance Prelude.NFData WriteRecordsResponse where+  rnf WriteRecordsResponse' {..} =+    Prelude.rnf recordsIngested+      `Prelude.seq` Prelude.rnf httpStatus
+ 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.TimeStreamWrite+import Test.Amazonka.TimeStreamWrite.Internal+import Test.Tasty++main :: IO ()+main =+  defaultMain $+    testGroup+      "TimeStreamWrite"+      [ testGroup "tests" tests,+        testGroup "fixtures" fixtures+      ]
+ test/Test/Amazonka/Gen/TimeStreamWrite.hs view
@@ -0,0 +1,338 @@+{-# 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.TimeStreamWrite+-- 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.TimeStreamWrite where++import Amazonka.TimeStreamWrite+import qualified Data.Proxy as Proxy+import Test.Amazonka.Fixture+import Test.Amazonka.Prelude+import Test.Amazonka.TimeStreamWrite.Internal+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"+--         [ requestCreateDatabase $+--             newCreateDatabase+--+--         , requestCreateTable $+--             newCreateTable+--+--         , requestDeleteDatabase $+--             newDeleteDatabase+--+--         , requestDeleteTable $+--             newDeleteTable+--+--         , requestDescribeDatabase $+--             newDescribeDatabase+--+--         , requestDescribeEndpoints $+--             newDescribeEndpoints+--+--         , requestDescribeTable $+--             newDescribeTable+--+--         , requestListDatabases $+--             newListDatabases+--+--         , requestListTables $+--             newListTables+--+--         , requestListTagsForResource $+--             newListTagsForResource+--+--         , requestTagResource $+--             newTagResource+--+--         , requestUntagResource $+--             newUntagResource+--+--         , requestUpdateDatabase $+--             newUpdateDatabase+--+--         , requestUpdateTable $+--             newUpdateTable+--+--         , requestWriteRecords $+--             newWriteRecords+--+--           ]++--     , testGroup "response"+--         [ responseCreateDatabase $+--             newCreateDatabaseResponse+--+--         , responseCreateTable $+--             newCreateTableResponse+--+--         , responseDeleteDatabase $+--             newDeleteDatabaseResponse+--+--         , responseDeleteTable $+--             newDeleteTableResponse+--+--         , responseDescribeDatabase $+--             newDescribeDatabaseResponse+--+--         , responseDescribeEndpoints $+--             newDescribeEndpointsResponse+--+--         , responseDescribeTable $+--             newDescribeTableResponse+--+--         , responseListDatabases $+--             newListDatabasesResponse+--+--         , responseListTables $+--             newListTablesResponse+--+--         , responseListTagsForResource $+--             newListTagsForResourceResponse+--+--         , responseTagResource $+--             newTagResourceResponse+--+--         , responseUntagResource $+--             newUntagResourceResponse+--+--         , responseUpdateDatabase $+--             newUpdateDatabaseResponse+--+--         , responseUpdateTable $+--             newUpdateTableResponse+--+--         , responseWriteRecords $+--             newWriteRecordsResponse+--+--           ]+--     ]++-- Requests++requestCreateDatabase :: CreateDatabase -> TestTree+requestCreateDatabase =+  req+    "CreateDatabase"+    "fixture/CreateDatabase.yaml"++requestCreateTable :: CreateTable -> TestTree+requestCreateTable =+  req+    "CreateTable"+    "fixture/CreateTable.yaml"++requestDeleteDatabase :: DeleteDatabase -> TestTree+requestDeleteDatabase =+  req+    "DeleteDatabase"+    "fixture/DeleteDatabase.yaml"++requestDeleteTable :: DeleteTable -> TestTree+requestDeleteTable =+  req+    "DeleteTable"+    "fixture/DeleteTable.yaml"++requestDescribeDatabase :: DescribeDatabase -> TestTree+requestDescribeDatabase =+  req+    "DescribeDatabase"+    "fixture/DescribeDatabase.yaml"++requestDescribeEndpoints :: DescribeEndpoints -> TestTree+requestDescribeEndpoints =+  req+    "DescribeEndpoints"+    "fixture/DescribeEndpoints.yaml"++requestDescribeTable :: DescribeTable -> TestTree+requestDescribeTable =+  req+    "DescribeTable"+    "fixture/DescribeTable.yaml"++requestListDatabases :: ListDatabases -> TestTree+requestListDatabases =+  req+    "ListDatabases"+    "fixture/ListDatabases.yaml"++requestListTables :: ListTables -> TestTree+requestListTables =+  req+    "ListTables"+    "fixture/ListTables.yaml"++requestListTagsForResource :: ListTagsForResource -> TestTree+requestListTagsForResource =+  req+    "ListTagsForResource"+    "fixture/ListTagsForResource.yaml"++requestTagResource :: TagResource -> TestTree+requestTagResource =+  req+    "TagResource"+    "fixture/TagResource.yaml"++requestUntagResource :: UntagResource -> TestTree+requestUntagResource =+  req+    "UntagResource"+    "fixture/UntagResource.yaml"++requestUpdateDatabase :: UpdateDatabase -> TestTree+requestUpdateDatabase =+  req+    "UpdateDatabase"+    "fixture/UpdateDatabase.yaml"++requestUpdateTable :: UpdateTable -> TestTree+requestUpdateTable =+  req+    "UpdateTable"+    "fixture/UpdateTable.yaml"++requestWriteRecords :: WriteRecords -> TestTree+requestWriteRecords =+  req+    "WriteRecords"+    "fixture/WriteRecords.yaml"++-- Responses++responseCreateDatabase :: CreateDatabaseResponse -> TestTree+responseCreateDatabase =+  res+    "CreateDatabaseResponse"+    "fixture/CreateDatabaseResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateDatabase)++responseCreateTable :: CreateTableResponse -> TestTree+responseCreateTable =+  res+    "CreateTableResponse"+    "fixture/CreateTableResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateTable)++responseDeleteDatabase :: DeleteDatabaseResponse -> TestTree+responseDeleteDatabase =+  res+    "DeleteDatabaseResponse"+    "fixture/DeleteDatabaseResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteDatabase)++responseDeleteTable :: DeleteTableResponse -> TestTree+responseDeleteTable =+  res+    "DeleteTableResponse"+    "fixture/DeleteTableResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteTable)++responseDescribeDatabase :: DescribeDatabaseResponse -> TestTree+responseDescribeDatabase =+  res+    "DescribeDatabaseResponse"+    "fixture/DescribeDatabaseResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeDatabase)++responseDescribeEndpoints :: DescribeEndpointsResponse -> TestTree+responseDescribeEndpoints =+  res+    "DescribeEndpointsResponse"+    "fixture/DescribeEndpointsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeEndpoints)++responseDescribeTable :: DescribeTableResponse -> TestTree+responseDescribeTable =+  res+    "DescribeTableResponse"+    "fixture/DescribeTableResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeTable)++responseListDatabases :: ListDatabasesResponse -> TestTree+responseListDatabases =+  res+    "ListDatabasesResponse"+    "fixture/ListDatabasesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListDatabases)++responseListTables :: ListTablesResponse -> TestTree+responseListTables =+  res+    "ListTablesResponse"+    "fixture/ListTablesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListTables)++responseListTagsForResource :: ListTagsForResourceResponse -> TestTree+responseListTagsForResource =+  res+    "ListTagsForResourceResponse"+    "fixture/ListTagsForResourceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListTagsForResource)++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)++responseUpdateDatabase :: UpdateDatabaseResponse -> TestTree+responseUpdateDatabase =+  res+    "UpdateDatabaseResponse"+    "fixture/UpdateDatabaseResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateDatabase)++responseUpdateTable :: UpdateTableResponse -> TestTree+responseUpdateTable =+  res+    "UpdateTableResponse"+    "fixture/UpdateTableResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateTable)++responseWriteRecords :: WriteRecordsResponse -> TestTree+responseWriteRecords =+  res+    "WriteRecordsResponse"+    "fixture/WriteRecordsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy WriteRecords)
+ test/Test/Amazonka/TimeStreamWrite.hs view
@@ -0,0 +1,20 @@+-- |+-- Module      : Test.Amazonka.TimeStreamWrite+-- 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.TimeStreamWrite+  ( tests,+    fixtures,+  )+where++import Test.Tasty (TestTree)++tests :: [TestTree]+tests = []++fixtures :: [TestTree]+fixtures = []
+ test/Test/Amazonka/TimeStreamWrite/Internal.hs view
@@ -0,0 +1,8 @@+-- |+-- Module      : Test.Amazonka.TimeStreamWrite.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.TimeStreamWrite.Internal where