amazonka-ivs (empty) → 2.0
raw patch · 123 files changed
+11490/−0 lines, 123 filesdep +amazonka-coredep +amazonka-ivsdep +amazonka-test
Dependencies added: amazonka-core, amazonka-ivs, amazonka-test, base, bytestring, case-insensitive, tasty, tasty-hunit, text, time, unordered-containers
Files
- LICENSE +367/−0
- README.md +44/−0
- amazonka-ivs.cabal +138/−0
- fixture/BatchGetChannel.yaml +10/−0
- fixture/BatchGetChannelResponse.proto +0/−0
- fixture/BatchGetStreamKey.yaml +10/−0
- fixture/BatchGetStreamKeyResponse.proto +0/−0
- fixture/CreateChannel.yaml +10/−0
- fixture/CreateChannelResponse.proto +0/−0
- fixture/CreateRecordingConfiguration.yaml +10/−0
- fixture/CreateRecordingConfigurationResponse.proto +0/−0
- fixture/CreateStreamKey.yaml +10/−0
- fixture/CreateStreamKeyResponse.proto +0/−0
- fixture/DeleteChannel.yaml +10/−0
- fixture/DeleteChannelResponse.proto +0/−0
- fixture/DeletePlaybackKeyPair.yaml +10/−0
- fixture/DeletePlaybackKeyPairResponse.proto +0/−0
- fixture/DeleteRecordingConfiguration.yaml +10/−0
- fixture/DeleteRecordingConfigurationResponse.proto +0/−0
- fixture/DeleteStreamKey.yaml +10/−0
- fixture/DeleteStreamKeyResponse.proto +0/−0
- fixture/GetChannel.yaml +10/−0
- fixture/GetChannelResponse.proto +0/−0
- fixture/GetPlaybackKeyPair.yaml +10/−0
- fixture/GetPlaybackKeyPairResponse.proto +0/−0
- fixture/GetRecordingConfiguration.yaml +10/−0
- fixture/GetRecordingConfigurationResponse.proto +0/−0
- fixture/GetStream.yaml +10/−0
- fixture/GetStreamKey.yaml +10/−0
- fixture/GetStreamKeyResponse.proto +0/−0
- fixture/GetStreamResponse.proto +0/−0
- fixture/GetStreamSession.yaml +10/−0
- fixture/GetStreamSessionResponse.proto +0/−0
- fixture/ImportPlaybackKeyPair.yaml +10/−0
- fixture/ImportPlaybackKeyPairResponse.proto +0/−0
- fixture/ListChannels.yaml +10/−0
- fixture/ListChannelsResponse.proto +0/−0
- fixture/ListPlaybackKeyPairs.yaml +10/−0
- fixture/ListPlaybackKeyPairsResponse.proto +0/−0
- fixture/ListRecordingConfigurations.yaml +10/−0
- fixture/ListRecordingConfigurationsResponse.proto +0/−0
- fixture/ListStreamKeys.yaml +10/−0
- fixture/ListStreamKeysResponse.proto +0/−0
- fixture/ListStreamSessions.yaml +10/−0
- fixture/ListStreamSessionsResponse.proto +0/−0
- fixture/ListStreams.yaml +10/−0
- fixture/ListStreamsResponse.proto +0/−0
- fixture/ListTagsForResource.yaml +10/−0
- fixture/ListTagsForResourceResponse.proto +0/−0
- fixture/PutMetadata.yaml +10/−0
- fixture/PutMetadataResponse.proto +0/−0
- fixture/StopStream.yaml +10/−0
- fixture/StopStreamResponse.proto +0/−0
- fixture/TagResource.yaml +10/−0
- fixture/TagResourceResponse.proto +0/−0
- fixture/UntagResource.yaml +10/−0
- fixture/UntagResourceResponse.proto +0/−0
- fixture/UpdateChannel.yaml +10/−0
- fixture/UpdateChannelResponse.proto +0/−0
- gen/Amazonka/IVS.hs +624/−0
- gen/Amazonka/IVS/BatchGetChannel.hs +174/−0
- gen/Amazonka/IVS/BatchGetStreamKey.hs +175/−0
- gen/Amazonka/IVS/CreateChannel.hs +315/−0
- gen/Amazonka/IVS/CreateRecordingConfiguration.hs +275/−0
- gen/Amazonka/IVS/CreateStreamKey.hs +201/−0
- gen/Amazonka/IVS/DeleteChannel.hs +134/−0
- gen/Amazonka/IVS/DeletePlaybackKeyPair.hs +156/−0
- gen/Amazonka/IVS/DeleteRecordingConfiguration.hs +144/−0
- gen/Amazonka/IVS/DeleteStreamKey.hs +129/−0
- gen/Amazonka/IVS/GetChannel.hs +159/−0
- gen/Amazonka/IVS/GetPlaybackKeyPair.hs +167/−0
- gen/Amazonka/IVS/GetRecordingConfiguration.hs +165/−0
- gen/Amazonka/IVS/GetStream.hs +159/−0
- gen/Amazonka/IVS/GetStreamKey.hs +158/−0
- gen/Amazonka/IVS/GetStreamSession.hs +188/−0
- gen/Amazonka/IVS/ImportPlaybackKeyPair.hs +214/−0
- gen/Amazonka/IVS/Lens.hs +370/−0
- gen/Amazonka/IVS/ListChannels.hs +250/−0
- gen/Amazonka/IVS/ListPlaybackKeyPairs.hs +225/−0
- gen/Amazonka/IVS/ListRecordingConfigurations.hs +234/−0
- gen/Amazonka/IVS/ListStreamKeys.hs +234/−0
- gen/Amazonka/IVS/ListStreamSessions.hs +217/−0
- gen/Amazonka/IVS/ListStreams.hs +229/−0
- gen/Amazonka/IVS/ListTagsForResource.hs +157/−0
- gen/Amazonka/IVS/PutMetadata.hs +154/−0
- gen/Amazonka/IVS/StopStream.hs +152/−0
- gen/Amazonka/IVS/TagResource.hs +179/−0
- gen/Amazonka/IVS/Types.hs +396/−0
- gen/Amazonka/IVS/Types/AudioConfiguration.hs +113/−0
- gen/Amazonka/IVS/Types/BatchError.hs +96/−0
- gen/Amazonka/IVS/Types/Channel.hs +251/−0
- gen/Amazonka/IVS/Types/ChannelLatencyMode.hs +71/−0
- gen/Amazonka/IVS/Types/ChannelSummary.hs +163/−0
- gen/Amazonka/IVS/Types/ChannelType.hs +71/−0
- gen/Amazonka/IVS/Types/DestinationConfiguration.hs +77/−0
- gen/Amazonka/IVS/Types/IngestConfiguration.hs +86/−0
- gen/Amazonka/IVS/Types/PlaybackKeyPair.hs +120/−0
- gen/Amazonka/IVS/Types/PlaybackKeyPairSummary.hs +108/−0
- gen/Amazonka/IVS/Types/RecordingConfiguration.hs +190/−0
- gen/Amazonka/IVS/Types/RecordingConfigurationState.hs +76/−0
- gen/Amazonka/IVS/Types/RecordingConfigurationSummary.hs +157/−0
- gen/Amazonka/IVS/Types/RecordingMode.hs +71/−0
- gen/Amazonka/IVS/Types/S3DestinationConfiguration.hs +82/−0
- gen/Amazonka/IVS/Types/Stream.hs +167/−0
- gen/Amazonka/IVS/Types/StreamEvent.hs +100/−0
- gen/Amazonka/IVS/Types/StreamFilters.hs +67/−0
- gen/Amazonka/IVS/Types/StreamHealth.hs +76/−0
- gen/Amazonka/IVS/Types/StreamKey.hs +120/−0
- gen/Amazonka/IVS/Types/StreamKeySummary.hs +108/−0
- gen/Amazonka/IVS/Types/StreamSession.hs +171/−0
- gen/Amazonka/IVS/Types/StreamSessionSummary.hs +117/−0
- gen/Amazonka/IVS/Types/StreamState.hs +71/−0
- gen/Amazonka/IVS/Types/StreamSummary.hs +152/−0
- gen/Amazonka/IVS/Types/ThumbnailConfiguration.hs +129/−0
- gen/Amazonka/IVS/Types/VideoConfiguration.hs +170/−0
- gen/Amazonka/IVS/UntagResource.hs +176/−0
- gen/Amazonka/IVS/UpdateChannel.hs +298/−0
- gen/Amazonka/IVS/Waiters.hs +24/−0
- src/.gitkeep +0/−0
- test/Main.hs +23/−0
- test/Test/Amazonka/Gen/IVS.hs +598/−0
- test/Test/Amazonka/IVS.hs +20/−0
- test/Test/Amazonka/IVS/Internal.hs +8/−0
+ LICENSE view
@@ -0,0 +1,367 @@+Mozilla Public License Version 2.0+==================================++1. Definitions+--------------++1.1. "Contributor"+ means each individual or legal entity that creates, contributes to+ the creation of, or owns Covered Software.++1.2. "Contributor Version"+ means the combination of the Contributions of others (if any) used+ by a Contributor and that particular Contributor's Contribution.++1.3. "Contribution"+ means Covered Software of a particular Contributor.++1.4. "Covered Software"+ means Source Code Form to which the initial Contributor has attached+ the notice in Exhibit A, the Executable Form of such Source Code+ Form, and Modifications of such Source Code Form, in each case+ including portions thereof.++1.5. "Incompatible With Secondary Licenses"+ means++ (a) that the initial Contributor has attached the notice described+ in Exhibit B to the Covered Software; or++ (b) that the Covered Software was made available under the terms of+ version 1.1 or earlier of the License, but not also under the+ terms of a Secondary License.++1.6. "Executable Form"+ means any form of the work other than Source Code Form.++1.7. "Larger Work"+ means a work that combines Covered Software with other material, in+ a separate file or files, that is not Covered Software.++1.8. "License"+ means this document.++1.9. "Licensable"+ means having the right to grant, to the maximum extent possible,+ whether at the time of the initial grant or subsequently, any and+ all of the rights conveyed by this License.++1.10. "Modifications"+ means any of the following:++ (a) any file in Source Code Form that results from an addition to,+ deletion from, or modification of the contents of Covered+ Software; or++ (b) any new file in Source Code Form that contains any Covered+ Software.++1.11. "Patent Claims" of a Contributor+ means any patent claim(s), including without limitation, method,+ process, and apparatus claims, in any patent Licensable by such+ Contributor that would be infringed, but for the grant of the+ License, by the making, using, selling, offering for sale, having+ made, import, or transfer of either its Contributions or its+ Contributor Version.++1.12. "Secondary License"+ means either the GNU General Public License, Version 2.0, the GNU+ Lesser General Public License, Version 2.1, the GNU Affero General+ Public License, Version 3.0, or any later versions of those+ licenses.++1.13. "Source Code Form"+ means the form of the work preferred for making modifications.++1.14. "You" (or "Your")+ means an individual or a legal entity exercising rights under this+ License. For legal entities, "You" includes any entity that+ controls, is controlled by, or is under common control with You. For+ purposes of this definition, "control" means (a) the power, direct+ or indirect, to cause the direction or management of such entity,+ whether by contract or otherwise, or (b) ownership of more than+ fifty percent (50%) of the outstanding shares or beneficial+ ownership of such entity.++2. License Grants and Conditions+--------------------------------++2.1. Grants++Each Contributor hereby grants You a world-wide, royalty-free,+non-exclusive license:++(a) under intellectual property rights (other than patent or trademark)+ Licensable by such Contributor to use, reproduce, make available,+ modify, display, perform, distribute, and otherwise exploit its+ Contributions, either on an unmodified basis, with Modifications, or+ as part of a Larger Work; and++(b) under Patent Claims of such Contributor to make, use, sell, offer+ for sale, have made, import, and otherwise transfer either its+ Contributions or its Contributor Version.++2.2. Effective Date++The licenses granted in Section 2.1 with respect to any Contribution+become effective for each Contribution on the date the Contributor first+distributes such Contribution.++2.3. Limitations on Grant Scope++The licenses granted in this Section 2 are the only rights granted under+this License. No additional rights or licenses will be implied from the+distribution or licensing of Covered Software under this License.+Notwithstanding Section 2.1(b) above, no patent license is granted by a+Contributor:++(a) for any code that a Contributor has removed from Covered Software;+ or++(b) for infringements caused by: (i) Your and any other third party's+ modifications of Covered Software, or (ii) the combination of its+ Contributions with other software (except as part of its Contributor+ Version); or++(c) under Patent Claims infringed by Covered Software in the absence of+ its Contributions.++This License does not grant any rights in the trademarks, service marks,+or logos of any Contributor (except as may be necessary to comply with+the notice requirements in Section 3.4).++2.4. Subsequent Licenses++No Contributor makes additional grants as a result of Your choice to+distribute the Covered Software under a subsequent version of this+License (see Section 10.2) or under the terms of a Secondary License (if+permitted under the terms of Section 3.3).++2.5. Representation++Each Contributor represents that the Contributor believes its+Contributions are its original creation(s) or it has sufficient rights+to grant the rights to its Contributions conveyed by this License.++2.6. Fair Use++This License is not intended to limit any rights You have under+applicable copyright doctrines of fair use, fair dealing, or other+equivalents.++2.7. Conditions++Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted+in Section 2.1.++3. Responsibilities+-------------------++3.1. Distribution of Source Form++All distribution of Covered Software in Source Code Form, including any+Modifications that You create or to which You contribute, must be under+the terms of this License. You must inform recipients that the Source+Code Form of the Covered Software is governed by the terms of this+License, and how they can obtain a copy of this License. You may not+attempt to alter or restrict the recipients' rights in the Source Code+Form.++3.2. Distribution of Executable Form++If You distribute Covered Software in Executable Form then:++(a) such Covered Software must also be made available in Source Code+ Form, as described in Section 3.1, and You must inform recipients of+ the Executable Form how they can obtain a copy of such Source Code+ Form by reasonable means in a timely manner, at a charge no more+ than the cost of distribution to the recipient; and++(b) You may distribute such Executable Form under the terms of this+ License, or sublicense it under different terms, provided that the+ license for the Executable Form does not attempt to limit or alter+ the recipients' rights in the Source Code Form under this License.++3.3. Distribution of a Larger Work++You may create and distribute a Larger Work under terms of Your choice,+provided that You also comply with the requirements of this License for+the Covered Software. If the Larger Work is a combination of Covered+Software with a work governed by one or more Secondary Licenses, and the+Covered Software is not Incompatible With Secondary Licenses, this+License permits You to additionally distribute such Covered Software+under the terms of such Secondary License(s), so that the recipient of+the Larger Work may, at their option, further distribute the Covered+Software under the terms of either this License or such Secondary+License(s).++3.4. Notices++You may not remove or alter the substance of any license notices+(including copyright notices, patent notices, disclaimers of warranty,+or limitations of liability) contained within the Source Code Form of+the Covered Software, except that You may alter any license notices to+the extent required to remedy known factual inaccuracies.++3.5. Application of Additional Terms++You may choose to offer, and to charge a fee for, warranty, support,+indemnity or liability obligations to one or more recipients of Covered+Software. However, You may do so only on Your own behalf, and not on+behalf of any Contributor. You must make it absolutely clear that any+such warranty, support, indemnity, or liability obligation is offered by+You alone, and You hereby agree to indemnify every Contributor for any+liability incurred by such Contributor as a result of warranty, support,+indemnity or liability terms You offer. You may include additional+disclaimers of warranty and limitations of liability specific to any+jurisdiction.++4. Inability to Comply Due to Statute or Regulation+---------------------------------------------------++If it is impossible for You to comply with any of the terms of this+License with respect to some or all of the Covered Software due to+statute, judicial order, or regulation then You must: (a) comply with+the terms of this License to the maximum extent possible; and (b)+describe the limitations and the code they affect. Such description must+be placed in a text file included with all distributions of the Covered+Software under this License. Except to the extent prohibited by statute+or regulation, such description must be sufficiently detailed for a+recipient of ordinary skill to be able to understand it.++5. Termination+--------------++5.1. The rights granted under this License will terminate automatically+if You fail to comply with any of its terms. However, if You become+compliant, then the rights granted under this License from a particular+Contributor are reinstated (a) provisionally, unless and until such+Contributor explicitly and finally terminates Your grants, and (b) on an+ongoing basis, if such Contributor fails to notify You of the+non-compliance by some reasonable means prior to 60 days after You have+come back into compliance. Moreover, Your grants from a particular+Contributor are reinstated on an ongoing basis if such Contributor+notifies You of the non-compliance by some reasonable means, this is the+first time You have received notice of non-compliance with this License+from such Contributor, and You become compliant prior to 30 days after+Your receipt of the notice.++5.2. If You initiate litigation against any entity by asserting a patent+infringement claim (excluding declaratory judgment actions,+counter-claims, and cross-claims) alleging that a Contributor Version+directly or indirectly infringes any patent, then the rights granted to+You by any and all Contributors for the Covered Software under Section+2.1 of this License shall terminate.++5.3. In the event of termination under Sections 5.1 or 5.2 above, all+end user license agreements (excluding distributors and resellers) which+have been validly granted by You or Your distributors under this License+prior to termination shall survive termination.++************************************************************************+* *+* 6. Disclaimer of Warranty *+* ------------------------- *+* *+* Covered Software is provided under this License on an "as is" *+* basis, without warranty of any kind, either expressed, implied, or *+* statutory, including, without limitation, warranties that the *+* Covered Software is free of defects, merchantable, fit for a *+* particular purpose or non-infringing. The entire risk as to the *+* quality and performance of the Covered Software is with You. *+* Should any Covered Software prove defective in any respect, You *+* (not any Contributor) assume the cost of any necessary servicing, *+* repair, or correction. This disclaimer of warranty constitutes an *+* essential part of this License. No use of any Covered Software is *+* authorized under this License except under this disclaimer. *+* *+************************************************************************++************************************************************************+* *+* 7. Limitation of Liability *+* -------------------------- *+* *+* Under no circumstances and under no legal theory, whether tort *+* (including negligence), contract, or otherwise, shall any *+* Contributor, or anyone who distributes Covered Software as *+* permitted above, be liable to You for any direct, indirect, *+* special, incidental, or consequential damages of any character *+* including, without limitation, damages for lost profits, loss of *+* goodwill, work stoppage, computer failure or malfunction, or any *+* and all other commercial damages or losses, even if such party *+* shall have been informed of the possibility of such damages. This *+* limitation of liability shall not apply to liability for death or *+* personal injury resulting from such party's negligence to the *+* extent applicable law prohibits such limitation. Some *+* jurisdictions do not allow the exclusion or limitation of *+* incidental or consequential damages, so this exclusion and *+* limitation may not apply to You. *+* *+************************************************************************++8. Litigation+-------------++Any litigation relating to this License may be brought only in the+courts of a jurisdiction where the defendant maintains its principal+place of business and such litigation shall be governed by laws of that+jurisdiction, without reference to its conflict-of-law provisions.+Nothing in this Section shall prevent a party's ability to bring+cross-claims or counter-claims.++9. Miscellaneous+----------------++This License represents the complete agreement concerning the subject+matter hereof. If any provision of this License is held to be+unenforceable, such provision shall be reformed only to the extent+necessary to make it enforceable. Any law or regulation which provides+that the language of a contract shall be construed against the drafter+shall not be used to construe this License against a Contributor.++10. Versions of the License+---------------------------++10.1. New Versions++Mozilla Foundation is the license steward. Except as provided in Section+10.3, no one other than the license steward has the right to modify or+publish new versions of this License. Each version will be given a+distinguishing version number.++10.2. Effect of New Versions++You may distribute the Covered Software under the terms of the version+of the License under which You originally received the Covered Software,+or under the terms of any subsequent version published by the license+steward.++10.3. Modified Versions++If you create software not governed by this License, and you want to+create a new license for such software, you may create and use a+modified version of this License if you rename the license and remove+any references to the name of the license steward (except to note that+such modified license differs from this License).++10.4. Distributing Source Code Form that is Incompatible With Secondary+Licenses++If You choose to distribute Source Code Form that is Incompatible With+Secondary Licenses under the terms of this version of the License, the+notice described in Exhibit B of this License must be attached.++Exhibit A - Source Code Form License Notice+-------------------------------------------++ This Source Code Form is subject to the terms of the Mozilla Public+ License, v. 2.0. If a copy of the MPL was not distributed with this+ file, You can obtain one at http://mozilla.org/MPL/2.0/.++If it is not possible or desirable to put the notice in a particular+file, then You may include the notice in a location (such as a LICENSE+file in a relevant directory) where a recipient would be likely to look+for such a notice.++You may add additional accurate notices of copyright ownership.
+ README.md view
@@ -0,0 +1,44 @@+# Amazon Interactive Video Service SDK++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version+ +`2.0` - Derived from API version @2020-07-14@ of the AWS service descriptions, licensed under Apache 2.0.++## Description++Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-ivs)+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.IVS](http://hackage.haskell.org/package/amazonka-ivs/docs/Amazonka-IVS.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-ivs` 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-ivs.cabal view
@@ -0,0 +1,138 @@+cabal-version: 2.2+name: amazonka-ivs+version: 2.0+synopsis: Amazon Interactive Video Service 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 @2020-07-14@ 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.IVS.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.IVS" 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-ivs++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.IVS+ Amazonka.IVS.BatchGetChannel+ Amazonka.IVS.BatchGetStreamKey+ Amazonka.IVS.CreateChannel+ Amazonka.IVS.CreateRecordingConfiguration+ Amazonka.IVS.CreateStreamKey+ Amazonka.IVS.DeleteChannel+ Amazonka.IVS.DeletePlaybackKeyPair+ Amazonka.IVS.DeleteRecordingConfiguration+ Amazonka.IVS.DeleteStreamKey+ Amazonka.IVS.GetChannel+ Amazonka.IVS.GetPlaybackKeyPair+ Amazonka.IVS.GetRecordingConfiguration+ Amazonka.IVS.GetStream+ Amazonka.IVS.GetStreamKey+ Amazonka.IVS.GetStreamSession+ Amazonka.IVS.ImportPlaybackKeyPair+ Amazonka.IVS.Lens+ Amazonka.IVS.ListChannels+ Amazonka.IVS.ListPlaybackKeyPairs+ Amazonka.IVS.ListRecordingConfigurations+ Amazonka.IVS.ListStreamKeys+ Amazonka.IVS.ListStreams+ Amazonka.IVS.ListStreamSessions+ Amazonka.IVS.ListTagsForResource+ Amazonka.IVS.PutMetadata+ Amazonka.IVS.StopStream+ Amazonka.IVS.TagResource+ Amazonka.IVS.Types+ Amazonka.IVS.Types.AudioConfiguration+ Amazonka.IVS.Types.BatchError+ Amazonka.IVS.Types.Channel+ Amazonka.IVS.Types.ChannelLatencyMode+ Amazonka.IVS.Types.ChannelSummary+ Amazonka.IVS.Types.ChannelType+ Amazonka.IVS.Types.DestinationConfiguration+ Amazonka.IVS.Types.IngestConfiguration+ Amazonka.IVS.Types.PlaybackKeyPair+ Amazonka.IVS.Types.PlaybackKeyPairSummary+ Amazonka.IVS.Types.RecordingConfiguration+ Amazonka.IVS.Types.RecordingConfigurationState+ Amazonka.IVS.Types.RecordingConfigurationSummary+ Amazonka.IVS.Types.RecordingMode+ Amazonka.IVS.Types.S3DestinationConfiguration+ Amazonka.IVS.Types.Stream+ Amazonka.IVS.Types.StreamEvent+ Amazonka.IVS.Types.StreamFilters+ Amazonka.IVS.Types.StreamHealth+ Amazonka.IVS.Types.StreamKey+ Amazonka.IVS.Types.StreamKeySummary+ Amazonka.IVS.Types.StreamSession+ Amazonka.IVS.Types.StreamSessionSummary+ Amazonka.IVS.Types.StreamState+ Amazonka.IVS.Types.StreamSummary+ Amazonka.IVS.Types.ThumbnailConfiguration+ Amazonka.IVS.Types.VideoConfiguration+ Amazonka.IVS.UntagResource+ Amazonka.IVS.UpdateChannel+ Amazonka.IVS.Waiters++ build-depends:+ , amazonka-core >=2.0 && <2.1+ , base >=4.12 && <5++test-suite amazonka-ivs-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.IVS+ Test.Amazonka.IVS+ Test.Amazonka.IVS.Internal++ build-depends:+ , amazonka-core >=2.0 && <2.1+ , amazonka-ivs+ , amazonka-test >=2.0 && <2.1+ , base+ , bytestring+ , case-insensitive+ , tasty+ , tasty-hunit+ , text+ , time+ , unordered-containers
+ fixture/BatchGetChannel.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ivs/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: ivs.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/BatchGetChannelResponse.proto view
+ fixture/BatchGetStreamKey.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ivs/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: ivs.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/BatchGetStreamKeyResponse.proto view
+ fixture/CreateChannel.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ivs/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: ivs.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/CreateChannelResponse.proto view
+ fixture/CreateRecordingConfiguration.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ivs/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: ivs.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/CreateRecordingConfigurationResponse.proto view
+ fixture/CreateStreamKey.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ivs/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: ivs.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/CreateStreamKeyResponse.proto view
+ fixture/DeleteChannel.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ivs/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: ivs.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/DeleteChannelResponse.proto view
+ fixture/DeletePlaybackKeyPair.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ivs/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: ivs.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/DeletePlaybackKeyPairResponse.proto view
+ fixture/DeleteRecordingConfiguration.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ivs/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: ivs.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/DeleteRecordingConfigurationResponse.proto view
+ fixture/DeleteStreamKey.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ivs/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: ivs.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/DeleteStreamKeyResponse.proto view
+ fixture/GetChannel.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ivs/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: ivs.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/GetChannelResponse.proto view
+ fixture/GetPlaybackKeyPair.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ivs/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: ivs.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/GetPlaybackKeyPairResponse.proto view
+ fixture/GetRecordingConfiguration.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ivs/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: ivs.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/GetRecordingConfigurationResponse.proto view
+ fixture/GetStream.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ivs/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: ivs.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/GetStreamKey.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ivs/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: ivs.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/GetStreamKeyResponse.proto view
+ fixture/GetStreamResponse.proto view
+ fixture/GetStreamSession.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ivs/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: ivs.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/GetStreamSessionResponse.proto view
+ fixture/ImportPlaybackKeyPair.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ivs/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: ivs.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/ImportPlaybackKeyPairResponse.proto view
+ fixture/ListChannels.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ivs/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: ivs.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/ListChannelsResponse.proto view
+ fixture/ListPlaybackKeyPairs.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ivs/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: ivs.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/ListPlaybackKeyPairsResponse.proto view
+ fixture/ListRecordingConfigurations.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ivs/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: ivs.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/ListRecordingConfigurationsResponse.proto view
+ fixture/ListStreamKeys.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ivs/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: ivs.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/ListStreamKeysResponse.proto view
+ fixture/ListStreamSessions.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ivs/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: ivs.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/ListStreamSessionsResponse.proto view
+ fixture/ListStreams.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ivs/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: ivs.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/ListStreamsResponse.proto view
+ fixture/ListTagsForResource.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ivs/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: ivs.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/PutMetadata.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ivs/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: ivs.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/PutMetadataResponse.proto view
+ fixture/StopStream.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ivs/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: ivs.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/StopStreamResponse.proto view
+ fixture/TagResource.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ivs/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: ivs.us-east-1.amazonaws.com+ Content-Type: application/x-www-form-urlencoded; charset=utf-8+ X-Amz-Content-SHA256: abcdef+ X-Amz-Date: 20091028T223200Z+body:+ ''
+ fixture/TagResourceResponse.proto view
+ fixture/UntagResource.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ivs/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: ivs.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/UpdateChannel.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ivs/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: ivs.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/UpdateChannelResponse.proto view
+ gen/Amazonka/IVS.hs view
@@ -0,0 +1,624 @@+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module : Amazonka.IVS+-- 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 @2020-07-14@ of the AWS service descriptions, licensed under Apache 2.0.+--+-- __Introduction__+--+-- The Amazon Interactive Video Service (IVS) API is REST compatible, using+-- a standard HTTP API and an Amazon Web Services EventBridge event stream+-- for responses. JSON is used for both requests and responses, including+-- errors.+--+-- The API is an Amazon Web Services regional service. For a list of+-- supported regions and Amazon IVS HTTPS service endpoints, see the+-- <https://docs.aws.amazon.com/general/latest/gr/ivs.html Amazon IVS page>+-- in the /Amazon Web Services General Reference/.+--+-- /__All API request parameters and URLs are case sensitive.__/+--+-- For a summary of notable documentation changes in each release, see+-- <https://docs.aws.amazon.com/ivs/latest/userguide/doc-history.html Document History>.+--+-- __Allowed Header Values__+--+-- - @ @__@Accept:@__@ @ application\/json+--+-- - @ @__@Accept-Encoding:@__@ @ gzip, deflate+--+-- - @ @__@Content-Type:@__@ @application\/json+--+-- __Resources__+--+-- The following resources contain information about your IVS live stream+-- (see+-- <https://docs.aws.amazon.com/ivs/latest/userguide/getting-started.html Getting Started with Amazon IVS>):+--+-- - Channel — Stores configuration data related to your live stream. You+-- first create a channel and then use the channel’s stream key to+-- start your live stream. See the Channel endpoints for more+-- information.+--+-- - Stream key — An identifier assigned by Amazon IVS when you create a+-- channel, which is then used to authorize streaming. See the+-- StreamKey endpoints for more information. /__Treat the stream key+-- like a secret, since it allows anyone to stream to the channel.__/+--+-- - Playback key pair — Video playback may be restricted using+-- playback-authorization tokens, which use public-key encryption. A+-- playback key pair is the public-private pair of keys used to sign+-- and validate the playback-authorization token. See the+-- PlaybackKeyPair endpoints for more information.+--+-- - Recording configuration — Stores configuration related to recording+-- a live stream and where to store the recorded content. Multiple+-- channels can reference the same recording configuration. See the+-- Recording Configuration endpoints for more information.+--+-- __Tagging__+--+-- A /tag/ is a metadata label that you assign to an Amazon Web Services+-- resource. A tag comprises a /key/ and a /value/, both set by you. For+-- example, you might set a tag as @topic:nature@ to label a particular+-- video category. See+-- <https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html Tagging Amazon Web Services Resources>+-- for more information, including restrictions that apply to tags and+-- \"Tag naming limits and requirements\"; Amazon IVS has no+-- service-specific constraints beyond what is documented there.+--+-- Tags can help you identify and organize your Amazon Web Services+-- resources. For example, you can use the same tag for different resources+-- to indicate that they are related. You can also use tags to manage+-- access (see+-- <https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html Access Tags>).+--+-- The Amazon IVS API has these tag-related endpoints: TagResource,+-- UntagResource, and ListTagsForResource. The following resources support+-- tagging: Channels, Stream Keys, Playback Key Pairs, and Recording+-- Configurations.+--+-- At most 50 tags can be applied to a resource.+--+-- __Authentication versus Authorization__+--+-- Note the differences between these concepts:+--+-- - /Authentication/ is about verifying identity. You need to be+-- authenticated to sign Amazon IVS API requests.+--+-- - /Authorization/ is about granting permissions. Your IAM roles need+-- to have permissions for Amazon IVS API requests. In addition,+-- authorization is needed to view+-- <https://docs.aws.amazon.com/ivs/latest/userguide/private-channels.html Amazon IVS private channels>.+-- (Private channels are channels that are enabled for \"playback+-- authorization.\")+--+-- __Authentication__+--+-- All Amazon IVS API requests must be authenticated with a signature. The+-- Amazon Web Services Command-Line Interface (CLI) and Amazon IVS Player+-- SDKs take care of signing the underlying API calls for you. However, if+-- your application calls the Amazon IVS API directly, it’s your+-- responsibility to sign the requests.+--+-- You generate a signature using valid Amazon Web Services credentials+-- that have permission to perform the requested action. For example, you+-- must sign PutMetadata requests with a signature generated from an IAM+-- user account that has the @ivs:PutMetadata@ permission.+--+-- For more information:+--+-- - Authentication and generating signatures — See+-- <https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html Authenticating Requests (Amazon Web Services Signature Version 4)>+-- in the /Amazon Web Services General Reference/.+--+-- - Managing Amazon IVS permissions — See+-- <https://docs.aws.amazon.com/ivs/latest/userguide/security-iam.html Identity and Access Management>+-- on the Security page of the /Amazon IVS User Guide/.+--+-- __Amazon Resource Names (ARNs)__+--+-- ARNs uniquely identify AWS resources. An ARN is required when you need+-- to specify a resource unambiguously across all of AWS, such as in IAM+-- policies and API calls. For more information, see+-- <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html Amazon Resource Names>+-- in the /AWS General Reference/.+--+-- __Channel Endpoints__+--+-- - CreateChannel — Creates a new channel and an associated stream key+-- to start streaming.+--+-- - GetChannel — Gets the channel configuration for the specified+-- channel ARN.+--+-- - BatchGetChannel — Performs GetChannel on multiple ARNs+-- simultaneously.+--+-- - ListChannels — Gets summary information about all channels in your+-- account, in the Amazon Web Services region where the API request is+-- processed. This list can be filtered to match a specified name or+-- recording-configuration ARN. Filters are mutually exclusive and+-- cannot be used together. If you try to use both filters, you will+-- get an error (409 Conflict Exception).+--+-- - UpdateChannel — Updates a channel\'s configuration. This does not+-- affect an ongoing stream of this channel. You must stop and restart+-- the stream for the changes to take effect.+--+-- - DeleteChannel — Deletes the specified channel.+--+-- __StreamKey Endpoints__+--+-- - CreateStreamKey — Creates a stream key, used to initiate a stream,+-- for the specified channel ARN.+--+-- - GetStreamKey — Gets stream key information for the specified ARN.+--+-- - BatchGetStreamKey — Performs GetStreamKey on multiple ARNs+-- simultaneously.+--+-- - ListStreamKeys — Gets summary information about stream keys for the+-- specified channel.+--+-- - DeleteStreamKey — Deletes the stream key for the specified ARN, so+-- it can no longer be used to stream.+--+-- __Stream Endpoints__+--+-- - GetStream — Gets information about the active (live) stream on a+-- specified channel.+--+-- - GetStreamSession — Gets metadata on a specified stream.+--+-- - ListStreams — Gets summary information about live streams in your+-- account, in the Amazon Web Services region where the API request is+-- processed.+--+-- - ListStreamSessions — Gets a summary of current and previous streams+-- for a specified channel in your account, in the AWS region where the+-- API request is processed.+--+-- - StopStream — Disconnects the incoming RTMPS stream for the specified+-- channel. Can be used in conjunction with DeleteStreamKey to prevent+-- further streaming to a channel.+--+-- - PutMetadata — Inserts metadata into the active stream of the+-- specified channel. At most 5 requests per second per channel are+-- allowed, each with a maximum 1 KB payload. (If 5 TPS is not+-- sufficient for your needs, we recommend batching your data into a+-- single PutMetadata call.) At most 155 requests per second per+-- account are allowed.+--+-- __PlaybackKeyPair Endpoints__+--+-- For more information, see+-- <https://docs.aws.amazon.com/ivs/latest/userguide/private-channels.html Setting Up Private Channels>+-- in the /Amazon IVS User Guide/.+--+-- - ImportPlaybackKeyPair — Imports the public portion of a new key pair+-- and returns its @arn@ and @fingerprint@. The @privateKey@ can then+-- be used to generate viewer authorization tokens, to grant viewers+-- access to private channels (channels enabled for playback+-- authorization).+--+-- - GetPlaybackKeyPair — Gets a specified playback authorization key+-- pair and returns the @arn@ and @fingerprint@. The @privateKey@ held+-- by the caller can be used to generate viewer authorization tokens,+-- to grant viewers access to private channels.+--+-- - ListPlaybackKeyPairs — Gets summary information about playback key+-- pairs.+--+-- - DeletePlaybackKeyPair — Deletes a specified authorization key pair.+-- This invalidates future viewer tokens generated using the key pair’s+-- @privateKey@.+--+-- __RecordingConfiguration Endpoints__+--+-- - CreateRecordingConfiguration — Creates a new recording+-- configuration, used to enable recording to Amazon S3.+--+-- - GetRecordingConfiguration — Gets the recording-configuration+-- metadata for the specified ARN.+--+-- - ListRecordingConfigurations — Gets summary information about all+-- recording configurations in your account, in the Amazon Web Services+-- region where the API request is processed.+--+-- - DeleteRecordingConfiguration — Deletes the recording configuration+-- for the specified ARN.+--+-- __Amazon Web Services Tags Endpoints__+--+-- - TagResource — Adds or updates tags for the Amazon Web Services+-- resource with the specified ARN.+--+-- - UntagResource — Removes tags from the resource with the specified+-- ARN.+--+-- - ListTagsForResource — Gets information about Amazon Web Services+-- tags for the specified ARN.+module Amazonka.IVS+ ( -- * Service Configuration+ defaultService,++ -- * Errors+ -- $errors++ -- ** AccessDeniedException+ _AccessDeniedException,++ -- ** ChannelNotBroadcasting+ _ChannelNotBroadcasting,++ -- ** ConflictException+ _ConflictException,++ -- ** InternalServerException+ _InternalServerException,++ -- ** PendingVerification+ _PendingVerification,++ -- ** ResourceNotFoundException+ _ResourceNotFoundException,++ -- ** ServiceQuotaExceededException+ _ServiceQuotaExceededException,++ -- ** StreamUnavailable+ _StreamUnavailable,++ -- ** ThrottlingException+ _ThrottlingException,++ -- ** ValidationException+ _ValidationException,++ -- * Waiters+ -- $waiters++ -- * Operations+ -- $operations++ -- ** BatchGetChannel+ BatchGetChannel (BatchGetChannel'),+ newBatchGetChannel,+ BatchGetChannelResponse (BatchGetChannelResponse'),+ newBatchGetChannelResponse,++ -- ** BatchGetStreamKey+ BatchGetStreamKey (BatchGetStreamKey'),+ newBatchGetStreamKey,+ BatchGetStreamKeyResponse (BatchGetStreamKeyResponse'),+ newBatchGetStreamKeyResponse,++ -- ** CreateChannel+ CreateChannel (CreateChannel'),+ newCreateChannel,+ CreateChannelResponse (CreateChannelResponse'),+ newCreateChannelResponse,++ -- ** CreateRecordingConfiguration+ CreateRecordingConfiguration (CreateRecordingConfiguration'),+ newCreateRecordingConfiguration,+ CreateRecordingConfigurationResponse (CreateRecordingConfigurationResponse'),+ newCreateRecordingConfigurationResponse,++ -- ** CreateStreamKey+ CreateStreamKey (CreateStreamKey'),+ newCreateStreamKey,+ CreateStreamKeyResponse (CreateStreamKeyResponse'),+ newCreateStreamKeyResponse,++ -- ** DeleteChannel+ DeleteChannel (DeleteChannel'),+ newDeleteChannel,+ DeleteChannelResponse (DeleteChannelResponse'),+ newDeleteChannelResponse,++ -- ** DeletePlaybackKeyPair+ DeletePlaybackKeyPair (DeletePlaybackKeyPair'),+ newDeletePlaybackKeyPair,+ DeletePlaybackKeyPairResponse (DeletePlaybackKeyPairResponse'),+ newDeletePlaybackKeyPairResponse,++ -- ** DeleteRecordingConfiguration+ DeleteRecordingConfiguration (DeleteRecordingConfiguration'),+ newDeleteRecordingConfiguration,+ DeleteRecordingConfigurationResponse (DeleteRecordingConfigurationResponse'),+ newDeleteRecordingConfigurationResponse,++ -- ** DeleteStreamKey+ DeleteStreamKey (DeleteStreamKey'),+ newDeleteStreamKey,+ DeleteStreamKeyResponse (DeleteStreamKeyResponse'),+ newDeleteStreamKeyResponse,++ -- ** GetChannel+ GetChannel (GetChannel'),+ newGetChannel,+ GetChannelResponse (GetChannelResponse'),+ newGetChannelResponse,++ -- ** GetPlaybackKeyPair+ GetPlaybackKeyPair (GetPlaybackKeyPair'),+ newGetPlaybackKeyPair,+ GetPlaybackKeyPairResponse (GetPlaybackKeyPairResponse'),+ newGetPlaybackKeyPairResponse,++ -- ** GetRecordingConfiguration+ GetRecordingConfiguration (GetRecordingConfiguration'),+ newGetRecordingConfiguration,+ GetRecordingConfigurationResponse (GetRecordingConfigurationResponse'),+ newGetRecordingConfigurationResponse,++ -- ** GetStream+ GetStream (GetStream'),+ newGetStream,+ GetStreamResponse (GetStreamResponse'),+ newGetStreamResponse,++ -- ** GetStreamKey+ GetStreamKey (GetStreamKey'),+ newGetStreamKey,+ GetStreamKeyResponse (GetStreamKeyResponse'),+ newGetStreamKeyResponse,++ -- ** GetStreamSession+ GetStreamSession (GetStreamSession'),+ newGetStreamSession,+ GetStreamSessionResponse (GetStreamSessionResponse'),+ newGetStreamSessionResponse,++ -- ** ImportPlaybackKeyPair+ ImportPlaybackKeyPair (ImportPlaybackKeyPair'),+ newImportPlaybackKeyPair,+ ImportPlaybackKeyPairResponse (ImportPlaybackKeyPairResponse'),+ newImportPlaybackKeyPairResponse,++ -- ** ListChannels (Paginated)+ ListChannels (ListChannels'),+ newListChannels,+ ListChannelsResponse (ListChannelsResponse'),+ newListChannelsResponse,++ -- ** ListPlaybackKeyPairs (Paginated)+ ListPlaybackKeyPairs (ListPlaybackKeyPairs'),+ newListPlaybackKeyPairs,+ ListPlaybackKeyPairsResponse (ListPlaybackKeyPairsResponse'),+ newListPlaybackKeyPairsResponse,++ -- ** ListRecordingConfigurations (Paginated)+ ListRecordingConfigurations (ListRecordingConfigurations'),+ newListRecordingConfigurations,+ ListRecordingConfigurationsResponse (ListRecordingConfigurationsResponse'),+ newListRecordingConfigurationsResponse,++ -- ** ListStreamKeys (Paginated)+ ListStreamKeys (ListStreamKeys'),+ newListStreamKeys,+ ListStreamKeysResponse (ListStreamKeysResponse'),+ newListStreamKeysResponse,++ -- ** ListStreamSessions+ ListStreamSessions (ListStreamSessions'),+ newListStreamSessions,+ ListStreamSessionsResponse (ListStreamSessionsResponse'),+ newListStreamSessionsResponse,++ -- ** ListStreams (Paginated)+ ListStreams (ListStreams'),+ newListStreams,+ ListStreamsResponse (ListStreamsResponse'),+ newListStreamsResponse,++ -- ** ListTagsForResource+ ListTagsForResource (ListTagsForResource'),+ newListTagsForResource,+ ListTagsForResourceResponse (ListTagsForResourceResponse'),+ newListTagsForResourceResponse,++ -- ** PutMetadata+ PutMetadata (PutMetadata'),+ newPutMetadata,+ PutMetadataResponse (PutMetadataResponse'),+ newPutMetadataResponse,++ -- ** StopStream+ StopStream (StopStream'),+ newStopStream,+ StopStreamResponse (StopStreamResponse'),+ newStopStreamResponse,++ -- ** TagResource+ TagResource (TagResource'),+ newTagResource,+ TagResourceResponse (TagResourceResponse'),+ newTagResourceResponse,++ -- ** UntagResource+ UntagResource (UntagResource'),+ newUntagResource,+ UntagResourceResponse (UntagResourceResponse'),+ newUntagResourceResponse,++ -- ** UpdateChannel+ UpdateChannel (UpdateChannel'),+ newUpdateChannel,+ UpdateChannelResponse (UpdateChannelResponse'),+ newUpdateChannelResponse,++ -- * Types++ -- ** ChannelLatencyMode+ ChannelLatencyMode (..),++ -- ** ChannelType+ ChannelType (..),++ -- ** RecordingConfigurationState+ RecordingConfigurationState (..),++ -- ** RecordingMode+ RecordingMode (..),++ -- ** StreamHealth+ StreamHealth (..),++ -- ** StreamState+ StreamState (..),++ -- ** AudioConfiguration+ AudioConfiguration (AudioConfiguration'),+ newAudioConfiguration,++ -- ** BatchError+ BatchError (BatchError'),+ newBatchError,++ -- ** Channel+ Channel (Channel'),+ newChannel,++ -- ** ChannelSummary+ ChannelSummary (ChannelSummary'),+ newChannelSummary,++ -- ** DestinationConfiguration+ DestinationConfiguration (DestinationConfiguration'),+ newDestinationConfiguration,++ -- ** IngestConfiguration+ IngestConfiguration (IngestConfiguration'),+ newIngestConfiguration,++ -- ** PlaybackKeyPair+ PlaybackKeyPair (PlaybackKeyPair'),+ newPlaybackKeyPair,++ -- ** PlaybackKeyPairSummary+ PlaybackKeyPairSummary (PlaybackKeyPairSummary'),+ newPlaybackKeyPairSummary,++ -- ** RecordingConfiguration+ RecordingConfiguration (RecordingConfiguration'),+ newRecordingConfiguration,++ -- ** RecordingConfigurationSummary+ RecordingConfigurationSummary (RecordingConfigurationSummary'),+ newRecordingConfigurationSummary,++ -- ** S3DestinationConfiguration+ S3DestinationConfiguration (S3DestinationConfiguration'),+ newS3DestinationConfiguration,++ -- ** Stream+ Stream (Stream'),+ newStream,++ -- ** StreamEvent+ StreamEvent (StreamEvent'),+ newStreamEvent,++ -- ** StreamFilters+ StreamFilters (StreamFilters'),+ newStreamFilters,++ -- ** StreamKey+ StreamKey (StreamKey'),+ newStreamKey,++ -- ** StreamKeySummary+ StreamKeySummary (StreamKeySummary'),+ newStreamKeySummary,++ -- ** StreamSession+ StreamSession (StreamSession'),+ newStreamSession,++ -- ** StreamSessionSummary+ StreamSessionSummary (StreamSessionSummary'),+ newStreamSessionSummary,++ -- ** StreamSummary+ StreamSummary (StreamSummary'),+ newStreamSummary,++ -- ** ThumbnailConfiguration+ ThumbnailConfiguration (ThumbnailConfiguration'),+ newThumbnailConfiguration,++ -- ** VideoConfiguration+ VideoConfiguration (VideoConfiguration'),+ newVideoConfiguration,+ )+where++import Amazonka.IVS.BatchGetChannel+import Amazonka.IVS.BatchGetStreamKey+import Amazonka.IVS.CreateChannel+import Amazonka.IVS.CreateRecordingConfiguration+import Amazonka.IVS.CreateStreamKey+import Amazonka.IVS.DeleteChannel+import Amazonka.IVS.DeletePlaybackKeyPair+import Amazonka.IVS.DeleteRecordingConfiguration+import Amazonka.IVS.DeleteStreamKey+import Amazonka.IVS.GetChannel+import Amazonka.IVS.GetPlaybackKeyPair+import Amazonka.IVS.GetRecordingConfiguration+import Amazonka.IVS.GetStream+import Amazonka.IVS.GetStreamKey+import Amazonka.IVS.GetStreamSession+import Amazonka.IVS.ImportPlaybackKeyPair+import Amazonka.IVS.Lens+import Amazonka.IVS.ListChannels+import Amazonka.IVS.ListPlaybackKeyPairs+import Amazonka.IVS.ListRecordingConfigurations+import Amazonka.IVS.ListStreamKeys+import Amazonka.IVS.ListStreamSessions+import Amazonka.IVS.ListStreams+import Amazonka.IVS.ListTagsForResource+import Amazonka.IVS.PutMetadata+import Amazonka.IVS.StopStream+import Amazonka.IVS.TagResource+import Amazonka.IVS.Types+import Amazonka.IVS.UntagResource+import Amazonka.IVS.UpdateChannel+import Amazonka.IVS.Waiters++-- $errors+-- Error matchers are designed for use with the functions provided by+-- <http://hackage.haskell.org/package/lens/docs/Control-Exception-Lens.html Control.Exception.Lens>.+-- This allows catching (and rethrowing) service specific errors returned+-- by 'IVS'.++-- $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/IVS/BatchGetChannel.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.IVS.BatchGetChannel+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Performs GetChannel on multiple ARNs simultaneously.+module Amazonka.IVS.BatchGetChannel+ ( -- * Creating a Request+ BatchGetChannel (..),+ newBatchGetChannel,++ -- * Request Lenses+ batchGetChannel_arns,++ -- * Destructuring the Response+ BatchGetChannelResponse (..),+ newBatchGetChannelResponse,++ -- * Response Lenses+ batchGetChannelResponse_channels,+ batchGetChannelResponse_errors,+ batchGetChannelResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IVS.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newBatchGetChannel' smart constructor.+data BatchGetChannel = BatchGetChannel'+ { -- | Array of ARNs, one per channel.+ arns :: Prelude.NonEmpty Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BatchGetChannel' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arns', 'batchGetChannel_arns' - Array of ARNs, one per channel.+newBatchGetChannel ::+ -- | 'arns'+ Prelude.NonEmpty Prelude.Text ->+ BatchGetChannel+newBatchGetChannel pArns_ =+ BatchGetChannel' {arns = Lens.coerced Lens.# pArns_}++-- | Array of ARNs, one per channel.+batchGetChannel_arns :: Lens.Lens' BatchGetChannel (Prelude.NonEmpty Prelude.Text)+batchGetChannel_arns = Lens.lens (\BatchGetChannel' {arns} -> arns) (\s@BatchGetChannel' {} a -> s {arns = a} :: BatchGetChannel) Prelude.. Lens.coerced++instance Core.AWSRequest BatchGetChannel where+ type+ AWSResponse BatchGetChannel =+ BatchGetChannelResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ BatchGetChannelResponse'+ Prelude.<$> (x Data..?> "channels" Core..!@ Prelude.mempty)+ Prelude.<*> (x Data..?> "errors" Core..!@ Prelude.mempty)+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable BatchGetChannel where+ hashWithSalt _salt BatchGetChannel' {..} =+ _salt `Prelude.hashWithSalt` arns++instance Prelude.NFData BatchGetChannel where+ rnf BatchGetChannel' {..} = Prelude.rnf arns++instance Data.ToHeaders BatchGetChannel where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON BatchGetChannel where+ toJSON BatchGetChannel' {..} =+ Data.object+ ( Prelude.catMaybes+ [Prelude.Just ("arns" Data..= arns)]+ )++instance Data.ToPath BatchGetChannel where+ toPath = Prelude.const "/BatchGetChannel"++instance Data.ToQuery BatchGetChannel where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newBatchGetChannelResponse' smart constructor.+data BatchGetChannelResponse = BatchGetChannelResponse'+ { channels :: Prelude.Maybe [Channel],+ -- | Each error object is related to a specific ARN in the request.+ errors :: Prelude.Maybe [BatchError],+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BatchGetChannelResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'channels', 'batchGetChannelResponse_channels' -+--+-- 'errors', 'batchGetChannelResponse_errors' - Each error object is related to a specific ARN in the request.+--+-- 'httpStatus', 'batchGetChannelResponse_httpStatus' - The response's http status code.+newBatchGetChannelResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ BatchGetChannelResponse+newBatchGetChannelResponse pHttpStatus_ =+ BatchGetChannelResponse'+ { channels =+ Prelude.Nothing,+ errors = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++batchGetChannelResponse_channels :: Lens.Lens' BatchGetChannelResponse (Prelude.Maybe [Channel])+batchGetChannelResponse_channels = Lens.lens (\BatchGetChannelResponse' {channels} -> channels) (\s@BatchGetChannelResponse' {} a -> s {channels = a} :: BatchGetChannelResponse) Prelude.. Lens.mapping Lens.coerced++-- | Each error object is related to a specific ARN in the request.+batchGetChannelResponse_errors :: Lens.Lens' BatchGetChannelResponse (Prelude.Maybe [BatchError])+batchGetChannelResponse_errors = Lens.lens (\BatchGetChannelResponse' {errors} -> errors) (\s@BatchGetChannelResponse' {} a -> s {errors = a} :: BatchGetChannelResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+batchGetChannelResponse_httpStatus :: Lens.Lens' BatchGetChannelResponse Prelude.Int+batchGetChannelResponse_httpStatus = Lens.lens (\BatchGetChannelResponse' {httpStatus} -> httpStatus) (\s@BatchGetChannelResponse' {} a -> s {httpStatus = a} :: BatchGetChannelResponse)++instance Prelude.NFData BatchGetChannelResponse where+ rnf BatchGetChannelResponse' {..} =+ Prelude.rnf channels+ `Prelude.seq` Prelude.rnf errors+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/IVS/BatchGetStreamKey.hs view
@@ -0,0 +1,175 @@+{-# 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.IVS.BatchGetStreamKey+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Performs GetStreamKey on multiple ARNs simultaneously.+module Amazonka.IVS.BatchGetStreamKey+ ( -- * Creating a Request+ BatchGetStreamKey (..),+ newBatchGetStreamKey,++ -- * Request Lenses+ batchGetStreamKey_arns,++ -- * Destructuring the Response+ BatchGetStreamKeyResponse (..),+ newBatchGetStreamKeyResponse,++ -- * Response Lenses+ batchGetStreamKeyResponse_errors,+ batchGetStreamKeyResponse_streamKeys,+ batchGetStreamKeyResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IVS.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newBatchGetStreamKey' smart constructor.+data BatchGetStreamKey = BatchGetStreamKey'+ { -- | Array of ARNs, one per channel.+ arns :: Prelude.NonEmpty Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BatchGetStreamKey' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arns', 'batchGetStreamKey_arns' - Array of ARNs, one per channel.+newBatchGetStreamKey ::+ -- | 'arns'+ Prelude.NonEmpty Prelude.Text ->+ BatchGetStreamKey+newBatchGetStreamKey pArns_ =+ BatchGetStreamKey'+ { arns =+ Lens.coerced Lens.# pArns_+ }++-- | Array of ARNs, one per channel.+batchGetStreamKey_arns :: Lens.Lens' BatchGetStreamKey (Prelude.NonEmpty Prelude.Text)+batchGetStreamKey_arns = Lens.lens (\BatchGetStreamKey' {arns} -> arns) (\s@BatchGetStreamKey' {} a -> s {arns = a} :: BatchGetStreamKey) Prelude.. Lens.coerced++instance Core.AWSRequest BatchGetStreamKey where+ type+ AWSResponse BatchGetStreamKey =+ BatchGetStreamKeyResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ BatchGetStreamKeyResponse'+ Prelude.<$> (x Data..?> "errors" Core..!@ Prelude.mempty)+ Prelude.<*> (x Data..?> "streamKeys" Core..!@ Prelude.mempty)+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable BatchGetStreamKey where+ hashWithSalt _salt BatchGetStreamKey' {..} =+ _salt `Prelude.hashWithSalt` arns++instance Prelude.NFData BatchGetStreamKey where+ rnf BatchGetStreamKey' {..} = Prelude.rnf arns++instance Data.ToHeaders BatchGetStreamKey where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON BatchGetStreamKey where+ toJSON BatchGetStreamKey' {..} =+ Data.object+ ( Prelude.catMaybes+ [Prelude.Just ("arns" Data..= arns)]+ )++instance Data.ToPath BatchGetStreamKey where+ toPath = Prelude.const "/BatchGetStreamKey"++instance Data.ToQuery BatchGetStreamKey where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newBatchGetStreamKeyResponse' smart constructor.+data BatchGetStreamKeyResponse = BatchGetStreamKeyResponse'+ { errors :: Prelude.Maybe [BatchError],+ streamKeys :: Prelude.Maybe [StreamKey],+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BatchGetStreamKeyResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'errors', 'batchGetStreamKeyResponse_errors' -+--+-- 'streamKeys', 'batchGetStreamKeyResponse_streamKeys' -+--+-- 'httpStatus', 'batchGetStreamKeyResponse_httpStatus' - The response's http status code.+newBatchGetStreamKeyResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ BatchGetStreamKeyResponse+newBatchGetStreamKeyResponse pHttpStatus_ =+ BatchGetStreamKeyResponse'+ { errors =+ Prelude.Nothing,+ streamKeys = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++batchGetStreamKeyResponse_errors :: Lens.Lens' BatchGetStreamKeyResponse (Prelude.Maybe [BatchError])+batchGetStreamKeyResponse_errors = Lens.lens (\BatchGetStreamKeyResponse' {errors} -> errors) (\s@BatchGetStreamKeyResponse' {} a -> s {errors = a} :: BatchGetStreamKeyResponse) Prelude.. Lens.mapping Lens.coerced++batchGetStreamKeyResponse_streamKeys :: Lens.Lens' BatchGetStreamKeyResponse (Prelude.Maybe [StreamKey])+batchGetStreamKeyResponse_streamKeys = Lens.lens (\BatchGetStreamKeyResponse' {streamKeys} -> streamKeys) (\s@BatchGetStreamKeyResponse' {} a -> s {streamKeys = a} :: BatchGetStreamKeyResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+batchGetStreamKeyResponse_httpStatus :: Lens.Lens' BatchGetStreamKeyResponse Prelude.Int+batchGetStreamKeyResponse_httpStatus = Lens.lens (\BatchGetStreamKeyResponse' {httpStatus} -> httpStatus) (\s@BatchGetStreamKeyResponse' {} a -> s {httpStatus = a} :: BatchGetStreamKeyResponse)++instance Prelude.NFData BatchGetStreamKeyResponse where+ rnf BatchGetStreamKeyResponse' {..} =+ Prelude.rnf errors+ `Prelude.seq` Prelude.rnf streamKeys+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/IVS/CreateChannel.hs view
@@ -0,0 +1,315 @@+{-# 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.IVS.CreateChannel+-- 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 channel and an associated stream key to start streaming.+module Amazonka.IVS.CreateChannel+ ( -- * Creating a Request+ CreateChannel (..),+ newCreateChannel,++ -- * Request Lenses+ createChannel_authorized,+ createChannel_latencyMode,+ createChannel_name,+ createChannel_recordingConfigurationArn,+ createChannel_tags,+ createChannel_type,++ -- * Destructuring the Response+ CreateChannelResponse (..),+ newCreateChannelResponse,++ -- * Response Lenses+ createChannelResponse_channel,+ createChannelResponse_streamKey,+ createChannelResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IVS.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateChannel' smart constructor.+data CreateChannel = CreateChannel'+ { -- | Whether the channel is private (enabled for playback authorization).+ -- Default: @false@.+ authorized :: Prelude.Maybe Prelude.Bool,+ -- | Channel latency mode. Use @NORMAL@ to broadcast and deliver live video+ -- up to Full HD. Use @LOW@ for near-real-time interaction with viewers.+ -- (Note: In the Amazon IVS console, @LOW@ and @NORMAL@ correspond to+ -- Ultra-low and Standard, respectively.) Default: @LOW@.+ latencyMode :: Prelude.Maybe ChannelLatencyMode,+ -- | Channel name.+ name :: Prelude.Maybe Prelude.Text,+ -- | Recording-configuration ARN. Default: \"\" (empty string, recording is+ -- disabled).+ recordingConfigurationArn :: Prelude.Maybe Prelude.Text,+ -- | Array of 1-50 maps, each of the form @string:string (key:value)@. See+ -- <https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html Tagging Amazon Web Services Resources>+ -- for more information, including restrictions that apply to tags and+ -- \"Tag naming limits and requirements\"; Amazon IVS has no+ -- service-specific constraints beyond what is documented there.+ tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | Channel type, which determines the allowable resolution and bitrate. /If+ -- you exceed the allowable resolution or bitrate, the stream probably will+ -- disconnect immediately./ Default: @STANDARD@. Valid values:+ --+ -- - @STANDARD@: Video is transcoded: multiple qualities are generated+ -- from the original input, to automatically give viewers the best+ -- experience for their devices and network conditions. Transcoding+ -- allows higher playback quality across a range of download speeds.+ -- Resolution can be up to 1080p and bitrate can be up to 8.5 Mbps.+ -- Audio is transcoded only for renditions 360p and below; above that,+ -- audio is passed through. This is the default.+ --+ -- - @BASIC@: Video is transmuxed: Amazon IVS delivers the original input+ -- to viewers. The viewer’s video-quality choice is limited to the+ -- original input. Resolution can be up to 1080p and bitrate can be up+ -- to 1.5 Mbps for 480p and up to 3.5 Mbps for resolutions between 480p+ -- and 1080p.+ type' :: Prelude.Maybe ChannelType+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateChannel' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'authorized', 'createChannel_authorized' - Whether the channel is private (enabled for playback authorization).+-- Default: @false@.+--+-- 'latencyMode', 'createChannel_latencyMode' - Channel latency mode. Use @NORMAL@ to broadcast and deliver live video+-- up to Full HD. Use @LOW@ for near-real-time interaction with viewers.+-- (Note: In the Amazon IVS console, @LOW@ and @NORMAL@ correspond to+-- Ultra-low and Standard, respectively.) Default: @LOW@.+--+-- 'name', 'createChannel_name' - Channel name.+--+-- 'recordingConfigurationArn', 'createChannel_recordingConfigurationArn' - Recording-configuration ARN. Default: \"\" (empty string, recording is+-- disabled).+--+-- 'tags', 'createChannel_tags' - Array of 1-50 maps, each of the form @string:string (key:value)@. See+-- <https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html Tagging Amazon Web Services Resources>+-- for more information, including restrictions that apply to tags and+-- \"Tag naming limits and requirements\"; Amazon IVS has no+-- service-specific constraints beyond what is documented there.+--+-- 'type'', 'createChannel_type' - Channel type, which determines the allowable resolution and bitrate. /If+-- you exceed the allowable resolution or bitrate, the stream probably will+-- disconnect immediately./ Default: @STANDARD@. Valid values:+--+-- - @STANDARD@: Video is transcoded: multiple qualities are generated+-- from the original input, to automatically give viewers the best+-- experience for their devices and network conditions. Transcoding+-- allows higher playback quality across a range of download speeds.+-- Resolution can be up to 1080p and bitrate can be up to 8.5 Mbps.+-- Audio is transcoded only for renditions 360p and below; above that,+-- audio is passed through. This is the default.+--+-- - @BASIC@: Video is transmuxed: Amazon IVS delivers the original input+-- to viewers. The viewer’s video-quality choice is limited to the+-- original input. Resolution can be up to 1080p and bitrate can be up+-- to 1.5 Mbps for 480p and up to 3.5 Mbps for resolutions between 480p+-- and 1080p.+newCreateChannel ::+ CreateChannel+newCreateChannel =+ CreateChannel'+ { authorized = Prelude.Nothing,+ latencyMode = Prelude.Nothing,+ name = Prelude.Nothing,+ recordingConfigurationArn = Prelude.Nothing,+ tags = Prelude.Nothing,+ type' = Prelude.Nothing+ }++-- | Whether the channel is private (enabled for playback authorization).+-- Default: @false@.+createChannel_authorized :: Lens.Lens' CreateChannel (Prelude.Maybe Prelude.Bool)+createChannel_authorized = Lens.lens (\CreateChannel' {authorized} -> authorized) (\s@CreateChannel' {} a -> s {authorized = a} :: CreateChannel)++-- | Channel latency mode. Use @NORMAL@ to broadcast and deliver live video+-- up to Full HD. Use @LOW@ for near-real-time interaction with viewers.+-- (Note: In the Amazon IVS console, @LOW@ and @NORMAL@ correspond to+-- Ultra-low and Standard, respectively.) Default: @LOW@.+createChannel_latencyMode :: Lens.Lens' CreateChannel (Prelude.Maybe ChannelLatencyMode)+createChannel_latencyMode = Lens.lens (\CreateChannel' {latencyMode} -> latencyMode) (\s@CreateChannel' {} a -> s {latencyMode = a} :: CreateChannel)++-- | Channel name.+createChannel_name :: Lens.Lens' CreateChannel (Prelude.Maybe Prelude.Text)+createChannel_name = Lens.lens (\CreateChannel' {name} -> name) (\s@CreateChannel' {} a -> s {name = a} :: CreateChannel)++-- | Recording-configuration ARN. Default: \"\" (empty string, recording is+-- disabled).+createChannel_recordingConfigurationArn :: Lens.Lens' CreateChannel (Prelude.Maybe Prelude.Text)+createChannel_recordingConfigurationArn = Lens.lens (\CreateChannel' {recordingConfigurationArn} -> recordingConfigurationArn) (\s@CreateChannel' {} a -> s {recordingConfigurationArn = a} :: CreateChannel)++-- | Array of 1-50 maps, each of the form @string:string (key:value)@. See+-- <https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html Tagging Amazon Web Services Resources>+-- for more information, including restrictions that apply to tags and+-- \"Tag naming limits and requirements\"; Amazon IVS has no+-- service-specific constraints beyond what is documented there.+createChannel_tags :: Lens.Lens' CreateChannel (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createChannel_tags = Lens.lens (\CreateChannel' {tags} -> tags) (\s@CreateChannel' {} a -> s {tags = a} :: CreateChannel) Prelude.. Lens.mapping Lens.coerced++-- | Channel type, which determines the allowable resolution and bitrate. /If+-- you exceed the allowable resolution or bitrate, the stream probably will+-- disconnect immediately./ Default: @STANDARD@. Valid values:+--+-- - @STANDARD@: Video is transcoded: multiple qualities are generated+-- from the original input, to automatically give viewers the best+-- experience for their devices and network conditions. Transcoding+-- allows higher playback quality across a range of download speeds.+-- Resolution can be up to 1080p and bitrate can be up to 8.5 Mbps.+-- Audio is transcoded only for renditions 360p and below; above that,+-- audio is passed through. This is the default.+--+-- - @BASIC@: Video is transmuxed: Amazon IVS delivers the original input+-- to viewers. The viewer’s video-quality choice is limited to the+-- original input. Resolution can be up to 1080p and bitrate can be up+-- to 1.5 Mbps for 480p and up to 3.5 Mbps for resolutions between 480p+-- and 1080p.+createChannel_type :: Lens.Lens' CreateChannel (Prelude.Maybe ChannelType)+createChannel_type = Lens.lens (\CreateChannel' {type'} -> type') (\s@CreateChannel' {} a -> s {type' = a} :: CreateChannel)++instance Core.AWSRequest CreateChannel where+ type+ AWSResponse CreateChannel =+ CreateChannelResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ CreateChannelResponse'+ Prelude.<$> (x Data..?> "channel")+ Prelude.<*> (x Data..?> "streamKey")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable CreateChannel where+ hashWithSalt _salt CreateChannel' {..} =+ _salt+ `Prelude.hashWithSalt` authorized+ `Prelude.hashWithSalt` latencyMode+ `Prelude.hashWithSalt` name+ `Prelude.hashWithSalt` recordingConfigurationArn+ `Prelude.hashWithSalt` tags+ `Prelude.hashWithSalt` type'++instance Prelude.NFData CreateChannel where+ rnf CreateChannel' {..} =+ Prelude.rnf authorized+ `Prelude.seq` Prelude.rnf latencyMode+ `Prelude.seq` Prelude.rnf name+ `Prelude.seq` Prelude.rnf recordingConfigurationArn+ `Prelude.seq` Prelude.rnf tags+ `Prelude.seq` Prelude.rnf type'++instance Data.ToHeaders CreateChannel where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON CreateChannel where+ toJSON CreateChannel' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("authorized" Data..=) Prelude.<$> authorized,+ ("latencyMode" Data..=) Prelude.<$> latencyMode,+ ("name" Data..=) Prelude.<$> name,+ ("recordingConfigurationArn" Data..=)+ Prelude.<$> recordingConfigurationArn,+ ("tags" Data..=) Prelude.<$> tags,+ ("type" Data..=) Prelude.<$> type'+ ]+ )++instance Data.ToPath CreateChannel where+ toPath = Prelude.const "/CreateChannel"++instance Data.ToQuery CreateChannel where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateChannelResponse' smart constructor.+data CreateChannelResponse = CreateChannelResponse'+ { channel :: Prelude.Maybe Channel,+ streamKey :: Prelude.Maybe StreamKey,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateChannelResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'channel', 'createChannelResponse_channel' -+--+-- 'streamKey', 'createChannelResponse_streamKey' -+--+-- 'httpStatus', 'createChannelResponse_httpStatus' - The response's http status code.+newCreateChannelResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ CreateChannelResponse+newCreateChannelResponse pHttpStatus_ =+ CreateChannelResponse'+ { channel = Prelude.Nothing,+ streamKey = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++createChannelResponse_channel :: Lens.Lens' CreateChannelResponse (Prelude.Maybe Channel)+createChannelResponse_channel = Lens.lens (\CreateChannelResponse' {channel} -> channel) (\s@CreateChannelResponse' {} a -> s {channel = a} :: CreateChannelResponse)++createChannelResponse_streamKey :: Lens.Lens' CreateChannelResponse (Prelude.Maybe StreamKey)+createChannelResponse_streamKey = Lens.lens (\CreateChannelResponse' {streamKey} -> streamKey) (\s@CreateChannelResponse' {} a -> s {streamKey = a} :: CreateChannelResponse)++-- | The response's http status code.+createChannelResponse_httpStatus :: Lens.Lens' CreateChannelResponse Prelude.Int+createChannelResponse_httpStatus = Lens.lens (\CreateChannelResponse' {httpStatus} -> httpStatus) (\s@CreateChannelResponse' {} a -> s {httpStatus = a} :: CreateChannelResponse)++instance Prelude.NFData CreateChannelResponse where+ rnf CreateChannelResponse' {..} =+ Prelude.rnf channel+ `Prelude.seq` Prelude.rnf streamKey+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/IVS/CreateRecordingConfiguration.hs view
@@ -0,0 +1,275 @@+{-# 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.IVS.CreateRecordingConfiguration+-- 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 recording configuration, used to enable recording to+-- Amazon S3.+--+-- __Known issue:__ In the us-east-1 region, if you use the Amazon Web+-- Services CLI to create a recording configuration, it returns success+-- even if the S3 bucket is in a different region. In this case, the+-- @state@ of the recording configuration is @CREATE_FAILED@ (instead of+-- @ACTIVE@). (In other regions, the CLI correctly returns failure if the+-- bucket is in a different region.)+--+-- __Workaround:__ Ensure that your S3 bucket is in the same region as the+-- recording configuration. If you create a recording configuration in a+-- different region as your S3 bucket, delete that recording configuration+-- and create a new one with an S3 bucket from the correct region.+module Amazonka.IVS.CreateRecordingConfiguration+ ( -- * Creating a Request+ CreateRecordingConfiguration (..),+ newCreateRecordingConfiguration,++ -- * Request Lenses+ createRecordingConfiguration_name,+ createRecordingConfiguration_recordingReconnectWindowSeconds,+ createRecordingConfiguration_tags,+ createRecordingConfiguration_thumbnailConfiguration,+ createRecordingConfiguration_destinationConfiguration,++ -- * Destructuring the Response+ CreateRecordingConfigurationResponse (..),+ newCreateRecordingConfigurationResponse,++ -- * Response Lenses+ createRecordingConfigurationResponse_recordingConfiguration,+ createRecordingConfigurationResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IVS.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateRecordingConfiguration' smart constructor.+data CreateRecordingConfiguration = CreateRecordingConfiguration'+ { -- | Recording-configuration name. The value does not need to be unique.+ name :: Prelude.Maybe Prelude.Text,+ -- | If a broadcast disconnects and then reconnects within the specified+ -- interval, the multiple streams will be considered a single broadcast and+ -- merged together. Default: 0.+ recordingReconnectWindowSeconds :: Prelude.Maybe Prelude.Natural,+ -- | Array of 1-50 maps, each of the form @string:string (key:value)@. See+ -- <https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html Tagging Amazon Web Services Resources>+ -- for more information, including restrictions that apply to tags and+ -- \"Tag naming limits and requirements\"; Amazon IVS has no+ -- service-specific constraints beyond what is documented there.+ tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | A complex type that allows you to enable\/disable the recording of+ -- thumbnails for a live session and modify the interval at which+ -- thumbnails are generated for the live session.+ thumbnailConfiguration :: Prelude.Maybe ThumbnailConfiguration,+ -- | A complex type that contains a destination configuration for where+ -- recorded video will be stored.+ destinationConfiguration :: DestinationConfiguration+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateRecordingConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'createRecordingConfiguration_name' - Recording-configuration name. The value does not need to be unique.+--+-- 'recordingReconnectWindowSeconds', 'createRecordingConfiguration_recordingReconnectWindowSeconds' - If a broadcast disconnects and then reconnects within the specified+-- interval, the multiple streams will be considered a single broadcast and+-- merged together. Default: 0.+--+-- 'tags', 'createRecordingConfiguration_tags' - Array of 1-50 maps, each of the form @string:string (key:value)@. See+-- <https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html Tagging Amazon Web Services Resources>+-- for more information, including restrictions that apply to tags and+-- \"Tag naming limits and requirements\"; Amazon IVS has no+-- service-specific constraints beyond what is documented there.+--+-- 'thumbnailConfiguration', 'createRecordingConfiguration_thumbnailConfiguration' - A complex type that allows you to enable\/disable the recording of+-- thumbnails for a live session and modify the interval at which+-- thumbnails are generated for the live session.+--+-- 'destinationConfiguration', 'createRecordingConfiguration_destinationConfiguration' - A complex type that contains a destination configuration for where+-- recorded video will be stored.+newCreateRecordingConfiguration ::+ -- | 'destinationConfiguration'+ DestinationConfiguration ->+ CreateRecordingConfiguration+newCreateRecordingConfiguration+ pDestinationConfiguration_ =+ CreateRecordingConfiguration'+ { name =+ Prelude.Nothing,+ recordingReconnectWindowSeconds =+ Prelude.Nothing,+ tags = Prelude.Nothing,+ thumbnailConfiguration = Prelude.Nothing,+ destinationConfiguration =+ pDestinationConfiguration_+ }++-- | Recording-configuration name. The value does not need to be unique.+createRecordingConfiguration_name :: Lens.Lens' CreateRecordingConfiguration (Prelude.Maybe Prelude.Text)+createRecordingConfiguration_name = Lens.lens (\CreateRecordingConfiguration' {name} -> name) (\s@CreateRecordingConfiguration' {} a -> s {name = a} :: CreateRecordingConfiguration)++-- | If a broadcast disconnects and then reconnects within the specified+-- interval, the multiple streams will be considered a single broadcast and+-- merged together. Default: 0.+createRecordingConfiguration_recordingReconnectWindowSeconds :: Lens.Lens' CreateRecordingConfiguration (Prelude.Maybe Prelude.Natural)+createRecordingConfiguration_recordingReconnectWindowSeconds = Lens.lens (\CreateRecordingConfiguration' {recordingReconnectWindowSeconds} -> recordingReconnectWindowSeconds) (\s@CreateRecordingConfiguration' {} a -> s {recordingReconnectWindowSeconds = a} :: CreateRecordingConfiguration)++-- | Array of 1-50 maps, each of the form @string:string (key:value)@. See+-- <https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html Tagging Amazon Web Services Resources>+-- for more information, including restrictions that apply to tags and+-- \"Tag naming limits and requirements\"; Amazon IVS has no+-- service-specific constraints beyond what is documented there.+createRecordingConfiguration_tags :: Lens.Lens' CreateRecordingConfiguration (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createRecordingConfiguration_tags = Lens.lens (\CreateRecordingConfiguration' {tags} -> tags) (\s@CreateRecordingConfiguration' {} a -> s {tags = a} :: CreateRecordingConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | A complex type that allows you to enable\/disable the recording of+-- thumbnails for a live session and modify the interval at which+-- thumbnails are generated for the live session.+createRecordingConfiguration_thumbnailConfiguration :: Lens.Lens' CreateRecordingConfiguration (Prelude.Maybe ThumbnailConfiguration)+createRecordingConfiguration_thumbnailConfiguration = Lens.lens (\CreateRecordingConfiguration' {thumbnailConfiguration} -> thumbnailConfiguration) (\s@CreateRecordingConfiguration' {} a -> s {thumbnailConfiguration = a} :: CreateRecordingConfiguration)++-- | A complex type that contains a destination configuration for where+-- recorded video will be stored.+createRecordingConfiguration_destinationConfiguration :: Lens.Lens' CreateRecordingConfiguration DestinationConfiguration+createRecordingConfiguration_destinationConfiguration = Lens.lens (\CreateRecordingConfiguration' {destinationConfiguration} -> destinationConfiguration) (\s@CreateRecordingConfiguration' {} a -> s {destinationConfiguration = a} :: CreateRecordingConfiguration)++instance Core.AWSRequest CreateRecordingConfiguration where+ type+ AWSResponse CreateRecordingConfiguration =+ CreateRecordingConfigurationResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ CreateRecordingConfigurationResponse'+ Prelude.<$> (x Data..?> "recordingConfiguration")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance+ Prelude.Hashable+ CreateRecordingConfiguration+ where+ hashWithSalt _salt CreateRecordingConfiguration' {..} =+ _salt+ `Prelude.hashWithSalt` name+ `Prelude.hashWithSalt` recordingReconnectWindowSeconds+ `Prelude.hashWithSalt` tags+ `Prelude.hashWithSalt` thumbnailConfiguration+ `Prelude.hashWithSalt` destinationConfiguration++instance Prelude.NFData CreateRecordingConfiguration where+ rnf CreateRecordingConfiguration' {..} =+ Prelude.rnf name+ `Prelude.seq` Prelude.rnf recordingReconnectWindowSeconds+ `Prelude.seq` Prelude.rnf tags+ `Prelude.seq` Prelude.rnf thumbnailConfiguration+ `Prelude.seq` Prelude.rnf destinationConfiguration++instance Data.ToHeaders CreateRecordingConfiguration where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON CreateRecordingConfiguration where+ toJSON CreateRecordingConfiguration' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("name" Data..=) Prelude.<$> name,+ ("recordingReconnectWindowSeconds" Data..=)+ Prelude.<$> recordingReconnectWindowSeconds,+ ("tags" Data..=) Prelude.<$> tags,+ ("thumbnailConfiguration" Data..=)+ Prelude.<$> thumbnailConfiguration,+ Prelude.Just+ ( "destinationConfiguration"+ Data..= destinationConfiguration+ )+ ]+ )++instance Data.ToPath CreateRecordingConfiguration where+ toPath =+ Prelude.const "/CreateRecordingConfiguration"++instance Data.ToQuery CreateRecordingConfiguration where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateRecordingConfigurationResponse' smart constructor.+data CreateRecordingConfigurationResponse = CreateRecordingConfigurationResponse'+ { recordingConfiguration :: Prelude.Maybe RecordingConfiguration,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateRecordingConfigurationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'recordingConfiguration', 'createRecordingConfigurationResponse_recordingConfiguration' -+--+-- 'httpStatus', 'createRecordingConfigurationResponse_httpStatus' - The response's http status code.+newCreateRecordingConfigurationResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ CreateRecordingConfigurationResponse+newCreateRecordingConfigurationResponse pHttpStatus_ =+ CreateRecordingConfigurationResponse'+ { recordingConfiguration =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++createRecordingConfigurationResponse_recordingConfiguration :: Lens.Lens' CreateRecordingConfigurationResponse (Prelude.Maybe RecordingConfiguration)+createRecordingConfigurationResponse_recordingConfiguration = Lens.lens (\CreateRecordingConfigurationResponse' {recordingConfiguration} -> recordingConfiguration) (\s@CreateRecordingConfigurationResponse' {} a -> s {recordingConfiguration = a} :: CreateRecordingConfigurationResponse)++-- | The response's http status code.+createRecordingConfigurationResponse_httpStatus :: Lens.Lens' CreateRecordingConfigurationResponse Prelude.Int+createRecordingConfigurationResponse_httpStatus = Lens.lens (\CreateRecordingConfigurationResponse' {httpStatus} -> httpStatus) (\s@CreateRecordingConfigurationResponse' {} a -> s {httpStatus = a} :: CreateRecordingConfigurationResponse)++instance+ Prelude.NFData+ CreateRecordingConfigurationResponse+ where+ rnf CreateRecordingConfigurationResponse' {..} =+ Prelude.rnf recordingConfiguration+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/IVS/CreateStreamKey.hs view
@@ -0,0 +1,201 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.IVS.CreateStreamKey+-- 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 stream key, used to initiate a stream, for the specified+-- channel ARN.+--+-- Note that CreateChannel creates a stream key. If you subsequently use+-- CreateStreamKey on the same channel, it will fail because a stream key+-- already exists and there is a limit of 1 stream key per channel. To+-- reset the stream key on a channel, use DeleteStreamKey and then+-- CreateStreamKey.+module Amazonka.IVS.CreateStreamKey+ ( -- * Creating a Request+ CreateStreamKey (..),+ newCreateStreamKey,++ -- * Request Lenses+ createStreamKey_tags,+ createStreamKey_channelArn,++ -- * Destructuring the Response+ CreateStreamKeyResponse (..),+ newCreateStreamKeyResponse,++ -- * Response Lenses+ createStreamKeyResponse_streamKey,+ createStreamKeyResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IVS.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateStreamKey' smart constructor.+data CreateStreamKey = CreateStreamKey'+ { -- | Array of 1-50 maps, each of the form @string:string (key:value)@. See+ -- <https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html Tagging Amazon Web Services Resources>+ -- for more information, including restrictions that apply to tags and+ -- \"Tag naming limits and requirements\"; Amazon IVS has no+ -- service-specific constraints beyond what is documented there.+ tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | ARN of the channel for which to create the stream key.+ channelArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateStreamKey' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'createStreamKey_tags' - Array of 1-50 maps, each of the form @string:string (key:value)@. See+-- <https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html Tagging Amazon Web Services Resources>+-- for more information, including restrictions that apply to tags and+-- \"Tag naming limits and requirements\"; Amazon IVS has no+-- service-specific constraints beyond what is documented there.+--+-- 'channelArn', 'createStreamKey_channelArn' - ARN of the channel for which to create the stream key.+newCreateStreamKey ::+ -- | 'channelArn'+ Prelude.Text ->+ CreateStreamKey+newCreateStreamKey pChannelArn_ =+ CreateStreamKey'+ { tags = Prelude.Nothing,+ channelArn = pChannelArn_+ }++-- | Array of 1-50 maps, each of the form @string:string (key:value)@. See+-- <https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html Tagging Amazon Web Services Resources>+-- for more information, including restrictions that apply to tags and+-- \"Tag naming limits and requirements\"; Amazon IVS has no+-- service-specific constraints beyond what is documented there.+createStreamKey_tags :: Lens.Lens' CreateStreamKey (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createStreamKey_tags = Lens.lens (\CreateStreamKey' {tags} -> tags) (\s@CreateStreamKey' {} a -> s {tags = a} :: CreateStreamKey) Prelude.. Lens.mapping Lens.coerced++-- | ARN of the channel for which to create the stream key.+createStreamKey_channelArn :: Lens.Lens' CreateStreamKey Prelude.Text+createStreamKey_channelArn = Lens.lens (\CreateStreamKey' {channelArn} -> channelArn) (\s@CreateStreamKey' {} a -> s {channelArn = a} :: CreateStreamKey)++instance Core.AWSRequest CreateStreamKey where+ type+ AWSResponse CreateStreamKey =+ CreateStreamKeyResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ CreateStreamKeyResponse'+ Prelude.<$> (x Data..?> "streamKey")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable CreateStreamKey where+ hashWithSalt _salt CreateStreamKey' {..} =+ _salt+ `Prelude.hashWithSalt` tags+ `Prelude.hashWithSalt` channelArn++instance Prelude.NFData CreateStreamKey where+ rnf CreateStreamKey' {..} =+ Prelude.rnf tags+ `Prelude.seq` Prelude.rnf channelArn++instance Data.ToHeaders CreateStreamKey where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON CreateStreamKey where+ toJSON CreateStreamKey' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("tags" Data..=) Prelude.<$> tags,+ Prelude.Just ("channelArn" Data..= channelArn)+ ]+ )++instance Data.ToPath CreateStreamKey where+ toPath = Prelude.const "/CreateStreamKey"++instance Data.ToQuery CreateStreamKey where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateStreamKeyResponse' smart constructor.+data CreateStreamKeyResponse = CreateStreamKeyResponse'+ { -- | Stream key used to authenticate an RTMPS stream for ingestion.+ streamKey :: Prelude.Maybe StreamKey,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateStreamKeyResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'streamKey', 'createStreamKeyResponse_streamKey' - Stream key used to authenticate an RTMPS stream for ingestion.+--+-- 'httpStatus', 'createStreamKeyResponse_httpStatus' - The response's http status code.+newCreateStreamKeyResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ CreateStreamKeyResponse+newCreateStreamKeyResponse pHttpStatus_ =+ CreateStreamKeyResponse'+ { streamKey =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | Stream key used to authenticate an RTMPS stream for ingestion.+createStreamKeyResponse_streamKey :: Lens.Lens' CreateStreamKeyResponse (Prelude.Maybe StreamKey)+createStreamKeyResponse_streamKey = Lens.lens (\CreateStreamKeyResponse' {streamKey} -> streamKey) (\s@CreateStreamKeyResponse' {} a -> s {streamKey = a} :: CreateStreamKeyResponse)++-- | The response's http status code.+createStreamKeyResponse_httpStatus :: Lens.Lens' CreateStreamKeyResponse Prelude.Int+createStreamKeyResponse_httpStatus = Lens.lens (\CreateStreamKeyResponse' {httpStatus} -> httpStatus) (\s@CreateStreamKeyResponse' {} a -> s {httpStatus = a} :: CreateStreamKeyResponse)++instance Prelude.NFData CreateStreamKeyResponse where+ rnf CreateStreamKeyResponse' {..} =+ Prelude.rnf streamKey+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/IVS/DeleteChannel.hs view
@@ -0,0 +1,134 @@+{-# 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.IVS.DeleteChannel+-- 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 the specified channel and its associated stream keys.+--+-- If you try to delete a live channel, you will get an error (409+-- ConflictException). To delete a channel that is live, call StopStream,+-- wait for the Amazon EventBridge \"Stream End\" event (to verify that the+-- stream\'s state was changed from Live to Offline), then call+-- DeleteChannel. (See+-- <https://docs.aws.amazon.com/ivs/latest/userguide/eventbridge.html Using EventBridge with Amazon IVS>.)+module Amazonka.IVS.DeleteChannel+ ( -- * Creating a Request+ DeleteChannel (..),+ newDeleteChannel,++ -- * Request Lenses+ deleteChannel_arn,++ -- * Destructuring the Response+ DeleteChannelResponse (..),+ newDeleteChannelResponse,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IVS.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteChannel' smart constructor.+data DeleteChannel = DeleteChannel'+ { -- | ARN of the channel to be deleted.+ arn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteChannel' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteChannel_arn' - ARN of the channel to be deleted.+newDeleteChannel ::+ -- | 'arn'+ Prelude.Text ->+ DeleteChannel+newDeleteChannel pArn_ = DeleteChannel' {arn = pArn_}++-- | ARN of the channel to be deleted.+deleteChannel_arn :: Lens.Lens' DeleteChannel Prelude.Text+deleteChannel_arn = Lens.lens (\DeleteChannel' {arn} -> arn) (\s@DeleteChannel' {} a -> s {arn = a} :: DeleteChannel)++instance Core.AWSRequest DeleteChannel where+ type+ AWSResponse DeleteChannel =+ DeleteChannelResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveNull DeleteChannelResponse'++instance Prelude.Hashable DeleteChannel where+ hashWithSalt _salt DeleteChannel' {..} =+ _salt `Prelude.hashWithSalt` arn++instance Prelude.NFData DeleteChannel where+ rnf DeleteChannel' {..} = Prelude.rnf arn++instance Data.ToHeaders DeleteChannel where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON DeleteChannel where+ toJSON DeleteChannel' {..} =+ Data.object+ ( Prelude.catMaybes+ [Prelude.Just ("arn" Data..= arn)]+ )++instance Data.ToPath DeleteChannel where+ toPath = Prelude.const "/DeleteChannel"++instance Data.ToQuery DeleteChannel where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteChannelResponse' smart constructor.+data DeleteChannelResponse = DeleteChannelResponse'+ {+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteChannelResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newDeleteChannelResponse ::+ DeleteChannelResponse+newDeleteChannelResponse = DeleteChannelResponse'++instance Prelude.NFData DeleteChannelResponse where+ rnf _ = ()
+ gen/Amazonka/IVS/DeletePlaybackKeyPair.hs view
@@ -0,0 +1,156 @@+{-# 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.IVS.DeletePlaybackKeyPair+-- 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 specified authorization key pair. This invalidates future+-- viewer tokens generated using the key pair’s @privateKey@. For more+-- information, see+-- <https://docs.aws.amazon.com/ivs/latest/userguide/private-channels.html Setting Up Private Channels>+-- in the /Amazon IVS User Guide/.+module Amazonka.IVS.DeletePlaybackKeyPair+ ( -- * Creating a Request+ DeletePlaybackKeyPair (..),+ newDeletePlaybackKeyPair,++ -- * Request Lenses+ deletePlaybackKeyPair_arn,++ -- * Destructuring the Response+ DeletePlaybackKeyPairResponse (..),+ newDeletePlaybackKeyPairResponse,++ -- * Response Lenses+ deletePlaybackKeyPairResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IVS.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeletePlaybackKeyPair' smart constructor.+data DeletePlaybackKeyPair = DeletePlaybackKeyPair'+ { -- | ARN of the key pair to be deleted.+ arn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeletePlaybackKeyPair' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deletePlaybackKeyPair_arn' - ARN of the key pair to be deleted.+newDeletePlaybackKeyPair ::+ -- | 'arn'+ Prelude.Text ->+ DeletePlaybackKeyPair+newDeletePlaybackKeyPair pArn_ =+ DeletePlaybackKeyPair' {arn = pArn_}++-- | ARN of the key pair to be deleted.+deletePlaybackKeyPair_arn :: Lens.Lens' DeletePlaybackKeyPair Prelude.Text+deletePlaybackKeyPair_arn = Lens.lens (\DeletePlaybackKeyPair' {arn} -> arn) (\s@DeletePlaybackKeyPair' {} a -> s {arn = a} :: DeletePlaybackKeyPair)++instance Core.AWSRequest DeletePlaybackKeyPair where+ type+ AWSResponse DeletePlaybackKeyPair =+ DeletePlaybackKeyPairResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveEmpty+ ( \s h x ->+ DeletePlaybackKeyPairResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable DeletePlaybackKeyPair where+ hashWithSalt _salt DeletePlaybackKeyPair' {..} =+ _salt `Prelude.hashWithSalt` arn++instance Prelude.NFData DeletePlaybackKeyPair where+ rnf DeletePlaybackKeyPair' {..} = Prelude.rnf arn++instance Data.ToHeaders DeletePlaybackKeyPair where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON DeletePlaybackKeyPair where+ toJSON DeletePlaybackKeyPair' {..} =+ Data.object+ ( Prelude.catMaybes+ [Prelude.Just ("arn" Data..= arn)]+ )++instance Data.ToPath DeletePlaybackKeyPair where+ toPath = Prelude.const "/DeletePlaybackKeyPair"++instance Data.ToQuery DeletePlaybackKeyPair where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeletePlaybackKeyPairResponse' smart constructor.+data DeletePlaybackKeyPairResponse = DeletePlaybackKeyPairResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeletePlaybackKeyPairResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deletePlaybackKeyPairResponse_httpStatus' - The response's http status code.+newDeletePlaybackKeyPairResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DeletePlaybackKeyPairResponse+newDeletePlaybackKeyPairResponse pHttpStatus_ =+ DeletePlaybackKeyPairResponse'+ { httpStatus =+ pHttpStatus_+ }++-- | The response's http status code.+deletePlaybackKeyPairResponse_httpStatus :: Lens.Lens' DeletePlaybackKeyPairResponse Prelude.Int+deletePlaybackKeyPairResponse_httpStatus = Lens.lens (\DeletePlaybackKeyPairResponse' {httpStatus} -> httpStatus) (\s@DeletePlaybackKeyPairResponse' {} a -> s {httpStatus = a} :: DeletePlaybackKeyPairResponse)++instance Prelude.NFData DeletePlaybackKeyPairResponse where+ rnf DeletePlaybackKeyPairResponse' {..} =+ Prelude.rnf httpStatus
+ gen/Amazonka/IVS/DeleteRecordingConfiguration.hs view
@@ -0,0 +1,144 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.IVS.DeleteRecordingConfiguration+-- 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 the recording configuration for the specified ARN.+--+-- If you try to delete a recording configuration that is associated with a+-- channel, you will get an error (409 ConflictException). To avoid this,+-- for all channels that reference the recording configuration, first use+-- UpdateChannel to set the @recordingConfigurationArn@ field to an empty+-- string, then use DeleteRecordingConfiguration.+module Amazonka.IVS.DeleteRecordingConfiguration+ ( -- * Creating a Request+ DeleteRecordingConfiguration (..),+ newDeleteRecordingConfiguration,++ -- * Request Lenses+ deleteRecordingConfiguration_arn,++ -- * Destructuring the Response+ DeleteRecordingConfigurationResponse (..),+ newDeleteRecordingConfigurationResponse,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IVS.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteRecordingConfiguration' smart constructor.+data DeleteRecordingConfiguration = DeleteRecordingConfiguration'+ { -- | ARN of the recording configuration to be deleted.+ arn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteRecordingConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteRecordingConfiguration_arn' - ARN of the recording configuration to be deleted.+newDeleteRecordingConfiguration ::+ -- | 'arn'+ Prelude.Text ->+ DeleteRecordingConfiguration+newDeleteRecordingConfiguration pArn_ =+ DeleteRecordingConfiguration' {arn = pArn_}++-- | ARN of the recording configuration to be deleted.+deleteRecordingConfiguration_arn :: Lens.Lens' DeleteRecordingConfiguration Prelude.Text+deleteRecordingConfiguration_arn = Lens.lens (\DeleteRecordingConfiguration' {arn} -> arn) (\s@DeleteRecordingConfiguration' {} a -> s {arn = a} :: DeleteRecordingConfiguration)++instance Core.AWSRequest DeleteRecordingConfiguration where+ type+ AWSResponse DeleteRecordingConfiguration =+ DeleteRecordingConfigurationResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveNull+ DeleteRecordingConfigurationResponse'++instance+ Prelude.Hashable+ DeleteRecordingConfiguration+ where+ hashWithSalt _salt DeleteRecordingConfiguration' {..} =+ _salt `Prelude.hashWithSalt` arn++instance Prelude.NFData DeleteRecordingConfiguration where+ rnf DeleteRecordingConfiguration' {..} =+ Prelude.rnf arn++instance Data.ToHeaders DeleteRecordingConfiguration where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON DeleteRecordingConfiguration where+ toJSON DeleteRecordingConfiguration' {..} =+ Data.object+ ( Prelude.catMaybes+ [Prelude.Just ("arn" Data..= arn)]+ )++instance Data.ToPath DeleteRecordingConfiguration where+ toPath =+ Prelude.const "/DeleteRecordingConfiguration"++instance Data.ToQuery DeleteRecordingConfiguration where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteRecordingConfigurationResponse' smart constructor.+data DeleteRecordingConfigurationResponse = DeleteRecordingConfigurationResponse'+ {+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteRecordingConfigurationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newDeleteRecordingConfigurationResponse ::+ DeleteRecordingConfigurationResponse+newDeleteRecordingConfigurationResponse =+ DeleteRecordingConfigurationResponse'++instance+ Prelude.NFData+ DeleteRecordingConfigurationResponse+ where+ rnf _ = ()
+ gen/Amazonka/IVS/DeleteStreamKey.hs view
@@ -0,0 +1,129 @@+{-# 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.IVS.DeleteStreamKey+-- 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 the stream key for the specified ARN, so it can no longer be+-- used to stream.+module Amazonka.IVS.DeleteStreamKey+ ( -- * Creating a Request+ DeleteStreamKey (..),+ newDeleteStreamKey,++ -- * Request Lenses+ deleteStreamKey_arn,++ -- * Destructuring the Response+ DeleteStreamKeyResponse (..),+ newDeleteStreamKeyResponse,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IVS.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteStreamKey' smart constructor.+data DeleteStreamKey = DeleteStreamKey'+ { -- | ARN of the stream key to be deleted.+ arn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteStreamKey' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteStreamKey_arn' - ARN of the stream key to be deleted.+newDeleteStreamKey ::+ -- | 'arn'+ Prelude.Text ->+ DeleteStreamKey+newDeleteStreamKey pArn_ =+ DeleteStreamKey' {arn = pArn_}++-- | ARN of the stream key to be deleted.+deleteStreamKey_arn :: Lens.Lens' DeleteStreamKey Prelude.Text+deleteStreamKey_arn = Lens.lens (\DeleteStreamKey' {arn} -> arn) (\s@DeleteStreamKey' {} a -> s {arn = a} :: DeleteStreamKey)++instance Core.AWSRequest DeleteStreamKey where+ type+ AWSResponse DeleteStreamKey =+ DeleteStreamKeyResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveNull DeleteStreamKeyResponse'++instance Prelude.Hashable DeleteStreamKey where+ hashWithSalt _salt DeleteStreamKey' {..} =+ _salt `Prelude.hashWithSalt` arn++instance Prelude.NFData DeleteStreamKey where+ rnf DeleteStreamKey' {..} = Prelude.rnf arn++instance Data.ToHeaders DeleteStreamKey where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON DeleteStreamKey where+ toJSON DeleteStreamKey' {..} =+ Data.object+ ( Prelude.catMaybes+ [Prelude.Just ("arn" Data..= arn)]+ )++instance Data.ToPath DeleteStreamKey where+ toPath = Prelude.const "/DeleteStreamKey"++instance Data.ToQuery DeleteStreamKey where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteStreamKeyResponse' smart constructor.+data DeleteStreamKeyResponse = DeleteStreamKeyResponse'+ {+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteStreamKeyResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newDeleteStreamKeyResponse ::+ DeleteStreamKeyResponse+newDeleteStreamKeyResponse = DeleteStreamKeyResponse'++instance Prelude.NFData DeleteStreamKeyResponse where+ rnf _ = ()
+ gen/Amazonka/IVS/GetChannel.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.IVS.GetChannel+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets the channel configuration for the specified channel ARN. See also+-- BatchGetChannel.+module Amazonka.IVS.GetChannel+ ( -- * Creating a Request+ GetChannel (..),+ newGetChannel,++ -- * Request Lenses+ getChannel_arn,++ -- * Destructuring the Response+ GetChannelResponse (..),+ newGetChannelResponse,++ -- * Response Lenses+ getChannelResponse_channel,+ getChannelResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IVS.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetChannel' smart constructor.+data GetChannel = GetChannel'+ { -- | ARN of the channel for which the configuration is to be retrieved.+ arn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetChannel' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getChannel_arn' - ARN of the channel for which the configuration is to be retrieved.+newGetChannel ::+ -- | 'arn'+ Prelude.Text ->+ GetChannel+newGetChannel pArn_ = GetChannel' {arn = pArn_}++-- | ARN of the channel for which the configuration is to be retrieved.+getChannel_arn :: Lens.Lens' GetChannel Prelude.Text+getChannel_arn = Lens.lens (\GetChannel' {arn} -> arn) (\s@GetChannel' {} a -> s {arn = a} :: GetChannel)++instance Core.AWSRequest GetChannel where+ type AWSResponse GetChannel = GetChannelResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ GetChannelResponse'+ Prelude.<$> (x Data..?> "channel")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable GetChannel where+ hashWithSalt _salt GetChannel' {..} =+ _salt `Prelude.hashWithSalt` arn++instance Prelude.NFData GetChannel where+ rnf GetChannel' {..} = Prelude.rnf arn++instance Data.ToHeaders GetChannel where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON GetChannel where+ toJSON GetChannel' {..} =+ Data.object+ ( Prelude.catMaybes+ [Prelude.Just ("arn" Data..= arn)]+ )++instance Data.ToPath GetChannel where+ toPath = Prelude.const "/GetChannel"++instance Data.ToQuery GetChannel where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetChannelResponse' smart constructor.+data GetChannelResponse = GetChannelResponse'+ { channel :: Prelude.Maybe Channel,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetChannelResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'channel', 'getChannelResponse_channel' -+--+-- 'httpStatus', 'getChannelResponse_httpStatus' - The response's http status code.+newGetChannelResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ GetChannelResponse+newGetChannelResponse pHttpStatus_ =+ GetChannelResponse'+ { channel = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++getChannelResponse_channel :: Lens.Lens' GetChannelResponse (Prelude.Maybe Channel)+getChannelResponse_channel = Lens.lens (\GetChannelResponse' {channel} -> channel) (\s@GetChannelResponse' {} a -> s {channel = a} :: GetChannelResponse)++-- | The response's http status code.+getChannelResponse_httpStatus :: Lens.Lens' GetChannelResponse Prelude.Int+getChannelResponse_httpStatus = Lens.lens (\GetChannelResponse' {httpStatus} -> httpStatus) (\s@GetChannelResponse' {} a -> s {httpStatus = a} :: GetChannelResponse)++instance Prelude.NFData GetChannelResponse where+ rnf GetChannelResponse' {..} =+ Prelude.rnf channel+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/IVS/GetPlaybackKeyPair.hs view
@@ -0,0 +1,167 @@+{-# 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.IVS.GetPlaybackKeyPair+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets a specified playback authorization key pair and returns the @arn@+-- and @fingerprint@. The @privateKey@ held by the caller can be used to+-- generate viewer authorization tokens, to grant viewers access to private+-- channels. For more information, see+-- <https://docs.aws.amazon.com/ivs/latest/userguide/private-channels.html Setting Up Private Channels>+-- in the /Amazon IVS User Guide/.+module Amazonka.IVS.GetPlaybackKeyPair+ ( -- * Creating a Request+ GetPlaybackKeyPair (..),+ newGetPlaybackKeyPair,++ -- * Request Lenses+ getPlaybackKeyPair_arn,++ -- * Destructuring the Response+ GetPlaybackKeyPairResponse (..),+ newGetPlaybackKeyPairResponse,++ -- * Response Lenses+ getPlaybackKeyPairResponse_keyPair,+ getPlaybackKeyPairResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IVS.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetPlaybackKeyPair' smart constructor.+data GetPlaybackKeyPair = GetPlaybackKeyPair'+ { -- | ARN of the key pair to be returned.+ arn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetPlaybackKeyPair' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getPlaybackKeyPair_arn' - ARN of the key pair to be returned.+newGetPlaybackKeyPair ::+ -- | 'arn'+ Prelude.Text ->+ GetPlaybackKeyPair+newGetPlaybackKeyPair pArn_ =+ GetPlaybackKeyPair' {arn = pArn_}++-- | ARN of the key pair to be returned.+getPlaybackKeyPair_arn :: Lens.Lens' GetPlaybackKeyPair Prelude.Text+getPlaybackKeyPair_arn = Lens.lens (\GetPlaybackKeyPair' {arn} -> arn) (\s@GetPlaybackKeyPair' {} a -> s {arn = a} :: GetPlaybackKeyPair)++instance Core.AWSRequest GetPlaybackKeyPair where+ type+ AWSResponse GetPlaybackKeyPair =+ GetPlaybackKeyPairResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ GetPlaybackKeyPairResponse'+ Prelude.<$> (x Data..?> "keyPair")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable GetPlaybackKeyPair where+ hashWithSalt _salt GetPlaybackKeyPair' {..} =+ _salt `Prelude.hashWithSalt` arn++instance Prelude.NFData GetPlaybackKeyPair where+ rnf GetPlaybackKeyPair' {..} = Prelude.rnf arn++instance Data.ToHeaders GetPlaybackKeyPair where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON GetPlaybackKeyPair where+ toJSON GetPlaybackKeyPair' {..} =+ Data.object+ ( Prelude.catMaybes+ [Prelude.Just ("arn" Data..= arn)]+ )++instance Data.ToPath GetPlaybackKeyPair where+ toPath = Prelude.const "/GetPlaybackKeyPair"++instance Data.ToQuery GetPlaybackKeyPair where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetPlaybackKeyPairResponse' smart constructor.+data GetPlaybackKeyPairResponse = GetPlaybackKeyPairResponse'+ { keyPair :: Prelude.Maybe PlaybackKeyPair,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetPlaybackKeyPairResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'keyPair', 'getPlaybackKeyPairResponse_keyPair' -+--+-- 'httpStatus', 'getPlaybackKeyPairResponse_httpStatus' - The response's http status code.+newGetPlaybackKeyPairResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ GetPlaybackKeyPairResponse+newGetPlaybackKeyPairResponse pHttpStatus_ =+ GetPlaybackKeyPairResponse'+ { keyPair =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++getPlaybackKeyPairResponse_keyPair :: Lens.Lens' GetPlaybackKeyPairResponse (Prelude.Maybe PlaybackKeyPair)+getPlaybackKeyPairResponse_keyPair = Lens.lens (\GetPlaybackKeyPairResponse' {keyPair} -> keyPair) (\s@GetPlaybackKeyPairResponse' {} a -> s {keyPair = a} :: GetPlaybackKeyPairResponse)++-- | The response's http status code.+getPlaybackKeyPairResponse_httpStatus :: Lens.Lens' GetPlaybackKeyPairResponse Prelude.Int+getPlaybackKeyPairResponse_httpStatus = Lens.lens (\GetPlaybackKeyPairResponse' {httpStatus} -> httpStatus) (\s@GetPlaybackKeyPairResponse' {} a -> s {httpStatus = a} :: GetPlaybackKeyPairResponse)++instance Prelude.NFData GetPlaybackKeyPairResponse where+ rnf GetPlaybackKeyPairResponse' {..} =+ Prelude.rnf keyPair+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/IVS/GetRecordingConfiguration.hs view
@@ -0,0 +1,165 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.IVS.GetRecordingConfiguration+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets the recording configuration for the specified ARN.+module Amazonka.IVS.GetRecordingConfiguration+ ( -- * Creating a Request+ GetRecordingConfiguration (..),+ newGetRecordingConfiguration,++ -- * Request Lenses+ getRecordingConfiguration_arn,++ -- * Destructuring the Response+ GetRecordingConfigurationResponse (..),+ newGetRecordingConfigurationResponse,++ -- * Response Lenses+ getRecordingConfigurationResponse_recordingConfiguration,+ getRecordingConfigurationResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IVS.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetRecordingConfiguration' smart constructor.+data GetRecordingConfiguration = GetRecordingConfiguration'+ { -- | ARN of the recording configuration to be retrieved.+ arn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetRecordingConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getRecordingConfiguration_arn' - ARN of the recording configuration to be retrieved.+newGetRecordingConfiguration ::+ -- | 'arn'+ Prelude.Text ->+ GetRecordingConfiguration+newGetRecordingConfiguration pArn_ =+ GetRecordingConfiguration' {arn = pArn_}++-- | ARN of the recording configuration to be retrieved.+getRecordingConfiguration_arn :: Lens.Lens' GetRecordingConfiguration Prelude.Text+getRecordingConfiguration_arn = Lens.lens (\GetRecordingConfiguration' {arn} -> arn) (\s@GetRecordingConfiguration' {} a -> s {arn = a} :: GetRecordingConfiguration)++instance Core.AWSRequest GetRecordingConfiguration where+ type+ AWSResponse GetRecordingConfiguration =+ GetRecordingConfigurationResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ GetRecordingConfigurationResponse'+ Prelude.<$> (x Data..?> "recordingConfiguration")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable GetRecordingConfiguration where+ hashWithSalt _salt GetRecordingConfiguration' {..} =+ _salt `Prelude.hashWithSalt` arn++instance Prelude.NFData GetRecordingConfiguration where+ rnf GetRecordingConfiguration' {..} = Prelude.rnf arn++instance Data.ToHeaders GetRecordingConfiguration where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON GetRecordingConfiguration where+ toJSON GetRecordingConfiguration' {..} =+ Data.object+ ( Prelude.catMaybes+ [Prelude.Just ("arn" Data..= arn)]+ )++instance Data.ToPath GetRecordingConfiguration where+ toPath = Prelude.const "/GetRecordingConfiguration"++instance Data.ToQuery GetRecordingConfiguration where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetRecordingConfigurationResponse' smart constructor.+data GetRecordingConfigurationResponse = GetRecordingConfigurationResponse'+ { recordingConfiguration :: Prelude.Maybe RecordingConfiguration,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetRecordingConfigurationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'recordingConfiguration', 'getRecordingConfigurationResponse_recordingConfiguration' -+--+-- 'httpStatus', 'getRecordingConfigurationResponse_httpStatus' - The response's http status code.+newGetRecordingConfigurationResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ GetRecordingConfigurationResponse+newGetRecordingConfigurationResponse pHttpStatus_ =+ GetRecordingConfigurationResponse'+ { recordingConfiguration =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++getRecordingConfigurationResponse_recordingConfiguration :: Lens.Lens' GetRecordingConfigurationResponse (Prelude.Maybe RecordingConfiguration)+getRecordingConfigurationResponse_recordingConfiguration = Lens.lens (\GetRecordingConfigurationResponse' {recordingConfiguration} -> recordingConfiguration) (\s@GetRecordingConfigurationResponse' {} a -> s {recordingConfiguration = a} :: GetRecordingConfigurationResponse)++-- | The response's http status code.+getRecordingConfigurationResponse_httpStatus :: Lens.Lens' GetRecordingConfigurationResponse Prelude.Int+getRecordingConfigurationResponse_httpStatus = Lens.lens (\GetRecordingConfigurationResponse' {httpStatus} -> httpStatus) (\s@GetRecordingConfigurationResponse' {} a -> s {httpStatus = a} :: GetRecordingConfigurationResponse)++instance+ Prelude.NFData+ GetRecordingConfigurationResponse+ where+ rnf GetRecordingConfigurationResponse' {..} =+ Prelude.rnf recordingConfiguration+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/IVS/GetStream.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.IVS.GetStream+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets information about the active (live) stream on a specified channel.+module Amazonka.IVS.GetStream+ ( -- * Creating a Request+ GetStream (..),+ newGetStream,++ -- * Request Lenses+ getStream_channelArn,++ -- * Destructuring the Response+ GetStreamResponse (..),+ newGetStreamResponse,++ -- * Response Lenses+ getStreamResponse_stream,+ getStreamResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IVS.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetStream' smart constructor.+data GetStream = GetStream'+ { -- | Channel ARN for stream to be accessed.+ channelArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetStream' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'channelArn', 'getStream_channelArn' - Channel ARN for stream to be accessed.+newGetStream ::+ -- | 'channelArn'+ Prelude.Text ->+ GetStream+newGetStream pChannelArn_ =+ GetStream' {channelArn = pChannelArn_}++-- | Channel ARN for stream to be accessed.+getStream_channelArn :: Lens.Lens' GetStream Prelude.Text+getStream_channelArn = Lens.lens (\GetStream' {channelArn} -> channelArn) (\s@GetStream' {} a -> s {channelArn = a} :: GetStream)++instance Core.AWSRequest GetStream where+ type AWSResponse GetStream = GetStreamResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ GetStreamResponse'+ Prelude.<$> (x Data..?> "stream")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable GetStream where+ hashWithSalt _salt GetStream' {..} =+ _salt `Prelude.hashWithSalt` channelArn++instance Prelude.NFData GetStream where+ rnf GetStream' {..} = Prelude.rnf channelArn++instance Data.ToHeaders GetStream where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON GetStream where+ toJSON GetStream' {..} =+ Data.object+ ( Prelude.catMaybes+ [Prelude.Just ("channelArn" Data..= channelArn)]+ )++instance Data.ToPath GetStream where+ toPath = Prelude.const "/GetStream"++instance Data.ToQuery GetStream where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetStreamResponse' smart constructor.+data GetStreamResponse = GetStreamResponse'+ { stream :: Prelude.Maybe Stream,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetStreamResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'stream', 'getStreamResponse_stream' -+--+-- 'httpStatus', 'getStreamResponse_httpStatus' - The response's http status code.+newGetStreamResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ GetStreamResponse+newGetStreamResponse pHttpStatus_ =+ GetStreamResponse'+ { stream = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++getStreamResponse_stream :: Lens.Lens' GetStreamResponse (Prelude.Maybe Stream)+getStreamResponse_stream = Lens.lens (\GetStreamResponse' {stream} -> stream) (\s@GetStreamResponse' {} a -> s {stream = a} :: GetStreamResponse)++-- | The response's http status code.+getStreamResponse_httpStatus :: Lens.Lens' GetStreamResponse Prelude.Int+getStreamResponse_httpStatus = Lens.lens (\GetStreamResponse' {httpStatus} -> httpStatus) (\s@GetStreamResponse' {} a -> s {httpStatus = a} :: GetStreamResponse)++instance Prelude.NFData GetStreamResponse where+ rnf GetStreamResponse' {..} =+ Prelude.rnf stream+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/IVS/GetStreamKey.hs view
@@ -0,0 +1,158 @@+{-# 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.IVS.GetStreamKey+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets stream-key information for a specified ARN.+module Amazonka.IVS.GetStreamKey+ ( -- * Creating a Request+ GetStreamKey (..),+ newGetStreamKey,++ -- * Request Lenses+ getStreamKey_arn,++ -- * Destructuring the Response+ GetStreamKeyResponse (..),+ newGetStreamKeyResponse,++ -- * Response Lenses+ getStreamKeyResponse_streamKey,+ getStreamKeyResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IVS.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetStreamKey' smart constructor.+data GetStreamKey = GetStreamKey'+ { -- | ARN for the stream key to be retrieved.+ arn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetStreamKey' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getStreamKey_arn' - ARN for the stream key to be retrieved.+newGetStreamKey ::+ -- | 'arn'+ Prelude.Text ->+ GetStreamKey+newGetStreamKey pArn_ = GetStreamKey' {arn = pArn_}++-- | ARN for the stream key to be retrieved.+getStreamKey_arn :: Lens.Lens' GetStreamKey Prelude.Text+getStreamKey_arn = Lens.lens (\GetStreamKey' {arn} -> arn) (\s@GetStreamKey' {} a -> s {arn = a} :: GetStreamKey)++instance Core.AWSRequest GetStreamKey where+ type AWSResponse GetStreamKey = GetStreamKeyResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ GetStreamKeyResponse'+ Prelude.<$> (x Data..?> "streamKey")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable GetStreamKey where+ hashWithSalt _salt GetStreamKey' {..} =+ _salt `Prelude.hashWithSalt` arn++instance Prelude.NFData GetStreamKey where+ rnf GetStreamKey' {..} = Prelude.rnf arn++instance Data.ToHeaders GetStreamKey where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON GetStreamKey where+ toJSON GetStreamKey' {..} =+ Data.object+ ( Prelude.catMaybes+ [Prelude.Just ("arn" Data..= arn)]+ )++instance Data.ToPath GetStreamKey where+ toPath = Prelude.const "/GetStreamKey"++instance Data.ToQuery GetStreamKey where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetStreamKeyResponse' smart constructor.+data GetStreamKeyResponse = GetStreamKeyResponse'+ { streamKey :: Prelude.Maybe StreamKey,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetStreamKeyResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'streamKey', 'getStreamKeyResponse_streamKey' -+--+-- 'httpStatus', 'getStreamKeyResponse_httpStatus' - The response's http status code.+newGetStreamKeyResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ GetStreamKeyResponse+newGetStreamKeyResponse pHttpStatus_ =+ GetStreamKeyResponse'+ { streamKey = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++getStreamKeyResponse_streamKey :: Lens.Lens' GetStreamKeyResponse (Prelude.Maybe StreamKey)+getStreamKeyResponse_streamKey = Lens.lens (\GetStreamKeyResponse' {streamKey} -> streamKey) (\s@GetStreamKeyResponse' {} a -> s {streamKey = a} :: GetStreamKeyResponse)++-- | The response's http status code.+getStreamKeyResponse_httpStatus :: Lens.Lens' GetStreamKeyResponse Prelude.Int+getStreamKeyResponse_httpStatus = Lens.lens (\GetStreamKeyResponse' {httpStatus} -> httpStatus) (\s@GetStreamKeyResponse' {} a -> s {httpStatus = a} :: GetStreamKeyResponse)++instance Prelude.NFData GetStreamKeyResponse where+ rnf GetStreamKeyResponse' {..} =+ Prelude.rnf streamKey+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/IVS/GetStreamSession.hs view
@@ -0,0 +1,188 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.IVS.GetStreamSession+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets metadata on a specified stream.+module Amazonka.IVS.GetStreamSession+ ( -- * Creating a Request+ GetStreamSession (..),+ newGetStreamSession,++ -- * Request Lenses+ getStreamSession_streamId,+ getStreamSession_channelArn,++ -- * Destructuring the Response+ GetStreamSessionResponse (..),+ newGetStreamSessionResponse,++ -- * Response Lenses+ getStreamSessionResponse_streamSession,+ getStreamSessionResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IVS.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetStreamSession' smart constructor.+data GetStreamSession = GetStreamSession'+ { -- | Unique identifier for a live or previously live stream in the specified+ -- channel. If no @streamId@ is provided, this returns the most recent+ -- stream session for the channel, if it exists.+ streamId :: Prelude.Maybe Prelude.Text,+ -- | ARN of the channel resource+ channelArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetStreamSession' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'streamId', 'getStreamSession_streamId' - Unique identifier for a live or previously live stream in the specified+-- channel. If no @streamId@ is provided, this returns the most recent+-- stream session for the channel, if it exists.+--+-- 'channelArn', 'getStreamSession_channelArn' - ARN of the channel resource+newGetStreamSession ::+ -- | 'channelArn'+ Prelude.Text ->+ GetStreamSession+newGetStreamSession pChannelArn_ =+ GetStreamSession'+ { streamId = Prelude.Nothing,+ channelArn = pChannelArn_+ }++-- | Unique identifier for a live or previously live stream in the specified+-- channel. If no @streamId@ is provided, this returns the most recent+-- stream session for the channel, if it exists.+getStreamSession_streamId :: Lens.Lens' GetStreamSession (Prelude.Maybe Prelude.Text)+getStreamSession_streamId = Lens.lens (\GetStreamSession' {streamId} -> streamId) (\s@GetStreamSession' {} a -> s {streamId = a} :: GetStreamSession)++-- | ARN of the channel resource+getStreamSession_channelArn :: Lens.Lens' GetStreamSession Prelude.Text+getStreamSession_channelArn = Lens.lens (\GetStreamSession' {channelArn} -> channelArn) (\s@GetStreamSession' {} a -> s {channelArn = a} :: GetStreamSession)++instance Core.AWSRequest GetStreamSession where+ type+ AWSResponse GetStreamSession =+ GetStreamSessionResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ GetStreamSessionResponse'+ Prelude.<$> (x Data..?> "streamSession")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable GetStreamSession where+ hashWithSalt _salt GetStreamSession' {..} =+ _salt+ `Prelude.hashWithSalt` streamId+ `Prelude.hashWithSalt` channelArn++instance Prelude.NFData GetStreamSession where+ rnf GetStreamSession' {..} =+ Prelude.rnf streamId+ `Prelude.seq` Prelude.rnf channelArn++instance Data.ToHeaders GetStreamSession where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON GetStreamSession where+ toJSON GetStreamSession' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("streamId" Data..=) Prelude.<$> streamId,+ Prelude.Just ("channelArn" Data..= channelArn)+ ]+ )++instance Data.ToPath GetStreamSession where+ toPath = Prelude.const "/GetStreamSession"++instance Data.ToQuery GetStreamSession where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetStreamSessionResponse' smart constructor.+data GetStreamSessionResponse = GetStreamSessionResponse'+ { -- | List of stream details.+ streamSession :: Prelude.Maybe StreamSession,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetStreamSessionResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'streamSession', 'getStreamSessionResponse_streamSession' - List of stream details.+--+-- 'httpStatus', 'getStreamSessionResponse_httpStatus' - The response's http status code.+newGetStreamSessionResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ GetStreamSessionResponse+newGetStreamSessionResponse pHttpStatus_ =+ GetStreamSessionResponse'+ { streamSession =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | List of stream details.+getStreamSessionResponse_streamSession :: Lens.Lens' GetStreamSessionResponse (Prelude.Maybe StreamSession)+getStreamSessionResponse_streamSession = Lens.lens (\GetStreamSessionResponse' {streamSession} -> streamSession) (\s@GetStreamSessionResponse' {} a -> s {streamSession = a} :: GetStreamSessionResponse)++-- | The response's http status code.+getStreamSessionResponse_httpStatus :: Lens.Lens' GetStreamSessionResponse Prelude.Int+getStreamSessionResponse_httpStatus = Lens.lens (\GetStreamSessionResponse' {httpStatus} -> httpStatus) (\s@GetStreamSessionResponse' {} a -> s {httpStatus = a} :: GetStreamSessionResponse)++instance Prelude.NFData GetStreamSessionResponse where+ rnf GetStreamSessionResponse' {..} =+ Prelude.rnf streamSession+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/IVS/ImportPlaybackKeyPair.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.IVS.ImportPlaybackKeyPair+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Imports the public portion of a new key pair and returns its @arn@ and+-- @fingerprint@. The @privateKey@ can then be used to generate viewer+-- authorization tokens, to grant viewers access to private channels. For+-- more information, see+-- <https://docs.aws.amazon.com/ivs/latest/userguide/private-channels.html Setting Up Private Channels>+-- in the /Amazon IVS User Guide/.+module Amazonka.IVS.ImportPlaybackKeyPair+ ( -- * Creating a Request+ ImportPlaybackKeyPair (..),+ newImportPlaybackKeyPair,++ -- * Request Lenses+ importPlaybackKeyPair_name,+ importPlaybackKeyPair_tags,+ importPlaybackKeyPair_publicKeyMaterial,++ -- * Destructuring the Response+ ImportPlaybackKeyPairResponse (..),+ newImportPlaybackKeyPairResponse,++ -- * Response Lenses+ importPlaybackKeyPairResponse_keyPair,+ importPlaybackKeyPairResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IVS.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newImportPlaybackKeyPair' smart constructor.+data ImportPlaybackKeyPair = ImportPlaybackKeyPair'+ { -- | Playback-key-pair name. The value does not need to be unique.+ name :: Prelude.Maybe Prelude.Text,+ -- | Any tags provided with the request are added to the playback key pair+ -- tags. See+ -- <https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html Tagging Amazon Web Services Resources>+ -- for more information, including restrictions that apply to tags and+ -- \"Tag naming limits and requirements\"; Amazon IVS has no+ -- service-specific constraints beyond what is documented there.+ tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | The public portion of a customer-generated key pair.+ publicKeyMaterial :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ImportPlaybackKeyPair' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'importPlaybackKeyPair_name' - Playback-key-pair name. The value does not need to be unique.+--+-- 'tags', 'importPlaybackKeyPair_tags' - Any tags provided with the request are added to the playback key pair+-- tags. See+-- <https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html Tagging Amazon Web Services Resources>+-- for more information, including restrictions that apply to tags and+-- \"Tag naming limits and requirements\"; Amazon IVS has no+-- service-specific constraints beyond what is documented there.+--+-- 'publicKeyMaterial', 'importPlaybackKeyPair_publicKeyMaterial' - The public portion of a customer-generated key pair.+newImportPlaybackKeyPair ::+ -- | 'publicKeyMaterial'+ Prelude.Text ->+ ImportPlaybackKeyPair+newImportPlaybackKeyPair pPublicKeyMaterial_ =+ ImportPlaybackKeyPair'+ { name = Prelude.Nothing,+ tags = Prelude.Nothing,+ publicKeyMaterial = pPublicKeyMaterial_+ }++-- | Playback-key-pair name. The value does not need to be unique.+importPlaybackKeyPair_name :: Lens.Lens' ImportPlaybackKeyPair (Prelude.Maybe Prelude.Text)+importPlaybackKeyPair_name = Lens.lens (\ImportPlaybackKeyPair' {name} -> name) (\s@ImportPlaybackKeyPair' {} a -> s {name = a} :: ImportPlaybackKeyPair)++-- | Any tags provided with the request are added to the playback key pair+-- tags. See+-- <https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html Tagging Amazon Web Services Resources>+-- for more information, including restrictions that apply to tags and+-- \"Tag naming limits and requirements\"; Amazon IVS has no+-- service-specific constraints beyond what is documented there.+importPlaybackKeyPair_tags :: Lens.Lens' ImportPlaybackKeyPair (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+importPlaybackKeyPair_tags = Lens.lens (\ImportPlaybackKeyPair' {tags} -> tags) (\s@ImportPlaybackKeyPair' {} a -> s {tags = a} :: ImportPlaybackKeyPair) Prelude.. Lens.mapping Lens.coerced++-- | The public portion of a customer-generated key pair.+importPlaybackKeyPair_publicKeyMaterial :: Lens.Lens' ImportPlaybackKeyPair Prelude.Text+importPlaybackKeyPair_publicKeyMaterial = Lens.lens (\ImportPlaybackKeyPair' {publicKeyMaterial} -> publicKeyMaterial) (\s@ImportPlaybackKeyPair' {} a -> s {publicKeyMaterial = a} :: ImportPlaybackKeyPair)++instance Core.AWSRequest ImportPlaybackKeyPair where+ type+ AWSResponse ImportPlaybackKeyPair =+ ImportPlaybackKeyPairResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ImportPlaybackKeyPairResponse'+ Prelude.<$> (x Data..?> "keyPair")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable ImportPlaybackKeyPair where+ hashWithSalt _salt ImportPlaybackKeyPair' {..} =+ _salt+ `Prelude.hashWithSalt` name+ `Prelude.hashWithSalt` tags+ `Prelude.hashWithSalt` publicKeyMaterial++instance Prelude.NFData ImportPlaybackKeyPair where+ rnf ImportPlaybackKeyPair' {..} =+ Prelude.rnf name+ `Prelude.seq` Prelude.rnf tags+ `Prelude.seq` Prelude.rnf publicKeyMaterial++instance Data.ToHeaders ImportPlaybackKeyPair where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON ImportPlaybackKeyPair where+ toJSON ImportPlaybackKeyPair' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("name" Data..=) Prelude.<$> name,+ ("tags" Data..=) Prelude.<$> tags,+ Prelude.Just+ ("publicKeyMaterial" Data..= publicKeyMaterial)+ ]+ )++instance Data.ToPath ImportPlaybackKeyPair where+ toPath = Prelude.const "/ImportPlaybackKeyPair"++instance Data.ToQuery ImportPlaybackKeyPair where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newImportPlaybackKeyPairResponse' smart constructor.+data ImportPlaybackKeyPairResponse = ImportPlaybackKeyPairResponse'+ { keyPair :: Prelude.Maybe PlaybackKeyPair,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ImportPlaybackKeyPairResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'keyPair', 'importPlaybackKeyPairResponse_keyPair' -+--+-- 'httpStatus', 'importPlaybackKeyPairResponse_httpStatus' - The response's http status code.+newImportPlaybackKeyPairResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ImportPlaybackKeyPairResponse+newImportPlaybackKeyPairResponse pHttpStatus_ =+ ImportPlaybackKeyPairResponse'+ { keyPair =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++importPlaybackKeyPairResponse_keyPair :: Lens.Lens' ImportPlaybackKeyPairResponse (Prelude.Maybe PlaybackKeyPair)+importPlaybackKeyPairResponse_keyPair = Lens.lens (\ImportPlaybackKeyPairResponse' {keyPair} -> keyPair) (\s@ImportPlaybackKeyPairResponse' {} a -> s {keyPair = a} :: ImportPlaybackKeyPairResponse)++-- | The response's http status code.+importPlaybackKeyPairResponse_httpStatus :: Lens.Lens' ImportPlaybackKeyPairResponse Prelude.Int+importPlaybackKeyPairResponse_httpStatus = Lens.lens (\ImportPlaybackKeyPairResponse' {httpStatus} -> httpStatus) (\s@ImportPlaybackKeyPairResponse' {} a -> s {httpStatus = a} :: ImportPlaybackKeyPairResponse)++instance Prelude.NFData ImportPlaybackKeyPairResponse where+ rnf ImportPlaybackKeyPairResponse' {..} =+ Prelude.rnf keyPair+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/IVS/Lens.hs view
@@ -0,0 +1,370 @@+{-# 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.IVS.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.IVS.Lens+ ( -- * Operations++ -- ** BatchGetChannel+ batchGetChannel_arns,+ batchGetChannelResponse_channels,+ batchGetChannelResponse_errors,+ batchGetChannelResponse_httpStatus,++ -- ** BatchGetStreamKey+ batchGetStreamKey_arns,+ batchGetStreamKeyResponse_errors,+ batchGetStreamKeyResponse_streamKeys,+ batchGetStreamKeyResponse_httpStatus,++ -- ** CreateChannel+ createChannel_authorized,+ createChannel_latencyMode,+ createChannel_name,+ createChannel_recordingConfigurationArn,+ createChannel_tags,+ createChannel_type,+ createChannelResponse_channel,+ createChannelResponse_streamKey,+ createChannelResponse_httpStatus,++ -- ** CreateRecordingConfiguration+ createRecordingConfiguration_name,+ createRecordingConfiguration_recordingReconnectWindowSeconds,+ createRecordingConfiguration_tags,+ createRecordingConfiguration_thumbnailConfiguration,+ createRecordingConfiguration_destinationConfiguration,+ createRecordingConfigurationResponse_recordingConfiguration,+ createRecordingConfigurationResponse_httpStatus,++ -- ** CreateStreamKey+ createStreamKey_tags,+ createStreamKey_channelArn,+ createStreamKeyResponse_streamKey,+ createStreamKeyResponse_httpStatus,++ -- ** DeleteChannel+ deleteChannel_arn,++ -- ** DeletePlaybackKeyPair+ deletePlaybackKeyPair_arn,+ deletePlaybackKeyPairResponse_httpStatus,++ -- ** DeleteRecordingConfiguration+ deleteRecordingConfiguration_arn,++ -- ** DeleteStreamKey+ deleteStreamKey_arn,++ -- ** GetChannel+ getChannel_arn,+ getChannelResponse_channel,+ getChannelResponse_httpStatus,++ -- ** GetPlaybackKeyPair+ getPlaybackKeyPair_arn,+ getPlaybackKeyPairResponse_keyPair,+ getPlaybackKeyPairResponse_httpStatus,++ -- ** GetRecordingConfiguration+ getRecordingConfiguration_arn,+ getRecordingConfigurationResponse_recordingConfiguration,+ getRecordingConfigurationResponse_httpStatus,++ -- ** GetStream+ getStream_channelArn,+ getStreamResponse_stream,+ getStreamResponse_httpStatus,++ -- ** GetStreamKey+ getStreamKey_arn,+ getStreamKeyResponse_streamKey,+ getStreamKeyResponse_httpStatus,++ -- ** GetStreamSession+ getStreamSession_streamId,+ getStreamSession_channelArn,+ getStreamSessionResponse_streamSession,+ getStreamSessionResponse_httpStatus,++ -- ** ImportPlaybackKeyPair+ importPlaybackKeyPair_name,+ importPlaybackKeyPair_tags,+ importPlaybackKeyPair_publicKeyMaterial,+ importPlaybackKeyPairResponse_keyPair,+ importPlaybackKeyPairResponse_httpStatus,++ -- ** ListChannels+ listChannels_filterByName,+ listChannels_filterByRecordingConfigurationArn,+ listChannels_maxResults,+ listChannels_nextToken,+ listChannelsResponse_nextToken,+ listChannelsResponse_httpStatus,+ listChannelsResponse_channels,++ -- ** ListPlaybackKeyPairs+ listPlaybackKeyPairs_maxResults,+ listPlaybackKeyPairs_nextToken,+ listPlaybackKeyPairsResponse_nextToken,+ listPlaybackKeyPairsResponse_httpStatus,+ listPlaybackKeyPairsResponse_keyPairs,++ -- ** ListRecordingConfigurations+ listRecordingConfigurations_maxResults,+ listRecordingConfigurations_nextToken,+ listRecordingConfigurationsResponse_nextToken,+ listRecordingConfigurationsResponse_httpStatus,+ listRecordingConfigurationsResponse_recordingConfigurations,++ -- ** ListStreamKeys+ listStreamKeys_maxResults,+ listStreamKeys_nextToken,+ listStreamKeys_channelArn,+ listStreamKeysResponse_nextToken,+ listStreamKeysResponse_httpStatus,+ listStreamKeysResponse_streamKeys,++ -- ** ListStreamSessions+ listStreamSessions_maxResults,+ listStreamSessions_nextToken,+ listStreamSessions_channelArn,+ listStreamSessionsResponse_nextToken,+ listStreamSessionsResponse_httpStatus,+ listStreamSessionsResponse_streamSessions,++ -- ** ListStreams+ listStreams_filterBy,+ listStreams_maxResults,+ listStreams_nextToken,+ listStreamsResponse_nextToken,+ listStreamsResponse_httpStatus,+ listStreamsResponse_streams,++ -- ** ListTagsForResource+ listTagsForResource_resourceArn,+ listTagsForResourceResponse_httpStatus,+ listTagsForResourceResponse_tags,++ -- ** PutMetadata+ putMetadata_channelArn,+ putMetadata_metadata,++ -- ** StopStream+ stopStream_channelArn,+ stopStreamResponse_httpStatus,++ -- ** TagResource+ tagResource_resourceArn,+ tagResource_tags,+ tagResourceResponse_httpStatus,++ -- ** UntagResource+ untagResource_resourceArn,+ untagResource_tagKeys,+ untagResourceResponse_httpStatus,++ -- ** UpdateChannel+ updateChannel_authorized,+ updateChannel_latencyMode,+ updateChannel_name,+ updateChannel_recordingConfigurationArn,+ updateChannel_type,+ updateChannel_arn,+ updateChannelResponse_channel,+ updateChannelResponse_httpStatus,++ -- * Types++ -- ** AudioConfiguration+ audioConfiguration_channels,+ audioConfiguration_codec,+ audioConfiguration_sampleRate,+ audioConfiguration_targetBitrate,++ -- ** BatchError+ batchError_arn,+ batchError_code,+ batchError_message,++ -- ** Channel+ channel_arn,+ channel_authorized,+ channel_ingestEndpoint,+ channel_latencyMode,+ channel_name,+ channel_playbackUrl,+ channel_recordingConfigurationArn,+ channel_tags,+ channel_type,++ -- ** ChannelSummary+ channelSummary_arn,+ channelSummary_authorized,+ channelSummary_latencyMode,+ channelSummary_name,+ channelSummary_recordingConfigurationArn,+ channelSummary_tags,++ -- ** DestinationConfiguration+ destinationConfiguration_s3,++ -- ** IngestConfiguration+ ingestConfiguration_audio,+ ingestConfiguration_video,++ -- ** PlaybackKeyPair+ playbackKeyPair_arn,+ playbackKeyPair_fingerprint,+ playbackKeyPair_name,+ playbackKeyPair_tags,++ -- ** PlaybackKeyPairSummary+ playbackKeyPairSummary_arn,+ playbackKeyPairSummary_name,+ playbackKeyPairSummary_tags,++ -- ** RecordingConfiguration+ recordingConfiguration_name,+ recordingConfiguration_recordingReconnectWindowSeconds,+ recordingConfiguration_tags,+ recordingConfiguration_thumbnailConfiguration,+ recordingConfiguration_arn,+ recordingConfiguration_destinationConfiguration,+ recordingConfiguration_state,++ -- ** RecordingConfigurationSummary+ recordingConfigurationSummary_name,+ recordingConfigurationSummary_tags,+ recordingConfigurationSummary_arn,+ recordingConfigurationSummary_destinationConfiguration,+ recordingConfigurationSummary_state,++ -- ** S3DestinationConfiguration+ s3DestinationConfiguration_bucketName,++ -- ** Stream+ stream_channelArn,+ stream_health,+ stream_playbackUrl,+ stream_startTime,+ stream_state,+ stream_streamId,+ stream_viewerCount,++ -- ** StreamEvent+ streamEvent_eventTime,+ streamEvent_name,+ streamEvent_type,++ -- ** StreamFilters+ streamFilters_health,++ -- ** StreamKey+ streamKey_arn,+ streamKey_channelArn,+ streamKey_tags,+ streamKey_value,++ -- ** StreamKeySummary+ streamKeySummary_arn,+ streamKeySummary_channelArn,+ streamKeySummary_tags,++ -- ** StreamSession+ streamSession_channel,+ streamSession_endTime,+ streamSession_ingestConfiguration,+ streamSession_recordingConfiguration,+ streamSession_startTime,+ streamSession_streamId,+ streamSession_truncatedEvents,++ -- ** StreamSessionSummary+ streamSessionSummary_endTime,+ streamSessionSummary_hasErrorEvent,+ streamSessionSummary_startTime,+ streamSessionSummary_streamId,++ -- ** StreamSummary+ streamSummary_channelArn,+ streamSummary_health,+ streamSummary_startTime,+ streamSummary_state,+ streamSummary_streamId,+ streamSummary_viewerCount,++ -- ** ThumbnailConfiguration+ thumbnailConfiguration_recordingMode,+ thumbnailConfiguration_targetIntervalSeconds,++ -- ** VideoConfiguration+ videoConfiguration_avcLevel,+ videoConfiguration_avcProfile,+ videoConfiguration_codec,+ videoConfiguration_encoder,+ videoConfiguration_targetBitrate,+ videoConfiguration_targetFramerate,+ videoConfiguration_videoHeight,+ videoConfiguration_videoWidth,+ )+where++import Amazonka.IVS.BatchGetChannel+import Amazonka.IVS.BatchGetStreamKey+import Amazonka.IVS.CreateChannel+import Amazonka.IVS.CreateRecordingConfiguration+import Amazonka.IVS.CreateStreamKey+import Amazonka.IVS.DeleteChannel+import Amazonka.IVS.DeletePlaybackKeyPair+import Amazonka.IVS.DeleteRecordingConfiguration+import Amazonka.IVS.DeleteStreamKey+import Amazonka.IVS.GetChannel+import Amazonka.IVS.GetPlaybackKeyPair+import Amazonka.IVS.GetRecordingConfiguration+import Amazonka.IVS.GetStream+import Amazonka.IVS.GetStreamKey+import Amazonka.IVS.GetStreamSession+import Amazonka.IVS.ImportPlaybackKeyPair+import Amazonka.IVS.ListChannels+import Amazonka.IVS.ListPlaybackKeyPairs+import Amazonka.IVS.ListRecordingConfigurations+import Amazonka.IVS.ListStreamKeys+import Amazonka.IVS.ListStreamSessions+import Amazonka.IVS.ListStreams+import Amazonka.IVS.ListTagsForResource+import Amazonka.IVS.PutMetadata+import Amazonka.IVS.StopStream+import Amazonka.IVS.TagResource+import Amazonka.IVS.Types.AudioConfiguration+import Amazonka.IVS.Types.BatchError+import Amazonka.IVS.Types.Channel+import Amazonka.IVS.Types.ChannelSummary+import Amazonka.IVS.Types.DestinationConfiguration+import Amazonka.IVS.Types.IngestConfiguration+import Amazonka.IVS.Types.PlaybackKeyPair+import Amazonka.IVS.Types.PlaybackKeyPairSummary+import Amazonka.IVS.Types.RecordingConfiguration+import Amazonka.IVS.Types.RecordingConfigurationSummary+import Amazonka.IVS.Types.S3DestinationConfiguration+import Amazonka.IVS.Types.Stream+import Amazonka.IVS.Types.StreamEvent+import Amazonka.IVS.Types.StreamFilters+import Amazonka.IVS.Types.StreamKey+import Amazonka.IVS.Types.StreamKeySummary+import Amazonka.IVS.Types.StreamSession+import Amazonka.IVS.Types.StreamSessionSummary+import Amazonka.IVS.Types.StreamSummary+import Amazonka.IVS.Types.ThumbnailConfiguration+import Amazonka.IVS.Types.VideoConfiguration+import Amazonka.IVS.UntagResource+import Amazonka.IVS.UpdateChannel
+ gen/Amazonka/IVS/ListChannels.hs view
@@ -0,0 +1,250 @@+{-# 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.IVS.ListChannels+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets summary information about all channels in your account, in the+-- Amazon Web Services region where the API request is processed. This list+-- can be filtered to match a specified name or recording-configuration+-- ARN. Filters are mutually exclusive and cannot be used together. If you+-- try to use both filters, you will get an error (409 ConflictException).+--+-- This operation returns paginated results.+module Amazonka.IVS.ListChannels+ ( -- * Creating a Request+ ListChannels (..),+ newListChannels,++ -- * Request Lenses+ listChannels_filterByName,+ listChannels_filterByRecordingConfigurationArn,+ listChannels_maxResults,+ listChannels_nextToken,++ -- * Destructuring the Response+ ListChannelsResponse (..),+ newListChannelsResponse,++ -- * Response Lenses+ listChannelsResponse_nextToken,+ listChannelsResponse_httpStatus,+ listChannelsResponse_channels,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IVS.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListChannels' smart constructor.+data ListChannels = ListChannels'+ { -- | Filters the channel list to match the specified name.+ filterByName :: Prelude.Maybe Prelude.Text,+ -- | Filters the channel list to match the specified recording-configuration+ -- ARN.+ filterByRecordingConfigurationArn :: Prelude.Maybe Prelude.Text,+ -- | Maximum number of channels to return. Default: 100.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | The first channel to retrieve. This is used for pagination; see the+ -- @nextToken@ response field.+ nextToken :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListChannels' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'filterByName', 'listChannels_filterByName' - Filters the channel list to match the specified name.+--+-- 'filterByRecordingConfigurationArn', 'listChannels_filterByRecordingConfigurationArn' - Filters the channel list to match the specified recording-configuration+-- ARN.+--+-- 'maxResults', 'listChannels_maxResults' - Maximum number of channels to return. Default: 100.+--+-- 'nextToken', 'listChannels_nextToken' - The first channel to retrieve. This is used for pagination; see the+-- @nextToken@ response field.+newListChannels ::+ ListChannels+newListChannels =+ ListChannels'+ { filterByName = Prelude.Nothing,+ filterByRecordingConfigurationArn = Prelude.Nothing,+ maxResults = Prelude.Nothing,+ nextToken = Prelude.Nothing+ }++-- | Filters the channel list to match the specified name.+listChannels_filterByName :: Lens.Lens' ListChannels (Prelude.Maybe Prelude.Text)+listChannels_filterByName = Lens.lens (\ListChannels' {filterByName} -> filterByName) (\s@ListChannels' {} a -> s {filterByName = a} :: ListChannels)++-- | Filters the channel list to match the specified recording-configuration+-- ARN.+listChannels_filterByRecordingConfigurationArn :: Lens.Lens' ListChannels (Prelude.Maybe Prelude.Text)+listChannels_filterByRecordingConfigurationArn = Lens.lens (\ListChannels' {filterByRecordingConfigurationArn} -> filterByRecordingConfigurationArn) (\s@ListChannels' {} a -> s {filterByRecordingConfigurationArn = a} :: ListChannels)++-- | Maximum number of channels to return. Default: 100.+listChannels_maxResults :: Lens.Lens' ListChannels (Prelude.Maybe Prelude.Natural)+listChannels_maxResults = Lens.lens (\ListChannels' {maxResults} -> maxResults) (\s@ListChannels' {} a -> s {maxResults = a} :: ListChannels)++-- | The first channel to retrieve. This is used for pagination; see the+-- @nextToken@ response field.+listChannels_nextToken :: Lens.Lens' ListChannels (Prelude.Maybe Prelude.Text)+listChannels_nextToken = Lens.lens (\ListChannels' {nextToken} -> nextToken) (\s@ListChannels' {} a -> s {nextToken = a} :: ListChannels)++instance Core.AWSPager ListChannels where+ page rq rs+ | Core.stop+ ( rs+ Lens.^? listChannelsResponse_nextToken+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Core.stop+ (rs Lens.^. listChannelsResponse_channels) =+ Prelude.Nothing+ | Prelude.otherwise =+ Prelude.Just+ Prelude.$ rq+ Prelude.& listChannels_nextToken+ Lens..~ rs+ Lens.^? listChannelsResponse_nextToken+ Prelude.. Lens._Just++instance Core.AWSRequest ListChannels where+ type AWSResponse ListChannels = ListChannelsResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListChannelsResponse'+ Prelude.<$> (x Data..?> "nextToken")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> (x Data..?> "channels" Core..!@ Prelude.mempty)+ )++instance Prelude.Hashable ListChannels where+ hashWithSalt _salt ListChannels' {..} =+ _salt+ `Prelude.hashWithSalt` filterByName+ `Prelude.hashWithSalt` filterByRecordingConfigurationArn+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListChannels where+ rnf ListChannels' {..} =+ Prelude.rnf filterByName+ `Prelude.seq` Prelude.rnf filterByRecordingConfigurationArn+ `Prelude.seq` Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListChannels where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON ListChannels where+ toJSON ListChannels' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("filterByName" Data..=) Prelude.<$> filterByName,+ ("filterByRecordingConfigurationArn" Data..=)+ Prelude.<$> filterByRecordingConfigurationArn,+ ("maxResults" Data..=) Prelude.<$> maxResults,+ ("nextToken" Data..=) Prelude.<$> nextToken+ ]+ )++instance Data.ToPath ListChannels where+ toPath = Prelude.const "/ListChannels"++instance Data.ToQuery ListChannels where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListChannelsResponse' smart constructor.+data ListChannelsResponse = ListChannelsResponse'+ { -- | If there are more channels than @maxResults@, use @nextToken@ in the+ -- request to get the next set.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | List of the matching channels.+ channels :: [ChannelSummary]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListChannelsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listChannelsResponse_nextToken' - If there are more channels than @maxResults@, use @nextToken@ in the+-- request to get the next set.+--+-- 'httpStatus', 'listChannelsResponse_httpStatus' - The response's http status code.+--+-- 'channels', 'listChannelsResponse_channels' - List of the matching channels.+newListChannelsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListChannelsResponse+newListChannelsResponse pHttpStatus_ =+ ListChannelsResponse'+ { nextToken = Prelude.Nothing,+ httpStatus = pHttpStatus_,+ channels = Prelude.mempty+ }++-- | If there are more channels than @maxResults@, use @nextToken@ in the+-- request to get the next set.+listChannelsResponse_nextToken :: Lens.Lens' ListChannelsResponse (Prelude.Maybe Prelude.Text)+listChannelsResponse_nextToken = Lens.lens (\ListChannelsResponse' {nextToken} -> nextToken) (\s@ListChannelsResponse' {} a -> s {nextToken = a} :: ListChannelsResponse)++-- | The response's http status code.+listChannelsResponse_httpStatus :: Lens.Lens' ListChannelsResponse Prelude.Int+listChannelsResponse_httpStatus = Lens.lens (\ListChannelsResponse' {httpStatus} -> httpStatus) (\s@ListChannelsResponse' {} a -> s {httpStatus = a} :: ListChannelsResponse)++-- | List of the matching channels.+listChannelsResponse_channels :: Lens.Lens' ListChannelsResponse [ChannelSummary]+listChannelsResponse_channels = Lens.lens (\ListChannelsResponse' {channels} -> channels) (\s@ListChannelsResponse' {} a -> s {channels = a} :: ListChannelsResponse) Prelude.. Lens.coerced++instance Prelude.NFData ListChannelsResponse where+ rnf ListChannelsResponse' {..} =+ Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf channels
+ gen/Amazonka/IVS/ListPlaybackKeyPairs.hs view
@@ -0,0 +1,225 @@+{-# 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.IVS.ListPlaybackKeyPairs+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets summary information about playback key pairs. For more information,+-- see+-- <https://docs.aws.amazon.com/ivs/latest/userguide/private-channels.html Setting Up Private Channels>+-- in the /Amazon IVS User Guide/.+--+-- This operation returns paginated results.+module Amazonka.IVS.ListPlaybackKeyPairs+ ( -- * Creating a Request+ ListPlaybackKeyPairs (..),+ newListPlaybackKeyPairs,++ -- * Request Lenses+ listPlaybackKeyPairs_maxResults,+ listPlaybackKeyPairs_nextToken,++ -- * Destructuring the Response+ ListPlaybackKeyPairsResponse (..),+ newListPlaybackKeyPairsResponse,++ -- * Response Lenses+ listPlaybackKeyPairsResponse_nextToken,+ listPlaybackKeyPairsResponse_httpStatus,+ listPlaybackKeyPairsResponse_keyPairs,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IVS.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListPlaybackKeyPairs' smart constructor.+data ListPlaybackKeyPairs = ListPlaybackKeyPairs'+ { -- | Maximum number of key pairs to return. Default: your service quota or+ -- 100, whichever is smaller.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | The first key pair to retrieve. This is used for pagination; see the+ -- @nextToken@ response field.+ nextToken :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListPlaybackKeyPairs' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listPlaybackKeyPairs_maxResults' - Maximum number of key pairs to return. Default: your service quota or+-- 100, whichever is smaller.+--+-- 'nextToken', 'listPlaybackKeyPairs_nextToken' - The first key pair to retrieve. This is used for pagination; see the+-- @nextToken@ response field.+newListPlaybackKeyPairs ::+ ListPlaybackKeyPairs+newListPlaybackKeyPairs =+ ListPlaybackKeyPairs'+ { maxResults = Prelude.Nothing,+ nextToken = Prelude.Nothing+ }++-- | Maximum number of key pairs to return. Default: your service quota or+-- 100, whichever is smaller.+listPlaybackKeyPairs_maxResults :: Lens.Lens' ListPlaybackKeyPairs (Prelude.Maybe Prelude.Natural)+listPlaybackKeyPairs_maxResults = Lens.lens (\ListPlaybackKeyPairs' {maxResults} -> maxResults) (\s@ListPlaybackKeyPairs' {} a -> s {maxResults = a} :: ListPlaybackKeyPairs)++-- | The first key pair to retrieve. This is used for pagination; see the+-- @nextToken@ response field.+listPlaybackKeyPairs_nextToken :: Lens.Lens' ListPlaybackKeyPairs (Prelude.Maybe Prelude.Text)+listPlaybackKeyPairs_nextToken = Lens.lens (\ListPlaybackKeyPairs' {nextToken} -> nextToken) (\s@ListPlaybackKeyPairs' {} a -> s {nextToken = a} :: ListPlaybackKeyPairs)++instance Core.AWSPager ListPlaybackKeyPairs where+ page rq rs+ | Core.stop+ ( rs+ Lens.^? listPlaybackKeyPairsResponse_nextToken+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Core.stop+ (rs Lens.^. listPlaybackKeyPairsResponse_keyPairs) =+ Prelude.Nothing+ | Prelude.otherwise =+ Prelude.Just+ Prelude.$ rq+ Prelude.& listPlaybackKeyPairs_nextToken+ Lens..~ rs+ Lens.^? listPlaybackKeyPairsResponse_nextToken+ Prelude.. Lens._Just++instance Core.AWSRequest ListPlaybackKeyPairs where+ type+ AWSResponse ListPlaybackKeyPairs =+ ListPlaybackKeyPairsResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListPlaybackKeyPairsResponse'+ Prelude.<$> (x Data..?> "nextToken")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> (x Data..?> "keyPairs" Core..!@ Prelude.mempty)+ )++instance Prelude.Hashable ListPlaybackKeyPairs where+ hashWithSalt _salt ListPlaybackKeyPairs' {..} =+ _salt+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListPlaybackKeyPairs where+ rnf ListPlaybackKeyPairs' {..} =+ Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListPlaybackKeyPairs where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON ListPlaybackKeyPairs where+ toJSON ListPlaybackKeyPairs' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("maxResults" Data..=) Prelude.<$> maxResults,+ ("nextToken" Data..=) Prelude.<$> nextToken+ ]+ )++instance Data.ToPath ListPlaybackKeyPairs where+ toPath = Prelude.const "/ListPlaybackKeyPairs"++instance Data.ToQuery ListPlaybackKeyPairs where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListPlaybackKeyPairsResponse' smart constructor.+data ListPlaybackKeyPairsResponse = ListPlaybackKeyPairsResponse'+ { -- | If there are more key pairs than @maxResults@, use @nextToken@ in the+ -- request to get the next set.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | List of key pairs.+ keyPairs :: [PlaybackKeyPairSummary]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListPlaybackKeyPairsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listPlaybackKeyPairsResponse_nextToken' - If there are more key pairs than @maxResults@, use @nextToken@ in the+-- request to get the next set.+--+-- 'httpStatus', 'listPlaybackKeyPairsResponse_httpStatus' - The response's http status code.+--+-- 'keyPairs', 'listPlaybackKeyPairsResponse_keyPairs' - List of key pairs.+newListPlaybackKeyPairsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListPlaybackKeyPairsResponse+newListPlaybackKeyPairsResponse pHttpStatus_ =+ ListPlaybackKeyPairsResponse'+ { nextToken =+ Prelude.Nothing,+ httpStatus = pHttpStatus_,+ keyPairs = Prelude.mempty+ }++-- | If there are more key pairs than @maxResults@, use @nextToken@ in the+-- request to get the next set.+listPlaybackKeyPairsResponse_nextToken :: Lens.Lens' ListPlaybackKeyPairsResponse (Prelude.Maybe Prelude.Text)+listPlaybackKeyPairsResponse_nextToken = Lens.lens (\ListPlaybackKeyPairsResponse' {nextToken} -> nextToken) (\s@ListPlaybackKeyPairsResponse' {} a -> s {nextToken = a} :: ListPlaybackKeyPairsResponse)++-- | The response's http status code.+listPlaybackKeyPairsResponse_httpStatus :: Lens.Lens' ListPlaybackKeyPairsResponse Prelude.Int+listPlaybackKeyPairsResponse_httpStatus = Lens.lens (\ListPlaybackKeyPairsResponse' {httpStatus} -> httpStatus) (\s@ListPlaybackKeyPairsResponse' {} a -> s {httpStatus = a} :: ListPlaybackKeyPairsResponse)++-- | List of key pairs.+listPlaybackKeyPairsResponse_keyPairs :: Lens.Lens' ListPlaybackKeyPairsResponse [PlaybackKeyPairSummary]+listPlaybackKeyPairsResponse_keyPairs = Lens.lens (\ListPlaybackKeyPairsResponse' {keyPairs} -> keyPairs) (\s@ListPlaybackKeyPairsResponse' {} a -> s {keyPairs = a} :: ListPlaybackKeyPairsResponse) Prelude.. Lens.coerced++instance Prelude.NFData ListPlaybackKeyPairsResponse where+ rnf ListPlaybackKeyPairsResponse' {..} =+ Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf keyPairs
+ gen/Amazonka/IVS/ListRecordingConfigurations.hs view
@@ -0,0 +1,234 @@+{-# 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.IVS.ListRecordingConfigurations+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets summary information about all recording configurations in your+-- account, in the Amazon Web Services region where the API request is+-- processed.+--+-- This operation returns paginated results.+module Amazonka.IVS.ListRecordingConfigurations+ ( -- * Creating a Request+ ListRecordingConfigurations (..),+ newListRecordingConfigurations,++ -- * Request Lenses+ listRecordingConfigurations_maxResults,+ listRecordingConfigurations_nextToken,++ -- * Destructuring the Response+ ListRecordingConfigurationsResponse (..),+ newListRecordingConfigurationsResponse,++ -- * Response Lenses+ listRecordingConfigurationsResponse_nextToken,+ listRecordingConfigurationsResponse_httpStatus,+ listRecordingConfigurationsResponse_recordingConfigurations,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IVS.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListRecordingConfigurations' smart constructor.+data ListRecordingConfigurations = ListRecordingConfigurations'+ { -- | Maximum number of recording configurations to return. Default: your+ -- service quota or 100, whichever is smaller.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | The first recording configuration to retrieve. This is used for+ -- pagination; see the @nextToken@ response field.+ nextToken :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListRecordingConfigurations' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listRecordingConfigurations_maxResults' - Maximum number of recording configurations to return. Default: your+-- service quota or 100, whichever is smaller.+--+-- 'nextToken', 'listRecordingConfigurations_nextToken' - The first recording configuration to retrieve. This is used for+-- pagination; see the @nextToken@ response field.+newListRecordingConfigurations ::+ ListRecordingConfigurations+newListRecordingConfigurations =+ ListRecordingConfigurations'+ { maxResults =+ Prelude.Nothing,+ nextToken = Prelude.Nothing+ }++-- | Maximum number of recording configurations to return. Default: your+-- service quota or 100, whichever is smaller.+listRecordingConfigurations_maxResults :: Lens.Lens' ListRecordingConfigurations (Prelude.Maybe Prelude.Natural)+listRecordingConfigurations_maxResults = Lens.lens (\ListRecordingConfigurations' {maxResults} -> maxResults) (\s@ListRecordingConfigurations' {} a -> s {maxResults = a} :: ListRecordingConfigurations)++-- | The first recording configuration to retrieve. This is used for+-- pagination; see the @nextToken@ response field.+listRecordingConfigurations_nextToken :: Lens.Lens' ListRecordingConfigurations (Prelude.Maybe Prelude.Text)+listRecordingConfigurations_nextToken = Lens.lens (\ListRecordingConfigurations' {nextToken} -> nextToken) (\s@ListRecordingConfigurations' {} a -> s {nextToken = a} :: ListRecordingConfigurations)++instance Core.AWSPager ListRecordingConfigurations where+ page rq rs+ | Core.stop+ ( rs+ Lens.^? listRecordingConfigurationsResponse_nextToken+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Core.stop+ ( rs+ Lens.^. listRecordingConfigurationsResponse_recordingConfigurations+ ) =+ Prelude.Nothing+ | Prelude.otherwise =+ Prelude.Just+ Prelude.$ rq+ Prelude.& listRecordingConfigurations_nextToken+ Lens..~ rs+ Lens.^? listRecordingConfigurationsResponse_nextToken+ Prelude.. Lens._Just++instance Core.AWSRequest ListRecordingConfigurations where+ type+ AWSResponse ListRecordingConfigurations =+ ListRecordingConfigurationsResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListRecordingConfigurationsResponse'+ Prelude.<$> (x Data..?> "nextToken")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> ( x+ Data..?> "recordingConfigurations"+ Core..!@ Prelude.mempty+ )+ )++instance Prelude.Hashable ListRecordingConfigurations where+ hashWithSalt _salt ListRecordingConfigurations' {..} =+ _salt+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListRecordingConfigurations where+ rnf ListRecordingConfigurations' {..} =+ Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListRecordingConfigurations where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON ListRecordingConfigurations where+ toJSON ListRecordingConfigurations' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("maxResults" Data..=) Prelude.<$> maxResults,+ ("nextToken" Data..=) Prelude.<$> nextToken+ ]+ )++instance Data.ToPath ListRecordingConfigurations where+ toPath = Prelude.const "/ListRecordingConfigurations"++instance Data.ToQuery ListRecordingConfigurations where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListRecordingConfigurationsResponse' smart constructor.+data ListRecordingConfigurationsResponse = ListRecordingConfigurationsResponse'+ { -- | If there are more recording configurations than @maxResults@, use+ -- @nextToken@ in the request to get the next set.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | List of the matching recording configurations.+ recordingConfigurations :: [RecordingConfigurationSummary]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListRecordingConfigurationsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listRecordingConfigurationsResponse_nextToken' - If there are more recording configurations than @maxResults@, use+-- @nextToken@ in the request to get the next set.+--+-- 'httpStatus', 'listRecordingConfigurationsResponse_httpStatus' - The response's http status code.+--+-- 'recordingConfigurations', 'listRecordingConfigurationsResponse_recordingConfigurations' - List of the matching recording configurations.+newListRecordingConfigurationsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListRecordingConfigurationsResponse+newListRecordingConfigurationsResponse pHttpStatus_ =+ ListRecordingConfigurationsResponse'+ { nextToken =+ Prelude.Nothing,+ httpStatus = pHttpStatus_,+ recordingConfigurations =+ Prelude.mempty+ }++-- | If there are more recording configurations than @maxResults@, use+-- @nextToken@ in the request to get the next set.+listRecordingConfigurationsResponse_nextToken :: Lens.Lens' ListRecordingConfigurationsResponse (Prelude.Maybe Prelude.Text)+listRecordingConfigurationsResponse_nextToken = Lens.lens (\ListRecordingConfigurationsResponse' {nextToken} -> nextToken) (\s@ListRecordingConfigurationsResponse' {} a -> s {nextToken = a} :: ListRecordingConfigurationsResponse)++-- | The response's http status code.+listRecordingConfigurationsResponse_httpStatus :: Lens.Lens' ListRecordingConfigurationsResponse Prelude.Int+listRecordingConfigurationsResponse_httpStatus = Lens.lens (\ListRecordingConfigurationsResponse' {httpStatus} -> httpStatus) (\s@ListRecordingConfigurationsResponse' {} a -> s {httpStatus = a} :: ListRecordingConfigurationsResponse)++-- | List of the matching recording configurations.+listRecordingConfigurationsResponse_recordingConfigurations :: Lens.Lens' ListRecordingConfigurationsResponse [RecordingConfigurationSummary]+listRecordingConfigurationsResponse_recordingConfigurations = Lens.lens (\ListRecordingConfigurationsResponse' {recordingConfigurations} -> recordingConfigurations) (\s@ListRecordingConfigurationsResponse' {} a -> s {recordingConfigurations = a} :: ListRecordingConfigurationsResponse) Prelude.. Lens.coerced++instance+ Prelude.NFData+ ListRecordingConfigurationsResponse+ where+ rnf ListRecordingConfigurationsResponse' {..} =+ Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf recordingConfigurations
+ gen/Amazonka/IVS/ListStreamKeys.hs view
@@ -0,0 +1,234 @@+{-# 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.IVS.ListStreamKeys+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets summary information about stream keys for the specified channel.+--+-- This operation returns paginated results.+module Amazonka.IVS.ListStreamKeys+ ( -- * Creating a Request+ ListStreamKeys (..),+ newListStreamKeys,++ -- * Request Lenses+ listStreamKeys_maxResults,+ listStreamKeys_nextToken,+ listStreamKeys_channelArn,++ -- * Destructuring the Response+ ListStreamKeysResponse (..),+ newListStreamKeysResponse,++ -- * Response Lenses+ listStreamKeysResponse_nextToken,+ listStreamKeysResponse_httpStatus,+ listStreamKeysResponse_streamKeys,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IVS.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListStreamKeys' smart constructor.+data ListStreamKeys = ListStreamKeys'+ { -- | Maximum number of streamKeys to return. Default: 1.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | The first stream key to retrieve. This is used for pagination; see the+ -- @nextToken@ response field.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | Channel ARN used to filter the list.+ channelArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListStreamKeys' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listStreamKeys_maxResults' - Maximum number of streamKeys to return. Default: 1.+--+-- 'nextToken', 'listStreamKeys_nextToken' - The first stream key to retrieve. This is used for pagination; see the+-- @nextToken@ response field.+--+-- 'channelArn', 'listStreamKeys_channelArn' - Channel ARN used to filter the list.+newListStreamKeys ::+ -- | 'channelArn'+ Prelude.Text ->+ ListStreamKeys+newListStreamKeys pChannelArn_ =+ ListStreamKeys'+ { maxResults = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ channelArn = pChannelArn_+ }++-- | Maximum number of streamKeys to return. Default: 1.+listStreamKeys_maxResults :: Lens.Lens' ListStreamKeys (Prelude.Maybe Prelude.Natural)+listStreamKeys_maxResults = Lens.lens (\ListStreamKeys' {maxResults} -> maxResults) (\s@ListStreamKeys' {} a -> s {maxResults = a} :: ListStreamKeys)++-- | The first stream key to retrieve. This is used for pagination; see the+-- @nextToken@ response field.+listStreamKeys_nextToken :: Lens.Lens' ListStreamKeys (Prelude.Maybe Prelude.Text)+listStreamKeys_nextToken = Lens.lens (\ListStreamKeys' {nextToken} -> nextToken) (\s@ListStreamKeys' {} a -> s {nextToken = a} :: ListStreamKeys)++-- | Channel ARN used to filter the list.+listStreamKeys_channelArn :: Lens.Lens' ListStreamKeys Prelude.Text+listStreamKeys_channelArn = Lens.lens (\ListStreamKeys' {channelArn} -> channelArn) (\s@ListStreamKeys' {} a -> s {channelArn = a} :: ListStreamKeys)++instance Core.AWSPager ListStreamKeys where+ page rq rs+ | Core.stop+ ( rs+ Lens.^? listStreamKeysResponse_nextToken+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Core.stop+ (rs Lens.^. listStreamKeysResponse_streamKeys) =+ Prelude.Nothing+ | Prelude.otherwise =+ Prelude.Just+ Prelude.$ rq+ Prelude.& listStreamKeys_nextToken+ Lens..~ rs+ Lens.^? listStreamKeysResponse_nextToken+ Prelude.. Lens._Just++instance Core.AWSRequest ListStreamKeys where+ type+ AWSResponse ListStreamKeys =+ ListStreamKeysResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListStreamKeysResponse'+ Prelude.<$> (x Data..?> "nextToken")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> (x Data..?> "streamKeys" Core..!@ Prelude.mempty)+ )++instance Prelude.Hashable ListStreamKeys where+ hashWithSalt _salt ListStreamKeys' {..} =+ _salt+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` channelArn++instance Prelude.NFData ListStreamKeys where+ rnf ListStreamKeys' {..} =+ Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf channelArn++instance Data.ToHeaders ListStreamKeys where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON ListStreamKeys where+ toJSON ListStreamKeys' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("maxResults" Data..=) Prelude.<$> maxResults,+ ("nextToken" Data..=) Prelude.<$> nextToken,+ Prelude.Just ("channelArn" Data..= channelArn)+ ]+ )++instance Data.ToPath ListStreamKeys where+ toPath = Prelude.const "/ListStreamKeys"++instance Data.ToQuery ListStreamKeys where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListStreamKeysResponse' smart constructor.+data ListStreamKeysResponse = ListStreamKeysResponse'+ { -- | If there are more stream keys than @maxResults@, use @nextToken@ in the+ -- request to get the next set.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | List of stream keys.+ streamKeys :: [StreamKeySummary]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListStreamKeysResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listStreamKeysResponse_nextToken' - If there are more stream keys than @maxResults@, use @nextToken@ in the+-- request to get the next set.+--+-- 'httpStatus', 'listStreamKeysResponse_httpStatus' - The response's http status code.+--+-- 'streamKeys', 'listStreamKeysResponse_streamKeys' - List of stream keys.+newListStreamKeysResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListStreamKeysResponse+newListStreamKeysResponse pHttpStatus_ =+ ListStreamKeysResponse'+ { nextToken =+ Prelude.Nothing,+ httpStatus = pHttpStatus_,+ streamKeys = Prelude.mempty+ }++-- | If there are more stream keys than @maxResults@, use @nextToken@ in the+-- request to get the next set.+listStreamKeysResponse_nextToken :: Lens.Lens' ListStreamKeysResponse (Prelude.Maybe Prelude.Text)+listStreamKeysResponse_nextToken = Lens.lens (\ListStreamKeysResponse' {nextToken} -> nextToken) (\s@ListStreamKeysResponse' {} a -> s {nextToken = a} :: ListStreamKeysResponse)++-- | The response's http status code.+listStreamKeysResponse_httpStatus :: Lens.Lens' ListStreamKeysResponse Prelude.Int+listStreamKeysResponse_httpStatus = Lens.lens (\ListStreamKeysResponse' {httpStatus} -> httpStatus) (\s@ListStreamKeysResponse' {} a -> s {httpStatus = a} :: ListStreamKeysResponse)++-- | List of stream keys.+listStreamKeysResponse_streamKeys :: Lens.Lens' ListStreamKeysResponse [StreamKeySummary]+listStreamKeysResponse_streamKeys = Lens.lens (\ListStreamKeysResponse' {streamKeys} -> streamKeys) (\s@ListStreamKeysResponse' {} a -> s {streamKeys = a} :: ListStreamKeysResponse) Prelude.. Lens.coerced++instance Prelude.NFData ListStreamKeysResponse where+ rnf ListStreamKeysResponse' {..} =+ Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf streamKeys
+ gen/Amazonka/IVS/ListStreamSessions.hs view
@@ -0,0 +1,217 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.IVS.ListStreamSessions+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets a summary of current and previous streams for a specified channel+-- in your account, in the AWS region where the API request is processed.+module Amazonka.IVS.ListStreamSessions+ ( -- * Creating a Request+ ListStreamSessions (..),+ newListStreamSessions,++ -- * Request Lenses+ listStreamSessions_maxResults,+ listStreamSessions_nextToken,+ listStreamSessions_channelArn,++ -- * Destructuring the Response+ ListStreamSessionsResponse (..),+ newListStreamSessionsResponse,++ -- * Response Lenses+ listStreamSessionsResponse_nextToken,+ listStreamSessionsResponse_httpStatus,+ listStreamSessionsResponse_streamSessions,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IVS.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListStreamSessions' smart constructor.+data ListStreamSessions = ListStreamSessions'+ { -- | Maximum number of streams to return. Default: 100.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | The first stream to retrieve. This is used for pagination; see the+ -- @nextToken@ response field.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | Channel ARN used to filter the list.+ channelArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListStreamSessions' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listStreamSessions_maxResults' - Maximum number of streams to return. Default: 100.+--+-- 'nextToken', 'listStreamSessions_nextToken' - The first stream to retrieve. This is used for pagination; see the+-- @nextToken@ response field.+--+-- 'channelArn', 'listStreamSessions_channelArn' - Channel ARN used to filter the list.+newListStreamSessions ::+ -- | 'channelArn'+ Prelude.Text ->+ ListStreamSessions+newListStreamSessions pChannelArn_ =+ ListStreamSessions'+ { maxResults = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ channelArn = pChannelArn_+ }++-- | Maximum number of streams to return. Default: 100.+listStreamSessions_maxResults :: Lens.Lens' ListStreamSessions (Prelude.Maybe Prelude.Natural)+listStreamSessions_maxResults = Lens.lens (\ListStreamSessions' {maxResults} -> maxResults) (\s@ListStreamSessions' {} a -> s {maxResults = a} :: ListStreamSessions)++-- | The first stream to retrieve. This is used for pagination; see the+-- @nextToken@ response field.+listStreamSessions_nextToken :: Lens.Lens' ListStreamSessions (Prelude.Maybe Prelude.Text)+listStreamSessions_nextToken = Lens.lens (\ListStreamSessions' {nextToken} -> nextToken) (\s@ListStreamSessions' {} a -> s {nextToken = a} :: ListStreamSessions)++-- | Channel ARN used to filter the list.+listStreamSessions_channelArn :: Lens.Lens' ListStreamSessions Prelude.Text+listStreamSessions_channelArn = Lens.lens (\ListStreamSessions' {channelArn} -> channelArn) (\s@ListStreamSessions' {} a -> s {channelArn = a} :: ListStreamSessions)++instance Core.AWSRequest ListStreamSessions where+ type+ AWSResponse ListStreamSessions =+ ListStreamSessionsResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListStreamSessionsResponse'+ Prelude.<$> (x Data..?> "nextToken")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> ( x+ Data..?> "streamSessions"+ Core..!@ Prelude.mempty+ )+ )++instance Prelude.Hashable ListStreamSessions where+ hashWithSalt _salt ListStreamSessions' {..} =+ _salt+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` channelArn++instance Prelude.NFData ListStreamSessions where+ rnf ListStreamSessions' {..} =+ Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf channelArn++instance Data.ToHeaders ListStreamSessions where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON ListStreamSessions where+ toJSON ListStreamSessions' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("maxResults" Data..=) Prelude.<$> maxResults,+ ("nextToken" Data..=) Prelude.<$> nextToken,+ Prelude.Just ("channelArn" Data..= channelArn)+ ]+ )++instance Data.ToPath ListStreamSessions where+ toPath = Prelude.const "/ListStreamSessions"++instance Data.ToQuery ListStreamSessions where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListStreamSessionsResponse' smart constructor.+data ListStreamSessionsResponse = ListStreamSessionsResponse'+ { -- | If there are more streams than @maxResults@, use @nextToken@ in the+ -- request to get the next set.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | List of stream sessions.+ streamSessions :: [StreamSessionSummary]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListStreamSessionsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listStreamSessionsResponse_nextToken' - If there are more streams than @maxResults@, use @nextToken@ in the+-- request to get the next set.+--+-- 'httpStatus', 'listStreamSessionsResponse_httpStatus' - The response's http status code.+--+-- 'streamSessions', 'listStreamSessionsResponse_streamSessions' - List of stream sessions.+newListStreamSessionsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListStreamSessionsResponse+newListStreamSessionsResponse pHttpStatus_ =+ ListStreamSessionsResponse'+ { nextToken =+ Prelude.Nothing,+ httpStatus = pHttpStatus_,+ streamSessions = Prelude.mempty+ }++-- | If there are more streams than @maxResults@, use @nextToken@ in the+-- request to get the next set.+listStreamSessionsResponse_nextToken :: Lens.Lens' ListStreamSessionsResponse (Prelude.Maybe Prelude.Text)+listStreamSessionsResponse_nextToken = Lens.lens (\ListStreamSessionsResponse' {nextToken} -> nextToken) (\s@ListStreamSessionsResponse' {} a -> s {nextToken = a} :: ListStreamSessionsResponse)++-- | The response's http status code.+listStreamSessionsResponse_httpStatus :: Lens.Lens' ListStreamSessionsResponse Prelude.Int+listStreamSessionsResponse_httpStatus = Lens.lens (\ListStreamSessionsResponse' {httpStatus} -> httpStatus) (\s@ListStreamSessionsResponse' {} a -> s {httpStatus = a} :: ListStreamSessionsResponse)++-- | List of stream sessions.+listStreamSessionsResponse_streamSessions :: Lens.Lens' ListStreamSessionsResponse [StreamSessionSummary]+listStreamSessionsResponse_streamSessions = Lens.lens (\ListStreamSessionsResponse' {streamSessions} -> streamSessions) (\s@ListStreamSessionsResponse' {} a -> s {streamSessions = a} :: ListStreamSessionsResponse) Prelude.. Lens.coerced++instance Prelude.NFData ListStreamSessionsResponse where+ rnf ListStreamSessionsResponse' {..} =+ Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf streamSessions
+ gen/Amazonka/IVS/ListStreams.hs view
@@ -0,0 +1,229 @@+{-# 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.IVS.ListStreams+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets summary information about live streams in your account, in the+-- Amazon Web Services region where the API request is processed.+--+-- This operation returns paginated results.+module Amazonka.IVS.ListStreams+ ( -- * Creating a Request+ ListStreams (..),+ newListStreams,++ -- * Request Lenses+ listStreams_filterBy,+ listStreams_maxResults,+ listStreams_nextToken,++ -- * Destructuring the Response+ ListStreamsResponse (..),+ newListStreamsResponse,++ -- * Response Lenses+ listStreamsResponse_nextToken,+ listStreamsResponse_httpStatus,+ listStreamsResponse_streams,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IVS.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListStreams' smart constructor.+data ListStreams = ListStreams'+ { -- | Filters the stream list to match the specified criterion.+ filterBy :: Prelude.Maybe StreamFilters,+ -- | Maximum number of streams to return. Default: 100.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | The first stream to retrieve. This is used for pagination; see the+ -- @nextToken@ response field.+ nextToken :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListStreams' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'filterBy', 'listStreams_filterBy' - Filters the stream list to match the specified criterion.+--+-- 'maxResults', 'listStreams_maxResults' - Maximum number of streams to return. Default: 100.+--+-- 'nextToken', 'listStreams_nextToken' - The first stream to retrieve. This is used for pagination; see the+-- @nextToken@ response field.+newListStreams ::+ ListStreams+newListStreams =+ ListStreams'+ { filterBy = Prelude.Nothing,+ maxResults = Prelude.Nothing,+ nextToken = Prelude.Nothing+ }++-- | Filters the stream list to match the specified criterion.+listStreams_filterBy :: Lens.Lens' ListStreams (Prelude.Maybe StreamFilters)+listStreams_filterBy = Lens.lens (\ListStreams' {filterBy} -> filterBy) (\s@ListStreams' {} a -> s {filterBy = a} :: ListStreams)++-- | Maximum number of streams to return. Default: 100.+listStreams_maxResults :: Lens.Lens' ListStreams (Prelude.Maybe Prelude.Natural)+listStreams_maxResults = Lens.lens (\ListStreams' {maxResults} -> maxResults) (\s@ListStreams' {} a -> s {maxResults = a} :: ListStreams)++-- | The first stream to retrieve. This is used for pagination; see the+-- @nextToken@ response field.+listStreams_nextToken :: Lens.Lens' ListStreams (Prelude.Maybe Prelude.Text)+listStreams_nextToken = Lens.lens (\ListStreams' {nextToken} -> nextToken) (\s@ListStreams' {} a -> s {nextToken = a} :: ListStreams)++instance Core.AWSPager ListStreams where+ page rq rs+ | Core.stop+ ( rs+ Lens.^? listStreamsResponse_nextToken+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Core.stop (rs Lens.^. listStreamsResponse_streams) =+ Prelude.Nothing+ | Prelude.otherwise =+ Prelude.Just+ Prelude.$ rq+ Prelude.& listStreams_nextToken+ Lens..~ rs+ Lens.^? listStreamsResponse_nextToken+ Prelude.. Lens._Just++instance Core.AWSRequest ListStreams where+ type AWSResponse ListStreams = ListStreamsResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListStreamsResponse'+ Prelude.<$> (x Data..?> "nextToken")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> (x Data..?> "streams" Core..!@ Prelude.mempty)+ )++instance Prelude.Hashable ListStreams where+ hashWithSalt _salt ListStreams' {..} =+ _salt+ `Prelude.hashWithSalt` filterBy+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListStreams where+ rnf ListStreams' {..} =+ Prelude.rnf filterBy+ `Prelude.seq` Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListStreams where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON ListStreams where+ toJSON ListStreams' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("filterBy" Data..=) Prelude.<$> filterBy,+ ("maxResults" Data..=) Prelude.<$> maxResults,+ ("nextToken" Data..=) Prelude.<$> nextToken+ ]+ )++instance Data.ToPath ListStreams where+ toPath = Prelude.const "/ListStreams"++instance Data.ToQuery ListStreams where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListStreamsResponse' smart constructor.+data ListStreamsResponse = ListStreamsResponse'+ { -- | If there are more streams than @maxResults@, use @nextToken@ in the+ -- request to get the next set.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | List of streams.+ streams :: [StreamSummary]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListStreamsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listStreamsResponse_nextToken' - If there are more streams than @maxResults@, use @nextToken@ in the+-- request to get the next set.+--+-- 'httpStatus', 'listStreamsResponse_httpStatus' - The response's http status code.+--+-- 'streams', 'listStreamsResponse_streams' - List of streams.+newListStreamsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListStreamsResponse+newListStreamsResponse pHttpStatus_ =+ ListStreamsResponse'+ { nextToken = Prelude.Nothing,+ httpStatus = pHttpStatus_,+ streams = Prelude.mempty+ }++-- | If there are more streams than @maxResults@, use @nextToken@ in the+-- request to get the next set.+listStreamsResponse_nextToken :: Lens.Lens' ListStreamsResponse (Prelude.Maybe Prelude.Text)+listStreamsResponse_nextToken = Lens.lens (\ListStreamsResponse' {nextToken} -> nextToken) (\s@ListStreamsResponse' {} a -> s {nextToken = a} :: ListStreamsResponse)++-- | The response's http status code.+listStreamsResponse_httpStatus :: Lens.Lens' ListStreamsResponse Prelude.Int+listStreamsResponse_httpStatus = Lens.lens (\ListStreamsResponse' {httpStatus} -> httpStatus) (\s@ListStreamsResponse' {} a -> s {httpStatus = a} :: ListStreamsResponse)++-- | List of streams.+listStreamsResponse_streams :: Lens.Lens' ListStreamsResponse [StreamSummary]+listStreamsResponse_streams = Lens.lens (\ListStreamsResponse' {streams} -> streams) (\s@ListStreamsResponse' {} a -> s {streams = a} :: ListStreamsResponse) Prelude.. Lens.coerced++instance Prelude.NFData ListStreamsResponse where+ rnf ListStreamsResponse' {..} =+ Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf streams
+ gen/Amazonka/IVS/ListTagsForResource.hs view
@@ -0,0 +1,157 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.IVS.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)+--+-- Gets information about Amazon Web Services tags for the specified ARN.+module Amazonka.IVS.ListTagsForResource+ ( -- * Creating a Request+ ListTagsForResource (..),+ newListTagsForResource,++ -- * Request Lenses+ listTagsForResource_resourceArn,++ -- * Destructuring the Response+ ListTagsForResourceResponse (..),+ newListTagsForResourceResponse,++ -- * Response Lenses+ listTagsForResourceResponse_httpStatus,+ listTagsForResourceResponse_tags,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IVS.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListTagsForResource' smart constructor.+data ListTagsForResource = ListTagsForResource'+ { -- | The ARN of the resource to be retrieved. The ARN must be URL-encoded.+ resourceArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListTagsForResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceArn', 'listTagsForResource_resourceArn' - The ARN of the resource to be retrieved. The ARN must be URL-encoded.+newListTagsForResource ::+ -- | 'resourceArn'+ Prelude.Text ->+ ListTagsForResource+newListTagsForResource pResourceArn_ =+ ListTagsForResource' {resourceArn = pResourceArn_}++-- | The ARN of the resource to be retrieved. The ARN must be URL-encoded.+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.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListTagsForResourceResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> (x Data..?> "tags" Core..!@ Prelude.mempty)+ )++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+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath ListTagsForResource where+ toPath ListTagsForResource' {..} =+ Prelude.mconcat ["/tags/", Data.toBS resourceArn]++instance Data.ToQuery ListTagsForResource where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListTagsForResourceResponse' smart constructor.+data ListTagsForResourceResponse = ListTagsForResourceResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int,+ tags :: Prelude.HashMap Prelude.Text Prelude.Text+ }+ 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:+--+-- 'httpStatus', 'listTagsForResourceResponse_httpStatus' - The response's http status code.+--+-- 'tags', 'listTagsForResourceResponse_tags' -+newListTagsForResourceResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListTagsForResourceResponse+newListTagsForResourceResponse pHttpStatus_ =+ ListTagsForResourceResponse'+ { httpStatus =+ pHttpStatus_,+ tags = Prelude.mempty+ }++-- | 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)++listTagsForResourceResponse_tags :: Lens.Lens' ListTagsForResourceResponse (Prelude.HashMap Prelude.Text Prelude.Text)+listTagsForResourceResponse_tags = Lens.lens (\ListTagsForResourceResponse' {tags} -> tags) (\s@ListTagsForResourceResponse' {} a -> s {tags = a} :: ListTagsForResourceResponse) Prelude.. Lens.coerced++instance Prelude.NFData ListTagsForResourceResponse where+ rnf ListTagsForResourceResponse' {..} =+ Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf tags
+ gen/Amazonka/IVS/PutMetadata.hs view
@@ -0,0 +1,154 @@+{-# 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.IVS.PutMetadata+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Inserts metadata into the active stream of the specified channel. At+-- most 5 requests per second per channel are allowed, each with a maximum+-- 1 KB payload. (If 5 TPS is not sufficient for your needs, we recommend+-- batching your data into a single PutMetadata call.) At most 155 requests+-- per second per account are allowed. Also see+-- <https://docs.aws.amazon.com/ivs/latest/userguide/metadata.html Embedding Metadata within a Video Stream>+-- in the /Amazon IVS User Guide/.+module Amazonka.IVS.PutMetadata+ ( -- * Creating a Request+ PutMetadata (..),+ newPutMetadata,++ -- * Request Lenses+ putMetadata_channelArn,+ putMetadata_metadata,++ -- * Destructuring the Response+ PutMetadataResponse (..),+ newPutMetadataResponse,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IVS.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newPutMetadata' smart constructor.+data PutMetadata = PutMetadata'+ { -- | ARN of the channel into which metadata is inserted. This channel must+ -- have an active stream.+ channelArn :: Prelude.Text,+ -- | Metadata to insert into the stream. Maximum: 1 KB per request.+ metadata :: Data.Sensitive Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutMetadata' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'channelArn', 'putMetadata_channelArn' - ARN of the channel into which metadata is inserted. This channel must+-- have an active stream.+--+-- 'metadata', 'putMetadata_metadata' - Metadata to insert into the stream. Maximum: 1 KB per request.+newPutMetadata ::+ -- | 'channelArn'+ Prelude.Text ->+ -- | 'metadata'+ Prelude.Text ->+ PutMetadata+newPutMetadata pChannelArn_ pMetadata_ =+ PutMetadata'+ { channelArn = pChannelArn_,+ metadata = Data._Sensitive Lens.# pMetadata_+ }++-- | ARN of the channel into which metadata is inserted. This channel must+-- have an active stream.+putMetadata_channelArn :: Lens.Lens' PutMetadata Prelude.Text+putMetadata_channelArn = Lens.lens (\PutMetadata' {channelArn} -> channelArn) (\s@PutMetadata' {} a -> s {channelArn = a} :: PutMetadata)++-- | Metadata to insert into the stream. Maximum: 1 KB per request.+putMetadata_metadata :: Lens.Lens' PutMetadata Prelude.Text+putMetadata_metadata = Lens.lens (\PutMetadata' {metadata} -> metadata) (\s@PutMetadata' {} a -> s {metadata = a} :: PutMetadata) Prelude.. Data._Sensitive++instance Core.AWSRequest PutMetadata where+ type AWSResponse PutMetadata = PutMetadataResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response = Response.receiveNull PutMetadataResponse'++instance Prelude.Hashable PutMetadata where+ hashWithSalt _salt PutMetadata' {..} =+ _salt+ `Prelude.hashWithSalt` channelArn+ `Prelude.hashWithSalt` metadata++instance Prelude.NFData PutMetadata where+ rnf PutMetadata' {..} =+ Prelude.rnf channelArn+ `Prelude.seq` Prelude.rnf metadata++instance Data.ToHeaders PutMetadata where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON PutMetadata where+ toJSON PutMetadata' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just ("channelArn" Data..= channelArn),+ Prelude.Just ("metadata" Data..= metadata)+ ]+ )++instance Data.ToPath PutMetadata where+ toPath = Prelude.const "/PutMetadata"++instance Data.ToQuery PutMetadata where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newPutMetadataResponse' smart constructor.+data PutMetadataResponse = PutMetadataResponse'+ {+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutMetadataResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newPutMetadataResponse ::+ PutMetadataResponse+newPutMetadataResponse = PutMetadataResponse'++instance Prelude.NFData PutMetadataResponse where+ rnf _ = ()
+ gen/Amazonka/IVS/StopStream.hs view
@@ -0,0 +1,152 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.IVS.StopStream+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Disconnects the incoming RTMPS stream for the specified channel. Can be+-- used in conjunction with DeleteStreamKey to prevent further streaming to+-- a channel.+--+-- Many streaming client-software libraries automatically reconnect a+-- dropped RTMPS session, so to stop the stream permanently, you may want+-- to first revoke the @streamKey@ attached to the channel.+module Amazonka.IVS.StopStream+ ( -- * Creating a Request+ StopStream (..),+ newStopStream,++ -- * Request Lenses+ stopStream_channelArn,++ -- * Destructuring the Response+ StopStreamResponse (..),+ newStopStreamResponse,++ -- * Response Lenses+ stopStreamResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IVS.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newStopStream' smart constructor.+data StopStream = StopStream'+ { -- | ARN of the channel for which the stream is to be stopped.+ channelArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StopStream' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'channelArn', 'stopStream_channelArn' - ARN of the channel for which the stream is to be stopped.+newStopStream ::+ -- | 'channelArn'+ Prelude.Text ->+ StopStream+newStopStream pChannelArn_ =+ StopStream' {channelArn = pChannelArn_}++-- | ARN of the channel for which the stream is to be stopped.+stopStream_channelArn :: Lens.Lens' StopStream Prelude.Text+stopStream_channelArn = Lens.lens (\StopStream' {channelArn} -> channelArn) (\s@StopStream' {} a -> s {channelArn = a} :: StopStream)++instance Core.AWSRequest StopStream where+ type AWSResponse StopStream = StopStreamResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveEmpty+ ( \s h x ->+ StopStreamResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable StopStream where+ hashWithSalt _salt StopStream' {..} =+ _salt `Prelude.hashWithSalt` channelArn++instance Prelude.NFData StopStream where+ rnf StopStream' {..} = Prelude.rnf channelArn++instance Data.ToHeaders StopStream where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON StopStream where+ toJSON StopStream' {..} =+ Data.object+ ( Prelude.catMaybes+ [Prelude.Just ("channelArn" Data..= channelArn)]+ )++instance Data.ToPath StopStream where+ toPath = Prelude.const "/StopStream"++instance Data.ToQuery StopStream where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newStopStreamResponse' smart constructor.+data StopStreamResponse = StopStreamResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StopStreamResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'stopStreamResponse_httpStatus' - The response's http status code.+newStopStreamResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ StopStreamResponse+newStopStreamResponse pHttpStatus_ =+ StopStreamResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+stopStreamResponse_httpStatus :: Lens.Lens' StopStreamResponse Prelude.Int+stopStreamResponse_httpStatus = Lens.lens (\StopStreamResponse' {httpStatus} -> httpStatus) (\s@StopStreamResponse' {} a -> s {httpStatus = a} :: StopStreamResponse)++instance Prelude.NFData StopStreamResponse where+ rnf StopStreamResponse' {..} = Prelude.rnf httpStatus
+ gen/Amazonka/IVS/TagResource.hs view
@@ -0,0 +1,179 @@+{-# 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.IVS.TagResource+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Adds or updates tags for the Amazon Web Services resource with the+-- specified ARN.+module Amazonka.IVS.TagResource+ ( -- * Creating a Request+ TagResource (..),+ newTagResource,++ -- * Request Lenses+ tagResource_resourceArn,+ tagResource_tags,++ -- * Destructuring the Response+ TagResourceResponse (..),+ newTagResourceResponse,++ -- * Response Lenses+ tagResourceResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IVS.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newTagResource' smart constructor.+data TagResource = TagResource'+ { -- | ARN of the resource for which tags are to be added or updated. The ARN+ -- must be URL-encoded.+ resourceArn :: Prelude.Text,+ -- | Array of tags to be added or updated. See+ -- <https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html Tagging Amazon Web Services Resources>+ -- for more information, including restrictions that apply to tags and+ -- \"Tag naming limits and requirements\"; Amazon IVS has no+ -- service-specific constraints beyond what is documented there.+ tags :: Prelude.HashMap Prelude.Text Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TagResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceArn', 'tagResource_resourceArn' - ARN of the resource for which tags are to be added or updated. The ARN+-- must be URL-encoded.+--+-- 'tags', 'tagResource_tags' - Array of tags to be added or updated. See+-- <https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html Tagging Amazon Web Services Resources>+-- for more information, including restrictions that apply to tags and+-- \"Tag naming limits and requirements\"; Amazon IVS has no+-- service-specific constraints beyond what is documented there.+newTagResource ::+ -- | 'resourceArn'+ Prelude.Text ->+ TagResource+newTagResource pResourceArn_ =+ TagResource'+ { resourceArn = pResourceArn_,+ tags = Prelude.mempty+ }++-- | ARN of the resource for which tags are to be added or updated. The ARN+-- must be URL-encoded.+tagResource_resourceArn :: Lens.Lens' TagResource Prelude.Text+tagResource_resourceArn = Lens.lens (\TagResource' {resourceArn} -> resourceArn) (\s@TagResource' {} a -> s {resourceArn = a} :: TagResource)++-- | Array of tags to be added or updated. See+-- <https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html Tagging Amazon Web Services Resources>+-- for more information, including restrictions that apply to tags and+-- \"Tag naming limits and requirements\"; Amazon IVS has no+-- service-specific constraints beyond what is documented there.+tagResource_tags :: Lens.Lens' TagResource (Prelude.HashMap Prelude.Text Prelude.Text)+tagResource_tags = Lens.lens (\TagResource' {tags} -> tags) (\s@TagResource' {} a -> s {tags = a} :: TagResource) Prelude.. Lens.coerced++instance Core.AWSRequest TagResource where+ type AWSResponse TagResource = TagResourceResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveEmpty+ ( \s h x ->+ TagResourceResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable TagResource where+ hashWithSalt _salt TagResource' {..} =+ _salt+ `Prelude.hashWithSalt` resourceArn+ `Prelude.hashWithSalt` tags++instance Prelude.NFData TagResource where+ rnf TagResource' {..} =+ Prelude.rnf resourceArn+ `Prelude.seq` Prelude.rnf tags++instance Data.ToHeaders TagResource where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON TagResource where+ toJSON TagResource' {..} =+ Data.object+ ( Prelude.catMaybes+ [Prelude.Just ("tags" Data..= tags)]+ )++instance Data.ToPath TagResource where+ toPath TagResource' {..} =+ Prelude.mconcat ["/tags/", Data.toBS resourceArn]++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/IVS/Types.hs view
@@ -0,0 +1,396 @@+{-# 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.IVS.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.IVS.Types+ ( -- * Service Configuration+ defaultService,++ -- * Errors+ _AccessDeniedException,+ _ChannelNotBroadcasting,+ _ConflictException,+ _InternalServerException,+ _PendingVerification,+ _ResourceNotFoundException,+ _ServiceQuotaExceededException,+ _StreamUnavailable,+ _ThrottlingException,+ _ValidationException,++ -- * ChannelLatencyMode+ ChannelLatencyMode (..),++ -- * ChannelType+ ChannelType (..),++ -- * RecordingConfigurationState+ RecordingConfigurationState (..),++ -- * RecordingMode+ RecordingMode (..),++ -- * StreamHealth+ StreamHealth (..),++ -- * StreamState+ StreamState (..),++ -- * AudioConfiguration+ AudioConfiguration (..),+ newAudioConfiguration,+ audioConfiguration_channels,+ audioConfiguration_codec,+ audioConfiguration_sampleRate,+ audioConfiguration_targetBitrate,++ -- * BatchError+ BatchError (..),+ newBatchError,+ batchError_arn,+ batchError_code,+ batchError_message,++ -- * Channel+ Channel (..),+ newChannel,+ channel_arn,+ channel_authorized,+ channel_ingestEndpoint,+ channel_latencyMode,+ channel_name,+ channel_playbackUrl,+ channel_recordingConfigurationArn,+ channel_tags,+ channel_type,++ -- * ChannelSummary+ ChannelSummary (..),+ newChannelSummary,+ channelSummary_arn,+ channelSummary_authorized,+ channelSummary_latencyMode,+ channelSummary_name,+ channelSummary_recordingConfigurationArn,+ channelSummary_tags,++ -- * DestinationConfiguration+ DestinationConfiguration (..),+ newDestinationConfiguration,+ destinationConfiguration_s3,++ -- * IngestConfiguration+ IngestConfiguration (..),+ newIngestConfiguration,+ ingestConfiguration_audio,+ ingestConfiguration_video,++ -- * PlaybackKeyPair+ PlaybackKeyPair (..),+ newPlaybackKeyPair,+ playbackKeyPair_arn,+ playbackKeyPair_fingerprint,+ playbackKeyPair_name,+ playbackKeyPair_tags,++ -- * PlaybackKeyPairSummary+ PlaybackKeyPairSummary (..),+ newPlaybackKeyPairSummary,+ playbackKeyPairSummary_arn,+ playbackKeyPairSummary_name,+ playbackKeyPairSummary_tags,++ -- * RecordingConfiguration+ RecordingConfiguration (..),+ newRecordingConfiguration,+ recordingConfiguration_name,+ recordingConfiguration_recordingReconnectWindowSeconds,+ recordingConfiguration_tags,+ recordingConfiguration_thumbnailConfiguration,+ recordingConfiguration_arn,+ recordingConfiguration_destinationConfiguration,+ recordingConfiguration_state,++ -- * RecordingConfigurationSummary+ RecordingConfigurationSummary (..),+ newRecordingConfigurationSummary,+ recordingConfigurationSummary_name,+ recordingConfigurationSummary_tags,+ recordingConfigurationSummary_arn,+ recordingConfigurationSummary_destinationConfiguration,+ recordingConfigurationSummary_state,++ -- * S3DestinationConfiguration+ S3DestinationConfiguration (..),+ newS3DestinationConfiguration,+ s3DestinationConfiguration_bucketName,++ -- * Stream+ Stream (..),+ newStream,+ stream_channelArn,+ stream_health,+ stream_playbackUrl,+ stream_startTime,+ stream_state,+ stream_streamId,+ stream_viewerCount,++ -- * StreamEvent+ StreamEvent (..),+ newStreamEvent,+ streamEvent_eventTime,+ streamEvent_name,+ streamEvent_type,++ -- * StreamFilters+ StreamFilters (..),+ newStreamFilters,+ streamFilters_health,++ -- * StreamKey+ StreamKey (..),+ newStreamKey,+ streamKey_arn,+ streamKey_channelArn,+ streamKey_tags,+ streamKey_value,++ -- * StreamKeySummary+ StreamKeySummary (..),+ newStreamKeySummary,+ streamKeySummary_arn,+ streamKeySummary_channelArn,+ streamKeySummary_tags,++ -- * StreamSession+ StreamSession (..),+ newStreamSession,+ streamSession_channel,+ streamSession_endTime,+ streamSession_ingestConfiguration,+ streamSession_recordingConfiguration,+ streamSession_startTime,+ streamSession_streamId,+ streamSession_truncatedEvents,++ -- * StreamSessionSummary+ StreamSessionSummary (..),+ newStreamSessionSummary,+ streamSessionSummary_endTime,+ streamSessionSummary_hasErrorEvent,+ streamSessionSummary_startTime,+ streamSessionSummary_streamId,++ -- * StreamSummary+ StreamSummary (..),+ newStreamSummary,+ streamSummary_channelArn,+ streamSummary_health,+ streamSummary_startTime,+ streamSummary_state,+ streamSummary_streamId,+ streamSummary_viewerCount,++ -- * ThumbnailConfiguration+ ThumbnailConfiguration (..),+ newThumbnailConfiguration,+ thumbnailConfiguration_recordingMode,+ thumbnailConfiguration_targetIntervalSeconds,++ -- * VideoConfiguration+ VideoConfiguration (..),+ newVideoConfiguration,+ videoConfiguration_avcLevel,+ videoConfiguration_avcProfile,+ videoConfiguration_codec,+ videoConfiguration_encoder,+ videoConfiguration_targetBitrate,+ videoConfiguration_targetFramerate,+ videoConfiguration_videoHeight,+ videoConfiguration_videoWidth,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.IVS.Types.AudioConfiguration+import Amazonka.IVS.Types.BatchError+import Amazonka.IVS.Types.Channel+import Amazonka.IVS.Types.ChannelLatencyMode+import Amazonka.IVS.Types.ChannelSummary+import Amazonka.IVS.Types.ChannelType+import Amazonka.IVS.Types.DestinationConfiguration+import Amazonka.IVS.Types.IngestConfiguration+import Amazonka.IVS.Types.PlaybackKeyPair+import Amazonka.IVS.Types.PlaybackKeyPairSummary+import Amazonka.IVS.Types.RecordingConfiguration+import Amazonka.IVS.Types.RecordingConfigurationState+import Amazonka.IVS.Types.RecordingConfigurationSummary+import Amazonka.IVS.Types.RecordingMode+import Amazonka.IVS.Types.S3DestinationConfiguration+import Amazonka.IVS.Types.Stream+import Amazonka.IVS.Types.StreamEvent+import Amazonka.IVS.Types.StreamFilters+import Amazonka.IVS.Types.StreamHealth+import Amazonka.IVS.Types.StreamKey+import Amazonka.IVS.Types.StreamKeySummary+import Amazonka.IVS.Types.StreamSession+import Amazonka.IVS.Types.StreamSessionSummary+import Amazonka.IVS.Types.StreamState+import Amazonka.IVS.Types.StreamSummary+import Amazonka.IVS.Types.ThumbnailConfiguration+import Amazonka.IVS.Types.VideoConfiguration+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Sign.V4 as Sign++-- | API version @2020-07-14@ of the Amazon Interactive Video Service SDK configuration.+defaultService :: Core.Service+defaultService =+ Core.Service+ { Core.abbrev = "IVS",+ Core.signer = Sign.v4,+ Core.endpointPrefix = "ivs",+ Core.signingName = "ivs",+ Core.version = "2020-07-14",+ Core.s3AddressingStyle = Core.S3AddressingStyleAuto,+ Core.endpoint = Core.defaultEndpoint defaultService,+ Core.timeout = Prelude.Just 70,+ Core.check = Core.statusSuccess,+ Core.error = Core.parseJSONError "IVS",+ 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++_AccessDeniedException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_AccessDeniedException =+ Core._MatchServiceError+ defaultService+ "AccessDeniedException"+ Prelude.. Core.hasStatus 403++_ChannelNotBroadcasting :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ChannelNotBroadcasting =+ Core._MatchServiceError+ defaultService+ "ChannelNotBroadcasting"+ Prelude.. Core.hasStatus 404++_ConflictException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ConflictException =+ Core._MatchServiceError+ defaultService+ "ConflictException"+ Prelude.. Core.hasStatus 409++_InternalServerException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InternalServerException =+ Core._MatchServiceError+ defaultService+ "InternalServerException"+ Prelude.. Core.hasStatus 500++_PendingVerification :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_PendingVerification =+ Core._MatchServiceError+ defaultService+ "PendingVerification"+ Prelude.. Core.hasStatus 403++_ResourceNotFoundException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ResourceNotFoundException =+ Core._MatchServiceError+ defaultService+ "ResourceNotFoundException"+ Prelude.. Core.hasStatus 404++_ServiceQuotaExceededException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ServiceQuotaExceededException =+ Core._MatchServiceError+ defaultService+ "ServiceQuotaExceededException"+ Prelude.. Core.hasStatus 402++_StreamUnavailable :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_StreamUnavailable =+ Core._MatchServiceError+ defaultService+ "StreamUnavailable"+ Prelude.. Core.hasStatus 503++_ThrottlingException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ThrottlingException =+ Core._MatchServiceError+ defaultService+ "ThrottlingException"+ Prelude.. Core.hasStatus 429++_ValidationException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ValidationException =+ Core._MatchServiceError+ defaultService+ "ValidationException"+ Prelude.. Core.hasStatus 400
+ gen/Amazonka/IVS/Types/AudioConfiguration.hs view
@@ -0,0 +1,113 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.IVS.Types.AudioConfiguration+-- 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.IVS.Types.AudioConfiguration 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++-- | Object specifying a stream’s audio configuration, as set up by the+-- broadcaster (usually in an encoder). This is part of the+-- IngestConfiguration object and used for monitoring stream health.+--+-- /See:/ 'newAudioConfiguration' smart constructor.+data AudioConfiguration = AudioConfiguration'+ { -- | Number of audio channels.+ channels :: Prelude.Maybe Prelude.Integer,+ -- | Codec used for the audio encoding.+ codec :: Prelude.Maybe Prelude.Text,+ -- | Number of audio samples recorded per second.+ sampleRate :: Prelude.Maybe Prelude.Integer,+ -- | The expected ingest bitrate (bits per second). This is configured in the+ -- encoder.+ targetBitrate :: Prelude.Maybe Prelude.Integer+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AudioConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'channels', 'audioConfiguration_channels' - Number of audio channels.+--+-- 'codec', 'audioConfiguration_codec' - Codec used for the audio encoding.+--+-- 'sampleRate', 'audioConfiguration_sampleRate' - Number of audio samples recorded per second.+--+-- 'targetBitrate', 'audioConfiguration_targetBitrate' - The expected ingest bitrate (bits per second). This is configured in the+-- encoder.+newAudioConfiguration ::+ AudioConfiguration+newAudioConfiguration =+ AudioConfiguration'+ { channels = Prelude.Nothing,+ codec = Prelude.Nothing,+ sampleRate = Prelude.Nothing,+ targetBitrate = Prelude.Nothing+ }++-- | Number of audio channels.+audioConfiguration_channels :: Lens.Lens' AudioConfiguration (Prelude.Maybe Prelude.Integer)+audioConfiguration_channels = Lens.lens (\AudioConfiguration' {channels} -> channels) (\s@AudioConfiguration' {} a -> s {channels = a} :: AudioConfiguration)++-- | Codec used for the audio encoding.+audioConfiguration_codec :: Lens.Lens' AudioConfiguration (Prelude.Maybe Prelude.Text)+audioConfiguration_codec = Lens.lens (\AudioConfiguration' {codec} -> codec) (\s@AudioConfiguration' {} a -> s {codec = a} :: AudioConfiguration)++-- | Number of audio samples recorded per second.+audioConfiguration_sampleRate :: Lens.Lens' AudioConfiguration (Prelude.Maybe Prelude.Integer)+audioConfiguration_sampleRate = Lens.lens (\AudioConfiguration' {sampleRate} -> sampleRate) (\s@AudioConfiguration' {} a -> s {sampleRate = a} :: AudioConfiguration)++-- | The expected ingest bitrate (bits per second). This is configured in the+-- encoder.+audioConfiguration_targetBitrate :: Lens.Lens' AudioConfiguration (Prelude.Maybe Prelude.Integer)+audioConfiguration_targetBitrate = Lens.lens (\AudioConfiguration' {targetBitrate} -> targetBitrate) (\s@AudioConfiguration' {} a -> s {targetBitrate = a} :: AudioConfiguration)++instance Data.FromJSON AudioConfiguration where+ parseJSON =+ Data.withObject+ "AudioConfiguration"+ ( \x ->+ AudioConfiguration'+ Prelude.<$> (x Data..:? "channels")+ Prelude.<*> (x Data..:? "codec")+ Prelude.<*> (x Data..:? "sampleRate")+ Prelude.<*> (x Data..:? "targetBitrate")+ )++instance Prelude.Hashable AudioConfiguration where+ hashWithSalt _salt AudioConfiguration' {..} =+ _salt+ `Prelude.hashWithSalt` channels+ `Prelude.hashWithSalt` codec+ `Prelude.hashWithSalt` sampleRate+ `Prelude.hashWithSalt` targetBitrate++instance Prelude.NFData AudioConfiguration where+ rnf AudioConfiguration' {..} =+ Prelude.rnf channels+ `Prelude.seq` Prelude.rnf codec+ `Prelude.seq` Prelude.rnf sampleRate+ `Prelude.seq` Prelude.rnf targetBitrate
+ gen/Amazonka/IVS/Types/BatchError.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.IVS.Types.BatchError+-- 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.IVS.Types.BatchError 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++-- | Error related to a specific channel, specified by its ARN.+--+-- /See:/ 'newBatchError' smart constructor.+data BatchError = BatchError'+ { -- | Channel ARN.+ arn :: Prelude.Maybe Prelude.Text,+ -- | Error code.+ code :: Prelude.Maybe Prelude.Text,+ -- | Error message, determined by the application.+ message :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BatchError' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'batchError_arn' - Channel ARN.+--+-- 'code', 'batchError_code' - Error code.+--+-- 'message', 'batchError_message' - Error message, determined by the application.+newBatchError ::+ BatchError+newBatchError =+ BatchError'+ { arn = Prelude.Nothing,+ code = Prelude.Nothing,+ message = Prelude.Nothing+ }++-- | Channel ARN.+batchError_arn :: Lens.Lens' BatchError (Prelude.Maybe Prelude.Text)+batchError_arn = Lens.lens (\BatchError' {arn} -> arn) (\s@BatchError' {} a -> s {arn = a} :: BatchError)++-- | Error code.+batchError_code :: Lens.Lens' BatchError (Prelude.Maybe Prelude.Text)+batchError_code = Lens.lens (\BatchError' {code} -> code) (\s@BatchError' {} a -> s {code = a} :: BatchError)++-- | Error message, determined by the application.+batchError_message :: Lens.Lens' BatchError (Prelude.Maybe Prelude.Text)+batchError_message = Lens.lens (\BatchError' {message} -> message) (\s@BatchError' {} a -> s {message = a} :: BatchError)++instance Data.FromJSON BatchError where+ parseJSON =+ Data.withObject+ "BatchError"+ ( \x ->+ BatchError'+ Prelude.<$> (x Data..:? "arn")+ Prelude.<*> (x Data..:? "code")+ Prelude.<*> (x Data..:? "message")+ )++instance Prelude.Hashable BatchError where+ hashWithSalt _salt BatchError' {..} =+ _salt+ `Prelude.hashWithSalt` arn+ `Prelude.hashWithSalt` code+ `Prelude.hashWithSalt` message++instance Prelude.NFData BatchError where+ rnf BatchError' {..} =+ Prelude.rnf arn+ `Prelude.seq` Prelude.rnf code+ `Prelude.seq` Prelude.rnf message
+ gen/Amazonka/IVS/Types/Channel.hs view
@@ -0,0 +1,251 @@+{-# 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.IVS.Types.Channel+-- 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.IVS.Types.Channel where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IVS.Types.ChannelLatencyMode+import Amazonka.IVS.Types.ChannelType+import qualified Amazonka.Prelude as Prelude++-- | Object specifying a channel.+--+-- /See:/ 'newChannel' smart constructor.+data Channel = Channel'+ { -- | Channel ARN.+ arn :: Prelude.Maybe Prelude.Text,+ -- | Whether the channel is private (enabled for playback authorization).+ -- Default: @false@.+ authorized :: Prelude.Maybe Prelude.Bool,+ -- | Channel ingest endpoint, part of the definition of an ingest server,+ -- used when you set up streaming software.+ ingestEndpoint :: Prelude.Maybe Prelude.Text,+ -- | Channel latency mode. Use @NORMAL@ to broadcast and deliver live video+ -- up to Full HD. Use @LOW@ for near-real-time interaction with viewers.+ -- Default: @LOW@. (Note: In the Amazon IVS console, @LOW@ and @NORMAL@+ -- correspond to Ultra-low and Standard, respectively.)+ latencyMode :: Prelude.Maybe ChannelLatencyMode,+ -- | Channel name.+ name :: Prelude.Maybe Prelude.Text,+ -- | Channel playback URL.+ playbackUrl :: Prelude.Maybe Prelude.Text,+ -- | Recording-configuration ARN. A value other than an empty string+ -- indicates that recording is enabled. Default: \"\" (empty string,+ -- recording is disabled).+ recordingConfigurationArn :: Prelude.Maybe Prelude.Text,+ -- | Array of 1-50 maps, each of the form @string:string (key:value)@. See+ -- <https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html Tagging Amazon Web Services Resources>+ -- for more information, including restrictions that apply to tags and+ -- \"Tag naming limits and requirements\"; Amazon IVS has no+ -- service-specific constraints beyond what is documented there.+ tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | Channel type, which determines the allowable resolution and bitrate. /If+ -- you exceed the allowable resolution or bitrate, the stream probably will+ -- disconnect immediately./ Default: @STANDARD@. Valid values:+ --+ -- - @STANDARD@: Video is transcoded: multiple qualities are generated+ -- from the original input, to automatically give viewers the best+ -- experience for their devices and network conditions. Transcoding+ -- allows higher playback quality across a range of download speeds.+ -- Resolution can be up to 1080p and bitrate can be up to 8.5 Mbps.+ -- Audio is transcoded only for renditions 360p and below; above that,+ -- audio is passed through. This is the default.+ --+ -- - @BASIC@: Video is transmuxed: Amazon IVS delivers the original input+ -- to viewers. The viewer’s video-quality choice is limited to the+ -- original input. Resolution can be up to 1080p and bitrate can be up+ -- to 1.5 Mbps for 480p and up to 3.5 Mbps for resolutions between 480p+ -- and 1080p.+ type' :: Prelude.Maybe ChannelType+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Channel' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'channel_arn' - Channel ARN.+--+-- 'authorized', 'channel_authorized' - Whether the channel is private (enabled for playback authorization).+-- Default: @false@.+--+-- 'ingestEndpoint', 'channel_ingestEndpoint' - Channel ingest endpoint, part of the definition of an ingest server,+-- used when you set up streaming software.+--+-- 'latencyMode', 'channel_latencyMode' - Channel latency mode. Use @NORMAL@ to broadcast and deliver live video+-- up to Full HD. Use @LOW@ for near-real-time interaction with viewers.+-- Default: @LOW@. (Note: In the Amazon IVS console, @LOW@ and @NORMAL@+-- correspond to Ultra-low and Standard, respectively.)+--+-- 'name', 'channel_name' - Channel name.+--+-- 'playbackUrl', 'channel_playbackUrl' - Channel playback URL.+--+-- 'recordingConfigurationArn', 'channel_recordingConfigurationArn' - Recording-configuration ARN. A value other than an empty string+-- indicates that recording is enabled. Default: \"\" (empty string,+-- recording is disabled).+--+-- 'tags', 'channel_tags' - Array of 1-50 maps, each of the form @string:string (key:value)@. See+-- <https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html Tagging Amazon Web Services Resources>+-- for more information, including restrictions that apply to tags and+-- \"Tag naming limits and requirements\"; Amazon IVS has no+-- service-specific constraints beyond what is documented there.+--+-- 'type'', 'channel_type' - Channel type, which determines the allowable resolution and bitrate. /If+-- you exceed the allowable resolution or bitrate, the stream probably will+-- disconnect immediately./ Default: @STANDARD@. Valid values:+--+-- - @STANDARD@: Video is transcoded: multiple qualities are generated+-- from the original input, to automatically give viewers the best+-- experience for their devices and network conditions. Transcoding+-- allows higher playback quality across a range of download speeds.+-- Resolution can be up to 1080p and bitrate can be up to 8.5 Mbps.+-- Audio is transcoded only for renditions 360p and below; above that,+-- audio is passed through. This is the default.+--+-- - @BASIC@: Video is transmuxed: Amazon IVS delivers the original input+-- to viewers. The viewer’s video-quality choice is limited to the+-- original input. Resolution can be up to 1080p and bitrate can be up+-- to 1.5 Mbps for 480p and up to 3.5 Mbps for resolutions between 480p+-- and 1080p.+newChannel ::+ Channel+newChannel =+ Channel'+ { arn = Prelude.Nothing,+ authorized = Prelude.Nothing,+ ingestEndpoint = Prelude.Nothing,+ latencyMode = Prelude.Nothing,+ name = Prelude.Nothing,+ playbackUrl = Prelude.Nothing,+ recordingConfigurationArn = Prelude.Nothing,+ tags = Prelude.Nothing,+ type' = Prelude.Nothing+ }++-- | Channel ARN.+channel_arn :: Lens.Lens' Channel (Prelude.Maybe Prelude.Text)+channel_arn = Lens.lens (\Channel' {arn} -> arn) (\s@Channel' {} a -> s {arn = a} :: Channel)++-- | Whether the channel is private (enabled for playback authorization).+-- Default: @false@.+channel_authorized :: Lens.Lens' Channel (Prelude.Maybe Prelude.Bool)+channel_authorized = Lens.lens (\Channel' {authorized} -> authorized) (\s@Channel' {} a -> s {authorized = a} :: Channel)++-- | Channel ingest endpoint, part of the definition of an ingest server,+-- used when you set up streaming software.+channel_ingestEndpoint :: Lens.Lens' Channel (Prelude.Maybe Prelude.Text)+channel_ingestEndpoint = Lens.lens (\Channel' {ingestEndpoint} -> ingestEndpoint) (\s@Channel' {} a -> s {ingestEndpoint = a} :: Channel)++-- | Channel latency mode. Use @NORMAL@ to broadcast and deliver live video+-- up to Full HD. Use @LOW@ for near-real-time interaction with viewers.+-- Default: @LOW@. (Note: In the Amazon IVS console, @LOW@ and @NORMAL@+-- correspond to Ultra-low and Standard, respectively.)+channel_latencyMode :: Lens.Lens' Channel (Prelude.Maybe ChannelLatencyMode)+channel_latencyMode = Lens.lens (\Channel' {latencyMode} -> latencyMode) (\s@Channel' {} a -> s {latencyMode = a} :: Channel)++-- | Channel name.+channel_name :: Lens.Lens' Channel (Prelude.Maybe Prelude.Text)+channel_name = Lens.lens (\Channel' {name} -> name) (\s@Channel' {} a -> s {name = a} :: Channel)++-- | Channel playback URL.+channel_playbackUrl :: Lens.Lens' Channel (Prelude.Maybe Prelude.Text)+channel_playbackUrl = Lens.lens (\Channel' {playbackUrl} -> playbackUrl) (\s@Channel' {} a -> s {playbackUrl = a} :: Channel)++-- | Recording-configuration ARN. A value other than an empty string+-- indicates that recording is enabled. Default: \"\" (empty string,+-- recording is disabled).+channel_recordingConfigurationArn :: Lens.Lens' Channel (Prelude.Maybe Prelude.Text)+channel_recordingConfigurationArn = Lens.lens (\Channel' {recordingConfigurationArn} -> recordingConfigurationArn) (\s@Channel' {} a -> s {recordingConfigurationArn = a} :: Channel)++-- | Array of 1-50 maps, each of the form @string:string (key:value)@. See+-- <https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html Tagging Amazon Web Services Resources>+-- for more information, including restrictions that apply to tags and+-- \"Tag naming limits and requirements\"; Amazon IVS has no+-- service-specific constraints beyond what is documented there.+channel_tags :: Lens.Lens' Channel (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+channel_tags = Lens.lens (\Channel' {tags} -> tags) (\s@Channel' {} a -> s {tags = a} :: Channel) Prelude.. Lens.mapping Lens.coerced++-- | Channel type, which determines the allowable resolution and bitrate. /If+-- you exceed the allowable resolution or bitrate, the stream probably will+-- disconnect immediately./ Default: @STANDARD@. Valid values:+--+-- - @STANDARD@: Video is transcoded: multiple qualities are generated+-- from the original input, to automatically give viewers the best+-- experience for their devices and network conditions. Transcoding+-- allows higher playback quality across a range of download speeds.+-- Resolution can be up to 1080p and bitrate can be up to 8.5 Mbps.+-- Audio is transcoded only for renditions 360p and below; above that,+-- audio is passed through. This is the default.+--+-- - @BASIC@: Video is transmuxed: Amazon IVS delivers the original input+-- to viewers. The viewer’s video-quality choice is limited to the+-- original input. Resolution can be up to 1080p and bitrate can be up+-- to 1.5 Mbps for 480p and up to 3.5 Mbps for resolutions between 480p+-- and 1080p.+channel_type :: Lens.Lens' Channel (Prelude.Maybe ChannelType)+channel_type = Lens.lens (\Channel' {type'} -> type') (\s@Channel' {} a -> s {type' = a} :: Channel)++instance Data.FromJSON Channel where+ parseJSON =+ Data.withObject+ "Channel"+ ( \x ->+ Channel'+ Prelude.<$> (x Data..:? "arn")+ Prelude.<*> (x Data..:? "authorized")+ Prelude.<*> (x Data..:? "ingestEndpoint")+ Prelude.<*> (x Data..:? "latencyMode")+ Prelude.<*> (x Data..:? "name")+ Prelude.<*> (x Data..:? "playbackUrl")+ Prelude.<*> (x Data..:? "recordingConfigurationArn")+ Prelude.<*> (x Data..:? "tags" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "type")+ )++instance Prelude.Hashable Channel where+ hashWithSalt _salt Channel' {..} =+ _salt+ `Prelude.hashWithSalt` arn+ `Prelude.hashWithSalt` authorized+ `Prelude.hashWithSalt` ingestEndpoint+ `Prelude.hashWithSalt` latencyMode+ `Prelude.hashWithSalt` name+ `Prelude.hashWithSalt` playbackUrl+ `Prelude.hashWithSalt` recordingConfigurationArn+ `Prelude.hashWithSalt` tags+ `Prelude.hashWithSalt` type'++instance Prelude.NFData Channel where+ rnf Channel' {..} =+ Prelude.rnf arn+ `Prelude.seq` Prelude.rnf authorized+ `Prelude.seq` Prelude.rnf ingestEndpoint+ `Prelude.seq` Prelude.rnf latencyMode+ `Prelude.seq` Prelude.rnf name+ `Prelude.seq` Prelude.rnf playbackUrl+ `Prelude.seq` Prelude.rnf recordingConfigurationArn+ `Prelude.seq` Prelude.rnf tags+ `Prelude.seq` Prelude.rnf type'
+ gen/Amazonka/IVS/Types/ChannelLatencyMode.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.IVS.Types.ChannelLatencyMode+-- 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.IVS.Types.ChannelLatencyMode+ ( ChannelLatencyMode+ ( ..,+ ChannelLatencyMode_LOW,+ ChannelLatencyMode_NORMAL+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ChannelLatencyMode = ChannelLatencyMode'+ { fromChannelLatencyMode ::+ 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 ChannelLatencyMode_LOW :: ChannelLatencyMode+pattern ChannelLatencyMode_LOW = ChannelLatencyMode' "LOW"++pattern ChannelLatencyMode_NORMAL :: ChannelLatencyMode+pattern ChannelLatencyMode_NORMAL = ChannelLatencyMode' "NORMAL"++{-# COMPLETE+ ChannelLatencyMode_LOW,+ ChannelLatencyMode_NORMAL,+ ChannelLatencyMode'+ #-}
+ gen/Amazonka/IVS/Types/ChannelSummary.hs view
@@ -0,0 +1,163 @@+{-# 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.IVS.Types.ChannelSummary+-- 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.IVS.Types.ChannelSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IVS.Types.ChannelLatencyMode+import qualified Amazonka.Prelude as Prelude++-- | Summary information about a channel.+--+-- /See:/ 'newChannelSummary' smart constructor.+data ChannelSummary = ChannelSummary'+ { -- | Channel ARN.+ arn :: Prelude.Maybe Prelude.Text,+ -- | Whether the channel is private (enabled for playback authorization).+ -- Default: @false@.+ authorized :: Prelude.Maybe Prelude.Bool,+ -- | Channel latency mode. Use @NORMAL@ to broadcast and deliver live video+ -- up to Full HD. Use @LOW@ for near-real-time interaction with viewers.+ -- Default: @LOW@. (Note: In the Amazon IVS console, @LOW@ and @NORMAL@+ -- correspond to Ultra-low and Standard, respectively.)+ latencyMode :: Prelude.Maybe ChannelLatencyMode,+ -- | Channel name.+ name :: Prelude.Maybe Prelude.Text,+ -- | Recording-configuration ARN. A value other than an empty string+ -- indicates that recording is enabled. Default: \"\" (empty string,+ -- recording is disabled).+ recordingConfigurationArn :: Prelude.Maybe Prelude.Text,+ -- | Array of 1-50 maps, each of the form @string:string (key:value)@. See+ -- <https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html Tagging Amazon Web Services Resources>+ -- for more information, including restrictions that apply to tags and+ -- \"Tag naming limits and requirements\"; Amazon IVS has no+ -- service-specific constraints beyond what is documented there.+ tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text)+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ChannelSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'channelSummary_arn' - Channel ARN.+--+-- 'authorized', 'channelSummary_authorized' - Whether the channel is private (enabled for playback authorization).+-- Default: @false@.+--+-- 'latencyMode', 'channelSummary_latencyMode' - Channel latency mode. Use @NORMAL@ to broadcast and deliver live video+-- up to Full HD. Use @LOW@ for near-real-time interaction with viewers.+-- Default: @LOW@. (Note: In the Amazon IVS console, @LOW@ and @NORMAL@+-- correspond to Ultra-low and Standard, respectively.)+--+-- 'name', 'channelSummary_name' - Channel name.+--+-- 'recordingConfigurationArn', 'channelSummary_recordingConfigurationArn' - Recording-configuration ARN. A value other than an empty string+-- indicates that recording is enabled. Default: \"\" (empty string,+-- recording is disabled).+--+-- 'tags', 'channelSummary_tags' - Array of 1-50 maps, each of the form @string:string (key:value)@. See+-- <https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html Tagging Amazon Web Services Resources>+-- for more information, including restrictions that apply to tags and+-- \"Tag naming limits and requirements\"; Amazon IVS has no+-- service-specific constraints beyond what is documented there.+newChannelSummary ::+ ChannelSummary+newChannelSummary =+ ChannelSummary'+ { arn = Prelude.Nothing,+ authorized = Prelude.Nothing,+ latencyMode = Prelude.Nothing,+ name = Prelude.Nothing,+ recordingConfigurationArn = Prelude.Nothing,+ tags = Prelude.Nothing+ }++-- | Channel ARN.+channelSummary_arn :: Lens.Lens' ChannelSummary (Prelude.Maybe Prelude.Text)+channelSummary_arn = Lens.lens (\ChannelSummary' {arn} -> arn) (\s@ChannelSummary' {} a -> s {arn = a} :: ChannelSummary)++-- | Whether the channel is private (enabled for playback authorization).+-- Default: @false@.+channelSummary_authorized :: Lens.Lens' ChannelSummary (Prelude.Maybe Prelude.Bool)+channelSummary_authorized = Lens.lens (\ChannelSummary' {authorized} -> authorized) (\s@ChannelSummary' {} a -> s {authorized = a} :: ChannelSummary)++-- | Channel latency mode. Use @NORMAL@ to broadcast and deliver live video+-- up to Full HD. Use @LOW@ for near-real-time interaction with viewers.+-- Default: @LOW@. (Note: In the Amazon IVS console, @LOW@ and @NORMAL@+-- correspond to Ultra-low and Standard, respectively.)+channelSummary_latencyMode :: Lens.Lens' ChannelSummary (Prelude.Maybe ChannelLatencyMode)+channelSummary_latencyMode = Lens.lens (\ChannelSummary' {latencyMode} -> latencyMode) (\s@ChannelSummary' {} a -> s {latencyMode = a} :: ChannelSummary)++-- | Channel name.+channelSummary_name :: Lens.Lens' ChannelSummary (Prelude.Maybe Prelude.Text)+channelSummary_name = Lens.lens (\ChannelSummary' {name} -> name) (\s@ChannelSummary' {} a -> s {name = a} :: ChannelSummary)++-- | Recording-configuration ARN. A value other than an empty string+-- indicates that recording is enabled. Default: \"\" (empty string,+-- recording is disabled).+channelSummary_recordingConfigurationArn :: Lens.Lens' ChannelSummary (Prelude.Maybe Prelude.Text)+channelSummary_recordingConfigurationArn = Lens.lens (\ChannelSummary' {recordingConfigurationArn} -> recordingConfigurationArn) (\s@ChannelSummary' {} a -> s {recordingConfigurationArn = a} :: ChannelSummary)++-- | Array of 1-50 maps, each of the form @string:string (key:value)@. See+-- <https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html Tagging Amazon Web Services Resources>+-- for more information, including restrictions that apply to tags and+-- \"Tag naming limits and requirements\"; Amazon IVS has no+-- service-specific constraints beyond what is documented there.+channelSummary_tags :: Lens.Lens' ChannelSummary (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+channelSummary_tags = Lens.lens (\ChannelSummary' {tags} -> tags) (\s@ChannelSummary' {} a -> s {tags = a} :: ChannelSummary) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON ChannelSummary where+ parseJSON =+ Data.withObject+ "ChannelSummary"+ ( \x ->+ ChannelSummary'+ Prelude.<$> (x Data..:? "arn")+ Prelude.<*> (x Data..:? "authorized")+ Prelude.<*> (x Data..:? "latencyMode")+ Prelude.<*> (x Data..:? "name")+ Prelude.<*> (x Data..:? "recordingConfigurationArn")+ Prelude.<*> (x Data..:? "tags" Data..!= Prelude.mempty)+ )++instance Prelude.Hashable ChannelSummary where+ hashWithSalt _salt ChannelSummary' {..} =+ _salt+ `Prelude.hashWithSalt` arn+ `Prelude.hashWithSalt` authorized+ `Prelude.hashWithSalt` latencyMode+ `Prelude.hashWithSalt` name+ `Prelude.hashWithSalt` recordingConfigurationArn+ `Prelude.hashWithSalt` tags++instance Prelude.NFData ChannelSummary where+ rnf ChannelSummary' {..} =+ Prelude.rnf arn+ `Prelude.seq` Prelude.rnf authorized+ `Prelude.seq` Prelude.rnf latencyMode+ `Prelude.seq` Prelude.rnf name+ `Prelude.seq` Prelude.rnf recordingConfigurationArn+ `Prelude.seq` Prelude.rnf tags
+ gen/Amazonka/IVS/Types/ChannelType.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.IVS.Types.ChannelType+-- 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.IVS.Types.ChannelType+ ( ChannelType+ ( ..,+ ChannelType_BASIC,+ ChannelType_STANDARD+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ChannelType = ChannelType'+ { fromChannelType ::+ 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 ChannelType_BASIC :: ChannelType+pattern ChannelType_BASIC = ChannelType' "BASIC"++pattern ChannelType_STANDARD :: ChannelType+pattern ChannelType_STANDARD = ChannelType' "STANDARD"++{-# COMPLETE+ ChannelType_BASIC,+ ChannelType_STANDARD,+ ChannelType'+ #-}
+ gen/Amazonka/IVS/Types/DestinationConfiguration.hs view
@@ -0,0 +1,77 @@+{-# 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.IVS.Types.DestinationConfiguration+-- 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.IVS.Types.DestinationConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IVS.Types.S3DestinationConfiguration+import qualified Amazonka.Prelude as Prelude++-- | A complex type that describes a location where recorded videos will be+-- stored. Each member represents a type of destination configuration. For+-- recording, you define one and only one type of destination+-- configuration.+--+-- /See:/ 'newDestinationConfiguration' smart constructor.+data DestinationConfiguration = DestinationConfiguration'+ { -- | An S3 destination configuration where recorded videos will be stored.+ s3 :: Prelude.Maybe S3DestinationConfiguration+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DestinationConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 's3', 'destinationConfiguration_s3' - An S3 destination configuration where recorded videos will be stored.+newDestinationConfiguration ::+ DestinationConfiguration+newDestinationConfiguration =+ DestinationConfiguration' {s3 = Prelude.Nothing}++-- | An S3 destination configuration where recorded videos will be stored.+destinationConfiguration_s3 :: Lens.Lens' DestinationConfiguration (Prelude.Maybe S3DestinationConfiguration)+destinationConfiguration_s3 = Lens.lens (\DestinationConfiguration' {s3} -> s3) (\s@DestinationConfiguration' {} a -> s {s3 = a} :: DestinationConfiguration)++instance Data.FromJSON DestinationConfiguration where+ parseJSON =+ Data.withObject+ "DestinationConfiguration"+ ( \x ->+ DestinationConfiguration'+ Prelude.<$> (x Data..:? "s3")+ )++instance Prelude.Hashable DestinationConfiguration where+ hashWithSalt _salt DestinationConfiguration' {..} =+ _salt `Prelude.hashWithSalt` s3++instance Prelude.NFData DestinationConfiguration where+ rnf DestinationConfiguration' {..} = Prelude.rnf s3++instance Data.ToJSON DestinationConfiguration where+ toJSON DestinationConfiguration' {..} =+ Data.object+ (Prelude.catMaybes [("s3" Data..=) Prelude.<$> s3])
+ gen/Amazonka/IVS/Types/IngestConfiguration.hs view
@@ -0,0 +1,86 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.IVS.Types.IngestConfiguration+-- 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.IVS.Types.IngestConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IVS.Types.AudioConfiguration+import Amazonka.IVS.Types.VideoConfiguration+import qualified Amazonka.Prelude as Prelude++-- | Object specifying the ingest configuration set up by the broadcaster,+-- usually in an encoder.+--+-- /See:/ 'newIngestConfiguration' smart constructor.+data IngestConfiguration = IngestConfiguration'+ { -- | Encoder settings for audio.+ audio :: Prelude.Maybe AudioConfiguration,+ -- | Encoder settings for video.+ video :: Prelude.Maybe VideoConfiguration+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'IngestConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'audio', 'ingestConfiguration_audio' - Encoder settings for audio.+--+-- 'video', 'ingestConfiguration_video' - Encoder settings for video.+newIngestConfiguration ::+ IngestConfiguration+newIngestConfiguration =+ IngestConfiguration'+ { audio = Prelude.Nothing,+ video = Prelude.Nothing+ }++-- | Encoder settings for audio.+ingestConfiguration_audio :: Lens.Lens' IngestConfiguration (Prelude.Maybe AudioConfiguration)+ingestConfiguration_audio = Lens.lens (\IngestConfiguration' {audio} -> audio) (\s@IngestConfiguration' {} a -> s {audio = a} :: IngestConfiguration)++-- | Encoder settings for video.+ingestConfiguration_video :: Lens.Lens' IngestConfiguration (Prelude.Maybe VideoConfiguration)+ingestConfiguration_video = Lens.lens (\IngestConfiguration' {video} -> video) (\s@IngestConfiguration' {} a -> s {video = a} :: IngestConfiguration)++instance Data.FromJSON IngestConfiguration where+ parseJSON =+ Data.withObject+ "IngestConfiguration"+ ( \x ->+ IngestConfiguration'+ Prelude.<$> (x Data..:? "audio")+ Prelude.<*> (x Data..:? "video")+ )++instance Prelude.Hashable IngestConfiguration where+ hashWithSalt _salt IngestConfiguration' {..} =+ _salt+ `Prelude.hashWithSalt` audio+ `Prelude.hashWithSalt` video++instance Prelude.NFData IngestConfiguration where+ rnf IngestConfiguration' {..} =+ Prelude.rnf audio `Prelude.seq` Prelude.rnf video
+ gen/Amazonka/IVS/Types/PlaybackKeyPair.hs view
@@ -0,0 +1,120 @@+{-# 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.IVS.Types.PlaybackKeyPair+-- 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.IVS.Types.PlaybackKeyPair 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 key pair used to sign and validate a playback authorization token.+--+-- /See:/ 'newPlaybackKeyPair' smart constructor.+data PlaybackKeyPair = PlaybackKeyPair'+ { -- | Key-pair ARN.+ arn :: Prelude.Maybe Prelude.Text,+ -- | Key-pair identifier.+ fingerprint :: Prelude.Maybe Prelude.Text,+ -- | Playback-key-pair name. The value does not need to be unique.+ name :: Prelude.Maybe Prelude.Text,+ -- | Array of 1-50 maps, each of the form @string:string (key:value)@. See+ -- <https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html Tagging Amazon Web Services Resources>+ -- for more information, including restrictions that apply to tags and+ -- \"Tag naming limits and requirements\"; Amazon IVS has no+ -- service-specific constraints beyond what is documented there.+ tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text)+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PlaybackKeyPair' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'playbackKeyPair_arn' - Key-pair ARN.+--+-- 'fingerprint', 'playbackKeyPair_fingerprint' - Key-pair identifier.+--+-- 'name', 'playbackKeyPair_name' - Playback-key-pair name. The value does not need to be unique.+--+-- 'tags', 'playbackKeyPair_tags' - Array of 1-50 maps, each of the form @string:string (key:value)@. See+-- <https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html Tagging Amazon Web Services Resources>+-- for more information, including restrictions that apply to tags and+-- \"Tag naming limits and requirements\"; Amazon IVS has no+-- service-specific constraints beyond what is documented there.+newPlaybackKeyPair ::+ PlaybackKeyPair+newPlaybackKeyPair =+ PlaybackKeyPair'+ { arn = Prelude.Nothing,+ fingerprint = Prelude.Nothing,+ name = Prelude.Nothing,+ tags = Prelude.Nothing+ }++-- | Key-pair ARN.+playbackKeyPair_arn :: Lens.Lens' PlaybackKeyPair (Prelude.Maybe Prelude.Text)+playbackKeyPair_arn = Lens.lens (\PlaybackKeyPair' {arn} -> arn) (\s@PlaybackKeyPair' {} a -> s {arn = a} :: PlaybackKeyPair)++-- | Key-pair identifier.+playbackKeyPair_fingerprint :: Lens.Lens' PlaybackKeyPair (Prelude.Maybe Prelude.Text)+playbackKeyPair_fingerprint = Lens.lens (\PlaybackKeyPair' {fingerprint} -> fingerprint) (\s@PlaybackKeyPair' {} a -> s {fingerprint = a} :: PlaybackKeyPair)++-- | Playback-key-pair name. The value does not need to be unique.+playbackKeyPair_name :: Lens.Lens' PlaybackKeyPair (Prelude.Maybe Prelude.Text)+playbackKeyPair_name = Lens.lens (\PlaybackKeyPair' {name} -> name) (\s@PlaybackKeyPair' {} a -> s {name = a} :: PlaybackKeyPair)++-- | Array of 1-50 maps, each of the form @string:string (key:value)@. See+-- <https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html Tagging Amazon Web Services Resources>+-- for more information, including restrictions that apply to tags and+-- \"Tag naming limits and requirements\"; Amazon IVS has no+-- service-specific constraints beyond what is documented there.+playbackKeyPair_tags :: Lens.Lens' PlaybackKeyPair (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+playbackKeyPair_tags = Lens.lens (\PlaybackKeyPair' {tags} -> tags) (\s@PlaybackKeyPair' {} a -> s {tags = a} :: PlaybackKeyPair) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON PlaybackKeyPair where+ parseJSON =+ Data.withObject+ "PlaybackKeyPair"+ ( \x ->+ PlaybackKeyPair'+ Prelude.<$> (x Data..:? "arn")+ Prelude.<*> (x Data..:? "fingerprint")+ Prelude.<*> (x Data..:? "name")+ Prelude.<*> (x Data..:? "tags" Data..!= Prelude.mempty)+ )++instance Prelude.Hashable PlaybackKeyPair where+ hashWithSalt _salt PlaybackKeyPair' {..} =+ _salt+ `Prelude.hashWithSalt` arn+ `Prelude.hashWithSalt` fingerprint+ `Prelude.hashWithSalt` name+ `Prelude.hashWithSalt` tags++instance Prelude.NFData PlaybackKeyPair where+ rnf PlaybackKeyPair' {..} =+ Prelude.rnf arn+ `Prelude.seq` Prelude.rnf fingerprint+ `Prelude.seq` Prelude.rnf name+ `Prelude.seq` Prelude.rnf tags
+ gen/Amazonka/IVS/Types/PlaybackKeyPairSummary.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.IVS.Types.PlaybackKeyPairSummary+-- 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.IVS.Types.PlaybackKeyPairSummary 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++-- | Summary information about a playback key pair.+--+-- /See:/ 'newPlaybackKeyPairSummary' smart constructor.+data PlaybackKeyPairSummary = PlaybackKeyPairSummary'+ { -- | Key-pair ARN.+ arn :: Prelude.Maybe Prelude.Text,+ -- | Playback-key-pair name. The value does not need to be unique.+ name :: Prelude.Maybe Prelude.Text,+ -- | Array of 1-50 maps, each of the form @string:string (key:value)@. See+ -- <https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html Tagging Amazon Web Services Resources>+ -- for more information, including restrictions that apply to tags and+ -- \"Tag naming limits and requirements\"; Amazon IVS has no+ -- service-specific constraints beyond what is documented there.+ tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text)+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PlaybackKeyPairSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'playbackKeyPairSummary_arn' - Key-pair ARN.+--+-- 'name', 'playbackKeyPairSummary_name' - Playback-key-pair name. The value does not need to be unique.+--+-- 'tags', 'playbackKeyPairSummary_tags' - Array of 1-50 maps, each of the form @string:string (key:value)@. See+-- <https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html Tagging Amazon Web Services Resources>+-- for more information, including restrictions that apply to tags and+-- \"Tag naming limits and requirements\"; Amazon IVS has no+-- service-specific constraints beyond what is documented there.+newPlaybackKeyPairSummary ::+ PlaybackKeyPairSummary+newPlaybackKeyPairSummary =+ PlaybackKeyPairSummary'+ { arn = Prelude.Nothing,+ name = Prelude.Nothing,+ tags = Prelude.Nothing+ }++-- | Key-pair ARN.+playbackKeyPairSummary_arn :: Lens.Lens' PlaybackKeyPairSummary (Prelude.Maybe Prelude.Text)+playbackKeyPairSummary_arn = Lens.lens (\PlaybackKeyPairSummary' {arn} -> arn) (\s@PlaybackKeyPairSummary' {} a -> s {arn = a} :: PlaybackKeyPairSummary)++-- | Playback-key-pair name. The value does not need to be unique.+playbackKeyPairSummary_name :: Lens.Lens' PlaybackKeyPairSummary (Prelude.Maybe Prelude.Text)+playbackKeyPairSummary_name = Lens.lens (\PlaybackKeyPairSummary' {name} -> name) (\s@PlaybackKeyPairSummary' {} a -> s {name = a} :: PlaybackKeyPairSummary)++-- | Array of 1-50 maps, each of the form @string:string (key:value)@. See+-- <https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html Tagging Amazon Web Services Resources>+-- for more information, including restrictions that apply to tags and+-- \"Tag naming limits and requirements\"; Amazon IVS has no+-- service-specific constraints beyond what is documented there.+playbackKeyPairSummary_tags :: Lens.Lens' PlaybackKeyPairSummary (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+playbackKeyPairSummary_tags = Lens.lens (\PlaybackKeyPairSummary' {tags} -> tags) (\s@PlaybackKeyPairSummary' {} a -> s {tags = a} :: PlaybackKeyPairSummary) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON PlaybackKeyPairSummary where+ parseJSON =+ Data.withObject+ "PlaybackKeyPairSummary"+ ( \x ->+ PlaybackKeyPairSummary'+ Prelude.<$> (x Data..:? "arn")+ Prelude.<*> (x Data..:? "name")+ Prelude.<*> (x Data..:? "tags" Data..!= Prelude.mempty)+ )++instance Prelude.Hashable PlaybackKeyPairSummary where+ hashWithSalt _salt PlaybackKeyPairSummary' {..} =+ _salt+ `Prelude.hashWithSalt` arn+ `Prelude.hashWithSalt` name+ `Prelude.hashWithSalt` tags++instance Prelude.NFData PlaybackKeyPairSummary where+ rnf PlaybackKeyPairSummary' {..} =+ Prelude.rnf arn+ `Prelude.seq` Prelude.rnf name+ `Prelude.seq` Prelude.rnf tags
+ gen/Amazonka/IVS/Types/RecordingConfiguration.hs view
@@ -0,0 +1,190 @@+{-# 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.IVS.Types.RecordingConfiguration+-- 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.IVS.Types.RecordingConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IVS.Types.DestinationConfiguration+import Amazonka.IVS.Types.RecordingConfigurationState+import Amazonka.IVS.Types.ThumbnailConfiguration+import qualified Amazonka.Prelude as Prelude++-- | An object representing a configuration to record a channel stream.+--+-- /See:/ 'newRecordingConfiguration' smart constructor.+data RecordingConfiguration = RecordingConfiguration'+ { -- | Recording-configuration name. The value does not need to be unique.+ name :: Prelude.Maybe Prelude.Text,+ -- | If a broadcast disconnects and then reconnects within the specified+ -- interval, the multiple streams will be considered a single broadcast and+ -- merged together. Default: 0.+ recordingReconnectWindowSeconds :: Prelude.Maybe Prelude.Natural,+ -- | Array of 1-50 maps, each of the form @string:string (key:value)@. See+ -- <https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html Tagging Amazon Web Services Resources>+ -- for more information, including restrictions that apply to tags and+ -- \"Tag naming limits and requirements\"; Amazon IVS has no+ -- service-specific constraints beyond what is documented there.+ tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | A complex type that allows you to enable\/disable the recording of+ -- thumbnails for a live session and modify the interval at which+ -- thumbnails are generated for the live session.+ thumbnailConfiguration :: Prelude.Maybe ThumbnailConfiguration,+ -- | Recording-configuration ARN.+ arn :: Prelude.Text,+ -- | A complex type that contains information about where recorded video will+ -- be stored.+ destinationConfiguration :: DestinationConfiguration,+ -- | Indicates the current state of the recording configuration. When the+ -- state is @ACTIVE@, the configuration is ready for recording a channel+ -- stream.+ state :: RecordingConfigurationState+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RecordingConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'recordingConfiguration_name' - Recording-configuration name. The value does not need to be unique.+--+-- 'recordingReconnectWindowSeconds', 'recordingConfiguration_recordingReconnectWindowSeconds' - If a broadcast disconnects and then reconnects within the specified+-- interval, the multiple streams will be considered a single broadcast and+-- merged together. Default: 0.+--+-- 'tags', 'recordingConfiguration_tags' - Array of 1-50 maps, each of the form @string:string (key:value)@. See+-- <https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html Tagging Amazon Web Services Resources>+-- for more information, including restrictions that apply to tags and+-- \"Tag naming limits and requirements\"; Amazon IVS has no+-- service-specific constraints beyond what is documented there.+--+-- 'thumbnailConfiguration', 'recordingConfiguration_thumbnailConfiguration' - A complex type that allows you to enable\/disable the recording of+-- thumbnails for a live session and modify the interval at which+-- thumbnails are generated for the live session.+--+-- 'arn', 'recordingConfiguration_arn' - Recording-configuration ARN.+--+-- 'destinationConfiguration', 'recordingConfiguration_destinationConfiguration' - A complex type that contains information about where recorded video will+-- be stored.+--+-- 'state', 'recordingConfiguration_state' - Indicates the current state of the recording configuration. When the+-- state is @ACTIVE@, the configuration is ready for recording a channel+-- stream.+newRecordingConfiguration ::+ -- | 'arn'+ Prelude.Text ->+ -- | 'destinationConfiguration'+ DestinationConfiguration ->+ -- | 'state'+ RecordingConfigurationState ->+ RecordingConfiguration+newRecordingConfiguration+ pArn_+ pDestinationConfiguration_+ pState_ =+ RecordingConfiguration'+ { name = Prelude.Nothing,+ recordingReconnectWindowSeconds = Prelude.Nothing,+ tags = Prelude.Nothing,+ thumbnailConfiguration = Prelude.Nothing,+ arn = pArn_,+ destinationConfiguration =+ pDestinationConfiguration_,+ state = pState_+ }++-- | Recording-configuration name. The value does not need to be unique.+recordingConfiguration_name :: Lens.Lens' RecordingConfiguration (Prelude.Maybe Prelude.Text)+recordingConfiguration_name = Lens.lens (\RecordingConfiguration' {name} -> name) (\s@RecordingConfiguration' {} a -> s {name = a} :: RecordingConfiguration)++-- | If a broadcast disconnects and then reconnects within the specified+-- interval, the multiple streams will be considered a single broadcast and+-- merged together. Default: 0.+recordingConfiguration_recordingReconnectWindowSeconds :: Lens.Lens' RecordingConfiguration (Prelude.Maybe Prelude.Natural)+recordingConfiguration_recordingReconnectWindowSeconds = Lens.lens (\RecordingConfiguration' {recordingReconnectWindowSeconds} -> recordingReconnectWindowSeconds) (\s@RecordingConfiguration' {} a -> s {recordingReconnectWindowSeconds = a} :: RecordingConfiguration)++-- | Array of 1-50 maps, each of the form @string:string (key:value)@. See+-- <https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html Tagging Amazon Web Services Resources>+-- for more information, including restrictions that apply to tags and+-- \"Tag naming limits and requirements\"; Amazon IVS has no+-- service-specific constraints beyond what is documented there.+recordingConfiguration_tags :: Lens.Lens' RecordingConfiguration (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+recordingConfiguration_tags = Lens.lens (\RecordingConfiguration' {tags} -> tags) (\s@RecordingConfiguration' {} a -> s {tags = a} :: RecordingConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | A complex type that allows you to enable\/disable the recording of+-- thumbnails for a live session and modify the interval at which+-- thumbnails are generated for the live session.+recordingConfiguration_thumbnailConfiguration :: Lens.Lens' RecordingConfiguration (Prelude.Maybe ThumbnailConfiguration)+recordingConfiguration_thumbnailConfiguration = Lens.lens (\RecordingConfiguration' {thumbnailConfiguration} -> thumbnailConfiguration) (\s@RecordingConfiguration' {} a -> s {thumbnailConfiguration = a} :: RecordingConfiguration)++-- | Recording-configuration ARN.+recordingConfiguration_arn :: Lens.Lens' RecordingConfiguration Prelude.Text+recordingConfiguration_arn = Lens.lens (\RecordingConfiguration' {arn} -> arn) (\s@RecordingConfiguration' {} a -> s {arn = a} :: RecordingConfiguration)++-- | A complex type that contains information about where recorded video will+-- be stored.+recordingConfiguration_destinationConfiguration :: Lens.Lens' RecordingConfiguration DestinationConfiguration+recordingConfiguration_destinationConfiguration = Lens.lens (\RecordingConfiguration' {destinationConfiguration} -> destinationConfiguration) (\s@RecordingConfiguration' {} a -> s {destinationConfiguration = a} :: RecordingConfiguration)++-- | Indicates the current state of the recording configuration. When the+-- state is @ACTIVE@, the configuration is ready for recording a channel+-- stream.+recordingConfiguration_state :: Lens.Lens' RecordingConfiguration RecordingConfigurationState+recordingConfiguration_state = Lens.lens (\RecordingConfiguration' {state} -> state) (\s@RecordingConfiguration' {} a -> s {state = a} :: RecordingConfiguration)++instance Data.FromJSON RecordingConfiguration where+ parseJSON =+ Data.withObject+ "RecordingConfiguration"+ ( \x ->+ RecordingConfiguration'+ Prelude.<$> (x Data..:? "name")+ Prelude.<*> (x Data..:? "recordingReconnectWindowSeconds")+ Prelude.<*> (x Data..:? "tags" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "thumbnailConfiguration")+ Prelude.<*> (x Data..: "arn")+ Prelude.<*> (x Data..: "destinationConfiguration")+ Prelude.<*> (x Data..: "state")+ )++instance Prelude.Hashable RecordingConfiguration where+ hashWithSalt _salt RecordingConfiguration' {..} =+ _salt+ `Prelude.hashWithSalt` name+ `Prelude.hashWithSalt` recordingReconnectWindowSeconds+ `Prelude.hashWithSalt` tags+ `Prelude.hashWithSalt` thumbnailConfiguration+ `Prelude.hashWithSalt` arn+ `Prelude.hashWithSalt` destinationConfiguration+ `Prelude.hashWithSalt` state++instance Prelude.NFData RecordingConfiguration where+ rnf RecordingConfiguration' {..} =+ Prelude.rnf name+ `Prelude.seq` Prelude.rnf recordingReconnectWindowSeconds+ `Prelude.seq` Prelude.rnf tags+ `Prelude.seq` Prelude.rnf thumbnailConfiguration+ `Prelude.seq` Prelude.rnf arn+ `Prelude.seq` Prelude.rnf destinationConfiguration+ `Prelude.seq` Prelude.rnf state
+ gen/Amazonka/IVS/Types/RecordingConfigurationState.hs view
@@ -0,0 +1,76 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.IVS.Types.RecordingConfigurationState+-- 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.IVS.Types.RecordingConfigurationState+ ( RecordingConfigurationState+ ( ..,+ RecordingConfigurationState_ACTIVE,+ RecordingConfigurationState_CREATE_FAILED,+ RecordingConfigurationState_CREATING+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype RecordingConfigurationState = RecordingConfigurationState'+ { fromRecordingConfigurationState ::+ 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 RecordingConfigurationState_ACTIVE :: RecordingConfigurationState+pattern RecordingConfigurationState_ACTIVE = RecordingConfigurationState' "ACTIVE"++pattern RecordingConfigurationState_CREATE_FAILED :: RecordingConfigurationState+pattern RecordingConfigurationState_CREATE_FAILED = RecordingConfigurationState' "CREATE_FAILED"++pattern RecordingConfigurationState_CREATING :: RecordingConfigurationState+pattern RecordingConfigurationState_CREATING = RecordingConfigurationState' "CREATING"++{-# COMPLETE+ RecordingConfigurationState_ACTIVE,+ RecordingConfigurationState_CREATE_FAILED,+ RecordingConfigurationState_CREATING,+ RecordingConfigurationState'+ #-}
+ gen/Amazonka/IVS/Types/RecordingConfigurationSummary.hs view
@@ -0,0 +1,157 @@+{-# 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.IVS.Types.RecordingConfigurationSummary+-- 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.IVS.Types.RecordingConfigurationSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IVS.Types.DestinationConfiguration+import Amazonka.IVS.Types.RecordingConfigurationState+import qualified Amazonka.Prelude as Prelude++-- | Summary information about a RecordingConfiguration.+--+-- /See:/ 'newRecordingConfigurationSummary' smart constructor.+data RecordingConfigurationSummary = RecordingConfigurationSummary'+ { -- | Recording-configuration name. The value does not need to be unique.+ name :: Prelude.Maybe Prelude.Text,+ -- | Array of 1-50 maps, each of the form @string:string (key:value)@. See+ -- <https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html Tagging Amazon Web Services Resources>+ -- for more information, including restrictions that apply to tags and+ -- \"Tag naming limits and requirements\"; Amazon IVS has no+ -- service-specific constraints beyond what is documented there.+ tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | Recording-configuration ARN.+ arn :: Prelude.Text,+ -- | A complex type that contains information about where recorded video will+ -- be stored.+ destinationConfiguration :: DestinationConfiguration,+ -- | Indicates the current state of the recording configuration. When the+ -- state is @ACTIVE@, the configuration is ready for recording a channel+ -- stream.+ state :: RecordingConfigurationState+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RecordingConfigurationSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'recordingConfigurationSummary_name' - Recording-configuration name. The value does not need to be unique.+--+-- 'tags', 'recordingConfigurationSummary_tags' - Array of 1-50 maps, each of the form @string:string (key:value)@. See+-- <https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html Tagging Amazon Web Services Resources>+-- for more information, including restrictions that apply to tags and+-- \"Tag naming limits and requirements\"; Amazon IVS has no+-- service-specific constraints beyond what is documented there.+--+-- 'arn', 'recordingConfigurationSummary_arn' - Recording-configuration ARN.+--+-- 'destinationConfiguration', 'recordingConfigurationSummary_destinationConfiguration' - A complex type that contains information about where recorded video will+-- be stored.+--+-- 'state', 'recordingConfigurationSummary_state' - Indicates the current state of the recording configuration. When the+-- state is @ACTIVE@, the configuration is ready for recording a channel+-- stream.+newRecordingConfigurationSummary ::+ -- | 'arn'+ Prelude.Text ->+ -- | 'destinationConfiguration'+ DestinationConfiguration ->+ -- | 'state'+ RecordingConfigurationState ->+ RecordingConfigurationSummary+newRecordingConfigurationSummary+ pArn_+ pDestinationConfiguration_+ pState_ =+ RecordingConfigurationSummary'+ { name =+ Prelude.Nothing,+ tags = Prelude.Nothing,+ arn = pArn_,+ destinationConfiguration =+ pDestinationConfiguration_,+ state = pState_+ }++-- | Recording-configuration name. The value does not need to be unique.+recordingConfigurationSummary_name :: Lens.Lens' RecordingConfigurationSummary (Prelude.Maybe Prelude.Text)+recordingConfigurationSummary_name = Lens.lens (\RecordingConfigurationSummary' {name} -> name) (\s@RecordingConfigurationSummary' {} a -> s {name = a} :: RecordingConfigurationSummary)++-- | Array of 1-50 maps, each of the form @string:string (key:value)@. See+-- <https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html Tagging Amazon Web Services Resources>+-- for more information, including restrictions that apply to tags and+-- \"Tag naming limits and requirements\"; Amazon IVS has no+-- service-specific constraints beyond what is documented there.+recordingConfigurationSummary_tags :: Lens.Lens' RecordingConfigurationSummary (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+recordingConfigurationSummary_tags = Lens.lens (\RecordingConfigurationSummary' {tags} -> tags) (\s@RecordingConfigurationSummary' {} a -> s {tags = a} :: RecordingConfigurationSummary) Prelude.. Lens.mapping Lens.coerced++-- | Recording-configuration ARN.+recordingConfigurationSummary_arn :: Lens.Lens' RecordingConfigurationSummary Prelude.Text+recordingConfigurationSummary_arn = Lens.lens (\RecordingConfigurationSummary' {arn} -> arn) (\s@RecordingConfigurationSummary' {} a -> s {arn = a} :: RecordingConfigurationSummary)++-- | A complex type that contains information about where recorded video will+-- be stored.+recordingConfigurationSummary_destinationConfiguration :: Lens.Lens' RecordingConfigurationSummary DestinationConfiguration+recordingConfigurationSummary_destinationConfiguration = Lens.lens (\RecordingConfigurationSummary' {destinationConfiguration} -> destinationConfiguration) (\s@RecordingConfigurationSummary' {} a -> s {destinationConfiguration = a} :: RecordingConfigurationSummary)++-- | Indicates the current state of the recording configuration. When the+-- state is @ACTIVE@, the configuration is ready for recording a channel+-- stream.+recordingConfigurationSummary_state :: Lens.Lens' RecordingConfigurationSummary RecordingConfigurationState+recordingConfigurationSummary_state = Lens.lens (\RecordingConfigurationSummary' {state} -> state) (\s@RecordingConfigurationSummary' {} a -> s {state = a} :: RecordingConfigurationSummary)++instance Data.FromJSON RecordingConfigurationSummary where+ parseJSON =+ Data.withObject+ "RecordingConfigurationSummary"+ ( \x ->+ RecordingConfigurationSummary'+ Prelude.<$> (x Data..:? "name")+ Prelude.<*> (x Data..:? "tags" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..: "arn")+ Prelude.<*> (x Data..: "destinationConfiguration")+ Prelude.<*> (x Data..: "state")+ )++instance+ Prelude.Hashable+ RecordingConfigurationSummary+ where+ hashWithSalt _salt RecordingConfigurationSummary' {..} =+ _salt+ `Prelude.hashWithSalt` name+ `Prelude.hashWithSalt` tags+ `Prelude.hashWithSalt` arn+ `Prelude.hashWithSalt` destinationConfiguration+ `Prelude.hashWithSalt` state++instance Prelude.NFData RecordingConfigurationSummary where+ rnf RecordingConfigurationSummary' {..} =+ Prelude.rnf name+ `Prelude.seq` Prelude.rnf tags+ `Prelude.seq` Prelude.rnf arn+ `Prelude.seq` Prelude.rnf destinationConfiguration+ `Prelude.seq` Prelude.rnf state
+ gen/Amazonka/IVS/Types/RecordingMode.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.IVS.Types.RecordingMode+-- 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.IVS.Types.RecordingMode+ ( RecordingMode+ ( ..,+ RecordingMode_DISABLED,+ RecordingMode_INTERVAL+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype RecordingMode = RecordingMode'+ { fromRecordingMode ::+ 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 RecordingMode_DISABLED :: RecordingMode+pattern RecordingMode_DISABLED = RecordingMode' "DISABLED"++pattern RecordingMode_INTERVAL :: RecordingMode+pattern RecordingMode_INTERVAL = RecordingMode' "INTERVAL"++{-# COMPLETE+ RecordingMode_DISABLED,+ RecordingMode_INTERVAL,+ RecordingMode'+ #-}
+ gen/Amazonka/IVS/Types/S3DestinationConfiguration.hs view
@@ -0,0 +1,82 @@+{-# 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.IVS.Types.S3DestinationConfiguration+-- 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.IVS.Types.S3DestinationConfiguration 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 complex type that describes an S3 location where recorded videos will+-- be stored.+--+-- /See:/ 'newS3DestinationConfiguration' smart constructor.+data S3DestinationConfiguration = S3DestinationConfiguration'+ { -- | Location (S3 bucket name) where recorded videos will be stored.+ bucketName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'S3DestinationConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 's3DestinationConfiguration_bucketName' - Location (S3 bucket name) where recorded videos will be stored.+newS3DestinationConfiguration ::+ -- | 'bucketName'+ Prelude.Text ->+ S3DestinationConfiguration+newS3DestinationConfiguration pBucketName_ =+ S3DestinationConfiguration'+ { bucketName =+ pBucketName_+ }++-- | Location (S3 bucket name) where recorded videos will be stored.+s3DestinationConfiguration_bucketName :: Lens.Lens' S3DestinationConfiguration Prelude.Text+s3DestinationConfiguration_bucketName = Lens.lens (\S3DestinationConfiguration' {bucketName} -> bucketName) (\s@S3DestinationConfiguration' {} a -> s {bucketName = a} :: S3DestinationConfiguration)++instance Data.FromJSON S3DestinationConfiguration where+ parseJSON =+ Data.withObject+ "S3DestinationConfiguration"+ ( \x ->+ S3DestinationConfiguration'+ Prelude.<$> (x Data..: "bucketName")+ )++instance Prelude.Hashable S3DestinationConfiguration where+ hashWithSalt _salt S3DestinationConfiguration' {..} =+ _salt `Prelude.hashWithSalt` bucketName++instance Prelude.NFData S3DestinationConfiguration where+ rnf S3DestinationConfiguration' {..} =+ Prelude.rnf bucketName++instance Data.ToJSON S3DestinationConfiguration where+ toJSON S3DestinationConfiguration' {..} =+ Data.object+ ( Prelude.catMaybes+ [Prelude.Just ("bucketName" Data..= bucketName)]+ )
+ gen/Amazonka/IVS/Types/Stream.hs view
@@ -0,0 +1,167 @@+{-# 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.IVS.Types.Stream+-- 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.IVS.Types.Stream where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IVS.Types.StreamHealth+import Amazonka.IVS.Types.StreamState+import qualified Amazonka.Prelude as Prelude++-- | Specifies a live video stream that has been ingested and distributed.+--+-- /See:/ 'newStream' smart constructor.+data Stream = Stream'+ { -- | Channel ARN for the stream.+ channelArn :: Prelude.Maybe Prelude.Text,+ -- | The stream’s health.+ health :: Prelude.Maybe StreamHealth,+ -- | URL of the master playlist, required by the video player to play the HLS+ -- stream.+ playbackUrl :: Prelude.Maybe Prelude.Text,+ -- | Time of the stream’s start. This is an ISO 8601 timestamp; /note that+ -- this is returned as a string/.+ startTime :: Prelude.Maybe Data.ISO8601,+ -- | The stream’s state.+ state :: Prelude.Maybe StreamState,+ -- | Unique identifier for a live or previously live stream in the specified+ -- channel.+ streamId :: Prelude.Maybe Prelude.Text,+ -- | A count of concurrent views of the stream. Typically, a new view appears+ -- in @viewerCount@ within 15 seconds of when video playback starts and a+ -- view is removed from @viewerCount@ within 1 minute of when video+ -- playback ends. A value of -1 indicates that the request timed out; in+ -- this case, retry.+ viewerCount :: Prelude.Maybe Prelude.Integer+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Stream' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'channelArn', 'stream_channelArn' - Channel ARN for the stream.+--+-- 'health', 'stream_health' - The stream’s health.+--+-- 'playbackUrl', 'stream_playbackUrl' - URL of the master playlist, required by the video player to play the HLS+-- stream.+--+-- 'startTime', 'stream_startTime' - Time of the stream’s start. This is an ISO 8601 timestamp; /note that+-- this is returned as a string/.+--+-- 'state', 'stream_state' - The stream’s state.+--+-- 'streamId', 'stream_streamId' - Unique identifier for a live or previously live stream in the specified+-- channel.+--+-- 'viewerCount', 'stream_viewerCount' - A count of concurrent views of the stream. Typically, a new view appears+-- in @viewerCount@ within 15 seconds of when video playback starts and a+-- view is removed from @viewerCount@ within 1 minute of when video+-- playback ends. A value of -1 indicates that the request timed out; in+-- this case, retry.+newStream ::+ Stream+newStream =+ Stream'+ { channelArn = Prelude.Nothing,+ health = Prelude.Nothing,+ playbackUrl = Prelude.Nothing,+ startTime = Prelude.Nothing,+ state = Prelude.Nothing,+ streamId = Prelude.Nothing,+ viewerCount = Prelude.Nothing+ }++-- | Channel ARN for the stream.+stream_channelArn :: Lens.Lens' Stream (Prelude.Maybe Prelude.Text)+stream_channelArn = Lens.lens (\Stream' {channelArn} -> channelArn) (\s@Stream' {} a -> s {channelArn = a} :: Stream)++-- | The stream’s health.+stream_health :: Lens.Lens' Stream (Prelude.Maybe StreamHealth)+stream_health = Lens.lens (\Stream' {health} -> health) (\s@Stream' {} a -> s {health = a} :: Stream)++-- | URL of the master playlist, required by the video player to play the HLS+-- stream.+stream_playbackUrl :: Lens.Lens' Stream (Prelude.Maybe Prelude.Text)+stream_playbackUrl = Lens.lens (\Stream' {playbackUrl} -> playbackUrl) (\s@Stream' {} a -> s {playbackUrl = a} :: Stream)++-- | Time of the stream’s start. This is an ISO 8601 timestamp; /note that+-- this is returned as a string/.+stream_startTime :: Lens.Lens' Stream (Prelude.Maybe Prelude.UTCTime)+stream_startTime = Lens.lens (\Stream' {startTime} -> startTime) (\s@Stream' {} a -> s {startTime = a} :: Stream) Prelude.. Lens.mapping Data._Time++-- | The stream’s state.+stream_state :: Lens.Lens' Stream (Prelude.Maybe StreamState)+stream_state = Lens.lens (\Stream' {state} -> state) (\s@Stream' {} a -> s {state = a} :: Stream)++-- | Unique identifier for a live or previously live stream in the specified+-- channel.+stream_streamId :: Lens.Lens' Stream (Prelude.Maybe Prelude.Text)+stream_streamId = Lens.lens (\Stream' {streamId} -> streamId) (\s@Stream' {} a -> s {streamId = a} :: Stream)++-- | A count of concurrent views of the stream. Typically, a new view appears+-- in @viewerCount@ within 15 seconds of when video playback starts and a+-- view is removed from @viewerCount@ within 1 minute of when video+-- playback ends. A value of -1 indicates that the request timed out; in+-- this case, retry.+stream_viewerCount :: Lens.Lens' Stream (Prelude.Maybe Prelude.Integer)+stream_viewerCount = Lens.lens (\Stream' {viewerCount} -> viewerCount) (\s@Stream' {} a -> s {viewerCount = a} :: Stream)++instance Data.FromJSON Stream where+ parseJSON =+ Data.withObject+ "Stream"+ ( \x ->+ Stream'+ Prelude.<$> (x Data..:? "channelArn")+ Prelude.<*> (x Data..:? "health")+ Prelude.<*> (x Data..:? "playbackUrl")+ Prelude.<*> (x Data..:? "startTime")+ Prelude.<*> (x Data..:? "state")+ Prelude.<*> (x Data..:? "streamId")+ Prelude.<*> (x Data..:? "viewerCount")+ )++instance Prelude.Hashable Stream where+ hashWithSalt _salt Stream' {..} =+ _salt+ `Prelude.hashWithSalt` channelArn+ `Prelude.hashWithSalt` health+ `Prelude.hashWithSalt` playbackUrl+ `Prelude.hashWithSalt` startTime+ `Prelude.hashWithSalt` state+ `Prelude.hashWithSalt` streamId+ `Prelude.hashWithSalt` viewerCount++instance Prelude.NFData Stream where+ rnf Stream' {..} =+ Prelude.rnf channelArn+ `Prelude.seq` Prelude.rnf health+ `Prelude.seq` Prelude.rnf playbackUrl+ `Prelude.seq` Prelude.rnf startTime+ `Prelude.seq` Prelude.rnf state+ `Prelude.seq` Prelude.rnf streamId+ `Prelude.seq` Prelude.rnf viewerCount
+ gen/Amazonka/IVS/Types/StreamEvent.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.IVS.Types.StreamEvent+-- 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.IVS.Types.StreamEvent 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++-- | Object specifying a stream’s events. For a list of events, see+-- <https://docs.aws.amazon.com/ivs/latest/userguide/eventbridge.html Using Amazon EventBridge with Amazon IVS>.+--+-- /See:/ 'newStreamEvent' smart constructor.+data StreamEvent = StreamEvent'+ { -- | Time when the event occurred. This is an ISO 8601 timestamp; /note that+ -- this is returned as a string/.+ eventTime :: Prelude.Maybe Data.ISO8601,+ -- | Name that identifies the stream event within a @type@.+ name :: Prelude.Maybe Prelude.Text,+ -- | Logical group for certain events.+ type' :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StreamEvent' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'eventTime', 'streamEvent_eventTime' - Time when the event occurred. This is an ISO 8601 timestamp; /note that+-- this is returned as a string/.+--+-- 'name', 'streamEvent_name' - Name that identifies the stream event within a @type@.+--+-- 'type'', 'streamEvent_type' - Logical group for certain events.+newStreamEvent ::+ StreamEvent+newStreamEvent =+ StreamEvent'+ { eventTime = Prelude.Nothing,+ name = Prelude.Nothing,+ type' = Prelude.Nothing+ }++-- | Time when the event occurred. This is an ISO 8601 timestamp; /note that+-- this is returned as a string/.+streamEvent_eventTime :: Lens.Lens' StreamEvent (Prelude.Maybe Prelude.UTCTime)+streamEvent_eventTime = Lens.lens (\StreamEvent' {eventTime} -> eventTime) (\s@StreamEvent' {} a -> s {eventTime = a} :: StreamEvent) Prelude.. Lens.mapping Data._Time++-- | Name that identifies the stream event within a @type@.+streamEvent_name :: Lens.Lens' StreamEvent (Prelude.Maybe Prelude.Text)+streamEvent_name = Lens.lens (\StreamEvent' {name} -> name) (\s@StreamEvent' {} a -> s {name = a} :: StreamEvent)++-- | Logical group for certain events.+streamEvent_type :: Lens.Lens' StreamEvent (Prelude.Maybe Prelude.Text)+streamEvent_type = Lens.lens (\StreamEvent' {type'} -> type') (\s@StreamEvent' {} a -> s {type' = a} :: StreamEvent)++instance Data.FromJSON StreamEvent where+ parseJSON =+ Data.withObject+ "StreamEvent"+ ( \x ->+ StreamEvent'+ Prelude.<$> (x Data..:? "eventTime")+ Prelude.<*> (x Data..:? "name")+ Prelude.<*> (x Data..:? "type")+ )++instance Prelude.Hashable StreamEvent where+ hashWithSalt _salt StreamEvent' {..} =+ _salt+ `Prelude.hashWithSalt` eventTime+ `Prelude.hashWithSalt` name+ `Prelude.hashWithSalt` type'++instance Prelude.NFData StreamEvent where+ rnf StreamEvent' {..} =+ Prelude.rnf eventTime+ `Prelude.seq` Prelude.rnf name+ `Prelude.seq` Prelude.rnf type'
+ gen/Amazonka/IVS/Types/StreamFilters.hs view
@@ -0,0 +1,67 @@+{-# 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.IVS.Types.StreamFilters+-- 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.IVS.Types.StreamFilters where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IVS.Types.StreamHealth+import qualified Amazonka.Prelude as Prelude++-- | Object specifying the stream attribute on which to filter.+--+-- /See:/ 'newStreamFilters' smart constructor.+data StreamFilters = StreamFilters'+ { -- | The stream’s health.+ health :: Prelude.Maybe StreamHealth+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StreamFilters' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'health', 'streamFilters_health' - The stream’s health.+newStreamFilters ::+ StreamFilters+newStreamFilters =+ StreamFilters' {health = Prelude.Nothing}++-- | The stream’s health.+streamFilters_health :: Lens.Lens' StreamFilters (Prelude.Maybe StreamHealth)+streamFilters_health = Lens.lens (\StreamFilters' {health} -> health) (\s@StreamFilters' {} a -> s {health = a} :: StreamFilters)++instance Prelude.Hashable StreamFilters where+ hashWithSalt _salt StreamFilters' {..} =+ _salt `Prelude.hashWithSalt` health++instance Prelude.NFData StreamFilters where+ rnf StreamFilters' {..} = Prelude.rnf health++instance Data.ToJSON StreamFilters where+ toJSON StreamFilters' {..} =+ Data.object+ ( Prelude.catMaybes+ [("health" Data..=) Prelude.<$> health]+ )
+ gen/Amazonka/IVS/Types/StreamHealth.hs view
@@ -0,0 +1,76 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.IVS.Types.StreamHealth+-- 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.IVS.Types.StreamHealth+ ( StreamHealth+ ( ..,+ StreamHealth_HEALTHY,+ StreamHealth_STARVING,+ StreamHealth_UNKNOWN+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype StreamHealth = StreamHealth'+ { fromStreamHealth ::+ 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 StreamHealth_HEALTHY :: StreamHealth+pattern StreamHealth_HEALTHY = StreamHealth' "HEALTHY"++pattern StreamHealth_STARVING :: StreamHealth+pattern StreamHealth_STARVING = StreamHealth' "STARVING"++pattern StreamHealth_UNKNOWN :: StreamHealth+pattern StreamHealth_UNKNOWN = StreamHealth' "UNKNOWN"++{-# COMPLETE+ StreamHealth_HEALTHY,+ StreamHealth_STARVING,+ StreamHealth_UNKNOWN,+ StreamHealth'+ #-}
+ gen/Amazonka/IVS/Types/StreamKey.hs view
@@ -0,0 +1,120 @@+{-# 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.IVS.Types.StreamKey+-- 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.IVS.Types.StreamKey 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++-- | Object specifying a stream key.+--+-- /See:/ 'newStreamKey' smart constructor.+data StreamKey = StreamKey'+ { -- | Stream-key ARN.+ arn :: Prelude.Maybe Prelude.Text,+ -- | Channel ARN for the stream.+ channelArn :: Prelude.Maybe Prelude.Text,+ -- | Array of 1-50 maps, each of the form @string:string (key:value)@. See+ -- <https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html Tagging Amazon Web Services Resources>+ -- for more information, including restrictions that apply to tags and+ -- \"Tag naming limits and requirements\"; Amazon IVS has no+ -- service-specific constraints beyond what is documented there.+ tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | Stream-key value.+ value :: Prelude.Maybe (Data.Sensitive Prelude.Text)+ }+ deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StreamKey' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'streamKey_arn' - Stream-key ARN.+--+-- 'channelArn', 'streamKey_channelArn' - Channel ARN for the stream.+--+-- 'tags', 'streamKey_tags' - Array of 1-50 maps, each of the form @string:string (key:value)@. See+-- <https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html Tagging Amazon Web Services Resources>+-- for more information, including restrictions that apply to tags and+-- \"Tag naming limits and requirements\"; Amazon IVS has no+-- service-specific constraints beyond what is documented there.+--+-- 'value', 'streamKey_value' - Stream-key value.+newStreamKey ::+ StreamKey+newStreamKey =+ StreamKey'+ { arn = Prelude.Nothing,+ channelArn = Prelude.Nothing,+ tags = Prelude.Nothing,+ value = Prelude.Nothing+ }++-- | Stream-key ARN.+streamKey_arn :: Lens.Lens' StreamKey (Prelude.Maybe Prelude.Text)+streamKey_arn = Lens.lens (\StreamKey' {arn} -> arn) (\s@StreamKey' {} a -> s {arn = a} :: StreamKey)++-- | Channel ARN for the stream.+streamKey_channelArn :: Lens.Lens' StreamKey (Prelude.Maybe Prelude.Text)+streamKey_channelArn = Lens.lens (\StreamKey' {channelArn} -> channelArn) (\s@StreamKey' {} a -> s {channelArn = a} :: StreamKey)++-- | Array of 1-50 maps, each of the form @string:string (key:value)@. See+-- <https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html Tagging Amazon Web Services Resources>+-- for more information, including restrictions that apply to tags and+-- \"Tag naming limits and requirements\"; Amazon IVS has no+-- service-specific constraints beyond what is documented there.+streamKey_tags :: Lens.Lens' StreamKey (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+streamKey_tags = Lens.lens (\StreamKey' {tags} -> tags) (\s@StreamKey' {} a -> s {tags = a} :: StreamKey) Prelude.. Lens.mapping Lens.coerced++-- | Stream-key value.+streamKey_value :: Lens.Lens' StreamKey (Prelude.Maybe Prelude.Text)+streamKey_value = Lens.lens (\StreamKey' {value} -> value) (\s@StreamKey' {} a -> s {value = a} :: StreamKey) Prelude.. Lens.mapping Data._Sensitive++instance Data.FromJSON StreamKey where+ parseJSON =+ Data.withObject+ "StreamKey"+ ( \x ->+ StreamKey'+ Prelude.<$> (x Data..:? "arn")+ Prelude.<*> (x Data..:? "channelArn")+ Prelude.<*> (x Data..:? "tags" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "value")+ )++instance Prelude.Hashable StreamKey where+ hashWithSalt _salt StreamKey' {..} =+ _salt+ `Prelude.hashWithSalt` arn+ `Prelude.hashWithSalt` channelArn+ `Prelude.hashWithSalt` tags+ `Prelude.hashWithSalt` value++instance Prelude.NFData StreamKey where+ rnf StreamKey' {..} =+ Prelude.rnf arn+ `Prelude.seq` Prelude.rnf channelArn+ `Prelude.seq` Prelude.rnf tags+ `Prelude.seq` Prelude.rnf value
+ gen/Amazonka/IVS/Types/StreamKeySummary.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.IVS.Types.StreamKeySummary+-- 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.IVS.Types.StreamKeySummary 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++-- | Summary information about a stream key.+--+-- /See:/ 'newStreamKeySummary' smart constructor.+data StreamKeySummary = StreamKeySummary'+ { -- | Stream-key ARN.+ arn :: Prelude.Maybe Prelude.Text,+ -- | Channel ARN for the stream.+ channelArn :: Prelude.Maybe Prelude.Text,+ -- | Array of 1-50 maps, each of the form @string:string (key:value)@. See+ -- <https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html Tagging Amazon Web Services Resources>+ -- for more information, including restrictions that apply to tags and+ -- \"Tag naming limits and requirements\"; Amazon IVS has no+ -- service-specific constraints beyond what is documented there.+ tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text)+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StreamKeySummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'streamKeySummary_arn' - Stream-key ARN.+--+-- 'channelArn', 'streamKeySummary_channelArn' - Channel ARN for the stream.+--+-- 'tags', 'streamKeySummary_tags' - Array of 1-50 maps, each of the form @string:string (key:value)@. See+-- <https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html Tagging Amazon Web Services Resources>+-- for more information, including restrictions that apply to tags and+-- \"Tag naming limits and requirements\"; Amazon IVS has no+-- service-specific constraints beyond what is documented there.+newStreamKeySummary ::+ StreamKeySummary+newStreamKeySummary =+ StreamKeySummary'+ { arn = Prelude.Nothing,+ channelArn = Prelude.Nothing,+ tags = Prelude.Nothing+ }++-- | Stream-key ARN.+streamKeySummary_arn :: Lens.Lens' StreamKeySummary (Prelude.Maybe Prelude.Text)+streamKeySummary_arn = Lens.lens (\StreamKeySummary' {arn} -> arn) (\s@StreamKeySummary' {} a -> s {arn = a} :: StreamKeySummary)++-- | Channel ARN for the stream.+streamKeySummary_channelArn :: Lens.Lens' StreamKeySummary (Prelude.Maybe Prelude.Text)+streamKeySummary_channelArn = Lens.lens (\StreamKeySummary' {channelArn} -> channelArn) (\s@StreamKeySummary' {} a -> s {channelArn = a} :: StreamKeySummary)++-- | Array of 1-50 maps, each of the form @string:string (key:value)@. See+-- <https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html Tagging Amazon Web Services Resources>+-- for more information, including restrictions that apply to tags and+-- \"Tag naming limits and requirements\"; Amazon IVS has no+-- service-specific constraints beyond what is documented there.+streamKeySummary_tags :: Lens.Lens' StreamKeySummary (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+streamKeySummary_tags = Lens.lens (\StreamKeySummary' {tags} -> tags) (\s@StreamKeySummary' {} a -> s {tags = a} :: StreamKeySummary) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON StreamKeySummary where+ parseJSON =+ Data.withObject+ "StreamKeySummary"+ ( \x ->+ StreamKeySummary'+ Prelude.<$> (x Data..:? "arn")+ Prelude.<*> (x Data..:? "channelArn")+ Prelude.<*> (x Data..:? "tags" Data..!= Prelude.mempty)+ )++instance Prelude.Hashable StreamKeySummary where+ hashWithSalt _salt StreamKeySummary' {..} =+ _salt+ `Prelude.hashWithSalt` arn+ `Prelude.hashWithSalt` channelArn+ `Prelude.hashWithSalt` tags++instance Prelude.NFData StreamKeySummary where+ rnf StreamKeySummary' {..} =+ Prelude.rnf arn+ `Prelude.seq` Prelude.rnf channelArn+ `Prelude.seq` Prelude.rnf tags
+ gen/Amazonka/IVS/Types/StreamSession.hs view
@@ -0,0 +1,171 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.IVS.Types.StreamSession+-- 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.IVS.Types.StreamSession where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IVS.Types.Channel+import Amazonka.IVS.Types.IngestConfiguration+import Amazonka.IVS.Types.RecordingConfiguration+import Amazonka.IVS.Types.StreamEvent+import qualified Amazonka.Prelude as Prelude++-- | Object that captures the Amazon IVS configuration that the customer+-- provisioned, the ingest configurations that the broadcaster used, and+-- the most recent Amazon IVS stream events it encountered.+--+-- /See:/ 'newStreamSession' smart constructor.+data StreamSession = StreamSession'+ { -- | The properties of the channel at the time of going live.+ channel :: Prelude.Maybe Channel,+ -- | Time when the channel went offline. This is an ISO 8601 timestamp; /note+ -- that this is returned as a string/. For live streams, this is @NULL@.+ endTime :: Prelude.Maybe Data.ISO8601,+ -- | The properties of the incoming RTMP stream for the stream.+ ingestConfiguration :: Prelude.Maybe IngestConfiguration,+ -- | The properties of recording the live stream.+ recordingConfiguration :: Prelude.Maybe RecordingConfiguration,+ -- | Time when the channel went live. This is an ISO 8601 timestamp; /note+ -- that this is returned as a string/.+ startTime :: Prelude.Maybe Data.ISO8601,+ -- | Unique identifier for a live or previously live stream in the specified+ -- channel.+ streamId :: Prelude.Maybe Prelude.Text,+ -- | List of Amazon IVS events that the stream encountered. The list is+ -- sorted by most recent events and contains up to 500 events. For Amazon+ -- IVS events, see+ -- <https://docs.aws.amazon.com/ivs/latest/userguide/eventbridge.html Using Amazon EventBridge with Amazon IVS>.+ truncatedEvents :: Prelude.Maybe [StreamEvent]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StreamSession' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'channel', 'streamSession_channel' - The properties of the channel at the time of going live.+--+-- 'endTime', 'streamSession_endTime' - Time when the channel went offline. This is an ISO 8601 timestamp; /note+-- that this is returned as a string/. For live streams, this is @NULL@.+--+-- 'ingestConfiguration', 'streamSession_ingestConfiguration' - The properties of the incoming RTMP stream for the stream.+--+-- 'recordingConfiguration', 'streamSession_recordingConfiguration' - The properties of recording the live stream.+--+-- 'startTime', 'streamSession_startTime' - Time when the channel went live. This is an ISO 8601 timestamp; /note+-- that this is returned as a string/.+--+-- 'streamId', 'streamSession_streamId' - Unique identifier for a live or previously live stream in the specified+-- channel.+--+-- 'truncatedEvents', 'streamSession_truncatedEvents' - List of Amazon IVS events that the stream encountered. The list is+-- sorted by most recent events and contains up to 500 events. For Amazon+-- IVS events, see+-- <https://docs.aws.amazon.com/ivs/latest/userguide/eventbridge.html Using Amazon EventBridge with Amazon IVS>.+newStreamSession ::+ StreamSession+newStreamSession =+ StreamSession'+ { channel = Prelude.Nothing,+ endTime = Prelude.Nothing,+ ingestConfiguration = Prelude.Nothing,+ recordingConfiguration = Prelude.Nothing,+ startTime = Prelude.Nothing,+ streamId = Prelude.Nothing,+ truncatedEvents = Prelude.Nothing+ }++-- | The properties of the channel at the time of going live.+streamSession_channel :: Lens.Lens' StreamSession (Prelude.Maybe Channel)+streamSession_channel = Lens.lens (\StreamSession' {channel} -> channel) (\s@StreamSession' {} a -> s {channel = a} :: StreamSession)++-- | Time when the channel went offline. This is an ISO 8601 timestamp; /note+-- that this is returned as a string/. For live streams, this is @NULL@.+streamSession_endTime :: Lens.Lens' StreamSession (Prelude.Maybe Prelude.UTCTime)+streamSession_endTime = Lens.lens (\StreamSession' {endTime} -> endTime) (\s@StreamSession' {} a -> s {endTime = a} :: StreamSession) Prelude.. Lens.mapping Data._Time++-- | The properties of the incoming RTMP stream for the stream.+streamSession_ingestConfiguration :: Lens.Lens' StreamSession (Prelude.Maybe IngestConfiguration)+streamSession_ingestConfiguration = Lens.lens (\StreamSession' {ingestConfiguration} -> ingestConfiguration) (\s@StreamSession' {} a -> s {ingestConfiguration = a} :: StreamSession)++-- | The properties of recording the live stream.+streamSession_recordingConfiguration :: Lens.Lens' StreamSession (Prelude.Maybe RecordingConfiguration)+streamSession_recordingConfiguration = Lens.lens (\StreamSession' {recordingConfiguration} -> recordingConfiguration) (\s@StreamSession' {} a -> s {recordingConfiguration = a} :: StreamSession)++-- | Time when the channel went live. This is an ISO 8601 timestamp; /note+-- that this is returned as a string/.+streamSession_startTime :: Lens.Lens' StreamSession (Prelude.Maybe Prelude.UTCTime)+streamSession_startTime = Lens.lens (\StreamSession' {startTime} -> startTime) (\s@StreamSession' {} a -> s {startTime = a} :: StreamSession) Prelude.. Lens.mapping Data._Time++-- | Unique identifier for a live or previously live stream in the specified+-- channel.+streamSession_streamId :: Lens.Lens' StreamSession (Prelude.Maybe Prelude.Text)+streamSession_streamId = Lens.lens (\StreamSession' {streamId} -> streamId) (\s@StreamSession' {} a -> s {streamId = a} :: StreamSession)++-- | List of Amazon IVS events that the stream encountered. The list is+-- sorted by most recent events and contains up to 500 events. For Amazon+-- IVS events, see+-- <https://docs.aws.amazon.com/ivs/latest/userguide/eventbridge.html Using Amazon EventBridge with Amazon IVS>.+streamSession_truncatedEvents :: Lens.Lens' StreamSession (Prelude.Maybe [StreamEvent])+streamSession_truncatedEvents = Lens.lens (\StreamSession' {truncatedEvents} -> truncatedEvents) (\s@StreamSession' {} a -> s {truncatedEvents = a} :: StreamSession) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON StreamSession where+ parseJSON =+ Data.withObject+ "StreamSession"+ ( \x ->+ StreamSession'+ Prelude.<$> (x Data..:? "channel")+ Prelude.<*> (x Data..:? "endTime")+ Prelude.<*> (x Data..:? "ingestConfiguration")+ Prelude.<*> (x Data..:? "recordingConfiguration")+ Prelude.<*> (x Data..:? "startTime")+ Prelude.<*> (x Data..:? "streamId")+ Prelude.<*> ( x+ Data..:? "truncatedEvents"+ Data..!= Prelude.mempty+ )+ )++instance Prelude.Hashable StreamSession where+ hashWithSalt _salt StreamSession' {..} =+ _salt+ `Prelude.hashWithSalt` channel+ `Prelude.hashWithSalt` endTime+ `Prelude.hashWithSalt` ingestConfiguration+ `Prelude.hashWithSalt` recordingConfiguration+ `Prelude.hashWithSalt` startTime+ `Prelude.hashWithSalt` streamId+ `Prelude.hashWithSalt` truncatedEvents++instance Prelude.NFData StreamSession where+ rnf StreamSession' {..} =+ Prelude.rnf channel+ `Prelude.seq` Prelude.rnf endTime+ `Prelude.seq` Prelude.rnf ingestConfiguration+ `Prelude.seq` Prelude.rnf recordingConfiguration+ `Prelude.seq` Prelude.rnf startTime+ `Prelude.seq` Prelude.rnf streamId+ `Prelude.seq` Prelude.rnf truncatedEvents
+ gen/Amazonka/IVS/Types/StreamSessionSummary.hs view
@@ -0,0 +1,117 @@+{-# 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.IVS.Types.StreamSessionSummary+-- 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.IVS.Types.StreamSessionSummary 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++-- | Summary information about a stream session.+--+-- /See:/ 'newStreamSessionSummary' smart constructor.+data StreamSessionSummary = StreamSessionSummary'+ { -- | Time when the channel went offline. This is an ISO 8601 timestamp; /note+ -- that this is returned as a string/. For live streams, this is @NULL@.+ endTime :: Prelude.Maybe Data.ISO8601,+ -- | If @true@, this stream encountered a quota breach or failure.+ hasErrorEvent :: Prelude.Maybe Prelude.Bool,+ -- | Time when the channel went live. This is an ISO 8601 timestamp; /note+ -- that this is returned as a string/.+ startTime :: Prelude.Maybe Data.ISO8601,+ -- | Unique identifier for a live or previously live stream in the specified+ -- channel.+ streamId :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StreamSessionSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'endTime', 'streamSessionSummary_endTime' - Time when the channel went offline. This is an ISO 8601 timestamp; /note+-- that this is returned as a string/. For live streams, this is @NULL@.+--+-- 'hasErrorEvent', 'streamSessionSummary_hasErrorEvent' - If @true@, this stream encountered a quota breach or failure.+--+-- 'startTime', 'streamSessionSummary_startTime' - Time when the channel went live. This is an ISO 8601 timestamp; /note+-- that this is returned as a string/.+--+-- 'streamId', 'streamSessionSummary_streamId' - Unique identifier for a live or previously live stream in the specified+-- channel.+newStreamSessionSummary ::+ StreamSessionSummary+newStreamSessionSummary =+ StreamSessionSummary'+ { endTime = Prelude.Nothing,+ hasErrorEvent = Prelude.Nothing,+ startTime = Prelude.Nothing,+ streamId = Prelude.Nothing+ }++-- | Time when the channel went offline. This is an ISO 8601 timestamp; /note+-- that this is returned as a string/. For live streams, this is @NULL@.+streamSessionSummary_endTime :: Lens.Lens' StreamSessionSummary (Prelude.Maybe Prelude.UTCTime)+streamSessionSummary_endTime = Lens.lens (\StreamSessionSummary' {endTime} -> endTime) (\s@StreamSessionSummary' {} a -> s {endTime = a} :: StreamSessionSummary) Prelude.. Lens.mapping Data._Time++-- | If @true@, this stream encountered a quota breach or failure.+streamSessionSummary_hasErrorEvent :: Lens.Lens' StreamSessionSummary (Prelude.Maybe Prelude.Bool)+streamSessionSummary_hasErrorEvent = Lens.lens (\StreamSessionSummary' {hasErrorEvent} -> hasErrorEvent) (\s@StreamSessionSummary' {} a -> s {hasErrorEvent = a} :: StreamSessionSummary)++-- | Time when the channel went live. This is an ISO 8601 timestamp; /note+-- that this is returned as a string/.+streamSessionSummary_startTime :: Lens.Lens' StreamSessionSummary (Prelude.Maybe Prelude.UTCTime)+streamSessionSummary_startTime = Lens.lens (\StreamSessionSummary' {startTime} -> startTime) (\s@StreamSessionSummary' {} a -> s {startTime = a} :: StreamSessionSummary) Prelude.. Lens.mapping Data._Time++-- | Unique identifier for a live or previously live stream in the specified+-- channel.+streamSessionSummary_streamId :: Lens.Lens' StreamSessionSummary (Prelude.Maybe Prelude.Text)+streamSessionSummary_streamId = Lens.lens (\StreamSessionSummary' {streamId} -> streamId) (\s@StreamSessionSummary' {} a -> s {streamId = a} :: StreamSessionSummary)++instance Data.FromJSON StreamSessionSummary where+ parseJSON =+ Data.withObject+ "StreamSessionSummary"+ ( \x ->+ StreamSessionSummary'+ Prelude.<$> (x Data..:? "endTime")+ Prelude.<*> (x Data..:? "hasErrorEvent")+ Prelude.<*> (x Data..:? "startTime")+ Prelude.<*> (x Data..:? "streamId")+ )++instance Prelude.Hashable StreamSessionSummary where+ hashWithSalt _salt StreamSessionSummary' {..} =+ _salt+ `Prelude.hashWithSalt` endTime+ `Prelude.hashWithSalt` hasErrorEvent+ `Prelude.hashWithSalt` startTime+ `Prelude.hashWithSalt` streamId++instance Prelude.NFData StreamSessionSummary where+ rnf StreamSessionSummary' {..} =+ Prelude.rnf endTime+ `Prelude.seq` Prelude.rnf hasErrorEvent+ `Prelude.seq` Prelude.rnf startTime+ `Prelude.seq` Prelude.rnf streamId
+ gen/Amazonka/IVS/Types/StreamState.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.IVS.Types.StreamState+-- 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.IVS.Types.StreamState+ ( StreamState+ ( ..,+ StreamState_LIVE,+ StreamState_OFFLINE+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype StreamState = StreamState'+ { fromStreamState ::+ 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 StreamState_LIVE :: StreamState+pattern StreamState_LIVE = StreamState' "LIVE"++pattern StreamState_OFFLINE :: StreamState+pattern StreamState_OFFLINE = StreamState' "OFFLINE"++{-# COMPLETE+ StreamState_LIVE,+ StreamState_OFFLINE,+ StreamState'+ #-}
+ gen/Amazonka/IVS/Types/StreamSummary.hs view
@@ -0,0 +1,152 @@+{-# 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.IVS.Types.StreamSummary+-- 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.IVS.Types.StreamSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IVS.Types.StreamHealth+import Amazonka.IVS.Types.StreamState+import qualified Amazonka.Prelude as Prelude++-- | Summary information about a stream.+--+-- /See:/ 'newStreamSummary' smart constructor.+data StreamSummary = StreamSummary'+ { -- | Channel ARN for the stream.+ channelArn :: Prelude.Maybe Prelude.Text,+ -- | The stream’s health.+ health :: Prelude.Maybe StreamHealth,+ -- | Time of the stream’s start. This is an ISO 8601 timestamp; /note that+ -- this is returned as a string/.+ startTime :: Prelude.Maybe Data.ISO8601,+ -- | The stream’s state.+ state :: Prelude.Maybe StreamState,+ -- | Unique identifier for a live or previously live stream in the specified+ -- channel.+ streamId :: Prelude.Maybe Prelude.Text,+ -- | A count of concurrent views of the stream. Typically, a new view appears+ -- in @viewerCount@ within 15 seconds of when video playback starts and a+ -- view is removed from @viewerCount@ within 1 minute of when video+ -- playback ends. A value of -1 indicates that the request timed out; in+ -- this case, retry.+ viewerCount :: Prelude.Maybe Prelude.Integer+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StreamSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'channelArn', 'streamSummary_channelArn' - Channel ARN for the stream.+--+-- 'health', 'streamSummary_health' - The stream’s health.+--+-- 'startTime', 'streamSummary_startTime' - Time of the stream’s start. This is an ISO 8601 timestamp; /note that+-- this is returned as a string/.+--+-- 'state', 'streamSummary_state' - The stream’s state.+--+-- 'streamId', 'streamSummary_streamId' - Unique identifier for a live or previously live stream in the specified+-- channel.+--+-- 'viewerCount', 'streamSummary_viewerCount' - A count of concurrent views of the stream. Typically, a new view appears+-- in @viewerCount@ within 15 seconds of when video playback starts and a+-- view is removed from @viewerCount@ within 1 minute of when video+-- playback ends. A value of -1 indicates that the request timed out; in+-- this case, retry.+newStreamSummary ::+ StreamSummary+newStreamSummary =+ StreamSummary'+ { channelArn = Prelude.Nothing,+ health = Prelude.Nothing,+ startTime = Prelude.Nothing,+ state = Prelude.Nothing,+ streamId = Prelude.Nothing,+ viewerCount = Prelude.Nothing+ }++-- | Channel ARN for the stream.+streamSummary_channelArn :: Lens.Lens' StreamSummary (Prelude.Maybe Prelude.Text)+streamSummary_channelArn = Lens.lens (\StreamSummary' {channelArn} -> channelArn) (\s@StreamSummary' {} a -> s {channelArn = a} :: StreamSummary)++-- | The stream’s health.+streamSummary_health :: Lens.Lens' StreamSummary (Prelude.Maybe StreamHealth)+streamSummary_health = Lens.lens (\StreamSummary' {health} -> health) (\s@StreamSummary' {} a -> s {health = a} :: StreamSummary)++-- | Time of the stream’s start. This is an ISO 8601 timestamp; /note that+-- this is returned as a string/.+streamSummary_startTime :: Lens.Lens' StreamSummary (Prelude.Maybe Prelude.UTCTime)+streamSummary_startTime = Lens.lens (\StreamSummary' {startTime} -> startTime) (\s@StreamSummary' {} a -> s {startTime = a} :: StreamSummary) Prelude.. Lens.mapping Data._Time++-- | The stream’s state.+streamSummary_state :: Lens.Lens' StreamSummary (Prelude.Maybe StreamState)+streamSummary_state = Lens.lens (\StreamSummary' {state} -> state) (\s@StreamSummary' {} a -> s {state = a} :: StreamSummary)++-- | Unique identifier for a live or previously live stream in the specified+-- channel.+streamSummary_streamId :: Lens.Lens' StreamSummary (Prelude.Maybe Prelude.Text)+streamSummary_streamId = Lens.lens (\StreamSummary' {streamId} -> streamId) (\s@StreamSummary' {} a -> s {streamId = a} :: StreamSummary)++-- | A count of concurrent views of the stream. Typically, a new view appears+-- in @viewerCount@ within 15 seconds of when video playback starts and a+-- view is removed from @viewerCount@ within 1 minute of when video+-- playback ends. A value of -1 indicates that the request timed out; in+-- this case, retry.+streamSummary_viewerCount :: Lens.Lens' StreamSummary (Prelude.Maybe Prelude.Integer)+streamSummary_viewerCount = Lens.lens (\StreamSummary' {viewerCount} -> viewerCount) (\s@StreamSummary' {} a -> s {viewerCount = a} :: StreamSummary)++instance Data.FromJSON StreamSummary where+ parseJSON =+ Data.withObject+ "StreamSummary"+ ( \x ->+ StreamSummary'+ Prelude.<$> (x Data..:? "channelArn")+ Prelude.<*> (x Data..:? "health")+ Prelude.<*> (x Data..:? "startTime")+ Prelude.<*> (x Data..:? "state")+ Prelude.<*> (x Data..:? "streamId")+ Prelude.<*> (x Data..:? "viewerCount")+ )++instance Prelude.Hashable StreamSummary where+ hashWithSalt _salt StreamSummary' {..} =+ _salt+ `Prelude.hashWithSalt` channelArn+ `Prelude.hashWithSalt` health+ `Prelude.hashWithSalt` startTime+ `Prelude.hashWithSalt` state+ `Prelude.hashWithSalt` streamId+ `Prelude.hashWithSalt` viewerCount++instance Prelude.NFData StreamSummary where+ rnf StreamSummary' {..} =+ Prelude.rnf channelArn+ `Prelude.seq` Prelude.rnf health+ `Prelude.seq` Prelude.rnf startTime+ `Prelude.seq` Prelude.rnf state+ `Prelude.seq` Prelude.rnf streamId+ `Prelude.seq` Prelude.rnf viewerCount
+ gen/Amazonka/IVS/Types/ThumbnailConfiguration.hs view
@@ -0,0 +1,129 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.IVS.Types.ThumbnailConfiguration+-- 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.IVS.Types.ThumbnailConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IVS.Types.RecordingMode+import qualified Amazonka.Prelude as Prelude++-- | An object representing a configuration of thumbnails for recorded video.+--+-- /See:/ 'newThumbnailConfiguration' smart constructor.+data ThumbnailConfiguration = ThumbnailConfiguration'+ { -- | Thumbnail recording mode. Default: @INTERVAL@.+ recordingMode :: Prelude.Maybe RecordingMode,+ -- | The targeted thumbnail-generation interval in seconds. This is+ -- configurable (and required) only if @recordingMode@ is @INTERVAL@.+ -- Default: 60.+ --+ -- __Important:__ Setting a value for @targetIntervalSeconds@ does not+ -- guarantee that thumbnails are generated at the specified interval. For+ -- thumbnails to be generated at the @targetIntervalSeconds@ interval, the+ -- @IDR\/Keyframe@ value for the input video must be less than the+ -- @targetIntervalSeconds@ value. See+ -- <https://docs.aws.amazon.com/ivs/latest/userguide/streaming-config.html Amazon IVS Streaming Configuration>+ -- for information on setting @IDR\/Keyframe@ to the recommended value in+ -- video-encoder settings.+ targetIntervalSeconds :: Prelude.Maybe Prelude.Natural+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ThumbnailConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'recordingMode', 'thumbnailConfiguration_recordingMode' - Thumbnail recording mode. Default: @INTERVAL@.+--+-- 'targetIntervalSeconds', 'thumbnailConfiguration_targetIntervalSeconds' - The targeted thumbnail-generation interval in seconds. This is+-- configurable (and required) only if @recordingMode@ is @INTERVAL@.+-- Default: 60.+--+-- __Important:__ Setting a value for @targetIntervalSeconds@ does not+-- guarantee that thumbnails are generated at the specified interval. For+-- thumbnails to be generated at the @targetIntervalSeconds@ interval, the+-- @IDR\/Keyframe@ value for the input video must be less than the+-- @targetIntervalSeconds@ value. See+-- <https://docs.aws.amazon.com/ivs/latest/userguide/streaming-config.html Amazon IVS Streaming Configuration>+-- for information on setting @IDR\/Keyframe@ to the recommended value in+-- video-encoder settings.+newThumbnailConfiguration ::+ ThumbnailConfiguration+newThumbnailConfiguration =+ ThumbnailConfiguration'+ { recordingMode =+ Prelude.Nothing,+ targetIntervalSeconds = Prelude.Nothing+ }++-- | Thumbnail recording mode. Default: @INTERVAL@.+thumbnailConfiguration_recordingMode :: Lens.Lens' ThumbnailConfiguration (Prelude.Maybe RecordingMode)+thumbnailConfiguration_recordingMode = Lens.lens (\ThumbnailConfiguration' {recordingMode} -> recordingMode) (\s@ThumbnailConfiguration' {} a -> s {recordingMode = a} :: ThumbnailConfiguration)++-- | The targeted thumbnail-generation interval in seconds. This is+-- configurable (and required) only if @recordingMode@ is @INTERVAL@.+-- Default: 60.+--+-- __Important:__ Setting a value for @targetIntervalSeconds@ does not+-- guarantee that thumbnails are generated at the specified interval. For+-- thumbnails to be generated at the @targetIntervalSeconds@ interval, the+-- @IDR\/Keyframe@ value for the input video must be less than the+-- @targetIntervalSeconds@ value. See+-- <https://docs.aws.amazon.com/ivs/latest/userguide/streaming-config.html Amazon IVS Streaming Configuration>+-- for information on setting @IDR\/Keyframe@ to the recommended value in+-- video-encoder settings.+thumbnailConfiguration_targetIntervalSeconds :: Lens.Lens' ThumbnailConfiguration (Prelude.Maybe Prelude.Natural)+thumbnailConfiguration_targetIntervalSeconds = Lens.lens (\ThumbnailConfiguration' {targetIntervalSeconds} -> targetIntervalSeconds) (\s@ThumbnailConfiguration' {} a -> s {targetIntervalSeconds = a} :: ThumbnailConfiguration)++instance Data.FromJSON ThumbnailConfiguration where+ parseJSON =+ Data.withObject+ "ThumbnailConfiguration"+ ( \x ->+ ThumbnailConfiguration'+ Prelude.<$> (x Data..:? "recordingMode")+ Prelude.<*> (x Data..:? "targetIntervalSeconds")+ )++instance Prelude.Hashable ThumbnailConfiguration where+ hashWithSalt _salt ThumbnailConfiguration' {..} =+ _salt+ `Prelude.hashWithSalt` recordingMode+ `Prelude.hashWithSalt` targetIntervalSeconds++instance Prelude.NFData ThumbnailConfiguration where+ rnf ThumbnailConfiguration' {..} =+ Prelude.rnf recordingMode+ `Prelude.seq` Prelude.rnf targetIntervalSeconds++instance Data.ToJSON ThumbnailConfiguration where+ toJSON ThumbnailConfiguration' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("recordingMode" Data..=) Prelude.<$> recordingMode,+ ("targetIntervalSeconds" Data..=)+ Prelude.<$> targetIntervalSeconds+ ]+ )
+ gen/Amazonka/IVS/Types/VideoConfiguration.hs view
@@ -0,0 +1,170 @@+{-# 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.IVS.Types.VideoConfiguration+-- 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.IVS.Types.VideoConfiguration 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++-- | Object specifying a stream’s video configuration, as set up by the+-- broadcaster (usually in an encoder). This is part of the+-- IngestConfiguration object and used for monitoring stream health.+--+-- /See:/ 'newVideoConfiguration' smart constructor.+data VideoConfiguration = VideoConfiguration'+ { -- | Indicates the degree of required decoder performance for a profile.+ -- Normally this is set automatically by the encoder. For details, see the+ -- H.264 specification.+ avcLevel :: Prelude.Maybe Prelude.Text,+ -- | Indicates to the decoder the requirements for decoding the stream. For+ -- definitions of the valid values, see the H.264 specification.+ avcProfile :: Prelude.Maybe Prelude.Text,+ -- | Codec used for the video encoding.+ codec :: Prelude.Maybe Prelude.Text,+ -- | Software or hardware used to encode the video.+ encoder :: Prelude.Maybe Prelude.Text,+ -- | The expected ingest bitrate (bits per second). This is configured in the+ -- encoder.+ targetBitrate :: Prelude.Maybe Prelude.Integer,+ -- | The expected ingest framerate. This is configured in the encoder.+ targetFramerate :: Prelude.Maybe Prelude.Integer,+ -- | Video-resolution height in pixels.+ videoHeight :: Prelude.Maybe Prelude.Integer,+ -- | Video-resolution width in pixels.+ videoWidth :: Prelude.Maybe Prelude.Integer+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VideoConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'avcLevel', 'videoConfiguration_avcLevel' - Indicates the degree of required decoder performance for a profile.+-- Normally this is set automatically by the encoder. For details, see the+-- H.264 specification.+--+-- 'avcProfile', 'videoConfiguration_avcProfile' - Indicates to the decoder the requirements for decoding the stream. For+-- definitions of the valid values, see the H.264 specification.+--+-- 'codec', 'videoConfiguration_codec' - Codec used for the video encoding.+--+-- 'encoder', 'videoConfiguration_encoder' - Software or hardware used to encode the video.+--+-- 'targetBitrate', 'videoConfiguration_targetBitrate' - The expected ingest bitrate (bits per second). This is configured in the+-- encoder.+--+-- 'targetFramerate', 'videoConfiguration_targetFramerate' - The expected ingest framerate. This is configured in the encoder.+--+-- 'videoHeight', 'videoConfiguration_videoHeight' - Video-resolution height in pixels.+--+-- 'videoWidth', 'videoConfiguration_videoWidth' - Video-resolution width in pixels.+newVideoConfiguration ::+ VideoConfiguration+newVideoConfiguration =+ VideoConfiguration'+ { avcLevel = Prelude.Nothing,+ avcProfile = Prelude.Nothing,+ codec = Prelude.Nothing,+ encoder = Prelude.Nothing,+ targetBitrate = Prelude.Nothing,+ targetFramerate = Prelude.Nothing,+ videoHeight = Prelude.Nothing,+ videoWidth = Prelude.Nothing+ }++-- | Indicates the degree of required decoder performance for a profile.+-- Normally this is set automatically by the encoder. For details, see the+-- H.264 specification.+videoConfiguration_avcLevel :: Lens.Lens' VideoConfiguration (Prelude.Maybe Prelude.Text)+videoConfiguration_avcLevel = Lens.lens (\VideoConfiguration' {avcLevel} -> avcLevel) (\s@VideoConfiguration' {} a -> s {avcLevel = a} :: VideoConfiguration)++-- | Indicates to the decoder the requirements for decoding the stream. For+-- definitions of the valid values, see the H.264 specification.+videoConfiguration_avcProfile :: Lens.Lens' VideoConfiguration (Prelude.Maybe Prelude.Text)+videoConfiguration_avcProfile = Lens.lens (\VideoConfiguration' {avcProfile} -> avcProfile) (\s@VideoConfiguration' {} a -> s {avcProfile = a} :: VideoConfiguration)++-- | Codec used for the video encoding.+videoConfiguration_codec :: Lens.Lens' VideoConfiguration (Prelude.Maybe Prelude.Text)+videoConfiguration_codec = Lens.lens (\VideoConfiguration' {codec} -> codec) (\s@VideoConfiguration' {} a -> s {codec = a} :: VideoConfiguration)++-- | Software or hardware used to encode the video.+videoConfiguration_encoder :: Lens.Lens' VideoConfiguration (Prelude.Maybe Prelude.Text)+videoConfiguration_encoder = Lens.lens (\VideoConfiguration' {encoder} -> encoder) (\s@VideoConfiguration' {} a -> s {encoder = a} :: VideoConfiguration)++-- | The expected ingest bitrate (bits per second). This is configured in the+-- encoder.+videoConfiguration_targetBitrate :: Lens.Lens' VideoConfiguration (Prelude.Maybe Prelude.Integer)+videoConfiguration_targetBitrate = Lens.lens (\VideoConfiguration' {targetBitrate} -> targetBitrate) (\s@VideoConfiguration' {} a -> s {targetBitrate = a} :: VideoConfiguration)++-- | The expected ingest framerate. This is configured in the encoder.+videoConfiguration_targetFramerate :: Lens.Lens' VideoConfiguration (Prelude.Maybe Prelude.Integer)+videoConfiguration_targetFramerate = Lens.lens (\VideoConfiguration' {targetFramerate} -> targetFramerate) (\s@VideoConfiguration' {} a -> s {targetFramerate = a} :: VideoConfiguration)++-- | Video-resolution height in pixels.+videoConfiguration_videoHeight :: Lens.Lens' VideoConfiguration (Prelude.Maybe Prelude.Integer)+videoConfiguration_videoHeight = Lens.lens (\VideoConfiguration' {videoHeight} -> videoHeight) (\s@VideoConfiguration' {} a -> s {videoHeight = a} :: VideoConfiguration)++-- | Video-resolution width in pixels.+videoConfiguration_videoWidth :: Lens.Lens' VideoConfiguration (Prelude.Maybe Prelude.Integer)+videoConfiguration_videoWidth = Lens.lens (\VideoConfiguration' {videoWidth} -> videoWidth) (\s@VideoConfiguration' {} a -> s {videoWidth = a} :: VideoConfiguration)++instance Data.FromJSON VideoConfiguration where+ parseJSON =+ Data.withObject+ "VideoConfiguration"+ ( \x ->+ VideoConfiguration'+ Prelude.<$> (x Data..:? "avcLevel")+ Prelude.<*> (x Data..:? "avcProfile")+ Prelude.<*> (x Data..:? "codec")+ Prelude.<*> (x Data..:? "encoder")+ Prelude.<*> (x Data..:? "targetBitrate")+ Prelude.<*> (x Data..:? "targetFramerate")+ Prelude.<*> (x Data..:? "videoHeight")+ Prelude.<*> (x Data..:? "videoWidth")+ )++instance Prelude.Hashable VideoConfiguration where+ hashWithSalt _salt VideoConfiguration' {..} =+ _salt+ `Prelude.hashWithSalt` avcLevel+ `Prelude.hashWithSalt` avcProfile+ `Prelude.hashWithSalt` codec+ `Prelude.hashWithSalt` encoder+ `Prelude.hashWithSalt` targetBitrate+ `Prelude.hashWithSalt` targetFramerate+ `Prelude.hashWithSalt` videoHeight+ `Prelude.hashWithSalt` videoWidth++instance Prelude.NFData VideoConfiguration where+ rnf VideoConfiguration' {..} =+ Prelude.rnf avcLevel+ `Prelude.seq` Prelude.rnf avcProfile+ `Prelude.seq` Prelude.rnf codec+ `Prelude.seq` Prelude.rnf encoder+ `Prelude.seq` Prelude.rnf targetBitrate+ `Prelude.seq` Prelude.rnf targetFramerate+ `Prelude.seq` Prelude.rnf videoHeight+ `Prelude.seq` Prelude.rnf videoWidth
+ gen/Amazonka/IVS/UntagResource.hs view
@@ -0,0 +1,176 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.IVS.UntagResource+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Removes tags from the resource with the specified ARN.+module Amazonka.IVS.UntagResource+ ( -- * Creating a Request+ UntagResource (..),+ newUntagResource,++ -- * Request Lenses+ untagResource_resourceArn,+ untagResource_tagKeys,++ -- * Destructuring the Response+ UntagResourceResponse (..),+ newUntagResourceResponse,++ -- * Response Lenses+ untagResourceResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IVS.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUntagResource' smart constructor.+data UntagResource = UntagResource'+ { -- | ARN of the resource for which tags are to be removed. The ARN must be+ -- URL-encoded.+ resourceArn :: Prelude.Text,+ -- | Array of tags to be removed. See+ -- <https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html Tagging Amazon Web Services Resources>+ -- for more information, including restrictions that apply to tags and+ -- \"Tag naming limits and requirements\"; Amazon IVS has no+ -- service-specific constraints beyond what is documented there.+ 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' - ARN of the resource for which tags are to be removed. The ARN must be+-- URL-encoded.+--+-- 'tagKeys', 'untagResource_tagKeys' - Array of tags to be removed. See+-- <https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html Tagging Amazon Web Services Resources>+-- for more information, including restrictions that apply to tags and+-- \"Tag naming limits and requirements\"; Amazon IVS has no+-- service-specific constraints beyond what is documented there.+newUntagResource ::+ -- | 'resourceArn'+ Prelude.Text ->+ UntagResource+newUntagResource pResourceArn_ =+ UntagResource'+ { resourceArn = pResourceArn_,+ tagKeys = Prelude.mempty+ }++-- | ARN of the resource for which tags are to be removed. The ARN must be+-- URL-encoded.+untagResource_resourceArn :: Lens.Lens' UntagResource Prelude.Text+untagResource_resourceArn = Lens.lens (\UntagResource' {resourceArn} -> resourceArn) (\s@UntagResource' {} a -> s {resourceArn = a} :: UntagResource)++-- | Array of tags to be removed. See+-- <https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html Tagging Amazon Web Services Resources>+-- for more information, including restrictions that apply to tags and+-- \"Tag naming limits and requirements\"; Amazon IVS has no+-- service-specific constraints beyond what is documented there.+untagResource_tagKeys :: Lens.Lens' UntagResource [Prelude.Text]+untagResource_tagKeys = Lens.lens (\UntagResource' {tagKeys} -> tagKeys) (\s@UntagResource' {} a -> s {tagKeys = a} :: UntagResource) Prelude.. Lens.coerced++instance Core.AWSRequest UntagResource where+ type+ AWSResponse UntagResource =+ UntagResourceResponse+ request overrides =+ Request.delete (overrides defaultService)+ response =+ Response.receiveEmpty+ ( \s h x ->+ UntagResourceResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable UntagResource where+ hashWithSalt _salt UntagResource' {..} =+ _salt+ `Prelude.hashWithSalt` resourceArn+ `Prelude.hashWithSalt` tagKeys++instance Prelude.NFData UntagResource where+ rnf UntagResource' {..} =+ Prelude.rnf resourceArn+ `Prelude.seq` Prelude.rnf tagKeys++instance Data.ToHeaders UntagResource where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath UntagResource where+ toPath UntagResource' {..} =+ Prelude.mconcat ["/tags/", Data.toBS resourceArn]++instance Data.ToQuery UntagResource where+ toQuery UntagResource' {..} =+ Prelude.mconcat+ ["tagKeys" Data.=: Data.toQueryList "member" tagKeys]++-- | /See:/ 'newUntagResourceResponse' smart constructor.+data UntagResourceResponse = UntagResourceResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UntagResourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'untagResourceResponse_httpStatus' - The response's http status code.+newUntagResourceResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ UntagResourceResponse+newUntagResourceResponse pHttpStatus_ =+ UntagResourceResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+untagResourceResponse_httpStatus :: Lens.Lens' UntagResourceResponse Prelude.Int+untagResourceResponse_httpStatus = Lens.lens (\UntagResourceResponse' {httpStatus} -> httpStatus) (\s@UntagResourceResponse' {} a -> s {httpStatus = a} :: UntagResourceResponse)++instance Prelude.NFData UntagResourceResponse where+ rnf UntagResourceResponse' {..} =+ Prelude.rnf httpStatus
+ gen/Amazonka/IVS/UpdateChannel.hs view
@@ -0,0 +1,298 @@+{-# 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.IVS.UpdateChannel+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates a channel\'s configuration. This does not affect an ongoing+-- stream of this channel. You must stop and restart the stream for the+-- changes to take effect.+module Amazonka.IVS.UpdateChannel+ ( -- * Creating a Request+ UpdateChannel (..),+ newUpdateChannel,++ -- * Request Lenses+ updateChannel_authorized,+ updateChannel_latencyMode,+ updateChannel_name,+ updateChannel_recordingConfigurationArn,+ updateChannel_type,+ updateChannel_arn,++ -- * Destructuring the Response+ UpdateChannelResponse (..),+ newUpdateChannelResponse,++ -- * Response Lenses+ updateChannelResponse_channel,+ updateChannelResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IVS.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateChannel' smart constructor.+data UpdateChannel = UpdateChannel'+ { -- | Whether the channel is private (enabled for playback authorization).+ authorized :: Prelude.Maybe Prelude.Bool,+ -- | Channel latency mode. Use @NORMAL@ to broadcast and deliver live video+ -- up to Full HD. Use @LOW@ for near-real-time interaction with viewers.+ -- (Note: In the Amazon IVS console, @LOW@ and @NORMAL@ correspond to+ -- Ultra-low and Standard, respectively.)+ latencyMode :: Prelude.Maybe ChannelLatencyMode,+ -- | Channel name.+ name :: Prelude.Maybe Prelude.Text,+ -- | Recording-configuration ARN. If this is set to an empty string,+ -- recording is disabled. A value other than an empty string indicates that+ -- recording is enabled+ recordingConfigurationArn :: Prelude.Maybe Prelude.Text,+ -- | Channel type, which determines the allowable resolution and bitrate. /If+ -- you exceed the allowable resolution or bitrate, the stream probably will+ -- disconnect immediately/. Valid values:+ --+ -- - @STANDARD@: Video is transcoded: multiple qualities are generated+ -- from the original input, to automatically give viewers the best+ -- experience for their devices and network conditions. Transcoding+ -- allows higher playback quality across a range of download speeds.+ -- Resolution can be up to 1080p and bitrate can be up to 8.5 Mbps.+ -- Audio is transcoded only for renditions 360p and below; above that,+ -- audio is passed through. This is the default.+ --+ -- - @BASIC@: Video is transmuxed: Amazon IVS delivers the original input+ -- to viewers. The viewer’s video-quality choice is limited to the+ -- original input. Resolution can be up to 1080p and bitrate can be up+ -- to 1.5 Mbps for 480p and up to 3.5 Mbps for resolutions between 480p+ -- and 1080p.+ type' :: Prelude.Maybe ChannelType,+ -- | ARN of the channel to be updated.+ arn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateChannel' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'authorized', 'updateChannel_authorized' - Whether the channel is private (enabled for playback authorization).+--+-- 'latencyMode', 'updateChannel_latencyMode' - Channel latency mode. Use @NORMAL@ to broadcast and deliver live video+-- up to Full HD. Use @LOW@ for near-real-time interaction with viewers.+-- (Note: In the Amazon IVS console, @LOW@ and @NORMAL@ correspond to+-- Ultra-low and Standard, respectively.)+--+-- 'name', 'updateChannel_name' - Channel name.+--+-- 'recordingConfigurationArn', 'updateChannel_recordingConfigurationArn' - Recording-configuration ARN. If this is set to an empty string,+-- recording is disabled. A value other than an empty string indicates that+-- recording is enabled+--+-- 'type'', 'updateChannel_type' - Channel type, which determines the allowable resolution and bitrate. /If+-- you exceed the allowable resolution or bitrate, the stream probably will+-- disconnect immediately/. Valid values:+--+-- - @STANDARD@: Video is transcoded: multiple qualities are generated+-- from the original input, to automatically give viewers the best+-- experience for their devices and network conditions. Transcoding+-- allows higher playback quality across a range of download speeds.+-- Resolution can be up to 1080p and bitrate can be up to 8.5 Mbps.+-- Audio is transcoded only for renditions 360p and below; above that,+-- audio is passed through. This is the default.+--+-- - @BASIC@: Video is transmuxed: Amazon IVS delivers the original input+-- to viewers. The viewer’s video-quality choice is limited to the+-- original input. Resolution can be up to 1080p and bitrate can be up+-- to 1.5 Mbps for 480p and up to 3.5 Mbps for resolutions between 480p+-- and 1080p.+--+-- 'arn', 'updateChannel_arn' - ARN of the channel to be updated.+newUpdateChannel ::+ -- | 'arn'+ Prelude.Text ->+ UpdateChannel+newUpdateChannel pArn_ =+ UpdateChannel'+ { authorized = Prelude.Nothing,+ latencyMode = Prelude.Nothing,+ name = Prelude.Nothing,+ recordingConfigurationArn = Prelude.Nothing,+ type' = Prelude.Nothing,+ arn = pArn_+ }++-- | Whether the channel is private (enabled for playback authorization).+updateChannel_authorized :: Lens.Lens' UpdateChannel (Prelude.Maybe Prelude.Bool)+updateChannel_authorized = Lens.lens (\UpdateChannel' {authorized} -> authorized) (\s@UpdateChannel' {} a -> s {authorized = a} :: UpdateChannel)++-- | Channel latency mode. Use @NORMAL@ to broadcast and deliver live video+-- up to Full HD. Use @LOW@ for near-real-time interaction with viewers.+-- (Note: In the Amazon IVS console, @LOW@ and @NORMAL@ correspond to+-- Ultra-low and Standard, respectively.)+updateChannel_latencyMode :: Lens.Lens' UpdateChannel (Prelude.Maybe ChannelLatencyMode)+updateChannel_latencyMode = Lens.lens (\UpdateChannel' {latencyMode} -> latencyMode) (\s@UpdateChannel' {} a -> s {latencyMode = a} :: UpdateChannel)++-- | Channel name.+updateChannel_name :: Lens.Lens' UpdateChannel (Prelude.Maybe Prelude.Text)+updateChannel_name = Lens.lens (\UpdateChannel' {name} -> name) (\s@UpdateChannel' {} a -> s {name = a} :: UpdateChannel)++-- | Recording-configuration ARN. If this is set to an empty string,+-- recording is disabled. A value other than an empty string indicates that+-- recording is enabled+updateChannel_recordingConfigurationArn :: Lens.Lens' UpdateChannel (Prelude.Maybe Prelude.Text)+updateChannel_recordingConfigurationArn = Lens.lens (\UpdateChannel' {recordingConfigurationArn} -> recordingConfigurationArn) (\s@UpdateChannel' {} a -> s {recordingConfigurationArn = a} :: UpdateChannel)++-- | Channel type, which determines the allowable resolution and bitrate. /If+-- you exceed the allowable resolution or bitrate, the stream probably will+-- disconnect immediately/. Valid values:+--+-- - @STANDARD@: Video is transcoded: multiple qualities are generated+-- from the original input, to automatically give viewers the best+-- experience for their devices and network conditions. Transcoding+-- allows higher playback quality across a range of download speeds.+-- Resolution can be up to 1080p and bitrate can be up to 8.5 Mbps.+-- Audio is transcoded only for renditions 360p and below; above that,+-- audio is passed through. This is the default.+--+-- - @BASIC@: Video is transmuxed: Amazon IVS delivers the original input+-- to viewers. The viewer’s video-quality choice is limited to the+-- original input. Resolution can be up to 1080p and bitrate can be up+-- to 1.5 Mbps for 480p and up to 3.5 Mbps for resolutions between 480p+-- and 1080p.+updateChannel_type :: Lens.Lens' UpdateChannel (Prelude.Maybe ChannelType)+updateChannel_type = Lens.lens (\UpdateChannel' {type'} -> type') (\s@UpdateChannel' {} a -> s {type' = a} :: UpdateChannel)++-- | ARN of the channel to be updated.+updateChannel_arn :: Lens.Lens' UpdateChannel Prelude.Text+updateChannel_arn = Lens.lens (\UpdateChannel' {arn} -> arn) (\s@UpdateChannel' {} a -> s {arn = a} :: UpdateChannel)++instance Core.AWSRequest UpdateChannel where+ type+ AWSResponse UpdateChannel =+ UpdateChannelResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ UpdateChannelResponse'+ Prelude.<$> (x Data..?> "channel")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable UpdateChannel where+ hashWithSalt _salt UpdateChannel' {..} =+ _salt+ `Prelude.hashWithSalt` authorized+ `Prelude.hashWithSalt` latencyMode+ `Prelude.hashWithSalt` name+ `Prelude.hashWithSalt` recordingConfigurationArn+ `Prelude.hashWithSalt` type'+ `Prelude.hashWithSalt` arn++instance Prelude.NFData UpdateChannel where+ rnf UpdateChannel' {..} =+ Prelude.rnf authorized+ `Prelude.seq` Prelude.rnf latencyMode+ `Prelude.seq` Prelude.rnf name+ `Prelude.seq` Prelude.rnf recordingConfigurationArn+ `Prelude.seq` Prelude.rnf type'+ `Prelude.seq` Prelude.rnf arn++instance Data.ToHeaders UpdateChannel where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON UpdateChannel where+ toJSON UpdateChannel' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("authorized" Data..=) Prelude.<$> authorized,+ ("latencyMode" Data..=) Prelude.<$> latencyMode,+ ("name" Data..=) Prelude.<$> name,+ ("recordingConfigurationArn" Data..=)+ Prelude.<$> recordingConfigurationArn,+ ("type" Data..=) Prelude.<$> type',+ Prelude.Just ("arn" Data..= arn)+ ]+ )++instance Data.ToPath UpdateChannel where+ toPath = Prelude.const "/UpdateChannel"++instance Data.ToQuery UpdateChannel where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateChannelResponse' smart constructor.+data UpdateChannelResponse = UpdateChannelResponse'+ { channel :: Prelude.Maybe Channel,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateChannelResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'channel', 'updateChannelResponse_channel' - Undocumented member.+--+-- 'httpStatus', 'updateChannelResponse_httpStatus' - The response's http status code.+newUpdateChannelResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ UpdateChannelResponse+newUpdateChannelResponse pHttpStatus_ =+ UpdateChannelResponse'+ { channel = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | Undocumented member.+updateChannelResponse_channel :: Lens.Lens' UpdateChannelResponse (Prelude.Maybe Channel)+updateChannelResponse_channel = Lens.lens (\UpdateChannelResponse' {channel} -> channel) (\s@UpdateChannelResponse' {} a -> s {channel = a} :: UpdateChannelResponse)++-- | The response's http status code.+updateChannelResponse_httpStatus :: Lens.Lens' UpdateChannelResponse Prelude.Int+updateChannelResponse_httpStatus = Lens.lens (\UpdateChannelResponse' {httpStatus} -> httpStatus) (\s@UpdateChannelResponse' {} a -> s {httpStatus = a} :: UpdateChannelResponse)++instance Prelude.NFData UpdateChannelResponse where+ rnf UpdateChannelResponse' {..} =+ Prelude.rnf channel+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/IVS/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.IVS.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.IVS.Waiters where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.IVS.Lens+import Amazonka.IVS.Types+import qualified Amazonka.Prelude as Prelude
+ src/.gitkeep view
+ test/Main.hs view
@@ -0,0 +1,23 @@+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module : Main+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Main (main) where++import Test.Amazonka.IVS+import Test.Amazonka.IVS.Internal+import Test.Tasty++main :: IO ()+main =+ defaultMain $+ testGroup+ "IVS"+ [ testGroup "tests" tests,+ testGroup "fixtures" fixtures+ ]
+ test/Test/Amazonka/Gen/IVS.hs view
@@ -0,0 +1,598 @@+{-# 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.IVS+-- 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.IVS where++import Amazonka.IVS+import qualified Data.Proxy as Proxy+import Test.Amazonka.Fixture+import Test.Amazonka.IVS.Internal+import Test.Amazonka.Prelude+import Test.Tasty++-- Auto-generated: the actual test selection needs to be manually placed into+-- the top-level so that real test data can be incrementally added.+--+-- This commented snippet is what the entire set should look like:++-- fixtures :: TestTree+-- fixtures =+-- [ testGroup "request"+-- [ requestBatchGetChannel $+-- newBatchGetChannel+--+-- , requestBatchGetStreamKey $+-- newBatchGetStreamKey+--+-- , requestCreateChannel $+-- newCreateChannel+--+-- , requestCreateRecordingConfiguration $+-- newCreateRecordingConfiguration+--+-- , requestCreateStreamKey $+-- newCreateStreamKey+--+-- , requestDeleteChannel $+-- newDeleteChannel+--+-- , requestDeletePlaybackKeyPair $+-- newDeletePlaybackKeyPair+--+-- , requestDeleteRecordingConfiguration $+-- newDeleteRecordingConfiguration+--+-- , requestDeleteStreamKey $+-- newDeleteStreamKey+--+-- , requestGetChannel $+-- newGetChannel+--+-- , requestGetPlaybackKeyPair $+-- newGetPlaybackKeyPair+--+-- , requestGetRecordingConfiguration $+-- newGetRecordingConfiguration+--+-- , requestGetStream $+-- newGetStream+--+-- , requestGetStreamKey $+-- newGetStreamKey+--+-- , requestGetStreamSession $+-- newGetStreamSession+--+-- , requestImportPlaybackKeyPair $+-- newImportPlaybackKeyPair+--+-- , requestListChannels $+-- newListChannels+--+-- , requestListPlaybackKeyPairs $+-- newListPlaybackKeyPairs+--+-- , requestListRecordingConfigurations $+-- newListRecordingConfigurations+--+-- , requestListStreamKeys $+-- newListStreamKeys+--+-- , requestListStreamSessions $+-- newListStreamSessions+--+-- , requestListStreams $+-- newListStreams+--+-- , requestListTagsForResource $+-- newListTagsForResource+--+-- , requestPutMetadata $+-- newPutMetadata+--+-- , requestStopStream $+-- newStopStream+--+-- , requestTagResource $+-- newTagResource+--+-- , requestUntagResource $+-- newUntagResource+--+-- , requestUpdateChannel $+-- newUpdateChannel+--+-- ]++-- , testGroup "response"+-- [ responseBatchGetChannel $+-- newBatchGetChannelResponse+--+-- , responseBatchGetStreamKey $+-- newBatchGetStreamKeyResponse+--+-- , responseCreateChannel $+-- newCreateChannelResponse+--+-- , responseCreateRecordingConfiguration $+-- newCreateRecordingConfigurationResponse+--+-- , responseCreateStreamKey $+-- newCreateStreamKeyResponse+--+-- , responseDeleteChannel $+-- newDeleteChannelResponse+--+-- , responseDeletePlaybackKeyPair $+-- newDeletePlaybackKeyPairResponse+--+-- , responseDeleteRecordingConfiguration $+-- newDeleteRecordingConfigurationResponse+--+-- , responseDeleteStreamKey $+-- newDeleteStreamKeyResponse+--+-- , responseGetChannel $+-- newGetChannelResponse+--+-- , responseGetPlaybackKeyPair $+-- newGetPlaybackKeyPairResponse+--+-- , responseGetRecordingConfiguration $+-- newGetRecordingConfigurationResponse+--+-- , responseGetStream $+-- newGetStreamResponse+--+-- , responseGetStreamKey $+-- newGetStreamKeyResponse+--+-- , responseGetStreamSession $+-- newGetStreamSessionResponse+--+-- , responseImportPlaybackKeyPair $+-- newImportPlaybackKeyPairResponse+--+-- , responseListChannels $+-- newListChannelsResponse+--+-- , responseListPlaybackKeyPairs $+-- newListPlaybackKeyPairsResponse+--+-- , responseListRecordingConfigurations $+-- newListRecordingConfigurationsResponse+--+-- , responseListStreamKeys $+-- newListStreamKeysResponse+--+-- , responseListStreamSessions $+-- newListStreamSessionsResponse+--+-- , responseListStreams $+-- newListStreamsResponse+--+-- , responseListTagsForResource $+-- newListTagsForResourceResponse+--+-- , responsePutMetadata $+-- newPutMetadataResponse+--+-- , responseStopStream $+-- newStopStreamResponse+--+-- , responseTagResource $+-- newTagResourceResponse+--+-- , responseUntagResource $+-- newUntagResourceResponse+--+-- , responseUpdateChannel $+-- newUpdateChannelResponse+--+-- ]+-- ]++-- Requests++requestBatchGetChannel :: BatchGetChannel -> TestTree+requestBatchGetChannel =+ req+ "BatchGetChannel"+ "fixture/BatchGetChannel.yaml"++requestBatchGetStreamKey :: BatchGetStreamKey -> TestTree+requestBatchGetStreamKey =+ req+ "BatchGetStreamKey"+ "fixture/BatchGetStreamKey.yaml"++requestCreateChannel :: CreateChannel -> TestTree+requestCreateChannel =+ req+ "CreateChannel"+ "fixture/CreateChannel.yaml"++requestCreateRecordingConfiguration :: CreateRecordingConfiguration -> TestTree+requestCreateRecordingConfiguration =+ req+ "CreateRecordingConfiguration"+ "fixture/CreateRecordingConfiguration.yaml"++requestCreateStreamKey :: CreateStreamKey -> TestTree+requestCreateStreamKey =+ req+ "CreateStreamKey"+ "fixture/CreateStreamKey.yaml"++requestDeleteChannel :: DeleteChannel -> TestTree+requestDeleteChannel =+ req+ "DeleteChannel"+ "fixture/DeleteChannel.yaml"++requestDeletePlaybackKeyPair :: DeletePlaybackKeyPair -> TestTree+requestDeletePlaybackKeyPair =+ req+ "DeletePlaybackKeyPair"+ "fixture/DeletePlaybackKeyPair.yaml"++requestDeleteRecordingConfiguration :: DeleteRecordingConfiguration -> TestTree+requestDeleteRecordingConfiguration =+ req+ "DeleteRecordingConfiguration"+ "fixture/DeleteRecordingConfiguration.yaml"++requestDeleteStreamKey :: DeleteStreamKey -> TestTree+requestDeleteStreamKey =+ req+ "DeleteStreamKey"+ "fixture/DeleteStreamKey.yaml"++requestGetChannel :: GetChannel -> TestTree+requestGetChannel =+ req+ "GetChannel"+ "fixture/GetChannel.yaml"++requestGetPlaybackKeyPair :: GetPlaybackKeyPair -> TestTree+requestGetPlaybackKeyPair =+ req+ "GetPlaybackKeyPair"+ "fixture/GetPlaybackKeyPair.yaml"++requestGetRecordingConfiguration :: GetRecordingConfiguration -> TestTree+requestGetRecordingConfiguration =+ req+ "GetRecordingConfiguration"+ "fixture/GetRecordingConfiguration.yaml"++requestGetStream :: GetStream -> TestTree+requestGetStream =+ req+ "GetStream"+ "fixture/GetStream.yaml"++requestGetStreamKey :: GetStreamKey -> TestTree+requestGetStreamKey =+ req+ "GetStreamKey"+ "fixture/GetStreamKey.yaml"++requestGetStreamSession :: GetStreamSession -> TestTree+requestGetStreamSession =+ req+ "GetStreamSession"+ "fixture/GetStreamSession.yaml"++requestImportPlaybackKeyPair :: ImportPlaybackKeyPair -> TestTree+requestImportPlaybackKeyPair =+ req+ "ImportPlaybackKeyPair"+ "fixture/ImportPlaybackKeyPair.yaml"++requestListChannels :: ListChannels -> TestTree+requestListChannels =+ req+ "ListChannels"+ "fixture/ListChannels.yaml"++requestListPlaybackKeyPairs :: ListPlaybackKeyPairs -> TestTree+requestListPlaybackKeyPairs =+ req+ "ListPlaybackKeyPairs"+ "fixture/ListPlaybackKeyPairs.yaml"++requestListRecordingConfigurations :: ListRecordingConfigurations -> TestTree+requestListRecordingConfigurations =+ req+ "ListRecordingConfigurations"+ "fixture/ListRecordingConfigurations.yaml"++requestListStreamKeys :: ListStreamKeys -> TestTree+requestListStreamKeys =+ req+ "ListStreamKeys"+ "fixture/ListStreamKeys.yaml"++requestListStreamSessions :: ListStreamSessions -> TestTree+requestListStreamSessions =+ req+ "ListStreamSessions"+ "fixture/ListStreamSessions.yaml"++requestListStreams :: ListStreams -> TestTree+requestListStreams =+ req+ "ListStreams"+ "fixture/ListStreams.yaml"++requestListTagsForResource :: ListTagsForResource -> TestTree+requestListTagsForResource =+ req+ "ListTagsForResource"+ "fixture/ListTagsForResource.yaml"++requestPutMetadata :: PutMetadata -> TestTree+requestPutMetadata =+ req+ "PutMetadata"+ "fixture/PutMetadata.yaml"++requestStopStream :: StopStream -> TestTree+requestStopStream =+ req+ "StopStream"+ "fixture/StopStream.yaml"++requestTagResource :: TagResource -> TestTree+requestTagResource =+ req+ "TagResource"+ "fixture/TagResource.yaml"++requestUntagResource :: UntagResource -> TestTree+requestUntagResource =+ req+ "UntagResource"+ "fixture/UntagResource.yaml"++requestUpdateChannel :: UpdateChannel -> TestTree+requestUpdateChannel =+ req+ "UpdateChannel"+ "fixture/UpdateChannel.yaml"++-- Responses++responseBatchGetChannel :: BatchGetChannelResponse -> TestTree+responseBatchGetChannel =+ res+ "BatchGetChannelResponse"+ "fixture/BatchGetChannelResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy BatchGetChannel)++responseBatchGetStreamKey :: BatchGetStreamKeyResponse -> TestTree+responseBatchGetStreamKey =+ res+ "BatchGetStreamKeyResponse"+ "fixture/BatchGetStreamKeyResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy BatchGetStreamKey)++responseCreateChannel :: CreateChannelResponse -> TestTree+responseCreateChannel =+ res+ "CreateChannelResponse"+ "fixture/CreateChannelResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy CreateChannel)++responseCreateRecordingConfiguration :: CreateRecordingConfigurationResponse -> TestTree+responseCreateRecordingConfiguration =+ res+ "CreateRecordingConfigurationResponse"+ "fixture/CreateRecordingConfigurationResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy CreateRecordingConfiguration)++responseCreateStreamKey :: CreateStreamKeyResponse -> TestTree+responseCreateStreamKey =+ res+ "CreateStreamKeyResponse"+ "fixture/CreateStreamKeyResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy CreateStreamKey)++responseDeleteChannel :: DeleteChannelResponse -> TestTree+responseDeleteChannel =+ res+ "DeleteChannelResponse"+ "fixture/DeleteChannelResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DeleteChannel)++responseDeletePlaybackKeyPair :: DeletePlaybackKeyPairResponse -> TestTree+responseDeletePlaybackKeyPair =+ res+ "DeletePlaybackKeyPairResponse"+ "fixture/DeletePlaybackKeyPairResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DeletePlaybackKeyPair)++responseDeleteRecordingConfiguration :: DeleteRecordingConfigurationResponse -> TestTree+responseDeleteRecordingConfiguration =+ res+ "DeleteRecordingConfigurationResponse"+ "fixture/DeleteRecordingConfigurationResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DeleteRecordingConfiguration)++responseDeleteStreamKey :: DeleteStreamKeyResponse -> TestTree+responseDeleteStreamKey =+ res+ "DeleteStreamKeyResponse"+ "fixture/DeleteStreamKeyResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DeleteStreamKey)++responseGetChannel :: GetChannelResponse -> TestTree+responseGetChannel =+ res+ "GetChannelResponse"+ "fixture/GetChannelResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy GetChannel)++responseGetPlaybackKeyPair :: GetPlaybackKeyPairResponse -> TestTree+responseGetPlaybackKeyPair =+ res+ "GetPlaybackKeyPairResponse"+ "fixture/GetPlaybackKeyPairResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy GetPlaybackKeyPair)++responseGetRecordingConfiguration :: GetRecordingConfigurationResponse -> TestTree+responseGetRecordingConfiguration =+ res+ "GetRecordingConfigurationResponse"+ "fixture/GetRecordingConfigurationResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy GetRecordingConfiguration)++responseGetStream :: GetStreamResponse -> TestTree+responseGetStream =+ res+ "GetStreamResponse"+ "fixture/GetStreamResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy GetStream)++responseGetStreamKey :: GetStreamKeyResponse -> TestTree+responseGetStreamKey =+ res+ "GetStreamKeyResponse"+ "fixture/GetStreamKeyResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy GetStreamKey)++responseGetStreamSession :: GetStreamSessionResponse -> TestTree+responseGetStreamSession =+ res+ "GetStreamSessionResponse"+ "fixture/GetStreamSessionResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy GetStreamSession)++responseImportPlaybackKeyPair :: ImportPlaybackKeyPairResponse -> TestTree+responseImportPlaybackKeyPair =+ res+ "ImportPlaybackKeyPairResponse"+ "fixture/ImportPlaybackKeyPairResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ImportPlaybackKeyPair)++responseListChannels :: ListChannelsResponse -> TestTree+responseListChannels =+ res+ "ListChannelsResponse"+ "fixture/ListChannelsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListChannels)++responseListPlaybackKeyPairs :: ListPlaybackKeyPairsResponse -> TestTree+responseListPlaybackKeyPairs =+ res+ "ListPlaybackKeyPairsResponse"+ "fixture/ListPlaybackKeyPairsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListPlaybackKeyPairs)++responseListRecordingConfigurations :: ListRecordingConfigurationsResponse -> TestTree+responseListRecordingConfigurations =+ res+ "ListRecordingConfigurationsResponse"+ "fixture/ListRecordingConfigurationsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListRecordingConfigurations)++responseListStreamKeys :: ListStreamKeysResponse -> TestTree+responseListStreamKeys =+ res+ "ListStreamKeysResponse"+ "fixture/ListStreamKeysResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListStreamKeys)++responseListStreamSessions :: ListStreamSessionsResponse -> TestTree+responseListStreamSessions =+ res+ "ListStreamSessionsResponse"+ "fixture/ListStreamSessionsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListStreamSessions)++responseListStreams :: ListStreamsResponse -> TestTree+responseListStreams =+ res+ "ListStreamsResponse"+ "fixture/ListStreamsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListStreams)++responseListTagsForResource :: ListTagsForResourceResponse -> TestTree+responseListTagsForResource =+ res+ "ListTagsForResourceResponse"+ "fixture/ListTagsForResourceResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListTagsForResource)++responsePutMetadata :: PutMetadataResponse -> TestTree+responsePutMetadata =+ res+ "PutMetadataResponse"+ "fixture/PutMetadataResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy PutMetadata)++responseStopStream :: StopStreamResponse -> TestTree+responseStopStream =+ res+ "StopStreamResponse"+ "fixture/StopStreamResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy StopStream)++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)++responseUpdateChannel :: UpdateChannelResponse -> TestTree+responseUpdateChannel =+ res+ "UpdateChannelResponse"+ "fixture/UpdateChannelResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy UpdateChannel)
+ test/Test/Amazonka/IVS.hs view
@@ -0,0 +1,20 @@+-- |+-- Module : Test.Amazonka.IVS+-- 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.IVS+ ( tests,+ fixtures,+ )+where++import Test.Tasty (TestTree)++tests :: [TestTree]+tests = []++fixtures :: [TestTree]+fixtures = []
+ test/Test/Amazonka/IVS/Internal.hs view
@@ -0,0 +1,8 @@+-- |+-- Module : Test.Amazonka.IVS.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.IVS.Internal where