packages feed

amazonka-mediaconnect (empty) → 2.0

raw patch · 166 files changed

+18675/−0 lines, 166 filesdep +amazonka-coredep +amazonka-mediaconnectdep +amazonka-test

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

Files

+ LICENSE view
@@ -0,0 +1,367 @@+Mozilla Public License Version 2.0+==================================++1. Definitions+--------------++1.1. "Contributor"+    means each individual or legal entity that creates, contributes to+    the creation of, or owns Covered Software.++1.2. "Contributor Version"+    means the combination of the Contributions of others (if any) used+    by a Contributor and that particular Contributor's Contribution.++1.3. "Contribution"+    means Covered Software of a particular Contributor.++1.4. "Covered Software"+    means Source Code Form to which the initial Contributor has attached+    the notice in Exhibit A, the Executable Form of such Source Code+    Form, and Modifications of such Source Code Form, in each case+    including portions thereof.++1.5. "Incompatible With Secondary Licenses"+    means++    (a) that the initial Contributor has attached the notice described+        in Exhibit B to the Covered Software; or++    (b) that the Covered Software was made available under the terms of+        version 1.1 or earlier of the License, but not also under the+        terms of a Secondary License.++1.6. "Executable Form"+    means any form of the work other than Source Code Form.++1.7. "Larger Work"+    means a work that combines Covered Software with other material, in+    a separate file or files, that is not Covered Software.++1.8. "License"+    means this document.++1.9. "Licensable"+    means having the right to grant, to the maximum extent possible,+    whether at the time of the initial grant or subsequently, any and+    all of the rights conveyed by this License.++1.10. "Modifications"+    means any of the following:++    (a) any file in Source Code Form that results from an addition to,+        deletion from, or modification of the contents of Covered+        Software; or++    (b) any new file in Source Code Form that contains any Covered+        Software.++1.11. "Patent Claims" of a Contributor+    means any patent claim(s), including without limitation, method,+    process, and apparatus claims, in any patent Licensable by such+    Contributor that would be infringed, but for the grant of the+    License, by the making, using, selling, offering for sale, having+    made, import, or transfer of either its Contributions or its+    Contributor Version.++1.12. "Secondary License"+    means either the GNU General Public License, Version 2.0, the GNU+    Lesser General Public License, Version 2.1, the GNU Affero General+    Public License, Version 3.0, or any later versions of those+    licenses.++1.13. "Source Code Form"+    means the form of the work preferred for making modifications.++1.14. "You" (or "Your")+    means an individual or a legal entity exercising rights under this+    License. For legal entities, "You" includes any entity that+    controls, is controlled by, or is under common control with You. For+    purposes of this definition, "control" means (a) the power, direct+    or indirect, to cause the direction or management of such entity,+    whether by contract or otherwise, or (b) ownership of more than+    fifty percent (50%) of the outstanding shares or beneficial+    ownership of such entity.++2. License Grants and Conditions+--------------------------------++2.1. Grants++Each Contributor hereby grants You a world-wide, royalty-free,+non-exclusive license:++(a) under intellectual property rights (other than patent or trademark)+    Licensable by such Contributor to use, reproduce, make available,+    modify, display, perform, distribute, and otherwise exploit its+    Contributions, either on an unmodified basis, with Modifications, or+    as part of a Larger Work; and++(b) under Patent Claims of such Contributor to make, use, sell, offer+    for sale, have made, import, and otherwise transfer either its+    Contributions or its Contributor Version.++2.2. Effective Date++The licenses granted in Section 2.1 with respect to any Contribution+become effective for each Contribution on the date the Contributor first+distributes such Contribution.++2.3. Limitations on Grant Scope++The licenses granted in this Section 2 are the only rights granted under+this License. No additional rights or licenses will be implied from the+distribution or licensing of Covered Software under this License.+Notwithstanding Section 2.1(b) above, no patent license is granted by a+Contributor:++(a) for any code that a Contributor has removed from Covered Software;+    or++(b) for infringements caused by: (i) Your and any other third party's+    modifications of Covered Software, or (ii) the combination of its+    Contributions with other software (except as part of its Contributor+    Version); or++(c) under Patent Claims infringed by Covered Software in the absence of+    its Contributions.++This License does not grant any rights in the trademarks, service marks,+or logos of any Contributor (except as may be necessary to comply with+the notice requirements in Section 3.4).++2.4. Subsequent Licenses++No Contributor makes additional grants as a result of Your choice to+distribute the Covered Software under a subsequent version of this+License (see Section 10.2) or under the terms of a Secondary License (if+permitted under the terms of Section 3.3).++2.5. Representation++Each Contributor represents that the Contributor believes its+Contributions are its original creation(s) or it has sufficient rights+to grant the rights to its Contributions conveyed by this License.++2.6. Fair Use++This License is not intended to limit any rights You have under+applicable copyright doctrines of fair use, fair dealing, or other+equivalents.++2.7. Conditions++Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted+in Section 2.1.++3. Responsibilities+-------------------++3.1. Distribution of Source Form++All distribution of Covered Software in Source Code Form, including any+Modifications that You create or to which You contribute, must be under+the terms of this License. You must inform recipients that the Source+Code Form of the Covered Software is governed by the terms of this+License, and how they can obtain a copy of this License. You may not+attempt to alter or restrict the recipients' rights in the Source Code+Form.++3.2. Distribution of Executable Form++If You distribute Covered Software in Executable Form then:++(a) such Covered Software must also be made available in Source Code+    Form, as described in Section 3.1, and You must inform recipients of+    the Executable Form how they can obtain a copy of such Source Code+    Form by reasonable means in a timely manner, at a charge no more+    than the cost of distribution to the recipient; and++(b) You may distribute such Executable Form under the terms of this+    License, or sublicense it under different terms, provided that the+    license for the Executable Form does not attempt to limit or alter+    the recipients' rights in the Source Code Form under this License.++3.3. Distribution of a Larger Work++You may create and distribute a Larger Work under terms of Your choice,+provided that You also comply with the requirements of this License for+the Covered Software. If the Larger Work is a combination of Covered+Software with a work governed by one or more Secondary Licenses, and the+Covered Software is not Incompatible With Secondary Licenses, this+License permits You to additionally distribute such Covered Software+under the terms of such Secondary License(s), so that the recipient of+the Larger Work may, at their option, further distribute the Covered+Software under the terms of either this License or such Secondary+License(s).++3.4. Notices++You may not remove or alter the substance of any license notices+(including copyright notices, patent notices, disclaimers of warranty,+or limitations of liability) contained within the Source Code Form of+the Covered Software, except that You may alter any license notices to+the extent required to remedy known factual inaccuracies.++3.5. Application of Additional Terms++You may choose to offer, and to charge a fee for, warranty, support,+indemnity or liability obligations to one or more recipients of Covered+Software. However, You may do so only on Your own behalf, and not on+behalf of any Contributor. You must make it absolutely clear that any+such warranty, support, indemnity, or liability obligation is offered by+You alone, and You hereby agree to indemnify every Contributor for any+liability incurred by such Contributor as a result of warranty, support,+indemnity or liability terms You offer. You may include additional+disclaimers of warranty and limitations of liability specific to any+jurisdiction.++4. Inability to Comply Due to Statute or Regulation+---------------------------------------------------++If it is impossible for You to comply with any of the terms of this+License with respect to some or all of the Covered Software due to+statute, judicial order, or regulation then You must: (a) comply with+the terms of this License to the maximum extent possible; and (b)+describe the limitations and the code they affect. Such description must+be placed in a text file included with all distributions of the Covered+Software under this License. Except to the extent prohibited by statute+or regulation, such description must be sufficiently detailed for a+recipient of ordinary skill to be able to understand it.++5. Termination+--------------++5.1. The rights granted under this License will terminate automatically+if You fail to comply with any of its terms. However, if You become+compliant, then the rights granted under this License from a particular+Contributor are reinstated (a) provisionally, unless and until such+Contributor explicitly and finally terminates Your grants, and (b) on an+ongoing basis, if such Contributor fails to notify You of the+non-compliance by some reasonable means prior to 60 days after You have+come back into compliance. Moreover, Your grants from a particular+Contributor are reinstated on an ongoing basis if such Contributor+notifies You of the non-compliance by some reasonable means, this is the+first time You have received notice of non-compliance with this License+from such Contributor, and You become compliant prior to 30 days after+Your receipt of the notice.++5.2. If You initiate litigation against any entity by asserting a patent+infringement claim (excluding declaratory judgment actions,+counter-claims, and cross-claims) alleging that a Contributor Version+directly or indirectly infringes any patent, then the rights granted to+You by any and all Contributors for the Covered Software under Section+2.1 of this License shall terminate.++5.3. In the event of termination under Sections 5.1 or 5.2 above, all+end user license agreements (excluding distributors and resellers) which+have been validly granted by You or Your distributors under this License+prior to termination shall survive termination.++************************************************************************+*                                                                      *+*  6. Disclaimer of Warranty                                           *+*  -------------------------                                           *+*                                                                      *+*  Covered Software is provided under this License on an "as is"       *+*  basis, without warranty of any kind, either expressed, implied, or  *+*  statutory, including, without limitation, warranties that the       *+*  Covered Software is free of defects, merchantable, fit for a        *+*  particular purpose or non-infringing. The entire risk as to the     *+*  quality and performance of the Covered Software is with You.        *+*  Should any Covered Software prove defective in any respect, You     *+*  (not any Contributor) assume the cost of any necessary servicing,   *+*  repair, or correction. This disclaimer of warranty constitutes an   *+*  essential part of this License. No use of any Covered Software is   *+*  authorized under this License except under this disclaimer.         *+*                                                                      *+************************************************************************++************************************************************************+*                                                                      *+*  7. Limitation of Liability                                          *+*  --------------------------                                          *+*                                                                      *+*  Under no circumstances and under no legal theory, whether tort      *+*  (including negligence), contract, or otherwise, shall any           *+*  Contributor, or anyone who distributes Covered Software as          *+*  permitted above, be liable to You for any direct, indirect,         *+*  special, incidental, or consequential damages of any character      *+*  including, without limitation, damages for lost profits, loss of    *+*  goodwill, work stoppage, computer failure or malfunction, or any    *+*  and all other commercial damages or losses, even if such party      *+*  shall have been informed of the possibility of such damages. This   *+*  limitation of liability shall not apply to liability for death or   *+*  personal injury resulting from such party's negligence to the       *+*  extent applicable law prohibits such limitation. Some               *+*  jurisdictions do not allow the exclusion or limitation of           *+*  incidental or consequential damages, so this exclusion and          *+*  limitation may not apply to You.                                    *+*                                                                      *+************************************************************************++8. Litigation+-------------++Any litigation relating to this License may be brought only in the+courts of a jurisdiction where the defendant maintains its principal+place of business and such litigation shall be governed by laws of that+jurisdiction, without reference to its conflict-of-law provisions.+Nothing in this Section shall prevent a party's ability to bring+cross-claims or counter-claims.++9. Miscellaneous+----------------++This License represents the complete agreement concerning the subject+matter hereof. If any provision of this License is held to be+unenforceable, such provision shall be reformed only to the extent+necessary to make it enforceable. Any law or regulation which provides+that the language of a contract shall be construed against the drafter+shall not be used to construe this License against a Contributor.++10. Versions of the License+---------------------------++10.1. New Versions++Mozilla Foundation is the license steward. Except as provided in Section+10.3, no one other than the license steward has the right to modify or+publish new versions of this License. Each version will be given a+distinguishing version number.++10.2. Effect of New Versions++You may distribute the Covered Software under the terms of the version+of the License under which You originally received the Covered Software,+or under the terms of any subsequent version published by the license+steward.++10.3. Modified Versions++If you create software not governed by this License, and you want to+create a new license for such software, you may create and use a+modified version of this License if you rename the license and remove+any references to the name of the license steward (except to note that+such modified license differs from this License).++10.4. Distributing Source Code Form that is Incompatible With Secondary+Licenses++If You choose to distribute Source Code Form that is Incompatible With+Secondary Licenses under the terms of this version of the License, the+notice described in Exhibit B of this License must be attached.++Exhibit A - Source Code Form License Notice+-------------------------------------------++  This Source Code Form is subject to the terms of the Mozilla Public+  License, v. 2.0. If a copy of the MPL was not distributed with this+  file, You can obtain one at http://mozilla.org/MPL/2.0/.++If it is not possible or desirable to put the notice in a particular+file, then You may include the notice in a location (such as a LICENSE+file in a relevant directory) where a recipient would be likely to look+for such a notice.++You may add additional accurate notices of copyright ownership.
+ README.md view
@@ -0,0 +1,44 @@+# Amazon MediaConnect SDK++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version+ +`2.0` - Derived from API version @2018-11-14@ of the AWS service descriptions, licensed under Apache 2.0.++## Description++Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-mediaconnect)+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.MediaConnect](http://hackage.haskell.org/package/amazonka-mediaconnect/docs/Amazonka-MediaConnect.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-mediaconnect` 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-mediaconnect.cabal view
@@ -0,0 +1,177 @@+cabal-version:      2.2+name:               amazonka-mediaconnect+version:            2.0+synopsis:           Amazon MediaConnect SDK.+homepage:           https://github.com/brendanhay/amazonka+bug-reports:        https://github.com/brendanhay/amazonka/issues+license:            MPL-2.0+license-file:       LICENSE+author:             Brendan Hay+maintainer:+  Brendan Hay <brendan.g.hay+amazonka@gmail.com>, Jack Kelly <jack@jackkelly.name>++copyright:          Copyright (c) 2013-2023 Brendan Hay+category:           AWS+build-type:         Simple+extra-source-files:+  fixture/*.proto+  fixture/*.yaml+  README.md+  src/.gitkeep++description:+  Derived from API version @2018-11-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.MediaConnect.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.MediaConnect" 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-mediaconnect++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.MediaConnect+    Amazonka.MediaConnect.AddFlowMediaStreams+    Amazonka.MediaConnect.AddFlowOutputs+    Amazonka.MediaConnect.AddFlowSources+    Amazonka.MediaConnect.AddFlowVpcInterfaces+    Amazonka.MediaConnect.CreateFlow+    Amazonka.MediaConnect.DeleteFlow+    Amazonka.MediaConnect.DescribeFlow+    Amazonka.MediaConnect.DescribeOffering+    Amazonka.MediaConnect.DescribeReservation+    Amazonka.MediaConnect.GrantFlowEntitlements+    Amazonka.MediaConnect.Lens+    Amazonka.MediaConnect.ListEntitlements+    Amazonka.MediaConnect.ListFlows+    Amazonka.MediaConnect.ListOfferings+    Amazonka.MediaConnect.ListReservations+    Amazonka.MediaConnect.ListTagsForResource+    Amazonka.MediaConnect.PurchaseOffering+    Amazonka.MediaConnect.RemoveFlowMediaStream+    Amazonka.MediaConnect.RemoveFlowOutput+    Amazonka.MediaConnect.RemoveFlowSource+    Amazonka.MediaConnect.RemoveFlowVpcInterface+    Amazonka.MediaConnect.RevokeFlowEntitlement+    Amazonka.MediaConnect.StartFlow+    Amazonka.MediaConnect.StopFlow+    Amazonka.MediaConnect.TagResource+    Amazonka.MediaConnect.Types+    Amazonka.MediaConnect.Types.AddMaintenance+    Amazonka.MediaConnect.Types.AddMediaStreamRequest+    Amazonka.MediaConnect.Types.AddOutputRequest+    Amazonka.MediaConnect.Types.Algorithm+    Amazonka.MediaConnect.Types.Colorimetry+    Amazonka.MediaConnect.Types.DestinationConfiguration+    Amazonka.MediaConnect.Types.DestinationConfigurationRequest+    Amazonka.MediaConnect.Types.DurationUnits+    Amazonka.MediaConnect.Types.EncoderProfile+    Amazonka.MediaConnect.Types.EncodingName+    Amazonka.MediaConnect.Types.EncodingParameters+    Amazonka.MediaConnect.Types.EncodingParametersRequest+    Amazonka.MediaConnect.Types.Encryption+    Amazonka.MediaConnect.Types.Entitlement+    Amazonka.MediaConnect.Types.EntitlementStatus+    Amazonka.MediaConnect.Types.FailoverConfig+    Amazonka.MediaConnect.Types.FailoverMode+    Amazonka.MediaConnect.Types.Flow+    Amazonka.MediaConnect.Types.Fmtp+    Amazonka.MediaConnect.Types.FmtpRequest+    Amazonka.MediaConnect.Types.GrantEntitlementRequest+    Amazonka.MediaConnect.Types.InputConfiguration+    Amazonka.MediaConnect.Types.InputConfigurationRequest+    Amazonka.MediaConnect.Types.Interface+    Amazonka.MediaConnect.Types.InterfaceRequest+    Amazonka.MediaConnect.Types.KeyType+    Amazonka.MediaConnect.Types.ListedEntitlement+    Amazonka.MediaConnect.Types.ListedFlow+    Amazonka.MediaConnect.Types.Maintenance+    Amazonka.MediaConnect.Types.MaintenanceDay+    Amazonka.MediaConnect.Types.MediaStream+    Amazonka.MediaConnect.Types.MediaStreamAttributes+    Amazonka.MediaConnect.Types.MediaStreamAttributesRequest+    Amazonka.MediaConnect.Types.MediaStreamOutputConfiguration+    Amazonka.MediaConnect.Types.MediaStreamOutputConfigurationRequest+    Amazonka.MediaConnect.Types.MediaStreamSourceConfiguration+    Amazonka.MediaConnect.Types.MediaStreamSourceConfigurationRequest+    Amazonka.MediaConnect.Types.MediaStreamType+    Amazonka.MediaConnect.Types.Messages+    Amazonka.MediaConnect.Types.NetworkInterfaceType+    Amazonka.MediaConnect.Types.Offering+    Amazonka.MediaConnect.Types.Output+    Amazonka.MediaConnect.Types.PriceUnits+    Amazonka.MediaConnect.Types.Protocol+    Amazonka.MediaConnect.Types.Range+    Amazonka.MediaConnect.Types.Reservation+    Amazonka.MediaConnect.Types.ReservationState+    Amazonka.MediaConnect.Types.ResourceSpecification+    Amazonka.MediaConnect.Types.ResourceType+    Amazonka.MediaConnect.Types.ScanMode+    Amazonka.MediaConnect.Types.SetSourceRequest+    Amazonka.MediaConnect.Types.Source+    Amazonka.MediaConnect.Types.SourcePriority+    Amazonka.MediaConnect.Types.SourceType+    Amazonka.MediaConnect.Types.State+    Amazonka.MediaConnect.Types.Status+    Amazonka.MediaConnect.Types.Tcs+    Amazonka.MediaConnect.Types.Transport+    Amazonka.MediaConnect.Types.UpdateEncryption+    Amazonka.MediaConnect.Types.UpdateFailoverConfig+    Amazonka.MediaConnect.Types.UpdateMaintenance+    Amazonka.MediaConnect.Types.VpcInterface+    Amazonka.MediaConnect.Types.VpcInterfaceAttachment+    Amazonka.MediaConnect.Types.VpcInterfaceRequest+    Amazonka.MediaConnect.UntagResource+    Amazonka.MediaConnect.UpdateFlow+    Amazonka.MediaConnect.UpdateFlowEntitlement+    Amazonka.MediaConnect.UpdateFlowMediaStream+    Amazonka.MediaConnect.UpdateFlowOutput+    Amazonka.MediaConnect.UpdateFlowSource+    Amazonka.MediaConnect.Waiters++  build-depends:+    , amazonka-core  >=2.0  && <2.1+    , base           >=4.12 && <5++test-suite amazonka-mediaconnect-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.MediaConnect+    Test.Amazonka.MediaConnect+    Test.Amazonka.MediaConnect.Internal++  build-depends:+    , amazonka-core          >=2.0 && <2.1+    , amazonka-mediaconnect+    , amazonka-test          >=2.0 && <2.1+    , base+    , bytestring+    , case-insensitive+    , tasty+    , tasty-hunit+    , text+    , time+    , unordered-containers
+ fixture/AddFlowMediaStreams.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mediaconnect/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mediaconnect.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/AddFlowMediaStreamsResponse.proto view
+ fixture/AddFlowOutputs.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mediaconnect/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mediaconnect.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/AddFlowOutputsResponse.proto view
+ fixture/AddFlowSources.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mediaconnect/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mediaconnect.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/AddFlowSourcesResponse.proto view
+ fixture/AddFlowVpcInterfaces.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mediaconnect/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mediaconnect.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/AddFlowVpcInterfacesResponse.proto view
+ fixture/CreateFlow.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mediaconnect/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mediaconnect.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/CreateFlowResponse.proto view
+ fixture/DeleteFlow.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mediaconnect/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mediaconnect.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/DeleteFlowResponse.proto view
+ fixture/DescribeFlow.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mediaconnect/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mediaconnect.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/DescribeFlowResponse.proto view
+ fixture/DescribeOffering.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mediaconnect/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mediaconnect.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/DescribeOfferingResponse.proto view
+ fixture/DescribeReservation.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mediaconnect/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mediaconnect.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/DescribeReservationResponse.proto view
+ fixture/GrantFlowEntitlements.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mediaconnect/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mediaconnect.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/GrantFlowEntitlementsResponse.proto view
+ fixture/ListEntitlements.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mediaconnect/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mediaconnect.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/ListEntitlementsResponse.proto view
+ fixture/ListFlows.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mediaconnect/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mediaconnect.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/ListFlowsResponse.proto view
+ fixture/ListOfferings.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mediaconnect/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mediaconnect.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/ListOfferingsResponse.proto view
+ fixture/ListReservations.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mediaconnect/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mediaconnect.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/ListReservationsResponse.proto view
+ fixture/ListTagsForResource.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mediaconnect/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mediaconnect.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/PurchaseOffering.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mediaconnect/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mediaconnect.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/PurchaseOfferingResponse.proto view
+ fixture/RemoveFlowMediaStream.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mediaconnect/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mediaconnect.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/RemoveFlowMediaStreamResponse.proto view
+ fixture/RemoveFlowOutput.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mediaconnect/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mediaconnect.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/RemoveFlowOutputResponse.proto view
+ fixture/RemoveFlowSource.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mediaconnect/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mediaconnect.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/RemoveFlowSourceResponse.proto view
+ fixture/RemoveFlowVpcInterface.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mediaconnect/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mediaconnect.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/RemoveFlowVpcInterfaceResponse.proto view
+ fixture/RevokeFlowEntitlement.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mediaconnect/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mediaconnect.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/RevokeFlowEntitlementResponse.proto view
+ fixture/StartFlow.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mediaconnect/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mediaconnect.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/StartFlowResponse.proto view
+ fixture/StopFlow.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mediaconnect/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mediaconnect.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/StopFlowResponse.proto view
+ fixture/TagResource.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mediaconnect/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mediaconnect.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/mediaconnect/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mediaconnect.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/UpdateFlow.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mediaconnect/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mediaconnect.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/UpdateFlowEntitlement.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mediaconnect/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mediaconnect.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/UpdateFlowEntitlementResponse.proto view
+ fixture/UpdateFlowMediaStream.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mediaconnect/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mediaconnect.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/UpdateFlowMediaStreamResponse.proto view
+ fixture/UpdateFlowOutput.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mediaconnect/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mediaconnect.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/UpdateFlowOutputResponse.proto view
+ fixture/UpdateFlowResponse.proto view
+ fixture/UpdateFlowSource.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mediaconnect/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  mediaconnect.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/UpdateFlowSourceResponse.proto view
+ gen/Amazonka/MediaConnect.hs view
@@ -0,0 +1,542 @@+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Amazonka.MediaConnect+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Derived from API version @2018-11-14@ of the AWS service descriptions, licensed under Apache 2.0.+--+-- API for AWS Elemental MediaConnect+module Amazonka.MediaConnect+  ( -- * Service Configuration+    defaultService,++    -- * Errors+    -- $errors++    -- ** AddFlowOutputs420Exception+    _AddFlowOutputs420Exception,++    -- ** BadRequestException+    _BadRequestException,++    -- ** CreateFlow420Exception+    _CreateFlow420Exception,++    -- ** ForbiddenException+    _ForbiddenException,++    -- ** GrantFlowEntitlements420Exception+    _GrantFlowEntitlements420Exception,++    -- ** InternalServerErrorException+    _InternalServerErrorException,++    -- ** NotFoundException+    _NotFoundException,++    -- ** ServiceUnavailableException+    _ServiceUnavailableException,++    -- ** TooManyRequestsException+    _TooManyRequestsException,++    -- * Waiters+    -- $waiters++    -- ** FlowActive+    newFlowActive,++    -- ** FlowDeleted+    newFlowDeleted,++    -- ** FlowStandby+    newFlowStandby,++    -- * Operations+    -- $operations++    -- ** AddFlowMediaStreams+    AddFlowMediaStreams (AddFlowMediaStreams'),+    newAddFlowMediaStreams,+    AddFlowMediaStreamsResponse (AddFlowMediaStreamsResponse'),+    newAddFlowMediaStreamsResponse,++    -- ** AddFlowOutputs+    AddFlowOutputs (AddFlowOutputs'),+    newAddFlowOutputs,+    AddFlowOutputsResponse (AddFlowOutputsResponse'),+    newAddFlowOutputsResponse,++    -- ** AddFlowSources+    AddFlowSources (AddFlowSources'),+    newAddFlowSources,+    AddFlowSourcesResponse (AddFlowSourcesResponse'),+    newAddFlowSourcesResponse,++    -- ** AddFlowVpcInterfaces+    AddFlowVpcInterfaces (AddFlowVpcInterfaces'),+    newAddFlowVpcInterfaces,+    AddFlowVpcInterfacesResponse (AddFlowVpcInterfacesResponse'),+    newAddFlowVpcInterfacesResponse,++    -- ** CreateFlow+    CreateFlow (CreateFlow'),+    newCreateFlow,+    CreateFlowResponse (CreateFlowResponse'),+    newCreateFlowResponse,++    -- ** DeleteFlow+    DeleteFlow (DeleteFlow'),+    newDeleteFlow,+    DeleteFlowResponse (DeleteFlowResponse'),+    newDeleteFlowResponse,++    -- ** DescribeFlow+    DescribeFlow (DescribeFlow'),+    newDescribeFlow,+    DescribeFlowResponse (DescribeFlowResponse'),+    newDescribeFlowResponse,++    -- ** DescribeOffering+    DescribeOffering (DescribeOffering'),+    newDescribeOffering,+    DescribeOfferingResponse (DescribeOfferingResponse'),+    newDescribeOfferingResponse,++    -- ** DescribeReservation+    DescribeReservation (DescribeReservation'),+    newDescribeReservation,+    DescribeReservationResponse (DescribeReservationResponse'),+    newDescribeReservationResponse,++    -- ** GrantFlowEntitlements+    GrantFlowEntitlements (GrantFlowEntitlements'),+    newGrantFlowEntitlements,+    GrantFlowEntitlementsResponse (GrantFlowEntitlementsResponse'),+    newGrantFlowEntitlementsResponse,++    -- ** ListEntitlements (Paginated)+    ListEntitlements (ListEntitlements'),+    newListEntitlements,+    ListEntitlementsResponse (ListEntitlementsResponse'),+    newListEntitlementsResponse,++    -- ** ListFlows (Paginated)+    ListFlows (ListFlows'),+    newListFlows,+    ListFlowsResponse (ListFlowsResponse'),+    newListFlowsResponse,++    -- ** ListOfferings (Paginated)+    ListOfferings (ListOfferings'),+    newListOfferings,+    ListOfferingsResponse (ListOfferingsResponse'),+    newListOfferingsResponse,++    -- ** ListReservations (Paginated)+    ListReservations (ListReservations'),+    newListReservations,+    ListReservationsResponse (ListReservationsResponse'),+    newListReservationsResponse,++    -- ** ListTagsForResource+    ListTagsForResource (ListTagsForResource'),+    newListTagsForResource,+    ListTagsForResourceResponse (ListTagsForResourceResponse'),+    newListTagsForResourceResponse,++    -- ** PurchaseOffering+    PurchaseOffering (PurchaseOffering'),+    newPurchaseOffering,+    PurchaseOfferingResponse (PurchaseOfferingResponse'),+    newPurchaseOfferingResponse,++    -- ** RemoveFlowMediaStream+    RemoveFlowMediaStream (RemoveFlowMediaStream'),+    newRemoveFlowMediaStream,+    RemoveFlowMediaStreamResponse (RemoveFlowMediaStreamResponse'),+    newRemoveFlowMediaStreamResponse,++    -- ** RemoveFlowOutput+    RemoveFlowOutput (RemoveFlowOutput'),+    newRemoveFlowOutput,+    RemoveFlowOutputResponse (RemoveFlowOutputResponse'),+    newRemoveFlowOutputResponse,++    -- ** RemoveFlowSource+    RemoveFlowSource (RemoveFlowSource'),+    newRemoveFlowSource,+    RemoveFlowSourceResponse (RemoveFlowSourceResponse'),+    newRemoveFlowSourceResponse,++    -- ** RemoveFlowVpcInterface+    RemoveFlowVpcInterface (RemoveFlowVpcInterface'),+    newRemoveFlowVpcInterface,+    RemoveFlowVpcInterfaceResponse (RemoveFlowVpcInterfaceResponse'),+    newRemoveFlowVpcInterfaceResponse,++    -- ** RevokeFlowEntitlement+    RevokeFlowEntitlement (RevokeFlowEntitlement'),+    newRevokeFlowEntitlement,+    RevokeFlowEntitlementResponse (RevokeFlowEntitlementResponse'),+    newRevokeFlowEntitlementResponse,++    -- ** StartFlow+    StartFlow (StartFlow'),+    newStartFlow,+    StartFlowResponse (StartFlowResponse'),+    newStartFlowResponse,++    -- ** StopFlow+    StopFlow (StopFlow'),+    newStopFlow,+    StopFlowResponse (StopFlowResponse'),+    newStopFlowResponse,++    -- ** TagResource+    TagResource (TagResource'),+    newTagResource,+    TagResourceResponse (TagResourceResponse'),+    newTagResourceResponse,++    -- ** UntagResource+    UntagResource (UntagResource'),+    newUntagResource,+    UntagResourceResponse (UntagResourceResponse'),+    newUntagResourceResponse,++    -- ** UpdateFlow+    UpdateFlow (UpdateFlow'),+    newUpdateFlow,+    UpdateFlowResponse (UpdateFlowResponse'),+    newUpdateFlowResponse,++    -- ** UpdateFlowEntitlement+    UpdateFlowEntitlement (UpdateFlowEntitlement'),+    newUpdateFlowEntitlement,+    UpdateFlowEntitlementResponse (UpdateFlowEntitlementResponse'),+    newUpdateFlowEntitlementResponse,++    -- ** UpdateFlowMediaStream+    UpdateFlowMediaStream (UpdateFlowMediaStream'),+    newUpdateFlowMediaStream,+    UpdateFlowMediaStreamResponse (UpdateFlowMediaStreamResponse'),+    newUpdateFlowMediaStreamResponse,++    -- ** UpdateFlowOutput+    UpdateFlowOutput (UpdateFlowOutput'),+    newUpdateFlowOutput,+    UpdateFlowOutputResponse (UpdateFlowOutputResponse'),+    newUpdateFlowOutputResponse,++    -- ** UpdateFlowSource+    UpdateFlowSource (UpdateFlowSource'),+    newUpdateFlowSource,+    UpdateFlowSourceResponse (UpdateFlowSourceResponse'),+    newUpdateFlowSourceResponse,++    -- * Types++    -- ** Algorithm+    Algorithm (..),++    -- ** Colorimetry+    Colorimetry (..),++    -- ** DurationUnits+    DurationUnits (..),++    -- ** EncoderProfile+    EncoderProfile (..),++    -- ** EncodingName+    EncodingName (..),++    -- ** EntitlementStatus+    EntitlementStatus (..),++    -- ** FailoverMode+    FailoverMode (..),++    -- ** KeyType+    KeyType (..),++    -- ** MaintenanceDay+    MaintenanceDay (..),++    -- ** MediaStreamType+    MediaStreamType (..),++    -- ** NetworkInterfaceType+    NetworkInterfaceType (..),++    -- ** PriceUnits+    PriceUnits (..),++    -- ** Protocol+    Protocol (..),++    -- ** Range+    Range (..),++    -- ** ReservationState+    ReservationState (..),++    -- ** ResourceType+    ResourceType (..),++    -- ** ScanMode+    ScanMode (..),++    -- ** SourceType+    SourceType (..),++    -- ** State+    State (..),++    -- ** Status+    Status (..),++    -- ** Tcs+    Tcs (..),++    -- ** AddMaintenance+    AddMaintenance (AddMaintenance'),+    newAddMaintenance,++    -- ** AddMediaStreamRequest+    AddMediaStreamRequest (AddMediaStreamRequest'),+    newAddMediaStreamRequest,++    -- ** AddOutputRequest+    AddOutputRequest (AddOutputRequest'),+    newAddOutputRequest,++    -- ** DestinationConfiguration+    DestinationConfiguration (DestinationConfiguration'),+    newDestinationConfiguration,++    -- ** DestinationConfigurationRequest+    DestinationConfigurationRequest (DestinationConfigurationRequest'),+    newDestinationConfigurationRequest,++    -- ** EncodingParameters+    EncodingParameters (EncodingParameters'),+    newEncodingParameters,++    -- ** EncodingParametersRequest+    EncodingParametersRequest (EncodingParametersRequest'),+    newEncodingParametersRequest,++    -- ** Encryption+    Encryption (Encryption'),+    newEncryption,++    -- ** Entitlement+    Entitlement (Entitlement'),+    newEntitlement,++    -- ** FailoverConfig+    FailoverConfig (FailoverConfig'),+    newFailoverConfig,++    -- ** Flow+    Flow (Flow'),+    newFlow,++    -- ** Fmtp+    Fmtp (Fmtp'),+    newFmtp,++    -- ** FmtpRequest+    FmtpRequest (FmtpRequest'),+    newFmtpRequest,++    -- ** GrantEntitlementRequest+    GrantEntitlementRequest (GrantEntitlementRequest'),+    newGrantEntitlementRequest,++    -- ** InputConfiguration+    InputConfiguration (InputConfiguration'),+    newInputConfiguration,++    -- ** InputConfigurationRequest+    InputConfigurationRequest (InputConfigurationRequest'),+    newInputConfigurationRequest,++    -- ** Interface+    Interface (Interface'),+    newInterface,++    -- ** InterfaceRequest+    InterfaceRequest (InterfaceRequest'),+    newInterfaceRequest,++    -- ** ListedEntitlement+    ListedEntitlement (ListedEntitlement'),+    newListedEntitlement,++    -- ** ListedFlow+    ListedFlow (ListedFlow'),+    newListedFlow,++    -- ** Maintenance+    Maintenance (Maintenance'),+    newMaintenance,++    -- ** MediaStream+    MediaStream (MediaStream'),+    newMediaStream,++    -- ** MediaStreamAttributes+    MediaStreamAttributes (MediaStreamAttributes'),+    newMediaStreamAttributes,++    -- ** MediaStreamAttributesRequest+    MediaStreamAttributesRequest (MediaStreamAttributesRequest'),+    newMediaStreamAttributesRequest,++    -- ** MediaStreamOutputConfiguration+    MediaStreamOutputConfiguration (MediaStreamOutputConfiguration'),+    newMediaStreamOutputConfiguration,++    -- ** MediaStreamOutputConfigurationRequest+    MediaStreamOutputConfigurationRequest (MediaStreamOutputConfigurationRequest'),+    newMediaStreamOutputConfigurationRequest,++    -- ** MediaStreamSourceConfiguration+    MediaStreamSourceConfiguration (MediaStreamSourceConfiguration'),+    newMediaStreamSourceConfiguration,++    -- ** MediaStreamSourceConfigurationRequest+    MediaStreamSourceConfigurationRequest (MediaStreamSourceConfigurationRequest'),+    newMediaStreamSourceConfigurationRequest,++    -- ** Messages+    Messages (Messages'),+    newMessages,++    -- ** Offering+    Offering (Offering'),+    newOffering,++    -- ** Output+    Output (Output'),+    newOutput,++    -- ** Reservation+    Reservation (Reservation'),+    newReservation,++    -- ** ResourceSpecification+    ResourceSpecification (ResourceSpecification'),+    newResourceSpecification,++    -- ** SetSourceRequest+    SetSourceRequest (SetSourceRequest'),+    newSetSourceRequest,++    -- ** Source+    Source (Source'),+    newSource,++    -- ** SourcePriority+    SourcePriority (SourcePriority'),+    newSourcePriority,++    -- ** Transport+    Transport (Transport'),+    newTransport,++    -- ** UpdateEncryption+    UpdateEncryption (UpdateEncryption'),+    newUpdateEncryption,++    -- ** UpdateFailoverConfig+    UpdateFailoverConfig (UpdateFailoverConfig'),+    newUpdateFailoverConfig,++    -- ** UpdateMaintenance+    UpdateMaintenance (UpdateMaintenance'),+    newUpdateMaintenance,++    -- ** VpcInterface+    VpcInterface (VpcInterface'),+    newVpcInterface,++    -- ** VpcInterfaceAttachment+    VpcInterfaceAttachment (VpcInterfaceAttachment'),+    newVpcInterfaceAttachment,++    -- ** VpcInterfaceRequest+    VpcInterfaceRequest (VpcInterfaceRequest'),+    newVpcInterfaceRequest,+  )+where++import Amazonka.MediaConnect.AddFlowMediaStreams+import Amazonka.MediaConnect.AddFlowOutputs+import Amazonka.MediaConnect.AddFlowSources+import Amazonka.MediaConnect.AddFlowVpcInterfaces+import Amazonka.MediaConnect.CreateFlow+import Amazonka.MediaConnect.DeleteFlow+import Amazonka.MediaConnect.DescribeFlow+import Amazonka.MediaConnect.DescribeOffering+import Amazonka.MediaConnect.DescribeReservation+import Amazonka.MediaConnect.GrantFlowEntitlements+import Amazonka.MediaConnect.Lens+import Amazonka.MediaConnect.ListEntitlements+import Amazonka.MediaConnect.ListFlows+import Amazonka.MediaConnect.ListOfferings+import Amazonka.MediaConnect.ListReservations+import Amazonka.MediaConnect.ListTagsForResource+import Amazonka.MediaConnect.PurchaseOffering+import Amazonka.MediaConnect.RemoveFlowMediaStream+import Amazonka.MediaConnect.RemoveFlowOutput+import Amazonka.MediaConnect.RemoveFlowSource+import Amazonka.MediaConnect.RemoveFlowVpcInterface+import Amazonka.MediaConnect.RevokeFlowEntitlement+import Amazonka.MediaConnect.StartFlow+import Amazonka.MediaConnect.StopFlow+import Amazonka.MediaConnect.TagResource+import Amazonka.MediaConnect.Types+import Amazonka.MediaConnect.UntagResource+import Amazonka.MediaConnect.UpdateFlow+import Amazonka.MediaConnect.UpdateFlowEntitlement+import Amazonka.MediaConnect.UpdateFlowMediaStream+import Amazonka.MediaConnect.UpdateFlowOutput+import Amazonka.MediaConnect.UpdateFlowSource+import Amazonka.MediaConnect.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 'MediaConnect'.++-- $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/MediaConnect/AddFlowMediaStreams.hs view
@@ -0,0 +1,198 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaConnect.AddFlowMediaStreams+-- 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 media streams to an existing flow. After you add a media stream to+-- a flow, you can associate it with a source and\/or an output that uses+-- the ST 2110 JPEG XS or CDI protocol.+module Amazonka.MediaConnect.AddFlowMediaStreams+  ( -- * Creating a Request+    AddFlowMediaStreams (..),+    newAddFlowMediaStreams,++    -- * Request Lenses+    addFlowMediaStreams_flowArn,+    addFlowMediaStreams_mediaStreams,++    -- * Destructuring the Response+    AddFlowMediaStreamsResponse (..),+    newAddFlowMediaStreamsResponse,++    -- * Response Lenses+    addFlowMediaStreamsResponse_flowArn,+    addFlowMediaStreamsResponse_mediaStreams,+    addFlowMediaStreamsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaConnect.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | A request to add media streams to the flow.+--+-- /See:/ 'newAddFlowMediaStreams' smart constructor.+data AddFlowMediaStreams = AddFlowMediaStreams'+  { -- | The Amazon Resource Name (ARN) of the flow.+    flowArn :: Prelude.Text,+    -- | The media streams that you want to add to the flow.+    mediaStreams :: [AddMediaStreamRequest]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AddFlowMediaStreams' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'flowArn', 'addFlowMediaStreams_flowArn' - The Amazon Resource Name (ARN) of the flow.+--+-- 'mediaStreams', 'addFlowMediaStreams_mediaStreams' - The media streams that you want to add to the flow.+newAddFlowMediaStreams ::+  -- | 'flowArn'+  Prelude.Text ->+  AddFlowMediaStreams+newAddFlowMediaStreams pFlowArn_ =+  AddFlowMediaStreams'+    { flowArn = pFlowArn_,+      mediaStreams = Prelude.mempty+    }++-- | The Amazon Resource Name (ARN) of the flow.+addFlowMediaStreams_flowArn :: Lens.Lens' AddFlowMediaStreams Prelude.Text+addFlowMediaStreams_flowArn = Lens.lens (\AddFlowMediaStreams' {flowArn} -> flowArn) (\s@AddFlowMediaStreams' {} a -> s {flowArn = a} :: AddFlowMediaStreams)++-- | The media streams that you want to add to the flow.+addFlowMediaStreams_mediaStreams :: Lens.Lens' AddFlowMediaStreams [AddMediaStreamRequest]+addFlowMediaStreams_mediaStreams = Lens.lens (\AddFlowMediaStreams' {mediaStreams} -> mediaStreams) (\s@AddFlowMediaStreams' {} a -> s {mediaStreams = a} :: AddFlowMediaStreams) Prelude.. Lens.coerced++instance Core.AWSRequest AddFlowMediaStreams where+  type+    AWSResponse AddFlowMediaStreams =+      AddFlowMediaStreamsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          AddFlowMediaStreamsResponse'+            Prelude.<$> (x Data..?> "flowArn")+            Prelude.<*> (x Data..?> "mediaStreams" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable AddFlowMediaStreams where+  hashWithSalt _salt AddFlowMediaStreams' {..} =+    _salt+      `Prelude.hashWithSalt` flowArn+      `Prelude.hashWithSalt` mediaStreams++instance Prelude.NFData AddFlowMediaStreams where+  rnf AddFlowMediaStreams' {..} =+    Prelude.rnf flowArn+      `Prelude.seq` Prelude.rnf mediaStreams++instance Data.ToHeaders AddFlowMediaStreams where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON AddFlowMediaStreams where+  toJSON AddFlowMediaStreams' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("mediaStreams" Data..= mediaStreams)]+      )++instance Data.ToPath AddFlowMediaStreams where+  toPath AddFlowMediaStreams' {..} =+    Prelude.mconcat+      ["/v1/flows/", Data.toBS flowArn, "/mediaStreams"]++instance Data.ToQuery AddFlowMediaStreams where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newAddFlowMediaStreamsResponse' smart constructor.+data AddFlowMediaStreamsResponse = AddFlowMediaStreamsResponse'+  { -- | The ARN of the flow that you added media streams to.+    flowArn :: Prelude.Maybe Prelude.Text,+    -- | The media streams that you added to the flow.+    mediaStreams :: Prelude.Maybe [MediaStream],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AddFlowMediaStreamsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'flowArn', 'addFlowMediaStreamsResponse_flowArn' - The ARN of the flow that you added media streams to.+--+-- 'mediaStreams', 'addFlowMediaStreamsResponse_mediaStreams' - The media streams that you added to the flow.+--+-- 'httpStatus', 'addFlowMediaStreamsResponse_httpStatus' - The response's http status code.+newAddFlowMediaStreamsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  AddFlowMediaStreamsResponse+newAddFlowMediaStreamsResponse pHttpStatus_ =+  AddFlowMediaStreamsResponse'+    { flowArn =+        Prelude.Nothing,+      mediaStreams = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The ARN of the flow that you added media streams to.+addFlowMediaStreamsResponse_flowArn :: Lens.Lens' AddFlowMediaStreamsResponse (Prelude.Maybe Prelude.Text)+addFlowMediaStreamsResponse_flowArn = Lens.lens (\AddFlowMediaStreamsResponse' {flowArn} -> flowArn) (\s@AddFlowMediaStreamsResponse' {} a -> s {flowArn = a} :: AddFlowMediaStreamsResponse)++-- | The media streams that you added to the flow.+addFlowMediaStreamsResponse_mediaStreams :: Lens.Lens' AddFlowMediaStreamsResponse (Prelude.Maybe [MediaStream])+addFlowMediaStreamsResponse_mediaStreams = Lens.lens (\AddFlowMediaStreamsResponse' {mediaStreams} -> mediaStreams) (\s@AddFlowMediaStreamsResponse' {} a -> s {mediaStreams = a} :: AddFlowMediaStreamsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+addFlowMediaStreamsResponse_httpStatus :: Lens.Lens' AddFlowMediaStreamsResponse Prelude.Int+addFlowMediaStreamsResponse_httpStatus = Lens.lens (\AddFlowMediaStreamsResponse' {httpStatus} -> httpStatus) (\s@AddFlowMediaStreamsResponse' {} a -> s {httpStatus = a} :: AddFlowMediaStreamsResponse)++instance Prelude.NFData AddFlowMediaStreamsResponse where+  rnf AddFlowMediaStreamsResponse' {..} =+    Prelude.rnf flowArn+      `Prelude.seq` Prelude.rnf mediaStreams+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MediaConnect/AddFlowOutputs.hs view
@@ -0,0 +1,196 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaConnect.AddFlowOutputs+-- 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 outputs to an existing flow. You can create up to 50 outputs per+-- flow.+module Amazonka.MediaConnect.AddFlowOutputs+  ( -- * Creating a Request+    AddFlowOutputs (..),+    newAddFlowOutputs,++    -- * Request Lenses+    addFlowOutputs_flowArn,+    addFlowOutputs_outputs,++    -- * Destructuring the Response+    AddFlowOutputsResponse (..),+    newAddFlowOutputsResponse,++    -- * Response Lenses+    addFlowOutputsResponse_flowArn,+    addFlowOutputsResponse_outputs,+    addFlowOutputsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaConnect.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | A request to add outputs to the specified flow.+--+-- /See:/ 'newAddFlowOutputs' smart constructor.+data AddFlowOutputs = AddFlowOutputs'+  { -- | The flow that you want to add outputs to.+    flowArn :: Prelude.Text,+    -- | A list of outputs that you want to add.+    outputs :: [AddOutputRequest]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AddFlowOutputs' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'flowArn', 'addFlowOutputs_flowArn' - The flow that you want to add outputs to.+--+-- 'outputs', 'addFlowOutputs_outputs' - A list of outputs that you want to add.+newAddFlowOutputs ::+  -- | 'flowArn'+  Prelude.Text ->+  AddFlowOutputs+newAddFlowOutputs pFlowArn_ =+  AddFlowOutputs'+    { flowArn = pFlowArn_,+      outputs = Prelude.mempty+    }++-- | The flow that you want to add outputs to.+addFlowOutputs_flowArn :: Lens.Lens' AddFlowOutputs Prelude.Text+addFlowOutputs_flowArn = Lens.lens (\AddFlowOutputs' {flowArn} -> flowArn) (\s@AddFlowOutputs' {} a -> s {flowArn = a} :: AddFlowOutputs)++-- | A list of outputs that you want to add.+addFlowOutputs_outputs :: Lens.Lens' AddFlowOutputs [AddOutputRequest]+addFlowOutputs_outputs = Lens.lens (\AddFlowOutputs' {outputs} -> outputs) (\s@AddFlowOutputs' {} a -> s {outputs = a} :: AddFlowOutputs) Prelude.. Lens.coerced++instance Core.AWSRequest AddFlowOutputs where+  type+    AWSResponse AddFlowOutputs =+      AddFlowOutputsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          AddFlowOutputsResponse'+            Prelude.<$> (x Data..?> "flowArn")+            Prelude.<*> (x Data..?> "outputs" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable AddFlowOutputs where+  hashWithSalt _salt AddFlowOutputs' {..} =+    _salt+      `Prelude.hashWithSalt` flowArn+      `Prelude.hashWithSalt` outputs++instance Prelude.NFData AddFlowOutputs where+  rnf AddFlowOutputs' {..} =+    Prelude.rnf flowArn+      `Prelude.seq` Prelude.rnf outputs++instance Data.ToHeaders AddFlowOutputs where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON AddFlowOutputs where+  toJSON AddFlowOutputs' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("outputs" Data..= outputs)]+      )++instance Data.ToPath AddFlowOutputs where+  toPath AddFlowOutputs' {..} =+    Prelude.mconcat+      ["/v1/flows/", Data.toBS flowArn, "/outputs"]++instance Data.ToQuery AddFlowOutputs where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newAddFlowOutputsResponse' smart constructor.+data AddFlowOutputsResponse = AddFlowOutputsResponse'+  { -- | The ARN of the flow that these outputs were added to.+    flowArn :: Prelude.Maybe Prelude.Text,+    -- | The details of the newly added outputs.+    outputs :: Prelude.Maybe [Output],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AddFlowOutputsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'flowArn', 'addFlowOutputsResponse_flowArn' - The ARN of the flow that these outputs were added to.+--+-- 'outputs', 'addFlowOutputsResponse_outputs' - The details of the newly added outputs.+--+-- 'httpStatus', 'addFlowOutputsResponse_httpStatus' - The response's http status code.+newAddFlowOutputsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  AddFlowOutputsResponse+newAddFlowOutputsResponse pHttpStatus_ =+  AddFlowOutputsResponse'+    { flowArn = Prelude.Nothing,+      outputs = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The ARN of the flow that these outputs were added to.+addFlowOutputsResponse_flowArn :: Lens.Lens' AddFlowOutputsResponse (Prelude.Maybe Prelude.Text)+addFlowOutputsResponse_flowArn = Lens.lens (\AddFlowOutputsResponse' {flowArn} -> flowArn) (\s@AddFlowOutputsResponse' {} a -> s {flowArn = a} :: AddFlowOutputsResponse)++-- | The details of the newly added outputs.+addFlowOutputsResponse_outputs :: Lens.Lens' AddFlowOutputsResponse (Prelude.Maybe [Output])+addFlowOutputsResponse_outputs = Lens.lens (\AddFlowOutputsResponse' {outputs} -> outputs) (\s@AddFlowOutputsResponse' {} a -> s {outputs = a} :: AddFlowOutputsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+addFlowOutputsResponse_httpStatus :: Lens.Lens' AddFlowOutputsResponse Prelude.Int+addFlowOutputsResponse_httpStatus = Lens.lens (\AddFlowOutputsResponse' {httpStatus} -> httpStatus) (\s@AddFlowOutputsResponse' {} a -> s {httpStatus = a} :: AddFlowOutputsResponse)++instance Prelude.NFData AddFlowOutputsResponse where+  rnf AddFlowOutputsResponse' {..} =+    Prelude.rnf flowArn+      `Prelude.seq` Prelude.rnf outputs+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MediaConnect/AddFlowSources.hs view
@@ -0,0 +1,195 @@+{-# 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.MediaConnect.AddFlowSources+-- 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 Sources to flow+module Amazonka.MediaConnect.AddFlowSources+  ( -- * Creating a Request+    AddFlowSources (..),+    newAddFlowSources,++    -- * Request Lenses+    addFlowSources_flowArn,+    addFlowSources_sources,++    -- * Destructuring the Response+    AddFlowSourcesResponse (..),+    newAddFlowSourcesResponse,++    -- * Response Lenses+    addFlowSourcesResponse_flowArn,+    addFlowSourcesResponse_sources,+    addFlowSourcesResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaConnect.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | A request to add sources to the flow.+--+-- /See:/ 'newAddFlowSources' smart constructor.+data AddFlowSources = AddFlowSources'+  { -- | The flow that you want to mutate.+    flowArn :: Prelude.Text,+    -- | A list of sources that you want to add.+    sources :: [SetSourceRequest]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AddFlowSources' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'flowArn', 'addFlowSources_flowArn' - The flow that you want to mutate.+--+-- 'sources', 'addFlowSources_sources' - A list of sources that you want to add.+newAddFlowSources ::+  -- | 'flowArn'+  Prelude.Text ->+  AddFlowSources+newAddFlowSources pFlowArn_ =+  AddFlowSources'+    { flowArn = pFlowArn_,+      sources = Prelude.mempty+    }++-- | The flow that you want to mutate.+addFlowSources_flowArn :: Lens.Lens' AddFlowSources Prelude.Text+addFlowSources_flowArn = Lens.lens (\AddFlowSources' {flowArn} -> flowArn) (\s@AddFlowSources' {} a -> s {flowArn = a} :: AddFlowSources)++-- | A list of sources that you want to add.+addFlowSources_sources :: Lens.Lens' AddFlowSources [SetSourceRequest]+addFlowSources_sources = Lens.lens (\AddFlowSources' {sources} -> sources) (\s@AddFlowSources' {} a -> s {sources = a} :: AddFlowSources) Prelude.. Lens.coerced++instance Core.AWSRequest AddFlowSources where+  type+    AWSResponse AddFlowSources =+      AddFlowSourcesResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          AddFlowSourcesResponse'+            Prelude.<$> (x Data..?> "flowArn")+            Prelude.<*> (x Data..?> "sources" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable AddFlowSources where+  hashWithSalt _salt AddFlowSources' {..} =+    _salt+      `Prelude.hashWithSalt` flowArn+      `Prelude.hashWithSalt` sources++instance Prelude.NFData AddFlowSources where+  rnf AddFlowSources' {..} =+    Prelude.rnf flowArn+      `Prelude.seq` Prelude.rnf sources++instance Data.ToHeaders AddFlowSources where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON AddFlowSources where+  toJSON AddFlowSources' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("sources" Data..= sources)]+      )++instance Data.ToPath AddFlowSources where+  toPath AddFlowSources' {..} =+    Prelude.mconcat+      ["/v1/flows/", Data.toBS flowArn, "/source"]++instance Data.ToQuery AddFlowSources where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newAddFlowSourcesResponse' smart constructor.+data AddFlowSourcesResponse = AddFlowSourcesResponse'+  { -- | The ARN of the flow that these sources were added to.+    flowArn :: Prelude.Maybe Prelude.Text,+    -- | The details of the newly added sources.+    sources :: Prelude.Maybe [Source],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AddFlowSourcesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'flowArn', 'addFlowSourcesResponse_flowArn' - The ARN of the flow that these sources were added to.+--+-- 'sources', 'addFlowSourcesResponse_sources' - The details of the newly added sources.+--+-- 'httpStatus', 'addFlowSourcesResponse_httpStatus' - The response's http status code.+newAddFlowSourcesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  AddFlowSourcesResponse+newAddFlowSourcesResponse pHttpStatus_ =+  AddFlowSourcesResponse'+    { flowArn = Prelude.Nothing,+      sources = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The ARN of the flow that these sources were added to.+addFlowSourcesResponse_flowArn :: Lens.Lens' AddFlowSourcesResponse (Prelude.Maybe Prelude.Text)+addFlowSourcesResponse_flowArn = Lens.lens (\AddFlowSourcesResponse' {flowArn} -> flowArn) (\s@AddFlowSourcesResponse' {} a -> s {flowArn = a} :: AddFlowSourcesResponse)++-- | The details of the newly added sources.+addFlowSourcesResponse_sources :: Lens.Lens' AddFlowSourcesResponse (Prelude.Maybe [Source])+addFlowSourcesResponse_sources = Lens.lens (\AddFlowSourcesResponse' {sources} -> sources) (\s@AddFlowSourcesResponse' {} a -> s {sources = a} :: AddFlowSourcesResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+addFlowSourcesResponse_httpStatus :: Lens.Lens' AddFlowSourcesResponse Prelude.Int+addFlowSourcesResponse_httpStatus = Lens.lens (\AddFlowSourcesResponse' {httpStatus} -> httpStatus) (\s@AddFlowSourcesResponse' {} a -> s {httpStatus = a} :: AddFlowSourcesResponse)++instance Prelude.NFData AddFlowSourcesResponse where+  rnf AddFlowSourcesResponse' {..} =+    Prelude.rnf flowArn+      `Prelude.seq` Prelude.rnf sources+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MediaConnect/AddFlowVpcInterfaces.hs view
@@ -0,0 +1,198 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaConnect.AddFlowVpcInterfaces+-- 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 VPC interfaces to flow+module Amazonka.MediaConnect.AddFlowVpcInterfaces+  ( -- * Creating a Request+    AddFlowVpcInterfaces (..),+    newAddFlowVpcInterfaces,++    -- * Request Lenses+    addFlowVpcInterfaces_flowArn,+    addFlowVpcInterfaces_vpcInterfaces,++    -- * Destructuring the Response+    AddFlowVpcInterfacesResponse (..),+    newAddFlowVpcInterfacesResponse,++    -- * Response Lenses+    addFlowVpcInterfacesResponse_flowArn,+    addFlowVpcInterfacesResponse_vpcInterfaces,+    addFlowVpcInterfacesResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaConnect.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | A request to add VPC interfaces to the flow.+--+-- /See:/ 'newAddFlowVpcInterfaces' smart constructor.+data AddFlowVpcInterfaces = AddFlowVpcInterfaces'+  { -- | The flow that you want to mutate.+    flowArn :: Prelude.Text,+    -- | A list of VPC interfaces that you want to add.+    vpcInterfaces :: [VpcInterfaceRequest]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AddFlowVpcInterfaces' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'flowArn', 'addFlowVpcInterfaces_flowArn' - The flow that you want to mutate.+--+-- 'vpcInterfaces', 'addFlowVpcInterfaces_vpcInterfaces' - A list of VPC interfaces that you want to add.+newAddFlowVpcInterfaces ::+  -- | 'flowArn'+  Prelude.Text ->+  AddFlowVpcInterfaces+newAddFlowVpcInterfaces pFlowArn_ =+  AddFlowVpcInterfaces'+    { flowArn = pFlowArn_,+      vpcInterfaces = Prelude.mempty+    }++-- | The flow that you want to mutate.+addFlowVpcInterfaces_flowArn :: Lens.Lens' AddFlowVpcInterfaces Prelude.Text+addFlowVpcInterfaces_flowArn = Lens.lens (\AddFlowVpcInterfaces' {flowArn} -> flowArn) (\s@AddFlowVpcInterfaces' {} a -> s {flowArn = a} :: AddFlowVpcInterfaces)++-- | A list of VPC interfaces that you want to add.+addFlowVpcInterfaces_vpcInterfaces :: Lens.Lens' AddFlowVpcInterfaces [VpcInterfaceRequest]+addFlowVpcInterfaces_vpcInterfaces = Lens.lens (\AddFlowVpcInterfaces' {vpcInterfaces} -> vpcInterfaces) (\s@AddFlowVpcInterfaces' {} a -> s {vpcInterfaces = a} :: AddFlowVpcInterfaces) Prelude.. Lens.coerced++instance Core.AWSRequest AddFlowVpcInterfaces where+  type+    AWSResponse AddFlowVpcInterfaces =+      AddFlowVpcInterfacesResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          AddFlowVpcInterfacesResponse'+            Prelude.<$> (x Data..?> "flowArn")+            Prelude.<*> (x Data..?> "vpcInterfaces" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable AddFlowVpcInterfaces where+  hashWithSalt _salt AddFlowVpcInterfaces' {..} =+    _salt+      `Prelude.hashWithSalt` flowArn+      `Prelude.hashWithSalt` vpcInterfaces++instance Prelude.NFData AddFlowVpcInterfaces where+  rnf AddFlowVpcInterfaces' {..} =+    Prelude.rnf flowArn+      `Prelude.seq` Prelude.rnf vpcInterfaces++instance Data.ToHeaders AddFlowVpcInterfaces where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON AddFlowVpcInterfaces where+  toJSON AddFlowVpcInterfaces' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("vpcInterfaces" Data..= vpcInterfaces)+          ]+      )++instance Data.ToPath AddFlowVpcInterfaces where+  toPath AddFlowVpcInterfaces' {..} =+    Prelude.mconcat+      ["/v1/flows/", Data.toBS flowArn, "/vpcInterfaces"]++instance Data.ToQuery AddFlowVpcInterfaces where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newAddFlowVpcInterfacesResponse' smart constructor.+data AddFlowVpcInterfacesResponse = AddFlowVpcInterfacesResponse'+  { -- | The ARN of the flow that these VPC interfaces were added to.+    flowArn :: Prelude.Maybe Prelude.Text,+    -- | The details of the newly added VPC interfaces.+    vpcInterfaces :: Prelude.Maybe [VpcInterface],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AddFlowVpcInterfacesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'flowArn', 'addFlowVpcInterfacesResponse_flowArn' - The ARN of the flow that these VPC interfaces were added to.+--+-- 'vpcInterfaces', 'addFlowVpcInterfacesResponse_vpcInterfaces' - The details of the newly added VPC interfaces.+--+-- 'httpStatus', 'addFlowVpcInterfacesResponse_httpStatus' - The response's http status code.+newAddFlowVpcInterfacesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  AddFlowVpcInterfacesResponse+newAddFlowVpcInterfacesResponse pHttpStatus_ =+  AddFlowVpcInterfacesResponse'+    { flowArn =+        Prelude.Nothing,+      vpcInterfaces = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The ARN of the flow that these VPC interfaces were added to.+addFlowVpcInterfacesResponse_flowArn :: Lens.Lens' AddFlowVpcInterfacesResponse (Prelude.Maybe Prelude.Text)+addFlowVpcInterfacesResponse_flowArn = Lens.lens (\AddFlowVpcInterfacesResponse' {flowArn} -> flowArn) (\s@AddFlowVpcInterfacesResponse' {} a -> s {flowArn = a} :: AddFlowVpcInterfacesResponse)++-- | The details of the newly added VPC interfaces.+addFlowVpcInterfacesResponse_vpcInterfaces :: Lens.Lens' AddFlowVpcInterfacesResponse (Prelude.Maybe [VpcInterface])+addFlowVpcInterfacesResponse_vpcInterfaces = Lens.lens (\AddFlowVpcInterfacesResponse' {vpcInterfaces} -> vpcInterfaces) (\s@AddFlowVpcInterfacesResponse' {} a -> s {vpcInterfaces = a} :: AddFlowVpcInterfacesResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+addFlowVpcInterfacesResponse_httpStatus :: Lens.Lens' AddFlowVpcInterfacesResponse Prelude.Int+addFlowVpcInterfacesResponse_httpStatus = Lens.lens (\AddFlowVpcInterfacesResponse' {httpStatus} -> httpStatus) (\s@AddFlowVpcInterfacesResponse' {} a -> s {httpStatus = a} :: AddFlowVpcInterfacesResponse)++instance Prelude.NFData AddFlowVpcInterfacesResponse where+  rnf AddFlowVpcInterfacesResponse' {..} =+    Prelude.rnf flowArn+      `Prelude.seq` Prelude.rnf vpcInterfaces+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MediaConnect/CreateFlow.hs view
@@ -0,0 +1,290 @@+{-# 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.MediaConnect.CreateFlow+-- 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 flow. The request must include one source. The request+-- optionally can include outputs (up to 50) and entitlements (up to 50).+module Amazonka.MediaConnect.CreateFlow+  ( -- * Creating a Request+    CreateFlow (..),+    newCreateFlow,++    -- * Request Lenses+    createFlow_availabilityZone,+    createFlow_entitlements,+    createFlow_maintenance,+    createFlow_mediaStreams,+    createFlow_outputs,+    createFlow_source,+    createFlow_sourceFailoverConfig,+    createFlow_sources,+    createFlow_vpcInterfaces,+    createFlow_name,++    -- * Destructuring the Response+    CreateFlowResponse (..),+    newCreateFlowResponse,++    -- * Response Lenses+    createFlowResponse_flow,+    createFlowResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaConnect.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | Creates a new flow. The request must include one source. The request+-- optionally can include outputs (up to 50) and entitlements (up to 50).+--+-- /See:/ 'newCreateFlow' smart constructor.+data CreateFlow = CreateFlow'+  { -- | The Availability Zone that you want to create the flow in. These options+    -- are limited to the Availability Zones within the current AWS Region.+    availabilityZone :: Prelude.Maybe Prelude.Text,+    -- | The entitlements that you want to grant on a flow.+    entitlements :: Prelude.Maybe [GrantEntitlementRequest],+    maintenance :: Prelude.Maybe AddMaintenance,+    -- | The media streams that you want to add to the flow. You can associate+    -- these media streams with sources and outputs on the flow.+    mediaStreams :: Prelude.Maybe [AddMediaStreamRequest],+    -- | The outputs that you want to add to this flow.+    outputs :: Prelude.Maybe [AddOutputRequest],+    source :: Prelude.Maybe SetSourceRequest,+    sourceFailoverConfig :: Prelude.Maybe FailoverConfig,+    sources :: Prelude.Maybe [SetSourceRequest],+    -- | The VPC interfaces you want on the flow.+    vpcInterfaces :: Prelude.Maybe [VpcInterfaceRequest],+    -- | The name of the flow.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateFlow' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'availabilityZone', 'createFlow_availabilityZone' - The Availability Zone that you want to create the flow in. These options+-- are limited to the Availability Zones within the current AWS Region.+--+-- 'entitlements', 'createFlow_entitlements' - The entitlements that you want to grant on a flow.+--+-- 'maintenance', 'createFlow_maintenance' - Undocumented member.+--+-- 'mediaStreams', 'createFlow_mediaStreams' - The media streams that you want to add to the flow. You can associate+-- these media streams with sources and outputs on the flow.+--+-- 'outputs', 'createFlow_outputs' - The outputs that you want to add to this flow.+--+-- 'source', 'createFlow_source' - Undocumented member.+--+-- 'sourceFailoverConfig', 'createFlow_sourceFailoverConfig' - Undocumented member.+--+-- 'sources', 'createFlow_sources' - Undocumented member.+--+-- 'vpcInterfaces', 'createFlow_vpcInterfaces' - The VPC interfaces you want on the flow.+--+-- 'name', 'createFlow_name' - The name of the flow.+newCreateFlow ::+  -- | 'name'+  Prelude.Text ->+  CreateFlow+newCreateFlow pName_ =+  CreateFlow'+    { availabilityZone = Prelude.Nothing,+      entitlements = Prelude.Nothing,+      maintenance = Prelude.Nothing,+      mediaStreams = Prelude.Nothing,+      outputs = Prelude.Nothing,+      source = Prelude.Nothing,+      sourceFailoverConfig = Prelude.Nothing,+      sources = Prelude.Nothing,+      vpcInterfaces = Prelude.Nothing,+      name = pName_+    }++-- | The Availability Zone that you want to create the flow in. These options+-- are limited to the Availability Zones within the current AWS Region.+createFlow_availabilityZone :: Lens.Lens' CreateFlow (Prelude.Maybe Prelude.Text)+createFlow_availabilityZone = Lens.lens (\CreateFlow' {availabilityZone} -> availabilityZone) (\s@CreateFlow' {} a -> s {availabilityZone = a} :: CreateFlow)++-- | The entitlements that you want to grant on a flow.+createFlow_entitlements :: Lens.Lens' CreateFlow (Prelude.Maybe [GrantEntitlementRequest])+createFlow_entitlements = Lens.lens (\CreateFlow' {entitlements} -> entitlements) (\s@CreateFlow' {} a -> s {entitlements = a} :: CreateFlow) Prelude.. Lens.mapping Lens.coerced++-- | Undocumented member.+createFlow_maintenance :: Lens.Lens' CreateFlow (Prelude.Maybe AddMaintenance)+createFlow_maintenance = Lens.lens (\CreateFlow' {maintenance} -> maintenance) (\s@CreateFlow' {} a -> s {maintenance = a} :: CreateFlow)++-- | The media streams that you want to add to the flow. You can associate+-- these media streams with sources and outputs on the flow.+createFlow_mediaStreams :: Lens.Lens' CreateFlow (Prelude.Maybe [AddMediaStreamRequest])+createFlow_mediaStreams = Lens.lens (\CreateFlow' {mediaStreams} -> mediaStreams) (\s@CreateFlow' {} a -> s {mediaStreams = a} :: CreateFlow) Prelude.. Lens.mapping Lens.coerced++-- | The outputs that you want to add to this flow.+createFlow_outputs :: Lens.Lens' CreateFlow (Prelude.Maybe [AddOutputRequest])+createFlow_outputs = Lens.lens (\CreateFlow' {outputs} -> outputs) (\s@CreateFlow' {} a -> s {outputs = a} :: CreateFlow) Prelude.. Lens.mapping Lens.coerced++-- | Undocumented member.+createFlow_source :: Lens.Lens' CreateFlow (Prelude.Maybe SetSourceRequest)+createFlow_source = Lens.lens (\CreateFlow' {source} -> source) (\s@CreateFlow' {} a -> s {source = a} :: CreateFlow)++-- | Undocumented member.+createFlow_sourceFailoverConfig :: Lens.Lens' CreateFlow (Prelude.Maybe FailoverConfig)+createFlow_sourceFailoverConfig = Lens.lens (\CreateFlow' {sourceFailoverConfig} -> sourceFailoverConfig) (\s@CreateFlow' {} a -> s {sourceFailoverConfig = a} :: CreateFlow)++-- | Undocumented member.+createFlow_sources :: Lens.Lens' CreateFlow (Prelude.Maybe [SetSourceRequest])+createFlow_sources = Lens.lens (\CreateFlow' {sources} -> sources) (\s@CreateFlow' {} a -> s {sources = a} :: CreateFlow) Prelude.. Lens.mapping Lens.coerced++-- | The VPC interfaces you want on the flow.+createFlow_vpcInterfaces :: Lens.Lens' CreateFlow (Prelude.Maybe [VpcInterfaceRequest])+createFlow_vpcInterfaces = Lens.lens (\CreateFlow' {vpcInterfaces} -> vpcInterfaces) (\s@CreateFlow' {} a -> s {vpcInterfaces = a} :: CreateFlow) Prelude.. Lens.mapping Lens.coerced++-- | The name of the flow.+createFlow_name :: Lens.Lens' CreateFlow Prelude.Text+createFlow_name = Lens.lens (\CreateFlow' {name} -> name) (\s@CreateFlow' {} a -> s {name = a} :: CreateFlow)++instance Core.AWSRequest CreateFlow where+  type AWSResponse CreateFlow = CreateFlowResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateFlowResponse'+            Prelude.<$> (x Data..?> "flow")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateFlow where+  hashWithSalt _salt CreateFlow' {..} =+    _salt+      `Prelude.hashWithSalt` availabilityZone+      `Prelude.hashWithSalt` entitlements+      `Prelude.hashWithSalt` maintenance+      `Prelude.hashWithSalt` mediaStreams+      `Prelude.hashWithSalt` outputs+      `Prelude.hashWithSalt` source+      `Prelude.hashWithSalt` sourceFailoverConfig+      `Prelude.hashWithSalt` sources+      `Prelude.hashWithSalt` vpcInterfaces+      `Prelude.hashWithSalt` name++instance Prelude.NFData CreateFlow where+  rnf CreateFlow' {..} =+    Prelude.rnf availabilityZone+      `Prelude.seq` Prelude.rnf entitlements+      `Prelude.seq` Prelude.rnf maintenance+      `Prelude.seq` Prelude.rnf mediaStreams+      `Prelude.seq` Prelude.rnf outputs+      `Prelude.seq` Prelude.rnf source+      `Prelude.seq` Prelude.rnf sourceFailoverConfig+      `Prelude.seq` Prelude.rnf sources+      `Prelude.seq` Prelude.rnf vpcInterfaces+      `Prelude.seq` Prelude.rnf name++instance Data.ToHeaders CreateFlow where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateFlow where+  toJSON CreateFlow' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("availabilityZone" Data..=)+              Prelude.<$> availabilityZone,+            ("entitlements" Data..=) Prelude.<$> entitlements,+            ("maintenance" Data..=) Prelude.<$> maintenance,+            ("mediaStreams" Data..=) Prelude.<$> mediaStreams,+            ("outputs" Data..=) Prelude.<$> outputs,+            ("source" Data..=) Prelude.<$> source,+            ("sourceFailoverConfig" Data..=)+              Prelude.<$> sourceFailoverConfig,+            ("sources" Data..=) Prelude.<$> sources,+            ("vpcInterfaces" Data..=) Prelude.<$> vpcInterfaces,+            Prelude.Just ("name" Data..= name)+          ]+      )++instance Data.ToPath CreateFlow where+  toPath = Prelude.const "/v1/flows"++instance Data.ToQuery CreateFlow where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateFlowResponse' smart constructor.+data CreateFlowResponse = CreateFlowResponse'+  { flow :: Prelude.Maybe Flow,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateFlowResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'flow', 'createFlowResponse_flow' - Undocumented member.+--+-- 'httpStatus', 'createFlowResponse_httpStatus' - The response's http status code.+newCreateFlowResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateFlowResponse+newCreateFlowResponse pHttpStatus_ =+  CreateFlowResponse'+    { flow = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Undocumented member.+createFlowResponse_flow :: Lens.Lens' CreateFlowResponse (Prelude.Maybe Flow)+createFlowResponse_flow = Lens.lens (\CreateFlowResponse' {flow} -> flow) (\s@CreateFlowResponse' {} a -> s {flow = a} :: CreateFlowResponse)++-- | The response's http status code.+createFlowResponse_httpStatus :: Lens.Lens' CreateFlowResponse Prelude.Int+createFlowResponse_httpStatus = Lens.lens (\CreateFlowResponse' {httpStatus} -> httpStatus) (\s@CreateFlowResponse' {} a -> s {httpStatus = a} :: CreateFlowResponse)++instance Prelude.NFData CreateFlowResponse where+  rnf CreateFlowResponse' {..} =+    Prelude.rnf flow+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MediaConnect/DeleteFlow.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.MediaConnect.DeleteFlow+-- 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 flow. Before you can delete a flow, you must stop the flow.+module Amazonka.MediaConnect.DeleteFlow+  ( -- * Creating a Request+    DeleteFlow (..),+    newDeleteFlow,++    -- * Request Lenses+    deleteFlow_flowArn,++    -- * Destructuring the Response+    DeleteFlowResponse (..),+    newDeleteFlowResponse,++    -- * Response Lenses+    deleteFlowResponse_flowArn,+    deleteFlowResponse_status,+    deleteFlowResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaConnect.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteFlow' smart constructor.+data DeleteFlow = DeleteFlow'+  { -- | The ARN of the flow that you want to delete.+    flowArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteFlow' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'flowArn', 'deleteFlow_flowArn' - The ARN of the flow that you want to delete.+newDeleteFlow ::+  -- | 'flowArn'+  Prelude.Text ->+  DeleteFlow+newDeleteFlow pFlowArn_ =+  DeleteFlow' {flowArn = pFlowArn_}++-- | The ARN of the flow that you want to delete.+deleteFlow_flowArn :: Lens.Lens' DeleteFlow Prelude.Text+deleteFlow_flowArn = Lens.lens (\DeleteFlow' {flowArn} -> flowArn) (\s@DeleteFlow' {} a -> s {flowArn = a} :: DeleteFlow)++instance Core.AWSRequest DeleteFlow where+  type AWSResponse DeleteFlow = DeleteFlowResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DeleteFlowResponse'+            Prelude.<$> (x Data..?> "flowArn")+            Prelude.<*> (x Data..?> "status")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteFlow where+  hashWithSalt _salt DeleteFlow' {..} =+    _salt `Prelude.hashWithSalt` flowArn++instance Prelude.NFData DeleteFlow where+  rnf DeleteFlow' {..} = Prelude.rnf flowArn++instance Data.ToHeaders DeleteFlow where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DeleteFlow where+  toPath DeleteFlow' {..} =+    Prelude.mconcat ["/v1/flows/", Data.toBS flowArn]++instance Data.ToQuery DeleteFlow where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteFlowResponse' smart constructor.+data DeleteFlowResponse = DeleteFlowResponse'+  { -- | The ARN of the flow that was deleted.+    flowArn :: Prelude.Maybe Prelude.Text,+    -- | The status of the flow when the DeleteFlow process begins.+    status :: Prelude.Maybe Status,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteFlowResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'flowArn', 'deleteFlowResponse_flowArn' - The ARN of the flow that was deleted.+--+-- 'status', 'deleteFlowResponse_status' - The status of the flow when the DeleteFlow process begins.+--+-- 'httpStatus', 'deleteFlowResponse_httpStatus' - The response's http status code.+newDeleteFlowResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteFlowResponse+newDeleteFlowResponse pHttpStatus_ =+  DeleteFlowResponse'+    { flowArn = Prelude.Nothing,+      status = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The ARN of the flow that was deleted.+deleteFlowResponse_flowArn :: Lens.Lens' DeleteFlowResponse (Prelude.Maybe Prelude.Text)+deleteFlowResponse_flowArn = Lens.lens (\DeleteFlowResponse' {flowArn} -> flowArn) (\s@DeleteFlowResponse' {} a -> s {flowArn = a} :: DeleteFlowResponse)++-- | The status of the flow when the DeleteFlow process begins.+deleteFlowResponse_status :: Lens.Lens' DeleteFlowResponse (Prelude.Maybe Status)+deleteFlowResponse_status = Lens.lens (\DeleteFlowResponse' {status} -> status) (\s@DeleteFlowResponse' {} a -> s {status = a} :: DeleteFlowResponse)++-- | The response's http status code.+deleteFlowResponse_httpStatus :: Lens.Lens' DeleteFlowResponse Prelude.Int+deleteFlowResponse_httpStatus = Lens.lens (\DeleteFlowResponse' {httpStatus} -> httpStatus) (\s@DeleteFlowResponse' {} a -> s {httpStatus = a} :: DeleteFlowResponse)++instance Prelude.NFData DeleteFlowResponse where+  rnf DeleteFlowResponse' {..} =+    Prelude.rnf flowArn+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MediaConnect/DescribeFlow.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.MediaConnect.DescribeFlow+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Displays the details of a flow. The response includes the flow ARN,+-- name, and Availability Zone, as well as details about the source,+-- outputs, and entitlements.+module Amazonka.MediaConnect.DescribeFlow+  ( -- * Creating a Request+    DescribeFlow (..),+    newDescribeFlow,++    -- * Request Lenses+    describeFlow_flowArn,++    -- * Destructuring the Response+    DescribeFlowResponse (..),+    newDescribeFlowResponse,++    -- * Response Lenses+    describeFlowResponse_flow,+    describeFlowResponse_messages,+    describeFlowResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaConnect.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeFlow' smart constructor.+data DescribeFlow = DescribeFlow'+  { -- | The ARN of the flow that you want to describe.+    flowArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeFlow' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'flowArn', 'describeFlow_flowArn' - The ARN of the flow that you want to describe.+newDescribeFlow ::+  -- | 'flowArn'+  Prelude.Text ->+  DescribeFlow+newDescribeFlow pFlowArn_ =+  DescribeFlow' {flowArn = pFlowArn_}++-- | The ARN of the flow that you want to describe.+describeFlow_flowArn :: Lens.Lens' DescribeFlow Prelude.Text+describeFlow_flowArn = Lens.lens (\DescribeFlow' {flowArn} -> flowArn) (\s@DescribeFlow' {} a -> s {flowArn = a} :: DescribeFlow)++instance Core.AWSRequest DescribeFlow where+  type AWSResponse DescribeFlow = DescribeFlowResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeFlowResponse'+            Prelude.<$> (x Data..?> "flow")+            Prelude.<*> (x Data..?> "messages")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeFlow where+  hashWithSalt _salt DescribeFlow' {..} =+    _salt `Prelude.hashWithSalt` flowArn++instance Prelude.NFData DescribeFlow where+  rnf DescribeFlow' {..} = Prelude.rnf flowArn++instance Data.ToHeaders DescribeFlow where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DescribeFlow where+  toPath DescribeFlow' {..} =+    Prelude.mconcat ["/v1/flows/", Data.toBS flowArn]++instance Data.ToQuery DescribeFlow where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeFlowResponse' smart constructor.+data DescribeFlowResponse = DescribeFlowResponse'+  { flow :: Prelude.Maybe Flow,+    messages :: Prelude.Maybe Messages,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeFlowResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'flow', 'describeFlowResponse_flow' - Undocumented member.+--+-- 'messages', 'describeFlowResponse_messages' - Undocumented member.+--+-- 'httpStatus', 'describeFlowResponse_httpStatus' - The response's http status code.+newDescribeFlowResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeFlowResponse+newDescribeFlowResponse pHttpStatus_ =+  DescribeFlowResponse'+    { flow = Prelude.Nothing,+      messages = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Undocumented member.+describeFlowResponse_flow :: Lens.Lens' DescribeFlowResponse (Prelude.Maybe Flow)+describeFlowResponse_flow = Lens.lens (\DescribeFlowResponse' {flow} -> flow) (\s@DescribeFlowResponse' {} a -> s {flow = a} :: DescribeFlowResponse)++-- | Undocumented member.+describeFlowResponse_messages :: Lens.Lens' DescribeFlowResponse (Prelude.Maybe Messages)+describeFlowResponse_messages = Lens.lens (\DescribeFlowResponse' {messages} -> messages) (\s@DescribeFlowResponse' {} a -> s {messages = a} :: DescribeFlowResponse)++-- | The response's http status code.+describeFlowResponse_httpStatus :: Lens.Lens' DescribeFlowResponse Prelude.Int+describeFlowResponse_httpStatus = Lens.lens (\DescribeFlowResponse' {httpStatus} -> httpStatus) (\s@DescribeFlowResponse' {} a -> s {httpStatus = a} :: DescribeFlowResponse)++instance Prelude.NFData DescribeFlowResponse where+  rnf DescribeFlowResponse' {..} =+    Prelude.rnf flow+      `Prelude.seq` Prelude.rnf messages+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MediaConnect/DescribeOffering.hs view
@@ -0,0 +1,160 @@+{-# 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.MediaConnect.DescribeOffering+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Displays the details of an offering. The response includes the offering+-- description, duration, outbound bandwidth, price, and Amazon Resource+-- Name (ARN).+module Amazonka.MediaConnect.DescribeOffering+  ( -- * Creating a Request+    DescribeOffering (..),+    newDescribeOffering,++    -- * Request Lenses+    describeOffering_offeringArn,++    -- * Destructuring the Response+    DescribeOfferingResponse (..),+    newDescribeOfferingResponse,++    -- * Response Lenses+    describeOfferingResponse_offering,+    describeOfferingResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaConnect.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeOffering' smart constructor.+data DescribeOffering = DescribeOffering'+  { -- | The Amazon Resource Name (ARN) of the offering.+    offeringArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeOffering' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'offeringArn', 'describeOffering_offeringArn' - The Amazon Resource Name (ARN) of the offering.+newDescribeOffering ::+  -- | 'offeringArn'+  Prelude.Text ->+  DescribeOffering+newDescribeOffering pOfferingArn_ =+  DescribeOffering' {offeringArn = pOfferingArn_}++-- | The Amazon Resource Name (ARN) of the offering.+describeOffering_offeringArn :: Lens.Lens' DescribeOffering Prelude.Text+describeOffering_offeringArn = Lens.lens (\DescribeOffering' {offeringArn} -> offeringArn) (\s@DescribeOffering' {} a -> s {offeringArn = a} :: DescribeOffering)++instance Core.AWSRequest DescribeOffering where+  type+    AWSResponse DescribeOffering =+      DescribeOfferingResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeOfferingResponse'+            Prelude.<$> (x Data..?> "offering")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeOffering where+  hashWithSalt _salt DescribeOffering' {..} =+    _salt `Prelude.hashWithSalt` offeringArn++instance Prelude.NFData DescribeOffering where+  rnf DescribeOffering' {..} = Prelude.rnf offeringArn++instance Data.ToHeaders DescribeOffering where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DescribeOffering where+  toPath DescribeOffering' {..} =+    Prelude.mconcat+      ["/v1/offerings/", Data.toBS offeringArn]++instance Data.ToQuery DescribeOffering where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeOfferingResponse' smart constructor.+data DescribeOfferingResponse = DescribeOfferingResponse'+  { offering :: Prelude.Maybe Offering,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeOfferingResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'offering', 'describeOfferingResponse_offering' - Undocumented member.+--+-- 'httpStatus', 'describeOfferingResponse_httpStatus' - The response's http status code.+newDescribeOfferingResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeOfferingResponse+newDescribeOfferingResponse pHttpStatus_ =+  DescribeOfferingResponse'+    { offering =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Undocumented member.+describeOfferingResponse_offering :: Lens.Lens' DescribeOfferingResponse (Prelude.Maybe Offering)+describeOfferingResponse_offering = Lens.lens (\DescribeOfferingResponse' {offering} -> offering) (\s@DescribeOfferingResponse' {} a -> s {offering = a} :: DescribeOfferingResponse)++-- | The response's http status code.+describeOfferingResponse_httpStatus :: Lens.Lens' DescribeOfferingResponse Prelude.Int+describeOfferingResponse_httpStatus = Lens.lens (\DescribeOfferingResponse' {httpStatus} -> httpStatus) (\s@DescribeOfferingResponse' {} a -> s {httpStatus = a} :: DescribeOfferingResponse)++instance Prelude.NFData DescribeOfferingResponse where+  rnf DescribeOfferingResponse' {..} =+    Prelude.rnf offering+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MediaConnect/DescribeReservation.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.MediaConnect.DescribeReservation+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Displays the details of a reservation. The response includes the+-- reservation name, state, start date and time, and the details of the+-- offering that make up the rest of the reservation (such as price,+-- duration, and outbound bandwidth).+module Amazonka.MediaConnect.DescribeReservation+  ( -- * Creating a Request+    DescribeReservation (..),+    newDescribeReservation,++    -- * Request Lenses+    describeReservation_reservationArn,++    -- * Destructuring the Response+    DescribeReservationResponse (..),+    newDescribeReservationResponse,++    -- * Response Lenses+    describeReservationResponse_reservation,+    describeReservationResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaConnect.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeReservation' smart constructor.+data DescribeReservation = DescribeReservation'+  { -- | The Amazon Resource Name (ARN) of the reservation.+    reservationArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeReservation' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'reservationArn', 'describeReservation_reservationArn' - The Amazon Resource Name (ARN) of the reservation.+newDescribeReservation ::+  -- | 'reservationArn'+  Prelude.Text ->+  DescribeReservation+newDescribeReservation pReservationArn_ =+  DescribeReservation'+    { reservationArn =+        pReservationArn_+    }++-- | The Amazon Resource Name (ARN) of the reservation.+describeReservation_reservationArn :: Lens.Lens' DescribeReservation Prelude.Text+describeReservation_reservationArn = Lens.lens (\DescribeReservation' {reservationArn} -> reservationArn) (\s@DescribeReservation' {} a -> s {reservationArn = a} :: DescribeReservation)++instance Core.AWSRequest DescribeReservation where+  type+    AWSResponse DescribeReservation =+      DescribeReservationResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeReservationResponse'+            Prelude.<$> (x Data..?> "reservation")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeReservation where+  hashWithSalt _salt DescribeReservation' {..} =+    _salt `Prelude.hashWithSalt` reservationArn++instance Prelude.NFData DescribeReservation where+  rnf DescribeReservation' {..} =+    Prelude.rnf reservationArn++instance Data.ToHeaders DescribeReservation where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DescribeReservation where+  toPath DescribeReservation' {..} =+    Prelude.mconcat+      ["/v1/reservations/", Data.toBS reservationArn]++instance Data.ToQuery DescribeReservation where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeReservationResponse' smart constructor.+data DescribeReservationResponse = DescribeReservationResponse'+  { reservation :: Prelude.Maybe Reservation,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeReservationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'reservation', 'describeReservationResponse_reservation' - Undocumented member.+--+-- 'httpStatus', 'describeReservationResponse_httpStatus' - The response's http status code.+newDescribeReservationResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeReservationResponse+newDescribeReservationResponse pHttpStatus_ =+  DescribeReservationResponse'+    { reservation =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Undocumented member.+describeReservationResponse_reservation :: Lens.Lens' DescribeReservationResponse (Prelude.Maybe Reservation)+describeReservationResponse_reservation = Lens.lens (\DescribeReservationResponse' {reservation} -> reservation) (\s@DescribeReservationResponse' {} a -> s {reservation = a} :: DescribeReservationResponse)++-- | The response's http status code.+describeReservationResponse_httpStatus :: Lens.Lens' DescribeReservationResponse Prelude.Int+describeReservationResponse_httpStatus = Lens.lens (\DescribeReservationResponse' {httpStatus} -> httpStatus) (\s@DescribeReservationResponse' {} a -> s {httpStatus = a} :: DescribeReservationResponse)++instance Prelude.NFData DescribeReservationResponse where+  rnf DescribeReservationResponse' {..} =+    Prelude.rnf reservation+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MediaConnect/GrantFlowEntitlements.hs view
@@ -0,0 +1,196 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaConnect.GrantFlowEntitlements+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Grants entitlements to an existing flow.+module Amazonka.MediaConnect.GrantFlowEntitlements+  ( -- * Creating a Request+    GrantFlowEntitlements (..),+    newGrantFlowEntitlements,++    -- * Request Lenses+    grantFlowEntitlements_flowArn,+    grantFlowEntitlements_entitlements,++    -- * Destructuring the Response+    GrantFlowEntitlementsResponse (..),+    newGrantFlowEntitlementsResponse,++    -- * Response Lenses+    grantFlowEntitlementsResponse_entitlements,+    grantFlowEntitlementsResponse_flowArn,+    grantFlowEntitlementsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaConnect.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | A request to grant entitlements on a flow.+--+-- /See:/ 'newGrantFlowEntitlements' smart constructor.+data GrantFlowEntitlements = GrantFlowEntitlements'+  { -- | The flow that you want to grant entitlements on.+    flowArn :: Prelude.Text,+    -- | The list of entitlements that you want to grant.+    entitlements :: [GrantEntitlementRequest]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GrantFlowEntitlements' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'flowArn', 'grantFlowEntitlements_flowArn' - The flow that you want to grant entitlements on.+--+-- 'entitlements', 'grantFlowEntitlements_entitlements' - The list of entitlements that you want to grant.+newGrantFlowEntitlements ::+  -- | 'flowArn'+  Prelude.Text ->+  GrantFlowEntitlements+newGrantFlowEntitlements pFlowArn_ =+  GrantFlowEntitlements'+    { flowArn = pFlowArn_,+      entitlements = Prelude.mempty+    }++-- | The flow that you want to grant entitlements on.+grantFlowEntitlements_flowArn :: Lens.Lens' GrantFlowEntitlements Prelude.Text+grantFlowEntitlements_flowArn = Lens.lens (\GrantFlowEntitlements' {flowArn} -> flowArn) (\s@GrantFlowEntitlements' {} a -> s {flowArn = a} :: GrantFlowEntitlements)++-- | The list of entitlements that you want to grant.+grantFlowEntitlements_entitlements :: Lens.Lens' GrantFlowEntitlements [GrantEntitlementRequest]+grantFlowEntitlements_entitlements = Lens.lens (\GrantFlowEntitlements' {entitlements} -> entitlements) (\s@GrantFlowEntitlements' {} a -> s {entitlements = a} :: GrantFlowEntitlements) Prelude.. Lens.coerced++instance Core.AWSRequest GrantFlowEntitlements where+  type+    AWSResponse GrantFlowEntitlements =+      GrantFlowEntitlementsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GrantFlowEntitlementsResponse'+            Prelude.<$> (x Data..?> "entitlements" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "flowArn")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GrantFlowEntitlements where+  hashWithSalt _salt GrantFlowEntitlements' {..} =+    _salt+      `Prelude.hashWithSalt` flowArn+      `Prelude.hashWithSalt` entitlements++instance Prelude.NFData GrantFlowEntitlements where+  rnf GrantFlowEntitlements' {..} =+    Prelude.rnf flowArn+      `Prelude.seq` Prelude.rnf entitlements++instance Data.ToHeaders GrantFlowEntitlements where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON GrantFlowEntitlements where+  toJSON GrantFlowEntitlements' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("entitlements" Data..= entitlements)]+      )++instance Data.ToPath GrantFlowEntitlements where+  toPath GrantFlowEntitlements' {..} =+    Prelude.mconcat+      ["/v1/flows/", Data.toBS flowArn, "/entitlements"]++instance Data.ToQuery GrantFlowEntitlements where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGrantFlowEntitlementsResponse' smart constructor.+data GrantFlowEntitlementsResponse = GrantFlowEntitlementsResponse'+  { -- | The entitlements that were just granted.+    entitlements :: Prelude.Maybe [Entitlement],+    -- | The ARN of the flow that these entitlements were granted to.+    flowArn :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GrantFlowEntitlementsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'entitlements', 'grantFlowEntitlementsResponse_entitlements' - The entitlements that were just granted.+--+-- 'flowArn', 'grantFlowEntitlementsResponse_flowArn' - The ARN of the flow that these entitlements were granted to.+--+-- 'httpStatus', 'grantFlowEntitlementsResponse_httpStatus' - The response's http status code.+newGrantFlowEntitlementsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GrantFlowEntitlementsResponse+newGrantFlowEntitlementsResponse pHttpStatus_ =+  GrantFlowEntitlementsResponse'+    { entitlements =+        Prelude.Nothing,+      flowArn = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The entitlements that were just granted.+grantFlowEntitlementsResponse_entitlements :: Lens.Lens' GrantFlowEntitlementsResponse (Prelude.Maybe [Entitlement])+grantFlowEntitlementsResponse_entitlements = Lens.lens (\GrantFlowEntitlementsResponse' {entitlements} -> entitlements) (\s@GrantFlowEntitlementsResponse' {} a -> s {entitlements = a} :: GrantFlowEntitlementsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The ARN of the flow that these entitlements were granted to.+grantFlowEntitlementsResponse_flowArn :: Lens.Lens' GrantFlowEntitlementsResponse (Prelude.Maybe Prelude.Text)+grantFlowEntitlementsResponse_flowArn = Lens.lens (\GrantFlowEntitlementsResponse' {flowArn} -> flowArn) (\s@GrantFlowEntitlementsResponse' {} a -> s {flowArn = a} :: GrantFlowEntitlementsResponse)++-- | The response's http status code.+grantFlowEntitlementsResponse_httpStatus :: Lens.Lens' GrantFlowEntitlementsResponse Prelude.Int+grantFlowEntitlementsResponse_httpStatus = Lens.lens (\GrantFlowEntitlementsResponse' {httpStatus} -> httpStatus) (\s@GrantFlowEntitlementsResponse' {} a -> s {httpStatus = a} :: GrantFlowEntitlementsResponse)++instance Prelude.NFData GrantFlowEntitlementsResponse where+  rnf GrantFlowEntitlementsResponse' {..} =+    Prelude.rnf entitlements+      `Prelude.seq` Prelude.rnf flowArn+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MediaConnect/Lens.hs view
@@ -0,0 +1,669 @@+{-# 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.MediaConnect.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.MediaConnect.Lens+  ( -- * Operations++    -- ** AddFlowMediaStreams+    addFlowMediaStreams_flowArn,+    addFlowMediaStreams_mediaStreams,+    addFlowMediaStreamsResponse_flowArn,+    addFlowMediaStreamsResponse_mediaStreams,+    addFlowMediaStreamsResponse_httpStatus,++    -- ** AddFlowOutputs+    addFlowOutputs_flowArn,+    addFlowOutputs_outputs,+    addFlowOutputsResponse_flowArn,+    addFlowOutputsResponse_outputs,+    addFlowOutputsResponse_httpStatus,++    -- ** AddFlowSources+    addFlowSources_flowArn,+    addFlowSources_sources,+    addFlowSourcesResponse_flowArn,+    addFlowSourcesResponse_sources,+    addFlowSourcesResponse_httpStatus,++    -- ** AddFlowVpcInterfaces+    addFlowVpcInterfaces_flowArn,+    addFlowVpcInterfaces_vpcInterfaces,+    addFlowVpcInterfacesResponse_flowArn,+    addFlowVpcInterfacesResponse_vpcInterfaces,+    addFlowVpcInterfacesResponse_httpStatus,++    -- ** CreateFlow+    createFlow_availabilityZone,+    createFlow_entitlements,+    createFlow_maintenance,+    createFlow_mediaStreams,+    createFlow_outputs,+    createFlow_source,+    createFlow_sourceFailoverConfig,+    createFlow_sources,+    createFlow_vpcInterfaces,+    createFlow_name,+    createFlowResponse_flow,+    createFlowResponse_httpStatus,++    -- ** DeleteFlow+    deleteFlow_flowArn,+    deleteFlowResponse_flowArn,+    deleteFlowResponse_status,+    deleteFlowResponse_httpStatus,++    -- ** DescribeFlow+    describeFlow_flowArn,+    describeFlowResponse_flow,+    describeFlowResponse_messages,+    describeFlowResponse_httpStatus,++    -- ** DescribeOffering+    describeOffering_offeringArn,+    describeOfferingResponse_offering,+    describeOfferingResponse_httpStatus,++    -- ** DescribeReservation+    describeReservation_reservationArn,+    describeReservationResponse_reservation,+    describeReservationResponse_httpStatus,++    -- ** GrantFlowEntitlements+    grantFlowEntitlements_flowArn,+    grantFlowEntitlements_entitlements,+    grantFlowEntitlementsResponse_entitlements,+    grantFlowEntitlementsResponse_flowArn,+    grantFlowEntitlementsResponse_httpStatus,++    -- ** ListEntitlements+    listEntitlements_maxResults,+    listEntitlements_nextToken,+    listEntitlementsResponse_entitlements,+    listEntitlementsResponse_nextToken,+    listEntitlementsResponse_httpStatus,++    -- ** ListFlows+    listFlows_maxResults,+    listFlows_nextToken,+    listFlowsResponse_flows,+    listFlowsResponse_nextToken,+    listFlowsResponse_httpStatus,++    -- ** ListOfferings+    listOfferings_maxResults,+    listOfferings_nextToken,+    listOfferingsResponse_nextToken,+    listOfferingsResponse_offerings,+    listOfferingsResponse_httpStatus,++    -- ** ListReservations+    listReservations_maxResults,+    listReservations_nextToken,+    listReservationsResponse_nextToken,+    listReservationsResponse_reservations,+    listReservationsResponse_httpStatus,++    -- ** ListTagsForResource+    listTagsForResource_resourceArn,+    listTagsForResourceResponse_tags,+    listTagsForResourceResponse_httpStatus,++    -- ** PurchaseOffering+    purchaseOffering_offeringArn,+    purchaseOffering_start,+    purchaseOffering_reservationName,+    purchaseOfferingResponse_reservation,+    purchaseOfferingResponse_httpStatus,++    -- ** RemoveFlowMediaStream+    removeFlowMediaStream_flowArn,+    removeFlowMediaStream_mediaStreamName,+    removeFlowMediaStreamResponse_flowArn,+    removeFlowMediaStreamResponse_mediaStreamName,+    removeFlowMediaStreamResponse_httpStatus,++    -- ** RemoveFlowOutput+    removeFlowOutput_flowArn,+    removeFlowOutput_outputArn,+    removeFlowOutputResponse_flowArn,+    removeFlowOutputResponse_outputArn,+    removeFlowOutputResponse_httpStatus,++    -- ** RemoveFlowSource+    removeFlowSource_flowArn,+    removeFlowSource_sourceArn,+    removeFlowSourceResponse_flowArn,+    removeFlowSourceResponse_sourceArn,+    removeFlowSourceResponse_httpStatus,++    -- ** RemoveFlowVpcInterface+    removeFlowVpcInterface_flowArn,+    removeFlowVpcInterface_vpcInterfaceName,+    removeFlowVpcInterfaceResponse_flowArn,+    removeFlowVpcInterfaceResponse_nonDeletedNetworkInterfaceIds,+    removeFlowVpcInterfaceResponse_vpcInterfaceName,+    removeFlowVpcInterfaceResponse_httpStatus,++    -- ** RevokeFlowEntitlement+    revokeFlowEntitlement_flowArn,+    revokeFlowEntitlement_entitlementArn,+    revokeFlowEntitlementResponse_entitlementArn,+    revokeFlowEntitlementResponse_flowArn,+    revokeFlowEntitlementResponse_httpStatus,++    -- ** StartFlow+    startFlow_flowArn,+    startFlowResponse_flowArn,+    startFlowResponse_status,+    startFlowResponse_httpStatus,++    -- ** StopFlow+    stopFlow_flowArn,+    stopFlowResponse_flowArn,+    stopFlowResponse_status,+    stopFlowResponse_httpStatus,++    -- ** TagResource+    tagResource_resourceArn,+    tagResource_tags,++    -- ** UntagResource+    untagResource_tagKeys,+    untagResource_resourceArn,++    -- ** UpdateFlow+    updateFlow_maintenance,+    updateFlow_sourceFailoverConfig,+    updateFlow_flowArn,+    updateFlowResponse_flow,+    updateFlowResponse_httpStatus,++    -- ** UpdateFlowEntitlement+    updateFlowEntitlement_description,+    updateFlowEntitlement_encryption,+    updateFlowEntitlement_entitlementStatus,+    updateFlowEntitlement_subscribers,+    updateFlowEntitlement_flowArn,+    updateFlowEntitlement_entitlementArn,+    updateFlowEntitlementResponse_entitlement,+    updateFlowEntitlementResponse_flowArn,+    updateFlowEntitlementResponse_httpStatus,++    -- ** UpdateFlowMediaStream+    updateFlowMediaStream_attributes,+    updateFlowMediaStream_clockRate,+    updateFlowMediaStream_description,+    updateFlowMediaStream_mediaStreamType,+    updateFlowMediaStream_videoFormat,+    updateFlowMediaStream_flowArn,+    updateFlowMediaStream_mediaStreamName,+    updateFlowMediaStreamResponse_flowArn,+    updateFlowMediaStreamResponse_mediaStream,+    updateFlowMediaStreamResponse_httpStatus,++    -- ** UpdateFlowOutput+    updateFlowOutput_cidrAllowList,+    updateFlowOutput_description,+    updateFlowOutput_destination,+    updateFlowOutput_encryption,+    updateFlowOutput_maxLatency,+    updateFlowOutput_mediaStreamOutputConfigurations,+    updateFlowOutput_minLatency,+    updateFlowOutput_port,+    updateFlowOutput_protocol,+    updateFlowOutput_remoteId,+    updateFlowOutput_senderControlPort,+    updateFlowOutput_senderIpAddress,+    updateFlowOutput_smoothingLatency,+    updateFlowOutput_streamId,+    updateFlowOutput_vpcInterfaceAttachment,+    updateFlowOutput_flowArn,+    updateFlowOutput_outputArn,+    updateFlowOutputResponse_flowArn,+    updateFlowOutputResponse_output,+    updateFlowOutputResponse_httpStatus,++    -- ** UpdateFlowSource+    updateFlowSource_decryption,+    updateFlowSource_description,+    updateFlowSource_entitlementArn,+    updateFlowSource_ingestPort,+    updateFlowSource_maxBitrate,+    updateFlowSource_maxLatency,+    updateFlowSource_maxSyncBuffer,+    updateFlowSource_mediaStreamSourceConfigurations,+    updateFlowSource_minLatency,+    updateFlowSource_protocol,+    updateFlowSource_senderControlPort,+    updateFlowSource_senderIpAddress,+    updateFlowSource_sourceListenerAddress,+    updateFlowSource_sourceListenerPort,+    updateFlowSource_streamId,+    updateFlowSource_vpcInterfaceName,+    updateFlowSource_whitelistCidr,+    updateFlowSource_flowArn,+    updateFlowSource_sourceArn,+    updateFlowSourceResponse_flowArn,+    updateFlowSourceResponse_source,+    updateFlowSourceResponse_httpStatus,++    -- * Types++    -- ** AddMaintenance+    addMaintenance_maintenanceDay,+    addMaintenance_maintenanceStartHour,++    -- ** AddMediaStreamRequest+    addMediaStreamRequest_attributes,+    addMediaStreamRequest_clockRate,+    addMediaStreamRequest_description,+    addMediaStreamRequest_videoFormat,+    addMediaStreamRequest_mediaStreamType,+    addMediaStreamRequest_mediaStreamId,+    addMediaStreamRequest_mediaStreamName,++    -- ** AddOutputRequest+    addOutputRequest_cidrAllowList,+    addOutputRequest_description,+    addOutputRequest_destination,+    addOutputRequest_encryption,+    addOutputRequest_maxLatency,+    addOutputRequest_mediaStreamOutputConfigurations,+    addOutputRequest_minLatency,+    addOutputRequest_name,+    addOutputRequest_port,+    addOutputRequest_remoteId,+    addOutputRequest_senderControlPort,+    addOutputRequest_smoothingLatency,+    addOutputRequest_streamId,+    addOutputRequest_vpcInterfaceAttachment,+    addOutputRequest_protocol,++    -- ** DestinationConfiguration+    destinationConfiguration_destinationIp,+    destinationConfiguration_destinationPort,+    destinationConfiguration_interface,+    destinationConfiguration_outboundIp,++    -- ** DestinationConfigurationRequest+    destinationConfigurationRequest_destinationIp,+    destinationConfigurationRequest_destinationPort,+    destinationConfigurationRequest_interface,++    -- ** EncodingParameters+    encodingParameters_encoderProfile,+    encodingParameters_compressionFactor,++    -- ** EncodingParametersRequest+    encodingParametersRequest_encoderProfile,+    encodingParametersRequest_compressionFactor,++    -- ** Encryption+    encryption_algorithm,+    encryption_constantInitializationVector,+    encryption_deviceId,+    encryption_keyType,+    encryption_region,+    encryption_resourceId,+    encryption_secretArn,+    encryption_url,+    encryption_roleArn,++    -- ** Entitlement+    entitlement_dataTransferSubscriberFeePercent,+    entitlement_description,+    entitlement_encryption,+    entitlement_entitlementStatus,+    entitlement_entitlementArn,+    entitlement_subscribers,+    entitlement_name,++    -- ** FailoverConfig+    failoverConfig_failoverMode,+    failoverConfig_recoveryWindow,+    failoverConfig_sourcePriority,+    failoverConfig_state,++    -- ** Flow+    flow_description,+    flow_egressIp,+    flow_maintenance,+    flow_mediaStreams,+    flow_sourceFailoverConfig,+    flow_sources,+    flow_vpcInterfaces,+    flow_status,+    flow_entitlements,+    flow_outputs,+    flow_availabilityZone,+    flow_flowArn,+    flow_source,+    flow_name,++    -- ** Fmtp+    fmtp_channelOrder,+    fmtp_colorimetry,+    fmtp_exactFramerate,+    fmtp_par,+    fmtp_range,+    fmtp_scanMode,+    fmtp_tcs,++    -- ** FmtpRequest+    fmtpRequest_channelOrder,+    fmtpRequest_colorimetry,+    fmtpRequest_exactFramerate,+    fmtpRequest_par,+    fmtpRequest_range,+    fmtpRequest_scanMode,+    fmtpRequest_tcs,++    -- ** GrantEntitlementRequest+    grantEntitlementRequest_dataTransferSubscriberFeePercent,+    grantEntitlementRequest_description,+    grantEntitlementRequest_encryption,+    grantEntitlementRequest_entitlementStatus,+    grantEntitlementRequest_name,+    grantEntitlementRequest_subscribers,++    -- ** InputConfiguration+    inputConfiguration_inputPort,+    inputConfiguration_inputIp,+    inputConfiguration_interface,++    -- ** InputConfigurationRequest+    inputConfigurationRequest_inputPort,+    inputConfigurationRequest_interface,++    -- ** Interface+    interface_name,++    -- ** InterfaceRequest+    interfaceRequest_name,++    -- ** ListedEntitlement+    listedEntitlement_dataTransferSubscriberFeePercent,+    listedEntitlement_entitlementArn,+    listedEntitlement_entitlementName,++    -- ** ListedFlow+    listedFlow_maintenance,+    listedFlow_status,+    listedFlow_description,+    listedFlow_sourceType,+    listedFlow_availabilityZone,+    listedFlow_flowArn,+    listedFlow_name,++    -- ** Maintenance+    maintenance_maintenanceDay,+    maintenance_maintenanceDeadline,+    maintenance_maintenanceScheduledDate,+    maintenance_maintenanceStartHour,++    -- ** MediaStream+    mediaStream_attributes,+    mediaStream_clockRate,+    mediaStream_description,+    mediaStream_videoFormat,+    mediaStream_mediaStreamType,+    mediaStream_mediaStreamId,+    mediaStream_mediaStreamName,+    mediaStream_fmt,++    -- ** MediaStreamAttributes+    mediaStreamAttributes_lang,+    mediaStreamAttributes_fmtp,++    -- ** MediaStreamAttributesRequest+    mediaStreamAttributesRequest_fmtp,+    mediaStreamAttributesRequest_lang,++    -- ** MediaStreamOutputConfiguration+    mediaStreamOutputConfiguration_destinationConfigurations,+    mediaStreamOutputConfiguration_encodingParameters,+    mediaStreamOutputConfiguration_mediaStreamName,+    mediaStreamOutputConfiguration_encodingName,++    -- ** MediaStreamOutputConfigurationRequest+    mediaStreamOutputConfigurationRequest_destinationConfigurations,+    mediaStreamOutputConfigurationRequest_encodingParameters,+    mediaStreamOutputConfigurationRequest_mediaStreamName,+    mediaStreamOutputConfigurationRequest_encodingName,++    -- ** MediaStreamSourceConfiguration+    mediaStreamSourceConfiguration_inputConfigurations,+    mediaStreamSourceConfiguration_mediaStreamName,+    mediaStreamSourceConfiguration_encodingName,++    -- ** MediaStreamSourceConfigurationRequest+    mediaStreamSourceConfigurationRequest_inputConfigurations,+    mediaStreamSourceConfigurationRequest_mediaStreamName,+    mediaStreamSourceConfigurationRequest_encodingName,++    -- ** Messages+    messages_errors,++    -- ** Offering+    offering_currencyCode,+    offering_offeringArn,+    offering_offeringDescription,+    offering_durationUnits,+    offering_duration,+    offering_pricePerUnit,+    offering_resourceSpecification,+    offering_priceUnits,++    -- ** Output+    output_dataTransferSubscriberFeePercent,+    output_description,+    output_destination,+    output_encryption,+    output_entitlementArn,+    output_listenerAddress,+    output_mediaLiveInputArn,+    output_mediaStreamOutputConfigurations,+    output_port,+    output_transport,+    output_vpcInterfaceAttachment,+    output_outputArn,+    output_name,++    -- ** Reservation+    reservation_currencyCode,+    reservation_reservationState,+    reservation_offeringArn,+    reservation_reservationArn,+    reservation_start,+    reservation_offeringDescription,+    reservation_reservationName,+    reservation_end,+    reservation_duration,+    reservation_durationUnits,+    reservation_pricePerUnit,+    reservation_resourceSpecification,+    reservation_priceUnits,++    -- ** ResourceSpecification+    resourceSpecification_reservedBitrate,+    resourceSpecification_resourceType,++    -- ** SetSourceRequest+    setSourceRequest_decryption,+    setSourceRequest_description,+    setSourceRequest_entitlementArn,+    setSourceRequest_ingestPort,+    setSourceRequest_maxBitrate,+    setSourceRequest_maxLatency,+    setSourceRequest_maxSyncBuffer,+    setSourceRequest_mediaStreamSourceConfigurations,+    setSourceRequest_minLatency,+    setSourceRequest_name,+    setSourceRequest_protocol,+    setSourceRequest_senderControlPort,+    setSourceRequest_senderIpAddress,+    setSourceRequest_sourceListenerAddress,+    setSourceRequest_sourceListenerPort,+    setSourceRequest_streamId,+    setSourceRequest_vpcInterfaceName,+    setSourceRequest_whitelistCidr,++    -- ** Source+    source_dataTransferSubscriberFeePercent,+    source_decryption,+    source_description,+    source_entitlementArn,+    source_ingestIp,+    source_ingestPort,+    source_mediaStreamSourceConfigurations,+    source_senderControlPort,+    source_senderIpAddress,+    source_transport,+    source_vpcInterfaceName,+    source_whitelistCidr,+    source_sourceArn,+    source_name,++    -- ** SourcePriority+    sourcePriority_primarySource,++    -- ** Transport+    transport_cidrAllowList,+    transport_maxBitrate,+    transport_maxLatency,+    transport_maxSyncBuffer,+    transport_minLatency,+    transport_remoteId,+    transport_senderControlPort,+    transport_senderIpAddress,+    transport_smoothingLatency,+    transport_sourceListenerAddress,+    transport_sourceListenerPort,+    transport_streamId,+    transport_protocol,++    -- ** UpdateEncryption+    updateEncryption_algorithm,+    updateEncryption_constantInitializationVector,+    updateEncryption_deviceId,+    updateEncryption_keyType,+    updateEncryption_region,+    updateEncryption_resourceId,+    updateEncryption_roleArn,+    updateEncryption_secretArn,+    updateEncryption_url,++    -- ** UpdateFailoverConfig+    updateFailoverConfig_failoverMode,+    updateFailoverConfig_recoveryWindow,+    updateFailoverConfig_sourcePriority,+    updateFailoverConfig_state,++    -- ** UpdateMaintenance+    updateMaintenance_maintenanceDay,+    updateMaintenance_maintenanceScheduledDate,+    updateMaintenance_maintenanceStartHour,++    -- ** VpcInterface+    vpcInterface_networkInterfaceType,+    vpcInterface_networkInterfaceIds,+    vpcInterface_subnetId,+    vpcInterface_securityGroupIds,+    vpcInterface_roleArn,+    vpcInterface_name,++    -- ** VpcInterfaceAttachment+    vpcInterfaceAttachment_vpcInterfaceName,++    -- ** VpcInterfaceRequest+    vpcInterfaceRequest_networkInterfaceType,+    vpcInterfaceRequest_subnetId,+    vpcInterfaceRequest_securityGroupIds,+    vpcInterfaceRequest_roleArn,+    vpcInterfaceRequest_name,+  )+where++import Amazonka.MediaConnect.AddFlowMediaStreams+import Amazonka.MediaConnect.AddFlowOutputs+import Amazonka.MediaConnect.AddFlowSources+import Amazonka.MediaConnect.AddFlowVpcInterfaces+import Amazonka.MediaConnect.CreateFlow+import Amazonka.MediaConnect.DeleteFlow+import Amazonka.MediaConnect.DescribeFlow+import Amazonka.MediaConnect.DescribeOffering+import Amazonka.MediaConnect.DescribeReservation+import Amazonka.MediaConnect.GrantFlowEntitlements+import Amazonka.MediaConnect.ListEntitlements+import Amazonka.MediaConnect.ListFlows+import Amazonka.MediaConnect.ListOfferings+import Amazonka.MediaConnect.ListReservations+import Amazonka.MediaConnect.ListTagsForResource+import Amazonka.MediaConnect.PurchaseOffering+import Amazonka.MediaConnect.RemoveFlowMediaStream+import Amazonka.MediaConnect.RemoveFlowOutput+import Amazonka.MediaConnect.RemoveFlowSource+import Amazonka.MediaConnect.RemoveFlowVpcInterface+import Amazonka.MediaConnect.RevokeFlowEntitlement+import Amazonka.MediaConnect.StartFlow+import Amazonka.MediaConnect.StopFlow+import Amazonka.MediaConnect.TagResource+import Amazonka.MediaConnect.Types.AddMaintenance+import Amazonka.MediaConnect.Types.AddMediaStreamRequest+import Amazonka.MediaConnect.Types.AddOutputRequest+import Amazonka.MediaConnect.Types.DestinationConfiguration+import Amazonka.MediaConnect.Types.DestinationConfigurationRequest+import Amazonka.MediaConnect.Types.EncodingParameters+import Amazonka.MediaConnect.Types.EncodingParametersRequest+import Amazonka.MediaConnect.Types.Encryption+import Amazonka.MediaConnect.Types.Entitlement+import Amazonka.MediaConnect.Types.FailoverConfig+import Amazonka.MediaConnect.Types.Flow+import Amazonka.MediaConnect.Types.Fmtp+import Amazonka.MediaConnect.Types.FmtpRequest+import Amazonka.MediaConnect.Types.GrantEntitlementRequest+import Amazonka.MediaConnect.Types.InputConfiguration+import Amazonka.MediaConnect.Types.InputConfigurationRequest+import Amazonka.MediaConnect.Types.Interface+import Amazonka.MediaConnect.Types.InterfaceRequest+import Amazonka.MediaConnect.Types.ListedEntitlement+import Amazonka.MediaConnect.Types.ListedFlow+import Amazonka.MediaConnect.Types.Maintenance+import Amazonka.MediaConnect.Types.MediaStream+import Amazonka.MediaConnect.Types.MediaStreamAttributes+import Amazonka.MediaConnect.Types.MediaStreamAttributesRequest+import Amazonka.MediaConnect.Types.MediaStreamOutputConfiguration+import Amazonka.MediaConnect.Types.MediaStreamOutputConfigurationRequest+import Amazonka.MediaConnect.Types.MediaStreamSourceConfiguration+import Amazonka.MediaConnect.Types.MediaStreamSourceConfigurationRequest+import Amazonka.MediaConnect.Types.Messages+import Amazonka.MediaConnect.Types.Offering+import Amazonka.MediaConnect.Types.Output+import Amazonka.MediaConnect.Types.Reservation+import Amazonka.MediaConnect.Types.ResourceSpecification+import Amazonka.MediaConnect.Types.SetSourceRequest+import Amazonka.MediaConnect.Types.Source+import Amazonka.MediaConnect.Types.SourcePriority+import Amazonka.MediaConnect.Types.Transport+import Amazonka.MediaConnect.Types.UpdateEncryption+import Amazonka.MediaConnect.Types.UpdateFailoverConfig+import Amazonka.MediaConnect.Types.UpdateMaintenance+import Amazonka.MediaConnect.Types.VpcInterface+import Amazonka.MediaConnect.Types.VpcInterfaceAttachment+import Amazonka.MediaConnect.Types.VpcInterfaceRequest+import Amazonka.MediaConnect.UntagResource+import Amazonka.MediaConnect.UpdateFlow+import Amazonka.MediaConnect.UpdateFlowEntitlement+import Amazonka.MediaConnect.UpdateFlowMediaStream+import Amazonka.MediaConnect.UpdateFlowOutput+import Amazonka.MediaConnect.UpdateFlowSource
+ gen/Amazonka/MediaConnect/ListEntitlements.hs view
@@ -0,0 +1,260 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaConnect.ListEntitlements+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Displays a list of all entitlements that have been granted to this+-- account. This request returns 20 results per page.+--+-- This operation returns paginated results.+module Amazonka.MediaConnect.ListEntitlements+  ( -- * Creating a Request+    ListEntitlements (..),+    newListEntitlements,++    -- * Request Lenses+    listEntitlements_maxResults,+    listEntitlements_nextToken,++    -- * Destructuring the Response+    ListEntitlementsResponse (..),+    newListEntitlementsResponse,++    -- * Response Lenses+    listEntitlementsResponse_entitlements,+    listEntitlementsResponse_nextToken,+    listEntitlementsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaConnect.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListEntitlements' smart constructor.+data ListEntitlements = ListEntitlements'+  { -- | The maximum number of results to return per API request. For example,+    -- you submit a ListEntitlements request with MaxResults set at 5. Although+    -- 20 items match your request, the service returns no more than the first+    -- 5 items. (The service also returns a NextToken value that you can use to+    -- fetch the next batch of results.) The service might return fewer results+    -- than the MaxResults value. If MaxResults is not included in the request,+    -- the service defaults to pagination with a maximum of 20 results per+    -- page.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The token that identifies which batch of results that you want to see.+    -- For example, you submit a ListEntitlements request with MaxResults set+    -- at 5. The service returns the first batch of results (up to 5) and a+    -- NextToken value. To see the next batch of results, you can submit the+    -- ListEntitlements request a second time and specify the NextToken value.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListEntitlements' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listEntitlements_maxResults' - The maximum number of results to return per API request. For example,+-- you submit a ListEntitlements request with MaxResults set at 5. Although+-- 20 items match your request, the service returns no more than the first+-- 5 items. (The service also returns a NextToken value that you can use to+-- fetch the next batch of results.) The service might return fewer results+-- than the MaxResults value. If MaxResults is not included in the request,+-- the service defaults to pagination with a maximum of 20 results per+-- page.+--+-- 'nextToken', 'listEntitlements_nextToken' - The token that identifies which batch of results that you want to see.+-- For example, you submit a ListEntitlements request with MaxResults set+-- at 5. The service returns the first batch of results (up to 5) and a+-- NextToken value. To see the next batch of results, you can submit the+-- ListEntitlements request a second time and specify the NextToken value.+newListEntitlements ::+  ListEntitlements+newListEntitlements =+  ListEntitlements'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | The maximum number of results to return per API request. For example,+-- you submit a ListEntitlements request with MaxResults set at 5. Although+-- 20 items match your request, the service returns no more than the first+-- 5 items. (The service also returns a NextToken value that you can use to+-- fetch the next batch of results.) The service might return fewer results+-- than the MaxResults value. If MaxResults is not included in the request,+-- the service defaults to pagination with a maximum of 20 results per+-- page.+listEntitlements_maxResults :: Lens.Lens' ListEntitlements (Prelude.Maybe Prelude.Natural)+listEntitlements_maxResults = Lens.lens (\ListEntitlements' {maxResults} -> maxResults) (\s@ListEntitlements' {} a -> s {maxResults = a} :: ListEntitlements)++-- | The token that identifies which batch of results that you want to see.+-- For example, you submit a ListEntitlements request with MaxResults set+-- at 5. The service returns the first batch of results (up to 5) and a+-- NextToken value. To see the next batch of results, you can submit the+-- ListEntitlements request a second time and specify the NextToken value.+listEntitlements_nextToken :: Lens.Lens' ListEntitlements (Prelude.Maybe Prelude.Text)+listEntitlements_nextToken = Lens.lens (\ListEntitlements' {nextToken} -> nextToken) (\s@ListEntitlements' {} a -> s {nextToken = a} :: ListEntitlements)++instance Core.AWSPager ListEntitlements where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listEntitlementsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listEntitlementsResponse_entitlements+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listEntitlements_nextToken+          Lens..~ rs+          Lens.^? listEntitlementsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListEntitlements where+  type+    AWSResponse ListEntitlements =+      ListEntitlementsResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListEntitlementsResponse'+            Prelude.<$> (x Data..?> "entitlements" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListEntitlements where+  hashWithSalt _salt ListEntitlements' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListEntitlements where+  rnf ListEntitlements' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListEntitlements where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListEntitlements where+  toPath = Prelude.const "/v1/entitlements"++instance Data.ToQuery ListEntitlements where+  toQuery ListEntitlements' {..} =+    Prelude.mconcat+      [ "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken+      ]++-- | /See:/ 'newListEntitlementsResponse' smart constructor.+data ListEntitlementsResponse = ListEntitlementsResponse'+  { -- | A list of entitlements that have been granted to you from other AWS+    -- accounts.+    entitlements :: Prelude.Maybe [ListedEntitlement],+    -- | The token that identifies which batch of results that you want to see.+    -- For example, you submit a ListEntitlements request with MaxResults set+    -- at 5. The service returns the first batch of results (up to 5) and a+    -- NextToken value. To see the next batch of results, you can submit the+    -- ListEntitlements request a second time and specify the NextToken value.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListEntitlementsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'entitlements', 'listEntitlementsResponse_entitlements' - A list of entitlements that have been granted to you from other AWS+-- accounts.+--+-- 'nextToken', 'listEntitlementsResponse_nextToken' - The token that identifies which batch of results that you want to see.+-- For example, you submit a ListEntitlements request with MaxResults set+-- at 5. The service returns the first batch of results (up to 5) and a+-- NextToken value. To see the next batch of results, you can submit the+-- ListEntitlements request a second time and specify the NextToken value.+--+-- 'httpStatus', 'listEntitlementsResponse_httpStatus' - The response's http status code.+newListEntitlementsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListEntitlementsResponse+newListEntitlementsResponse pHttpStatus_ =+  ListEntitlementsResponse'+    { entitlements =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A list of entitlements that have been granted to you from other AWS+-- accounts.+listEntitlementsResponse_entitlements :: Lens.Lens' ListEntitlementsResponse (Prelude.Maybe [ListedEntitlement])+listEntitlementsResponse_entitlements = Lens.lens (\ListEntitlementsResponse' {entitlements} -> entitlements) (\s@ListEntitlementsResponse' {} a -> s {entitlements = a} :: ListEntitlementsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The token that identifies which batch of results that you want to see.+-- For example, you submit a ListEntitlements request with MaxResults set+-- at 5. The service returns the first batch of results (up to 5) and a+-- NextToken value. To see the next batch of results, you can submit the+-- ListEntitlements request a second time and specify the NextToken value.+listEntitlementsResponse_nextToken :: Lens.Lens' ListEntitlementsResponse (Prelude.Maybe Prelude.Text)+listEntitlementsResponse_nextToken = Lens.lens (\ListEntitlementsResponse' {nextToken} -> nextToken) (\s@ListEntitlementsResponse' {} a -> s {nextToken = a} :: ListEntitlementsResponse)++-- | The response's http status code.+listEntitlementsResponse_httpStatus :: Lens.Lens' ListEntitlementsResponse Prelude.Int+listEntitlementsResponse_httpStatus = Lens.lens (\ListEntitlementsResponse' {httpStatus} -> httpStatus) (\s@ListEntitlementsResponse' {} a -> s {httpStatus = a} :: ListEntitlementsResponse)++instance Prelude.NFData ListEntitlementsResponse where+  rnf ListEntitlementsResponse' {..} =+    Prelude.rnf entitlements+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MediaConnect/ListFlows.hs view
@@ -0,0 +1,254 @@+{-# 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.MediaConnect.ListFlows+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Displays a list of flows that are associated with this account. This+-- request returns a paginated result.+--+-- This operation returns paginated results.+module Amazonka.MediaConnect.ListFlows+  ( -- * Creating a Request+    ListFlows (..),+    newListFlows,++    -- * Request Lenses+    listFlows_maxResults,+    listFlows_nextToken,++    -- * Destructuring the Response+    ListFlowsResponse (..),+    newListFlowsResponse,++    -- * Response Lenses+    listFlowsResponse_flows,+    listFlowsResponse_nextToken,+    listFlowsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaConnect.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListFlows' smart constructor.+data ListFlows = ListFlows'+  { -- | The maximum number of results to return per API request. For example,+    -- you submit a ListFlows request with MaxResults set at 5. Although 20+    -- items match your request, the service returns no more than the first 5+    -- items. (The service also returns a NextToken value that you can use to+    -- fetch the next batch of results.) The service might return fewer results+    -- than the MaxResults value. If MaxResults is not included in the request,+    -- the service defaults to pagination with a maximum of 10 results per+    -- page.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The token that identifies which batch of results that you want to see.+    -- For example, you submit a ListFlows request with MaxResults set at 5.+    -- The service returns the first batch of results (up to 5) and a NextToken+    -- value. To see the next batch of results, you can submit the ListFlows+    -- request a second time and specify the NextToken value.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListFlows' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listFlows_maxResults' - The maximum number of results to return per API request. For example,+-- you submit a ListFlows request with MaxResults set at 5. Although 20+-- items match your request, the service returns no more than the first 5+-- items. (The service also returns a NextToken value that you can use to+-- fetch the next batch of results.) The service might return fewer results+-- than the MaxResults value. If MaxResults is not included in the request,+-- the service defaults to pagination with a maximum of 10 results per+-- page.+--+-- 'nextToken', 'listFlows_nextToken' - The token that identifies which batch of results that you want to see.+-- For example, you submit a ListFlows request with MaxResults set at 5.+-- The service returns the first batch of results (up to 5) and a NextToken+-- value. To see the next batch of results, you can submit the ListFlows+-- request a second time and specify the NextToken value.+newListFlows ::+  ListFlows+newListFlows =+  ListFlows'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | The maximum number of results to return per API request. For example,+-- you submit a ListFlows request with MaxResults set at 5. Although 20+-- items match your request, the service returns no more than the first 5+-- items. (The service also returns a NextToken value that you can use to+-- fetch the next batch of results.) The service might return fewer results+-- than the MaxResults value. If MaxResults is not included in the request,+-- the service defaults to pagination with a maximum of 10 results per+-- page.+listFlows_maxResults :: Lens.Lens' ListFlows (Prelude.Maybe Prelude.Natural)+listFlows_maxResults = Lens.lens (\ListFlows' {maxResults} -> maxResults) (\s@ListFlows' {} a -> s {maxResults = a} :: ListFlows)++-- | The token that identifies which batch of results that you want to see.+-- For example, you submit a ListFlows request with MaxResults set at 5.+-- The service returns the first batch of results (up to 5) and a NextToken+-- value. To see the next batch of results, you can submit the ListFlows+-- request a second time and specify the NextToken value.+listFlows_nextToken :: Lens.Lens' ListFlows (Prelude.Maybe Prelude.Text)+listFlows_nextToken = Lens.lens (\ListFlows' {nextToken} -> nextToken) (\s@ListFlows' {} a -> s {nextToken = a} :: ListFlows)++instance Core.AWSPager ListFlows where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listFlowsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listFlowsResponse_flows+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listFlows_nextToken+          Lens..~ rs+          Lens.^? listFlowsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListFlows where+  type AWSResponse ListFlows = ListFlowsResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListFlowsResponse'+            Prelude.<$> (x Data..?> "flows" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListFlows where+  hashWithSalt _salt ListFlows' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListFlows where+  rnf ListFlows' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListFlows where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListFlows where+  toPath = Prelude.const "/v1/flows"++instance Data.ToQuery ListFlows where+  toQuery ListFlows' {..} =+    Prelude.mconcat+      [ "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken+      ]++-- | /See:/ 'newListFlowsResponse' smart constructor.+data ListFlowsResponse = ListFlowsResponse'+  { -- | A list of flow summaries.+    flows :: Prelude.Maybe [ListedFlow],+    -- | The token that identifies which batch of results that you want to see.+    -- For example, you submit a ListFlows request with MaxResults set at 5.+    -- The service returns the first batch of results (up to 5) and a NextToken+    -- value. To see the next batch of results, you can submit the ListFlows+    -- request a second time and specify the NextToken value.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListFlowsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'flows', 'listFlowsResponse_flows' - A list of flow summaries.+--+-- 'nextToken', 'listFlowsResponse_nextToken' - The token that identifies which batch of results that you want to see.+-- For example, you submit a ListFlows request with MaxResults set at 5.+-- The service returns the first batch of results (up to 5) and a NextToken+-- value. To see the next batch of results, you can submit the ListFlows+-- request a second time and specify the NextToken value.+--+-- 'httpStatus', 'listFlowsResponse_httpStatus' - The response's http status code.+newListFlowsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListFlowsResponse+newListFlowsResponse pHttpStatus_ =+  ListFlowsResponse'+    { flows = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A list of flow summaries.+listFlowsResponse_flows :: Lens.Lens' ListFlowsResponse (Prelude.Maybe [ListedFlow])+listFlowsResponse_flows = Lens.lens (\ListFlowsResponse' {flows} -> flows) (\s@ListFlowsResponse' {} a -> s {flows = a} :: ListFlowsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The token that identifies which batch of results that you want to see.+-- For example, you submit a ListFlows request with MaxResults set at 5.+-- The service returns the first batch of results (up to 5) and a NextToken+-- value. To see the next batch of results, you can submit the ListFlows+-- request a second time and specify the NextToken value.+listFlowsResponse_nextToken :: Lens.Lens' ListFlowsResponse (Prelude.Maybe Prelude.Text)+listFlowsResponse_nextToken = Lens.lens (\ListFlowsResponse' {nextToken} -> nextToken) (\s@ListFlowsResponse' {} a -> s {nextToken = a} :: ListFlowsResponse)++-- | The response's http status code.+listFlowsResponse_httpStatus :: Lens.Lens' ListFlowsResponse Prelude.Int+listFlowsResponse_httpStatus = Lens.lens (\ListFlowsResponse' {httpStatus} -> httpStatus) (\s@ListFlowsResponse' {} a -> s {httpStatus = a} :: ListFlowsResponse)++instance Prelude.NFData ListFlowsResponse where+  rnf ListFlowsResponse' {..} =+    Prelude.rnf flows+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MediaConnect/ListOfferings.hs view
@@ -0,0 +1,261 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaConnect.ListOfferings+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Displays a list of all offerings that are available to this account in+-- the current AWS Region. If you have an active reservation (which means+-- you\'ve purchased an offering that has already started and hasn\'t+-- expired yet), your account isn\'t eligible for other offerings.+--+-- This operation returns paginated results.+module Amazonka.MediaConnect.ListOfferings+  ( -- * Creating a Request+    ListOfferings (..),+    newListOfferings,++    -- * Request Lenses+    listOfferings_maxResults,+    listOfferings_nextToken,++    -- * Destructuring the Response+    ListOfferingsResponse (..),+    newListOfferingsResponse,++    -- * Response Lenses+    listOfferingsResponse_nextToken,+    listOfferingsResponse_offerings,+    listOfferingsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaConnect.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListOfferings' smart constructor.+data ListOfferings = ListOfferings'+  { -- | The maximum number of results to return per API request. For example,+    -- you submit a ListOfferings request with MaxResults set at 5. Although 20+    -- items match your request, the service returns no more than the first 5+    -- items. (The service also returns a NextToken value that you can use to+    -- fetch the next batch of results.) The service might return fewer results+    -- than the MaxResults value. If MaxResults is not included in the request,+    -- the service defaults to pagination with a maximum of 10 results per+    -- page.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The token that identifies which batch of results that you want to see.+    -- For example, you submit a ListOfferings request with MaxResults set at+    -- 5. The service returns the first batch of results (up to 5) and a+    -- NextToken value. To see the next batch of results, you can submit the+    -- ListOfferings request a second time and specify the NextToken value.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListOfferings' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listOfferings_maxResults' - The maximum number of results to return per API request. For example,+-- you submit a ListOfferings request with MaxResults set at 5. Although 20+-- items match your request, the service returns no more than the first 5+-- items. (The service also returns a NextToken value that you can use to+-- fetch the next batch of results.) The service might return fewer results+-- than the MaxResults value. If MaxResults is not included in the request,+-- the service defaults to pagination with a maximum of 10 results per+-- page.+--+-- 'nextToken', 'listOfferings_nextToken' - The token that identifies which batch of results that you want to see.+-- For example, you submit a ListOfferings request with MaxResults set at+-- 5. The service returns the first batch of results (up to 5) and a+-- NextToken value. To see the next batch of results, you can submit the+-- ListOfferings request a second time and specify the NextToken value.+newListOfferings ::+  ListOfferings+newListOfferings =+  ListOfferings'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | The maximum number of results to return per API request. For example,+-- you submit a ListOfferings request with MaxResults set at 5. Although 20+-- items match your request, the service returns no more than the first 5+-- items. (The service also returns a NextToken value that you can use to+-- fetch the next batch of results.) The service might return fewer results+-- than the MaxResults value. If MaxResults is not included in the request,+-- the service defaults to pagination with a maximum of 10 results per+-- page.+listOfferings_maxResults :: Lens.Lens' ListOfferings (Prelude.Maybe Prelude.Natural)+listOfferings_maxResults = Lens.lens (\ListOfferings' {maxResults} -> maxResults) (\s@ListOfferings' {} a -> s {maxResults = a} :: ListOfferings)++-- | The token that identifies which batch of results that you want to see.+-- For example, you submit a ListOfferings request with MaxResults set at+-- 5. The service returns the first batch of results (up to 5) and a+-- NextToken value. To see the next batch of results, you can submit the+-- ListOfferings request a second time and specify the NextToken value.+listOfferings_nextToken :: Lens.Lens' ListOfferings (Prelude.Maybe Prelude.Text)+listOfferings_nextToken = Lens.lens (\ListOfferings' {nextToken} -> nextToken) (\s@ListOfferings' {} a -> s {nextToken = a} :: ListOfferings)++instance Core.AWSPager ListOfferings where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listOfferingsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listOfferingsResponse_offerings+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listOfferings_nextToken+          Lens..~ rs+          Lens.^? listOfferingsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListOfferings where+  type+    AWSResponse ListOfferings =+      ListOfferingsResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListOfferingsResponse'+            Prelude.<$> (x Data..?> "nextToken")+            Prelude.<*> (x Data..?> "offerings" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListOfferings where+  hashWithSalt _salt ListOfferings' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListOfferings where+  rnf ListOfferings' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListOfferings where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListOfferings where+  toPath = Prelude.const "/v1/offerings"++instance Data.ToQuery ListOfferings where+  toQuery ListOfferings' {..} =+    Prelude.mconcat+      [ "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken+      ]++-- | /See:/ 'newListOfferingsResponse' smart constructor.+data ListOfferingsResponse = ListOfferingsResponse'+  { -- | The token that identifies which batch of results that you want to see.+    -- For example, you submit a ListOfferings request with MaxResults set at+    -- 5. The service returns the first batch of results (up to 5) and a+    -- NextToken value. To see the next batch of results, you can submit the+    -- ListOfferings request a second time and specify the NextToken value.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | A list of offerings that are available to this account in the current+    -- AWS Region.+    offerings :: Prelude.Maybe [Offering],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListOfferingsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listOfferingsResponse_nextToken' - The token that identifies which batch of results that you want to see.+-- For example, you submit a ListOfferings request with MaxResults set at+-- 5. The service returns the first batch of results (up to 5) and a+-- NextToken value. To see the next batch of results, you can submit the+-- ListOfferings request a second time and specify the NextToken value.+--+-- 'offerings', 'listOfferingsResponse_offerings' - A list of offerings that are available to this account in the current+-- AWS Region.+--+-- 'httpStatus', 'listOfferingsResponse_httpStatus' - The response's http status code.+newListOfferingsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListOfferingsResponse+newListOfferingsResponse pHttpStatus_ =+  ListOfferingsResponse'+    { nextToken = Prelude.Nothing,+      offerings = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The token that identifies which batch of results that you want to see.+-- For example, you submit a ListOfferings request with MaxResults set at+-- 5. The service returns the first batch of results (up to 5) and a+-- NextToken value. To see the next batch of results, you can submit the+-- ListOfferings request a second time and specify the NextToken value.+listOfferingsResponse_nextToken :: Lens.Lens' ListOfferingsResponse (Prelude.Maybe Prelude.Text)+listOfferingsResponse_nextToken = Lens.lens (\ListOfferingsResponse' {nextToken} -> nextToken) (\s@ListOfferingsResponse' {} a -> s {nextToken = a} :: ListOfferingsResponse)++-- | A list of offerings that are available to this account in the current+-- AWS Region.+listOfferingsResponse_offerings :: Lens.Lens' ListOfferingsResponse (Prelude.Maybe [Offering])+listOfferingsResponse_offerings = Lens.lens (\ListOfferingsResponse' {offerings} -> offerings) (\s@ListOfferingsResponse' {} a -> s {offerings = a} :: ListOfferingsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listOfferingsResponse_httpStatus :: Lens.Lens' ListOfferingsResponse Prelude.Int+listOfferingsResponse_httpStatus = Lens.lens (\ListOfferingsResponse' {httpStatus} -> httpStatus) (\s@ListOfferingsResponse' {} a -> s {httpStatus = a} :: ListOfferingsResponse)++instance Prelude.NFData ListOfferingsResponse where+  rnf ListOfferingsResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf offerings+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MediaConnect/ListReservations.hs view
@@ -0,0 +1,261 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaConnect.ListReservations+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Displays a list of all reservations that have been purchased by this+-- account in the current AWS Region. This list includes all reservations+-- in all states (such as active and expired).+--+-- This operation returns paginated results.+module Amazonka.MediaConnect.ListReservations+  ( -- * Creating a Request+    ListReservations (..),+    newListReservations,++    -- * Request Lenses+    listReservations_maxResults,+    listReservations_nextToken,++    -- * Destructuring the Response+    ListReservationsResponse (..),+    newListReservationsResponse,++    -- * Response Lenses+    listReservationsResponse_nextToken,+    listReservationsResponse_reservations,+    listReservationsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaConnect.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListReservations' smart constructor.+data ListReservations = ListReservations'+  { -- | The maximum number of results to return per API request. For example,+    -- you submit a ListReservations request with MaxResults set at 5. Although+    -- 20 items match your request, the service returns no more than the first+    -- 5 items. (The service also returns a NextToken value that you can use to+    -- fetch the next batch of results.) The service might return fewer results+    -- than the MaxResults value. If MaxResults is not included in the request,+    -- the service defaults to pagination with a maximum of 10 results per+    -- page.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The token that identifies which batch of results that you want to see.+    -- For example, you submit a ListReservations request with MaxResults set+    -- at 5. The service returns the first batch of results (up to 5) and a+    -- NextToken value. To see the next batch of results, you can submit the+    -- ListOfferings request a second time and specify the NextToken value.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListReservations' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listReservations_maxResults' - The maximum number of results to return per API request. For example,+-- you submit a ListReservations request with MaxResults set at 5. Although+-- 20 items match your request, the service returns no more than the first+-- 5 items. (The service also returns a NextToken value that you can use to+-- fetch the next batch of results.) The service might return fewer results+-- than the MaxResults value. If MaxResults is not included in the request,+-- the service defaults to pagination with a maximum of 10 results per+-- page.+--+-- 'nextToken', 'listReservations_nextToken' - The token that identifies which batch of results that you want to see.+-- For example, you submit a ListReservations request with MaxResults set+-- at 5. The service returns the first batch of results (up to 5) and a+-- NextToken value. To see the next batch of results, you can submit the+-- ListOfferings request a second time and specify the NextToken value.+newListReservations ::+  ListReservations+newListReservations =+  ListReservations'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | The maximum number of results to return per API request. For example,+-- you submit a ListReservations request with MaxResults set at 5. Although+-- 20 items match your request, the service returns no more than the first+-- 5 items. (The service also returns a NextToken value that you can use to+-- fetch the next batch of results.) The service might return fewer results+-- than the MaxResults value. If MaxResults is not included in the request,+-- the service defaults to pagination with a maximum of 10 results per+-- page.+listReservations_maxResults :: Lens.Lens' ListReservations (Prelude.Maybe Prelude.Natural)+listReservations_maxResults = Lens.lens (\ListReservations' {maxResults} -> maxResults) (\s@ListReservations' {} a -> s {maxResults = a} :: ListReservations)++-- | The token that identifies which batch of results that you want to see.+-- For example, you submit a ListReservations request with MaxResults set+-- at 5. The service returns the first batch of results (up to 5) and a+-- NextToken value. To see the next batch of results, you can submit the+-- ListOfferings request a second time and specify the NextToken value.+listReservations_nextToken :: Lens.Lens' ListReservations (Prelude.Maybe Prelude.Text)+listReservations_nextToken = Lens.lens (\ListReservations' {nextToken} -> nextToken) (\s@ListReservations' {} a -> s {nextToken = a} :: ListReservations)++instance Core.AWSPager ListReservations where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listReservationsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listReservationsResponse_reservations+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listReservations_nextToken+          Lens..~ rs+          Lens.^? listReservationsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListReservations where+  type+    AWSResponse ListReservations =+      ListReservationsResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListReservationsResponse'+            Prelude.<$> (x Data..?> "nextToken")+            Prelude.<*> (x Data..?> "reservations" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListReservations where+  hashWithSalt _salt ListReservations' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListReservations where+  rnf ListReservations' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListReservations where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListReservations where+  toPath = Prelude.const "/v1/reservations"++instance Data.ToQuery ListReservations where+  toQuery ListReservations' {..} =+    Prelude.mconcat+      [ "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken+      ]++-- | /See:/ 'newListReservationsResponse' smart constructor.+data ListReservationsResponse = ListReservationsResponse'+  { -- | The token that identifies which batch of results that you want to see.+    -- For example, you submit a ListReservations request with MaxResults set+    -- at 5. The service returns the first batch of results (up to 5) and a+    -- NextToken value. To see the next batch of results, you can submit the+    -- ListReservations request a second time and specify the NextToken value.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | A list of all reservations that have been purchased by this account in+    -- the current AWS Region.+    reservations :: Prelude.Maybe [Reservation],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListReservationsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listReservationsResponse_nextToken' - The token that identifies which batch of results that you want to see.+-- For example, you submit a ListReservations request with MaxResults set+-- at 5. The service returns the first batch of results (up to 5) and a+-- NextToken value. To see the next batch of results, you can submit the+-- ListReservations request a second time and specify the NextToken value.+--+-- 'reservations', 'listReservationsResponse_reservations' - A list of all reservations that have been purchased by this account in+-- the current AWS Region.+--+-- 'httpStatus', 'listReservationsResponse_httpStatus' - The response's http status code.+newListReservationsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListReservationsResponse+newListReservationsResponse pHttpStatus_ =+  ListReservationsResponse'+    { nextToken =+        Prelude.Nothing,+      reservations = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The token that identifies which batch of results that you want to see.+-- For example, you submit a ListReservations request with MaxResults set+-- at 5. The service returns the first batch of results (up to 5) and a+-- NextToken value. To see the next batch of results, you can submit the+-- ListReservations request a second time and specify the NextToken value.+listReservationsResponse_nextToken :: Lens.Lens' ListReservationsResponse (Prelude.Maybe Prelude.Text)+listReservationsResponse_nextToken = Lens.lens (\ListReservationsResponse' {nextToken} -> nextToken) (\s@ListReservationsResponse' {} a -> s {nextToken = a} :: ListReservationsResponse)++-- | A list of all reservations that have been purchased by this account in+-- the current AWS Region.+listReservationsResponse_reservations :: Lens.Lens' ListReservationsResponse (Prelude.Maybe [Reservation])+listReservationsResponse_reservations = Lens.lens (\ListReservationsResponse' {reservations} -> reservations) (\s@ListReservationsResponse' {} a -> s {reservations = a} :: ListReservationsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listReservationsResponse_httpStatus :: Lens.Lens' ListReservationsResponse Prelude.Int+listReservationsResponse_httpStatus = Lens.lens (\ListReservationsResponse' {httpStatus} -> httpStatus) (\s@ListReservationsResponse' {} a -> s {httpStatus = a} :: ListReservationsResponse)++instance Prelude.NFData ListReservationsResponse where+  rnf ListReservationsResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf reservations+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MediaConnect/ListTagsForResource.hs view
@@ -0,0 +1,168 @@+{-# 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.MediaConnect.ListTagsForResource+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- List all tags on an AWS Elemental MediaConnect resource+module Amazonka.MediaConnect.ListTagsForResource+  ( -- * Creating a Request+    ListTagsForResource (..),+    newListTagsForResource,++    -- * Request Lenses+    listTagsForResource_resourceArn,++    -- * Destructuring the Response+    ListTagsForResourceResponse (..),+    newListTagsForResourceResponse,++    -- * Response Lenses+    listTagsForResourceResponse_tags,+    listTagsForResourceResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaConnect.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 Amazon Resource Name (ARN) that identifies the AWS Elemental+    -- MediaConnect resource for which to list the tags.+    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 Amazon Resource Name (ARN) that identifies the AWS Elemental+-- MediaConnect resource for which to list the tags.+newListTagsForResource ::+  -- | 'resourceArn'+  Prelude.Text ->+  ListTagsForResource+newListTagsForResource pResourceArn_ =+  ListTagsForResource' {resourceArn = pResourceArn_}++-- | The Amazon Resource Name (ARN) that identifies the AWS Elemental+-- MediaConnect resource for which to list the tags.+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.<$> (x Data..?> "tags" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListTagsForResource where+  hashWithSalt _salt ListTagsForResource' {..} =+    _salt `Prelude.hashWithSalt` resourceArn++instance Prelude.NFData ListTagsForResource where+  rnf ListTagsForResource' {..} =+    Prelude.rnf resourceArn++instance Data.ToHeaders ListTagsForResource where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "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'+  { -- | A map from tag keys to values. Tag keys can have a maximum character+    -- length of 128 characters, and tag values can have a maximum length of+    -- 256 characters.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListTagsForResourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'tags', 'listTagsForResourceResponse_tags' - A map from tag keys to values. Tag keys can have a maximum character+-- length of 128 characters, and tag values can have a maximum length of+-- 256 characters.+--+-- 'httpStatus', 'listTagsForResourceResponse_httpStatus' - The response's http status code.+newListTagsForResourceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListTagsForResourceResponse+newListTagsForResourceResponse pHttpStatus_ =+  ListTagsForResourceResponse'+    { tags =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A map from tag keys to values. Tag keys can have a maximum character+-- length of 128 characters, and tag values can have a maximum length of+-- 256 characters.+listTagsForResourceResponse_tags :: Lens.Lens' ListTagsForResourceResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+listTagsForResourceResponse_tags = Lens.lens (\ListTagsForResourceResponse' {tags} -> tags) (\s@ListTagsForResourceResponse' {} a -> s {tags = a} :: ListTagsForResourceResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listTagsForResourceResponse_httpStatus :: Lens.Lens' ListTagsForResourceResponse Prelude.Int+listTagsForResourceResponse_httpStatus = Lens.lens (\ListTagsForResourceResponse' {httpStatus} -> httpStatus) (\s@ListTagsForResourceResponse' {} a -> s {httpStatus = a} :: ListTagsForResourceResponse)++instance Prelude.NFData ListTagsForResourceResponse where+  rnf ListTagsForResourceResponse' {..} =+    Prelude.rnf tags+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MediaConnect/PurchaseOffering.hs view
@@ -0,0 +1,224 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaConnect.PurchaseOffering+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Submits a request to purchase an offering. If you already have an active+-- reservation, you can\'t purchase another offering.+module Amazonka.MediaConnect.PurchaseOffering+  ( -- * Creating a Request+    PurchaseOffering (..),+    newPurchaseOffering,++    -- * Request Lenses+    purchaseOffering_offeringArn,+    purchaseOffering_start,+    purchaseOffering_reservationName,++    -- * Destructuring the Response+    PurchaseOfferingResponse (..),+    newPurchaseOfferingResponse,++    -- * Response Lenses+    purchaseOfferingResponse_reservation,+    purchaseOfferingResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaConnect.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | A request to purchase a offering.+--+-- /See:/ 'newPurchaseOffering' smart constructor.+data PurchaseOffering = PurchaseOffering'+  { -- | The Amazon Resource Name (ARN) of the offering.+    offeringArn :: Prelude.Text,+    -- | The date and time that you want the reservation to begin, in Coordinated+    -- Universal Time (UTC). You can specify any date and time between 12:00am+    -- on the first day of the current month to the current time on today\'s+    -- date, inclusive. Specify the start in a 24-hour notation. Use the+    -- following format: YYYY-MM-DDTHH:mm:SSZ, where T and Z are literal+    -- characters. For example, to specify 11:30pm on March 5, 2020, enter+    -- 2020-03-05T23:30:00Z.+    start :: Prelude.Text,+    -- | The name that you want to use for the reservation.+    reservationName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PurchaseOffering' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'offeringArn', 'purchaseOffering_offeringArn' - The Amazon Resource Name (ARN) of the offering.+--+-- 'start', 'purchaseOffering_start' - The date and time that you want the reservation to begin, in Coordinated+-- Universal Time (UTC). You can specify any date and time between 12:00am+-- on the first day of the current month to the current time on today\'s+-- date, inclusive. Specify the start in a 24-hour notation. Use the+-- following format: YYYY-MM-DDTHH:mm:SSZ, where T and Z are literal+-- characters. For example, to specify 11:30pm on March 5, 2020, enter+-- 2020-03-05T23:30:00Z.+--+-- 'reservationName', 'purchaseOffering_reservationName' - The name that you want to use for the reservation.+newPurchaseOffering ::+  -- | 'offeringArn'+  Prelude.Text ->+  -- | 'start'+  Prelude.Text ->+  -- | 'reservationName'+  Prelude.Text ->+  PurchaseOffering+newPurchaseOffering+  pOfferingArn_+  pStart_+  pReservationName_ =+    PurchaseOffering'+      { offeringArn = pOfferingArn_,+        start = pStart_,+        reservationName = pReservationName_+      }++-- | The Amazon Resource Name (ARN) of the offering.+purchaseOffering_offeringArn :: Lens.Lens' PurchaseOffering Prelude.Text+purchaseOffering_offeringArn = Lens.lens (\PurchaseOffering' {offeringArn} -> offeringArn) (\s@PurchaseOffering' {} a -> s {offeringArn = a} :: PurchaseOffering)++-- | The date and time that you want the reservation to begin, in Coordinated+-- Universal Time (UTC). You can specify any date and time between 12:00am+-- on the first day of the current month to the current time on today\'s+-- date, inclusive. Specify the start in a 24-hour notation. Use the+-- following format: YYYY-MM-DDTHH:mm:SSZ, where T and Z are literal+-- characters. For example, to specify 11:30pm on March 5, 2020, enter+-- 2020-03-05T23:30:00Z.+purchaseOffering_start :: Lens.Lens' PurchaseOffering Prelude.Text+purchaseOffering_start = Lens.lens (\PurchaseOffering' {start} -> start) (\s@PurchaseOffering' {} a -> s {start = a} :: PurchaseOffering)++-- | The name that you want to use for the reservation.+purchaseOffering_reservationName :: Lens.Lens' PurchaseOffering Prelude.Text+purchaseOffering_reservationName = Lens.lens (\PurchaseOffering' {reservationName} -> reservationName) (\s@PurchaseOffering' {} a -> s {reservationName = a} :: PurchaseOffering)++instance Core.AWSRequest PurchaseOffering where+  type+    AWSResponse PurchaseOffering =+      PurchaseOfferingResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          PurchaseOfferingResponse'+            Prelude.<$> (x Data..?> "reservation")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable PurchaseOffering where+  hashWithSalt _salt PurchaseOffering' {..} =+    _salt+      `Prelude.hashWithSalt` offeringArn+      `Prelude.hashWithSalt` start+      `Prelude.hashWithSalt` reservationName++instance Prelude.NFData PurchaseOffering where+  rnf PurchaseOffering' {..} =+    Prelude.rnf offeringArn+      `Prelude.seq` Prelude.rnf start+      `Prelude.seq` Prelude.rnf reservationName++instance Data.ToHeaders PurchaseOffering where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON PurchaseOffering where+  toJSON PurchaseOffering' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("start" Data..= start),+            Prelude.Just+              ("reservationName" Data..= reservationName)+          ]+      )++instance Data.ToPath PurchaseOffering where+  toPath PurchaseOffering' {..} =+    Prelude.mconcat+      ["/v1/offerings/", Data.toBS offeringArn]++instance Data.ToQuery PurchaseOffering where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newPurchaseOfferingResponse' smart constructor.+data PurchaseOfferingResponse = PurchaseOfferingResponse'+  { reservation :: Prelude.Maybe Reservation,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PurchaseOfferingResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'reservation', 'purchaseOfferingResponse_reservation' - Undocumented member.+--+-- 'httpStatus', 'purchaseOfferingResponse_httpStatus' - The response's http status code.+newPurchaseOfferingResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  PurchaseOfferingResponse+newPurchaseOfferingResponse pHttpStatus_ =+  PurchaseOfferingResponse'+    { reservation =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Undocumented member.+purchaseOfferingResponse_reservation :: Lens.Lens' PurchaseOfferingResponse (Prelude.Maybe Reservation)+purchaseOfferingResponse_reservation = Lens.lens (\PurchaseOfferingResponse' {reservation} -> reservation) (\s@PurchaseOfferingResponse' {} a -> s {reservation = a} :: PurchaseOfferingResponse)++-- | The response's http status code.+purchaseOfferingResponse_httpStatus :: Lens.Lens' PurchaseOfferingResponse Prelude.Int+purchaseOfferingResponse_httpStatus = Lens.lens (\PurchaseOfferingResponse' {httpStatus} -> httpStatus) (\s@PurchaseOfferingResponse' {} a -> s {httpStatus = a} :: PurchaseOfferingResponse)++instance Prelude.NFData PurchaseOfferingResponse where+  rnf PurchaseOfferingResponse' {..} =+    Prelude.rnf reservation+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MediaConnect/RemoveFlowMediaStream.hs view
@@ -0,0 +1,194 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaConnect.RemoveFlowMediaStream+-- 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 a media stream from a flow. This action is only available if the+-- media stream is not associated with a source or output.+module Amazonka.MediaConnect.RemoveFlowMediaStream+  ( -- * Creating a Request+    RemoveFlowMediaStream (..),+    newRemoveFlowMediaStream,++    -- * Request Lenses+    removeFlowMediaStream_flowArn,+    removeFlowMediaStream_mediaStreamName,++    -- * Destructuring the Response+    RemoveFlowMediaStreamResponse (..),+    newRemoveFlowMediaStreamResponse,++    -- * Response Lenses+    removeFlowMediaStreamResponse_flowArn,+    removeFlowMediaStreamResponse_mediaStreamName,+    removeFlowMediaStreamResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaConnect.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newRemoveFlowMediaStream' smart constructor.+data RemoveFlowMediaStream = RemoveFlowMediaStream'+  { -- | The Amazon Resource Name (ARN) of the flow.+    flowArn :: Prelude.Text,+    -- | The name of the media stream that you want to remove.+    mediaStreamName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RemoveFlowMediaStream' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'flowArn', 'removeFlowMediaStream_flowArn' - The Amazon Resource Name (ARN) of the flow.+--+-- 'mediaStreamName', 'removeFlowMediaStream_mediaStreamName' - The name of the media stream that you want to remove.+newRemoveFlowMediaStream ::+  -- | 'flowArn'+  Prelude.Text ->+  -- | 'mediaStreamName'+  Prelude.Text ->+  RemoveFlowMediaStream+newRemoveFlowMediaStream pFlowArn_ pMediaStreamName_ =+  RemoveFlowMediaStream'+    { flowArn = pFlowArn_,+      mediaStreamName = pMediaStreamName_+    }++-- | The Amazon Resource Name (ARN) of the flow.+removeFlowMediaStream_flowArn :: Lens.Lens' RemoveFlowMediaStream Prelude.Text+removeFlowMediaStream_flowArn = Lens.lens (\RemoveFlowMediaStream' {flowArn} -> flowArn) (\s@RemoveFlowMediaStream' {} a -> s {flowArn = a} :: RemoveFlowMediaStream)++-- | The name of the media stream that you want to remove.+removeFlowMediaStream_mediaStreamName :: Lens.Lens' RemoveFlowMediaStream Prelude.Text+removeFlowMediaStream_mediaStreamName = Lens.lens (\RemoveFlowMediaStream' {mediaStreamName} -> mediaStreamName) (\s@RemoveFlowMediaStream' {} a -> s {mediaStreamName = a} :: RemoveFlowMediaStream)++instance Core.AWSRequest RemoveFlowMediaStream where+  type+    AWSResponse RemoveFlowMediaStream =+      RemoveFlowMediaStreamResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          RemoveFlowMediaStreamResponse'+            Prelude.<$> (x Data..?> "flowArn")+            Prelude.<*> (x Data..?> "mediaStreamName")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable RemoveFlowMediaStream where+  hashWithSalt _salt RemoveFlowMediaStream' {..} =+    _salt+      `Prelude.hashWithSalt` flowArn+      `Prelude.hashWithSalt` mediaStreamName++instance Prelude.NFData RemoveFlowMediaStream where+  rnf RemoveFlowMediaStream' {..} =+    Prelude.rnf flowArn+      `Prelude.seq` Prelude.rnf mediaStreamName++instance Data.ToHeaders RemoveFlowMediaStream where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath RemoveFlowMediaStream where+  toPath RemoveFlowMediaStream' {..} =+    Prelude.mconcat+      [ "/v1/flows/",+        Data.toBS flowArn,+        "/mediaStreams/",+        Data.toBS mediaStreamName+      ]++instance Data.ToQuery RemoveFlowMediaStream where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newRemoveFlowMediaStreamResponse' smart constructor.+data RemoveFlowMediaStreamResponse = RemoveFlowMediaStreamResponse'+  { -- | The Amazon Resource Name (ARN) of the flow.+    flowArn :: Prelude.Maybe Prelude.Text,+    -- | The name of the media stream that was removed.+    mediaStreamName :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RemoveFlowMediaStreamResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'flowArn', 'removeFlowMediaStreamResponse_flowArn' - The Amazon Resource Name (ARN) of the flow.+--+-- 'mediaStreamName', 'removeFlowMediaStreamResponse_mediaStreamName' - The name of the media stream that was removed.+--+-- 'httpStatus', 'removeFlowMediaStreamResponse_httpStatus' - The response's http status code.+newRemoveFlowMediaStreamResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  RemoveFlowMediaStreamResponse+newRemoveFlowMediaStreamResponse pHttpStatus_ =+  RemoveFlowMediaStreamResponse'+    { flowArn =+        Prelude.Nothing,+      mediaStreamName = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The Amazon Resource Name (ARN) of the flow.+removeFlowMediaStreamResponse_flowArn :: Lens.Lens' RemoveFlowMediaStreamResponse (Prelude.Maybe Prelude.Text)+removeFlowMediaStreamResponse_flowArn = Lens.lens (\RemoveFlowMediaStreamResponse' {flowArn} -> flowArn) (\s@RemoveFlowMediaStreamResponse' {} a -> s {flowArn = a} :: RemoveFlowMediaStreamResponse)++-- | The name of the media stream that was removed.+removeFlowMediaStreamResponse_mediaStreamName :: Lens.Lens' RemoveFlowMediaStreamResponse (Prelude.Maybe Prelude.Text)+removeFlowMediaStreamResponse_mediaStreamName = Lens.lens (\RemoveFlowMediaStreamResponse' {mediaStreamName} -> mediaStreamName) (\s@RemoveFlowMediaStreamResponse' {} a -> s {mediaStreamName = a} :: RemoveFlowMediaStreamResponse)++-- | The response's http status code.+removeFlowMediaStreamResponse_httpStatus :: Lens.Lens' RemoveFlowMediaStreamResponse Prelude.Int+removeFlowMediaStreamResponse_httpStatus = Lens.lens (\RemoveFlowMediaStreamResponse' {httpStatus} -> httpStatus) (\s@RemoveFlowMediaStreamResponse' {} a -> s {httpStatus = a} :: RemoveFlowMediaStreamResponse)++instance Prelude.NFData RemoveFlowMediaStreamResponse where+  rnf RemoveFlowMediaStreamResponse' {..} =+    Prelude.rnf flowArn+      `Prelude.seq` Prelude.rnf mediaStreamName+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MediaConnect/RemoveFlowOutput.hs view
@@ -0,0 +1,197 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaConnect.RemoveFlowOutput+-- 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 an output from an existing flow. This request can be made only+-- on an output that does not have an entitlement associated with it. If+-- the output has an entitlement, you must revoke the entitlement instead.+-- When an entitlement is revoked from a flow, the service automatically+-- removes the associated output.+module Amazonka.MediaConnect.RemoveFlowOutput+  ( -- * Creating a Request+    RemoveFlowOutput (..),+    newRemoveFlowOutput,++    -- * Request Lenses+    removeFlowOutput_flowArn,+    removeFlowOutput_outputArn,++    -- * Destructuring the Response+    RemoveFlowOutputResponse (..),+    newRemoveFlowOutputResponse,++    -- * Response Lenses+    removeFlowOutputResponse_flowArn,+    removeFlowOutputResponse_outputArn,+    removeFlowOutputResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaConnect.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newRemoveFlowOutput' smart constructor.+data RemoveFlowOutput = RemoveFlowOutput'+  { -- | The flow that you want to remove an output from.+    flowArn :: Prelude.Text,+    -- | The ARN of the output that you want to remove.+    outputArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RemoveFlowOutput' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'flowArn', 'removeFlowOutput_flowArn' - The flow that you want to remove an output from.+--+-- 'outputArn', 'removeFlowOutput_outputArn' - The ARN of the output that you want to remove.+newRemoveFlowOutput ::+  -- | 'flowArn'+  Prelude.Text ->+  -- | 'outputArn'+  Prelude.Text ->+  RemoveFlowOutput+newRemoveFlowOutput pFlowArn_ pOutputArn_ =+  RemoveFlowOutput'+    { flowArn = pFlowArn_,+      outputArn = pOutputArn_+    }++-- | The flow that you want to remove an output from.+removeFlowOutput_flowArn :: Lens.Lens' RemoveFlowOutput Prelude.Text+removeFlowOutput_flowArn = Lens.lens (\RemoveFlowOutput' {flowArn} -> flowArn) (\s@RemoveFlowOutput' {} a -> s {flowArn = a} :: RemoveFlowOutput)++-- | The ARN of the output that you want to remove.+removeFlowOutput_outputArn :: Lens.Lens' RemoveFlowOutput Prelude.Text+removeFlowOutput_outputArn = Lens.lens (\RemoveFlowOutput' {outputArn} -> outputArn) (\s@RemoveFlowOutput' {} a -> s {outputArn = a} :: RemoveFlowOutput)++instance Core.AWSRequest RemoveFlowOutput where+  type+    AWSResponse RemoveFlowOutput =+      RemoveFlowOutputResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          RemoveFlowOutputResponse'+            Prelude.<$> (x Data..?> "flowArn")+            Prelude.<*> (x Data..?> "outputArn")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable RemoveFlowOutput where+  hashWithSalt _salt RemoveFlowOutput' {..} =+    _salt+      `Prelude.hashWithSalt` flowArn+      `Prelude.hashWithSalt` outputArn++instance Prelude.NFData RemoveFlowOutput where+  rnf RemoveFlowOutput' {..} =+    Prelude.rnf flowArn+      `Prelude.seq` Prelude.rnf outputArn++instance Data.ToHeaders RemoveFlowOutput where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath RemoveFlowOutput where+  toPath RemoveFlowOutput' {..} =+    Prelude.mconcat+      [ "/v1/flows/",+        Data.toBS flowArn,+        "/outputs/",+        Data.toBS outputArn+      ]++instance Data.ToQuery RemoveFlowOutput where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newRemoveFlowOutputResponse' smart constructor.+data RemoveFlowOutputResponse = RemoveFlowOutputResponse'+  { -- | The ARN of the flow that is associated with the output you removed.+    flowArn :: Prelude.Maybe Prelude.Text,+    -- | The ARN of the output that was removed.+    outputArn :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RemoveFlowOutputResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'flowArn', 'removeFlowOutputResponse_flowArn' - The ARN of the flow that is associated with the output you removed.+--+-- 'outputArn', 'removeFlowOutputResponse_outputArn' - The ARN of the output that was removed.+--+-- 'httpStatus', 'removeFlowOutputResponse_httpStatus' - The response's http status code.+newRemoveFlowOutputResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  RemoveFlowOutputResponse+newRemoveFlowOutputResponse pHttpStatus_ =+  RemoveFlowOutputResponse'+    { flowArn =+        Prelude.Nothing,+      outputArn = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The ARN of the flow that is associated with the output you removed.+removeFlowOutputResponse_flowArn :: Lens.Lens' RemoveFlowOutputResponse (Prelude.Maybe Prelude.Text)+removeFlowOutputResponse_flowArn = Lens.lens (\RemoveFlowOutputResponse' {flowArn} -> flowArn) (\s@RemoveFlowOutputResponse' {} a -> s {flowArn = a} :: RemoveFlowOutputResponse)++-- | The ARN of the output that was removed.+removeFlowOutputResponse_outputArn :: Lens.Lens' RemoveFlowOutputResponse (Prelude.Maybe Prelude.Text)+removeFlowOutputResponse_outputArn = Lens.lens (\RemoveFlowOutputResponse' {outputArn} -> outputArn) (\s@RemoveFlowOutputResponse' {} a -> s {outputArn = a} :: RemoveFlowOutputResponse)++-- | The response's http status code.+removeFlowOutputResponse_httpStatus :: Lens.Lens' RemoveFlowOutputResponse Prelude.Int+removeFlowOutputResponse_httpStatus = Lens.lens (\RemoveFlowOutputResponse' {httpStatus} -> httpStatus) (\s@RemoveFlowOutputResponse' {} a -> s {httpStatus = a} :: RemoveFlowOutputResponse)++instance Prelude.NFData RemoveFlowOutputResponse where+  rnf RemoveFlowOutputResponse' {..} =+    Prelude.rnf flowArn+      `Prelude.seq` Prelude.rnf outputArn+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MediaConnect/RemoveFlowSource.hs view
@@ -0,0 +1,194 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaConnect.RemoveFlowSource+-- 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 a source from an existing flow. This request can be made only if+-- there is more than one source on the flow.+module Amazonka.MediaConnect.RemoveFlowSource+  ( -- * Creating a Request+    RemoveFlowSource (..),+    newRemoveFlowSource,++    -- * Request Lenses+    removeFlowSource_flowArn,+    removeFlowSource_sourceArn,++    -- * Destructuring the Response+    RemoveFlowSourceResponse (..),+    newRemoveFlowSourceResponse,++    -- * Response Lenses+    removeFlowSourceResponse_flowArn,+    removeFlowSourceResponse_sourceArn,+    removeFlowSourceResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaConnect.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newRemoveFlowSource' smart constructor.+data RemoveFlowSource = RemoveFlowSource'+  { -- | The flow that you want to remove a source from.+    flowArn :: Prelude.Text,+    -- | The ARN of the source that you want to remove.+    sourceArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RemoveFlowSource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'flowArn', 'removeFlowSource_flowArn' - The flow that you want to remove a source from.+--+-- 'sourceArn', 'removeFlowSource_sourceArn' - The ARN of the source that you want to remove.+newRemoveFlowSource ::+  -- | 'flowArn'+  Prelude.Text ->+  -- | 'sourceArn'+  Prelude.Text ->+  RemoveFlowSource+newRemoveFlowSource pFlowArn_ pSourceArn_ =+  RemoveFlowSource'+    { flowArn = pFlowArn_,+      sourceArn = pSourceArn_+    }++-- | The flow that you want to remove a source from.+removeFlowSource_flowArn :: Lens.Lens' RemoveFlowSource Prelude.Text+removeFlowSource_flowArn = Lens.lens (\RemoveFlowSource' {flowArn} -> flowArn) (\s@RemoveFlowSource' {} a -> s {flowArn = a} :: RemoveFlowSource)++-- | The ARN of the source that you want to remove.+removeFlowSource_sourceArn :: Lens.Lens' RemoveFlowSource Prelude.Text+removeFlowSource_sourceArn = Lens.lens (\RemoveFlowSource' {sourceArn} -> sourceArn) (\s@RemoveFlowSource' {} a -> s {sourceArn = a} :: RemoveFlowSource)++instance Core.AWSRequest RemoveFlowSource where+  type+    AWSResponse RemoveFlowSource =+      RemoveFlowSourceResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          RemoveFlowSourceResponse'+            Prelude.<$> (x Data..?> "flowArn")+            Prelude.<*> (x Data..?> "sourceArn")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable RemoveFlowSource where+  hashWithSalt _salt RemoveFlowSource' {..} =+    _salt+      `Prelude.hashWithSalt` flowArn+      `Prelude.hashWithSalt` sourceArn++instance Prelude.NFData RemoveFlowSource where+  rnf RemoveFlowSource' {..} =+    Prelude.rnf flowArn+      `Prelude.seq` Prelude.rnf sourceArn++instance Data.ToHeaders RemoveFlowSource where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath RemoveFlowSource where+  toPath RemoveFlowSource' {..} =+    Prelude.mconcat+      [ "/v1/flows/",+        Data.toBS flowArn,+        "/source/",+        Data.toBS sourceArn+      ]++instance Data.ToQuery RemoveFlowSource where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newRemoveFlowSourceResponse' smart constructor.+data RemoveFlowSourceResponse = RemoveFlowSourceResponse'+  { -- | The ARN of the flow that is associated with the source you removed.+    flowArn :: Prelude.Maybe Prelude.Text,+    -- | The ARN of the source that was removed.+    sourceArn :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RemoveFlowSourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'flowArn', 'removeFlowSourceResponse_flowArn' - The ARN of the flow that is associated with the source you removed.+--+-- 'sourceArn', 'removeFlowSourceResponse_sourceArn' - The ARN of the source that was removed.+--+-- 'httpStatus', 'removeFlowSourceResponse_httpStatus' - The response's http status code.+newRemoveFlowSourceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  RemoveFlowSourceResponse+newRemoveFlowSourceResponse pHttpStatus_ =+  RemoveFlowSourceResponse'+    { flowArn =+        Prelude.Nothing,+      sourceArn = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The ARN of the flow that is associated with the source you removed.+removeFlowSourceResponse_flowArn :: Lens.Lens' RemoveFlowSourceResponse (Prelude.Maybe Prelude.Text)+removeFlowSourceResponse_flowArn = Lens.lens (\RemoveFlowSourceResponse' {flowArn} -> flowArn) (\s@RemoveFlowSourceResponse' {} a -> s {flowArn = a} :: RemoveFlowSourceResponse)++-- | The ARN of the source that was removed.+removeFlowSourceResponse_sourceArn :: Lens.Lens' RemoveFlowSourceResponse (Prelude.Maybe Prelude.Text)+removeFlowSourceResponse_sourceArn = Lens.lens (\RemoveFlowSourceResponse' {sourceArn} -> sourceArn) (\s@RemoveFlowSourceResponse' {} a -> s {sourceArn = a} :: RemoveFlowSourceResponse)++-- | The response's http status code.+removeFlowSourceResponse_httpStatus :: Lens.Lens' RemoveFlowSourceResponse Prelude.Int+removeFlowSourceResponse_httpStatus = Lens.lens (\RemoveFlowSourceResponse' {httpStatus} -> httpStatus) (\s@RemoveFlowSourceResponse' {} a -> s {httpStatus = a} :: RemoveFlowSourceResponse)++instance Prelude.NFData RemoveFlowSourceResponse where+  rnf RemoveFlowSourceResponse' {..} =+    Prelude.rnf flowArn+      `Prelude.seq` Prelude.rnf sourceArn+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MediaConnect/RemoveFlowVpcInterface.hs view
@@ -0,0 +1,224 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaConnect.RemoveFlowVpcInterface+-- 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 a VPC Interface from an existing flow. This request can be made+-- only on a VPC interface that does not have a Source or Output associated+-- with it. If the VPC interface is referenced by a Source or Output, you+-- must first delete or update the Source or Output to no longer reference+-- the VPC interface.+module Amazonka.MediaConnect.RemoveFlowVpcInterface+  ( -- * Creating a Request+    RemoveFlowVpcInterface (..),+    newRemoveFlowVpcInterface,++    -- * Request Lenses+    removeFlowVpcInterface_flowArn,+    removeFlowVpcInterface_vpcInterfaceName,++    -- * Destructuring the Response+    RemoveFlowVpcInterfaceResponse (..),+    newRemoveFlowVpcInterfaceResponse,++    -- * Response Lenses+    removeFlowVpcInterfaceResponse_flowArn,+    removeFlowVpcInterfaceResponse_nonDeletedNetworkInterfaceIds,+    removeFlowVpcInterfaceResponse_vpcInterfaceName,+    removeFlowVpcInterfaceResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaConnect.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newRemoveFlowVpcInterface' smart constructor.+data RemoveFlowVpcInterface = RemoveFlowVpcInterface'+  { -- | The flow that you want to remove a VPC interface from.+    flowArn :: Prelude.Text,+    -- | The name of the VPC interface that you want to remove.+    vpcInterfaceName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RemoveFlowVpcInterface' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'flowArn', 'removeFlowVpcInterface_flowArn' - The flow that you want to remove a VPC interface from.+--+-- 'vpcInterfaceName', 'removeFlowVpcInterface_vpcInterfaceName' - The name of the VPC interface that you want to remove.+newRemoveFlowVpcInterface ::+  -- | 'flowArn'+  Prelude.Text ->+  -- | 'vpcInterfaceName'+  Prelude.Text ->+  RemoveFlowVpcInterface+newRemoveFlowVpcInterface+  pFlowArn_+  pVpcInterfaceName_ =+    RemoveFlowVpcInterface'+      { flowArn = pFlowArn_,+        vpcInterfaceName = pVpcInterfaceName_+      }++-- | The flow that you want to remove a VPC interface from.+removeFlowVpcInterface_flowArn :: Lens.Lens' RemoveFlowVpcInterface Prelude.Text+removeFlowVpcInterface_flowArn = Lens.lens (\RemoveFlowVpcInterface' {flowArn} -> flowArn) (\s@RemoveFlowVpcInterface' {} a -> s {flowArn = a} :: RemoveFlowVpcInterface)++-- | The name of the VPC interface that you want to remove.+removeFlowVpcInterface_vpcInterfaceName :: Lens.Lens' RemoveFlowVpcInterface Prelude.Text+removeFlowVpcInterface_vpcInterfaceName = Lens.lens (\RemoveFlowVpcInterface' {vpcInterfaceName} -> vpcInterfaceName) (\s@RemoveFlowVpcInterface' {} a -> s {vpcInterfaceName = a} :: RemoveFlowVpcInterface)++instance Core.AWSRequest RemoveFlowVpcInterface where+  type+    AWSResponse RemoveFlowVpcInterface =+      RemoveFlowVpcInterfaceResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          RemoveFlowVpcInterfaceResponse'+            Prelude.<$> (x Data..?> "flowArn")+            Prelude.<*> ( x+                            Data..?> "nonDeletedNetworkInterfaceIds"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "vpcInterfaceName")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable RemoveFlowVpcInterface where+  hashWithSalt _salt RemoveFlowVpcInterface' {..} =+    _salt+      `Prelude.hashWithSalt` flowArn+      `Prelude.hashWithSalt` vpcInterfaceName++instance Prelude.NFData RemoveFlowVpcInterface where+  rnf RemoveFlowVpcInterface' {..} =+    Prelude.rnf flowArn+      `Prelude.seq` Prelude.rnf vpcInterfaceName++instance Data.ToHeaders RemoveFlowVpcInterface where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath RemoveFlowVpcInterface where+  toPath RemoveFlowVpcInterface' {..} =+    Prelude.mconcat+      [ "/v1/flows/",+        Data.toBS flowArn,+        "/vpcInterfaces/",+        Data.toBS vpcInterfaceName+      ]++instance Data.ToQuery RemoveFlowVpcInterface where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newRemoveFlowVpcInterfaceResponse' smart constructor.+data RemoveFlowVpcInterfaceResponse = RemoveFlowVpcInterfaceResponse'+  { -- | The ARN of the flow that is associated with the VPC interface you+    -- removed.+    flowArn :: Prelude.Maybe Prelude.Text,+    -- | IDs of network interfaces associated with the removed VPC interface that+    -- Media Connect was unable to remove.+    nonDeletedNetworkInterfaceIds :: Prelude.Maybe [Prelude.Text],+    -- | The name of the VPC interface that was removed.+    vpcInterfaceName :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RemoveFlowVpcInterfaceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'flowArn', 'removeFlowVpcInterfaceResponse_flowArn' - The ARN of the flow that is associated with the VPC interface you+-- removed.+--+-- 'nonDeletedNetworkInterfaceIds', 'removeFlowVpcInterfaceResponse_nonDeletedNetworkInterfaceIds' - IDs of network interfaces associated with the removed VPC interface that+-- Media Connect was unable to remove.+--+-- 'vpcInterfaceName', 'removeFlowVpcInterfaceResponse_vpcInterfaceName' - The name of the VPC interface that was removed.+--+-- 'httpStatus', 'removeFlowVpcInterfaceResponse_httpStatus' - The response's http status code.+newRemoveFlowVpcInterfaceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  RemoveFlowVpcInterfaceResponse+newRemoveFlowVpcInterfaceResponse pHttpStatus_ =+  RemoveFlowVpcInterfaceResponse'+    { flowArn =+        Prelude.Nothing,+      nonDeletedNetworkInterfaceIds =+        Prelude.Nothing,+      vpcInterfaceName = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The ARN of the flow that is associated with the VPC interface you+-- removed.+removeFlowVpcInterfaceResponse_flowArn :: Lens.Lens' RemoveFlowVpcInterfaceResponse (Prelude.Maybe Prelude.Text)+removeFlowVpcInterfaceResponse_flowArn = Lens.lens (\RemoveFlowVpcInterfaceResponse' {flowArn} -> flowArn) (\s@RemoveFlowVpcInterfaceResponse' {} a -> s {flowArn = a} :: RemoveFlowVpcInterfaceResponse)++-- | IDs of network interfaces associated with the removed VPC interface that+-- Media Connect was unable to remove.+removeFlowVpcInterfaceResponse_nonDeletedNetworkInterfaceIds :: Lens.Lens' RemoveFlowVpcInterfaceResponse (Prelude.Maybe [Prelude.Text])+removeFlowVpcInterfaceResponse_nonDeletedNetworkInterfaceIds = Lens.lens (\RemoveFlowVpcInterfaceResponse' {nonDeletedNetworkInterfaceIds} -> nonDeletedNetworkInterfaceIds) (\s@RemoveFlowVpcInterfaceResponse' {} a -> s {nonDeletedNetworkInterfaceIds = a} :: RemoveFlowVpcInterfaceResponse) Prelude.. Lens.mapping Lens.coerced++-- | The name of the VPC interface that was removed.+removeFlowVpcInterfaceResponse_vpcInterfaceName :: Lens.Lens' RemoveFlowVpcInterfaceResponse (Prelude.Maybe Prelude.Text)+removeFlowVpcInterfaceResponse_vpcInterfaceName = Lens.lens (\RemoveFlowVpcInterfaceResponse' {vpcInterfaceName} -> vpcInterfaceName) (\s@RemoveFlowVpcInterfaceResponse' {} a -> s {vpcInterfaceName = a} :: RemoveFlowVpcInterfaceResponse)++-- | The response's http status code.+removeFlowVpcInterfaceResponse_httpStatus :: Lens.Lens' RemoveFlowVpcInterfaceResponse Prelude.Int+removeFlowVpcInterfaceResponse_httpStatus = Lens.lens (\RemoveFlowVpcInterfaceResponse' {httpStatus} -> httpStatus) (\s@RemoveFlowVpcInterfaceResponse' {} a -> s {httpStatus = a} :: RemoveFlowVpcInterfaceResponse)++instance+  Prelude.NFData+    RemoveFlowVpcInterfaceResponse+  where+  rnf RemoveFlowVpcInterfaceResponse' {..} =+    Prelude.rnf flowArn+      `Prelude.seq` Prelude.rnf nonDeletedNetworkInterfaceIds+      `Prelude.seq` Prelude.rnf vpcInterfaceName+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MediaConnect/RevokeFlowEntitlement.hs view
@@ -0,0 +1,195 @@+{-# 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.MediaConnect.RevokeFlowEntitlement+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Revokes an entitlement from a flow. Once an entitlement is revoked, the+-- content becomes unavailable to the subscriber and the associated output+-- is removed.+module Amazonka.MediaConnect.RevokeFlowEntitlement+  ( -- * Creating a Request+    RevokeFlowEntitlement (..),+    newRevokeFlowEntitlement,++    -- * Request Lenses+    revokeFlowEntitlement_flowArn,+    revokeFlowEntitlement_entitlementArn,++    -- * Destructuring the Response+    RevokeFlowEntitlementResponse (..),+    newRevokeFlowEntitlementResponse,++    -- * Response Lenses+    revokeFlowEntitlementResponse_entitlementArn,+    revokeFlowEntitlementResponse_flowArn,+    revokeFlowEntitlementResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaConnect.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newRevokeFlowEntitlement' smart constructor.+data RevokeFlowEntitlement = RevokeFlowEntitlement'+  { -- | The flow that you want to revoke an entitlement from.+    flowArn :: Prelude.Text,+    -- | The ARN of the entitlement that you want to revoke.+    entitlementArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RevokeFlowEntitlement' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'flowArn', 'revokeFlowEntitlement_flowArn' - The flow that you want to revoke an entitlement from.+--+-- 'entitlementArn', 'revokeFlowEntitlement_entitlementArn' - The ARN of the entitlement that you want to revoke.+newRevokeFlowEntitlement ::+  -- | 'flowArn'+  Prelude.Text ->+  -- | 'entitlementArn'+  Prelude.Text ->+  RevokeFlowEntitlement+newRevokeFlowEntitlement pFlowArn_ pEntitlementArn_ =+  RevokeFlowEntitlement'+    { flowArn = pFlowArn_,+      entitlementArn = pEntitlementArn_+    }++-- | The flow that you want to revoke an entitlement from.+revokeFlowEntitlement_flowArn :: Lens.Lens' RevokeFlowEntitlement Prelude.Text+revokeFlowEntitlement_flowArn = Lens.lens (\RevokeFlowEntitlement' {flowArn} -> flowArn) (\s@RevokeFlowEntitlement' {} a -> s {flowArn = a} :: RevokeFlowEntitlement)++-- | The ARN of the entitlement that you want to revoke.+revokeFlowEntitlement_entitlementArn :: Lens.Lens' RevokeFlowEntitlement Prelude.Text+revokeFlowEntitlement_entitlementArn = Lens.lens (\RevokeFlowEntitlement' {entitlementArn} -> entitlementArn) (\s@RevokeFlowEntitlement' {} a -> s {entitlementArn = a} :: RevokeFlowEntitlement)++instance Core.AWSRequest RevokeFlowEntitlement where+  type+    AWSResponse RevokeFlowEntitlement =+      RevokeFlowEntitlementResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          RevokeFlowEntitlementResponse'+            Prelude.<$> (x Data..?> "entitlementArn")+            Prelude.<*> (x Data..?> "flowArn")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable RevokeFlowEntitlement where+  hashWithSalt _salt RevokeFlowEntitlement' {..} =+    _salt+      `Prelude.hashWithSalt` flowArn+      `Prelude.hashWithSalt` entitlementArn++instance Prelude.NFData RevokeFlowEntitlement where+  rnf RevokeFlowEntitlement' {..} =+    Prelude.rnf flowArn+      `Prelude.seq` Prelude.rnf entitlementArn++instance Data.ToHeaders RevokeFlowEntitlement where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath RevokeFlowEntitlement where+  toPath RevokeFlowEntitlement' {..} =+    Prelude.mconcat+      [ "/v1/flows/",+        Data.toBS flowArn,+        "/entitlements/",+        Data.toBS entitlementArn+      ]++instance Data.ToQuery RevokeFlowEntitlement where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newRevokeFlowEntitlementResponse' smart constructor.+data RevokeFlowEntitlementResponse = RevokeFlowEntitlementResponse'+  { -- | The ARN of the entitlement that was revoked.+    entitlementArn :: Prelude.Maybe Prelude.Text,+    -- | The ARN of the flow that the entitlement was revoked from.+    flowArn :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RevokeFlowEntitlementResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'entitlementArn', 'revokeFlowEntitlementResponse_entitlementArn' - The ARN of the entitlement that was revoked.+--+-- 'flowArn', 'revokeFlowEntitlementResponse_flowArn' - The ARN of the flow that the entitlement was revoked from.+--+-- 'httpStatus', 'revokeFlowEntitlementResponse_httpStatus' - The response's http status code.+newRevokeFlowEntitlementResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  RevokeFlowEntitlementResponse+newRevokeFlowEntitlementResponse pHttpStatus_ =+  RevokeFlowEntitlementResponse'+    { entitlementArn =+        Prelude.Nothing,+      flowArn = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The ARN of the entitlement that was revoked.+revokeFlowEntitlementResponse_entitlementArn :: Lens.Lens' RevokeFlowEntitlementResponse (Prelude.Maybe Prelude.Text)+revokeFlowEntitlementResponse_entitlementArn = Lens.lens (\RevokeFlowEntitlementResponse' {entitlementArn} -> entitlementArn) (\s@RevokeFlowEntitlementResponse' {} a -> s {entitlementArn = a} :: RevokeFlowEntitlementResponse)++-- | The ARN of the flow that the entitlement was revoked from.+revokeFlowEntitlementResponse_flowArn :: Lens.Lens' RevokeFlowEntitlementResponse (Prelude.Maybe Prelude.Text)+revokeFlowEntitlementResponse_flowArn = Lens.lens (\RevokeFlowEntitlementResponse' {flowArn} -> flowArn) (\s@RevokeFlowEntitlementResponse' {} a -> s {flowArn = a} :: RevokeFlowEntitlementResponse)++-- | The response's http status code.+revokeFlowEntitlementResponse_httpStatus :: Lens.Lens' RevokeFlowEntitlementResponse Prelude.Int+revokeFlowEntitlementResponse_httpStatus = Lens.lens (\RevokeFlowEntitlementResponse' {httpStatus} -> httpStatus) (\s@RevokeFlowEntitlementResponse' {} a -> s {httpStatus = a} :: RevokeFlowEntitlementResponse)++instance Prelude.NFData RevokeFlowEntitlementResponse where+  rnf RevokeFlowEntitlementResponse' {..} =+    Prelude.rnf entitlementArn+      `Prelude.seq` Prelude.rnf flowArn+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MediaConnect/StartFlow.hs view
@@ -0,0 +1,171 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaConnect.StartFlow+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Starts a flow.+module Amazonka.MediaConnect.StartFlow+  ( -- * Creating a Request+    StartFlow (..),+    newStartFlow,++    -- * Request Lenses+    startFlow_flowArn,++    -- * Destructuring the Response+    StartFlowResponse (..),+    newStartFlowResponse,++    -- * Response Lenses+    startFlowResponse_flowArn,+    startFlowResponse_status,+    startFlowResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaConnect.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newStartFlow' smart constructor.+data StartFlow = StartFlow'+  { -- | The ARN of the flow that you want to start.+    flowArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StartFlow' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'flowArn', 'startFlow_flowArn' - The ARN of the flow that you want to start.+newStartFlow ::+  -- | 'flowArn'+  Prelude.Text ->+  StartFlow+newStartFlow pFlowArn_ =+  StartFlow' {flowArn = pFlowArn_}++-- | The ARN of the flow that you want to start.+startFlow_flowArn :: Lens.Lens' StartFlow Prelude.Text+startFlow_flowArn = Lens.lens (\StartFlow' {flowArn} -> flowArn) (\s@StartFlow' {} a -> s {flowArn = a} :: StartFlow)++instance Core.AWSRequest StartFlow where+  type AWSResponse StartFlow = StartFlowResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          StartFlowResponse'+            Prelude.<$> (x Data..?> "flowArn")+            Prelude.<*> (x Data..?> "status")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable StartFlow where+  hashWithSalt _salt StartFlow' {..} =+    _salt `Prelude.hashWithSalt` flowArn++instance Prelude.NFData StartFlow where+  rnf StartFlow' {..} = Prelude.rnf flowArn++instance Data.ToHeaders StartFlow where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON StartFlow where+  toJSON = Prelude.const (Data.Object Prelude.mempty)++instance Data.ToPath StartFlow where+  toPath StartFlow' {..} =+    Prelude.mconcat+      ["/v1/flows/start/", Data.toBS flowArn]++instance Data.ToQuery StartFlow where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newStartFlowResponse' smart constructor.+data StartFlowResponse = StartFlowResponse'+  { -- | The ARN of the flow that you started.+    flowArn :: Prelude.Maybe Prelude.Text,+    -- | The status of the flow when the StartFlow process begins.+    status :: Prelude.Maybe Status,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StartFlowResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'flowArn', 'startFlowResponse_flowArn' - The ARN of the flow that you started.+--+-- 'status', 'startFlowResponse_status' - The status of the flow when the StartFlow process begins.+--+-- 'httpStatus', 'startFlowResponse_httpStatus' - The response's http status code.+newStartFlowResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  StartFlowResponse+newStartFlowResponse pHttpStatus_ =+  StartFlowResponse'+    { flowArn = Prelude.Nothing,+      status = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The ARN of the flow that you started.+startFlowResponse_flowArn :: Lens.Lens' StartFlowResponse (Prelude.Maybe Prelude.Text)+startFlowResponse_flowArn = Lens.lens (\StartFlowResponse' {flowArn} -> flowArn) (\s@StartFlowResponse' {} a -> s {flowArn = a} :: StartFlowResponse)++-- | The status of the flow when the StartFlow process begins.+startFlowResponse_status :: Lens.Lens' StartFlowResponse (Prelude.Maybe Status)+startFlowResponse_status = Lens.lens (\StartFlowResponse' {status} -> status) (\s@StartFlowResponse' {} a -> s {status = a} :: StartFlowResponse)++-- | The response's http status code.+startFlowResponse_httpStatus :: Lens.Lens' StartFlowResponse Prelude.Int+startFlowResponse_httpStatus = Lens.lens (\StartFlowResponse' {httpStatus} -> httpStatus) (\s@StartFlowResponse' {} a -> s {httpStatus = a} :: StartFlowResponse)++instance Prelude.NFData StartFlowResponse where+  rnf StartFlowResponse' {..} =+    Prelude.rnf flowArn+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MediaConnect/StopFlow.hs view
@@ -0,0 +1,171 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaConnect.StopFlow+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Stops a flow.+module Amazonka.MediaConnect.StopFlow+  ( -- * Creating a Request+    StopFlow (..),+    newStopFlow,++    -- * Request Lenses+    stopFlow_flowArn,++    -- * Destructuring the Response+    StopFlowResponse (..),+    newStopFlowResponse,++    -- * Response Lenses+    stopFlowResponse_flowArn,+    stopFlowResponse_status,+    stopFlowResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaConnect.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newStopFlow' smart constructor.+data StopFlow = StopFlow'+  { -- | The ARN of the flow that you want to stop.+    flowArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StopFlow' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'flowArn', 'stopFlow_flowArn' - The ARN of the flow that you want to stop.+newStopFlow ::+  -- | 'flowArn'+  Prelude.Text ->+  StopFlow+newStopFlow pFlowArn_ =+  StopFlow' {flowArn = pFlowArn_}++-- | The ARN of the flow that you want to stop.+stopFlow_flowArn :: Lens.Lens' StopFlow Prelude.Text+stopFlow_flowArn = Lens.lens (\StopFlow' {flowArn} -> flowArn) (\s@StopFlow' {} a -> s {flowArn = a} :: StopFlow)++instance Core.AWSRequest StopFlow where+  type AWSResponse StopFlow = StopFlowResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          StopFlowResponse'+            Prelude.<$> (x Data..?> "flowArn")+            Prelude.<*> (x Data..?> "status")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable StopFlow where+  hashWithSalt _salt StopFlow' {..} =+    _salt `Prelude.hashWithSalt` flowArn++instance Prelude.NFData StopFlow where+  rnf StopFlow' {..} = Prelude.rnf flowArn++instance Data.ToHeaders StopFlow where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON StopFlow where+  toJSON = Prelude.const (Data.Object Prelude.mempty)++instance Data.ToPath StopFlow where+  toPath StopFlow' {..} =+    Prelude.mconcat+      ["/v1/flows/stop/", Data.toBS flowArn]++instance Data.ToQuery StopFlow where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newStopFlowResponse' smart constructor.+data StopFlowResponse = StopFlowResponse'+  { -- | The ARN of the flow that you stopped.+    flowArn :: Prelude.Maybe Prelude.Text,+    -- | The status of the flow when the StopFlow process begins.+    status :: Prelude.Maybe Status,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StopFlowResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'flowArn', 'stopFlowResponse_flowArn' - The ARN of the flow that you stopped.+--+-- 'status', 'stopFlowResponse_status' - The status of the flow when the StopFlow process begins.+--+-- 'httpStatus', 'stopFlowResponse_httpStatus' - The response's http status code.+newStopFlowResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  StopFlowResponse+newStopFlowResponse pHttpStatus_ =+  StopFlowResponse'+    { flowArn = Prelude.Nothing,+      status = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The ARN of the flow that you stopped.+stopFlowResponse_flowArn :: Lens.Lens' StopFlowResponse (Prelude.Maybe Prelude.Text)+stopFlowResponse_flowArn = Lens.lens (\StopFlowResponse' {flowArn} -> flowArn) (\s@StopFlowResponse' {} a -> s {flowArn = a} :: StopFlowResponse)++-- | The status of the flow when the StopFlow process begins.+stopFlowResponse_status :: Lens.Lens' StopFlowResponse (Prelude.Maybe Status)+stopFlowResponse_status = Lens.lens (\StopFlowResponse' {status} -> status) (\s@StopFlowResponse' {} a -> s {status = a} :: StopFlowResponse)++-- | The response's http status code.+stopFlowResponse_httpStatus :: Lens.Lens' StopFlowResponse Prelude.Int+stopFlowResponse_httpStatus = Lens.lens (\StopFlowResponse' {httpStatus} -> httpStatus) (\s@StopFlowResponse' {} a -> s {httpStatus = a} :: StopFlowResponse)++instance Prelude.NFData StopFlowResponse where+  rnf StopFlowResponse' {..} =+    Prelude.rnf flowArn+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MediaConnect/TagResource.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.MediaConnect.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)+--+-- Associates the specified tags to a resource with the specified+-- resourceArn. If existing tags on a resource are not specified in the+-- request parameters, they are not changed. When a resource is deleted,+-- the tags associated with that resource are deleted as well.+module Amazonka.MediaConnect.TagResource+  ( -- * Creating a Request+    TagResource (..),+    newTagResource,++    -- * Request Lenses+    tagResource_resourceArn,+    tagResource_tags,++    -- * Destructuring the Response+    TagResourceResponse (..),+    newTagResourceResponse,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaConnect.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | The tags to add to the resource. A tag is an array of key-value pairs.+-- Tag keys can have a maximum character length of 128 characters, and tag+-- values can have a maximum length of 256 characters.+--+-- /See:/ 'newTagResource' smart constructor.+data TagResource = TagResource'+  { -- | The Amazon Resource Name (ARN) that identifies the AWS Elemental+    -- MediaConnect resource to which to add tags.+    resourceArn :: Prelude.Text,+    -- | A map from tag keys to values. Tag keys can have a maximum character+    -- length of 128 characters, and tag values can have a maximum length of+    -- 256 characters.+    tags :: Prelude.HashMap Prelude.Text Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TagResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceArn', 'tagResource_resourceArn' - The Amazon Resource Name (ARN) that identifies the AWS Elemental+-- MediaConnect resource to which to add tags.+--+-- 'tags', 'tagResource_tags' - A map from tag keys to values. Tag keys can have a maximum character+-- length of 128 characters, and tag values can have a maximum length of+-- 256 characters.+newTagResource ::+  -- | 'resourceArn'+  Prelude.Text ->+  TagResource+newTagResource pResourceArn_ =+  TagResource'+    { resourceArn = pResourceArn_,+      tags = Prelude.mempty+    }++-- | The Amazon Resource Name (ARN) that identifies the AWS Elemental+-- MediaConnect resource to which to add tags.+tagResource_resourceArn :: Lens.Lens' TagResource Prelude.Text+tagResource_resourceArn = Lens.lens (\TagResource' {resourceArn} -> resourceArn) (\s@TagResource' {} a -> s {resourceArn = a} :: TagResource)++-- | A map from tag keys to values. Tag keys can have a maximum character+-- length of 128 characters, and tag values can have a maximum length of+-- 256 characters.+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.receiveNull TagResourceResponse'++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'+  {+  }+  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.+newTagResourceResponse ::+  TagResourceResponse+newTagResourceResponse = TagResourceResponse'++instance Prelude.NFData TagResourceResponse where+  rnf _ = ()
+ gen/Amazonka/MediaConnect/Types.hs view
@@ -0,0 +1,742 @@+{-# 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.MediaConnect.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.MediaConnect.Types+  ( -- * Service Configuration+    defaultService,++    -- * Errors+    _AddFlowOutputs420Exception,+    _BadRequestException,+    _CreateFlow420Exception,+    _ForbiddenException,+    _GrantFlowEntitlements420Exception,+    _InternalServerErrorException,+    _NotFoundException,+    _ServiceUnavailableException,+    _TooManyRequestsException,++    -- * Algorithm+    Algorithm (..),++    -- * Colorimetry+    Colorimetry (..),++    -- * DurationUnits+    DurationUnits (..),++    -- * EncoderProfile+    EncoderProfile (..),++    -- * EncodingName+    EncodingName (..),++    -- * EntitlementStatus+    EntitlementStatus (..),++    -- * FailoverMode+    FailoverMode (..),++    -- * KeyType+    KeyType (..),++    -- * MaintenanceDay+    MaintenanceDay (..),++    -- * MediaStreamType+    MediaStreamType (..),++    -- * NetworkInterfaceType+    NetworkInterfaceType (..),++    -- * PriceUnits+    PriceUnits (..),++    -- * Protocol+    Protocol (..),++    -- * Range+    Range (..),++    -- * ReservationState+    ReservationState (..),++    -- * ResourceType+    ResourceType (..),++    -- * ScanMode+    ScanMode (..),++    -- * SourceType+    SourceType (..),++    -- * State+    State (..),++    -- * Status+    Status (..),++    -- * Tcs+    Tcs (..),++    -- * AddMaintenance+    AddMaintenance (..),+    newAddMaintenance,+    addMaintenance_maintenanceDay,+    addMaintenance_maintenanceStartHour,++    -- * AddMediaStreamRequest+    AddMediaStreamRequest (..),+    newAddMediaStreamRequest,+    addMediaStreamRequest_attributes,+    addMediaStreamRequest_clockRate,+    addMediaStreamRequest_description,+    addMediaStreamRequest_videoFormat,+    addMediaStreamRequest_mediaStreamType,+    addMediaStreamRequest_mediaStreamId,+    addMediaStreamRequest_mediaStreamName,++    -- * AddOutputRequest+    AddOutputRequest (..),+    newAddOutputRequest,+    addOutputRequest_cidrAllowList,+    addOutputRequest_description,+    addOutputRequest_destination,+    addOutputRequest_encryption,+    addOutputRequest_maxLatency,+    addOutputRequest_mediaStreamOutputConfigurations,+    addOutputRequest_minLatency,+    addOutputRequest_name,+    addOutputRequest_port,+    addOutputRequest_remoteId,+    addOutputRequest_senderControlPort,+    addOutputRequest_smoothingLatency,+    addOutputRequest_streamId,+    addOutputRequest_vpcInterfaceAttachment,+    addOutputRequest_protocol,++    -- * DestinationConfiguration+    DestinationConfiguration (..),+    newDestinationConfiguration,+    destinationConfiguration_destinationIp,+    destinationConfiguration_destinationPort,+    destinationConfiguration_interface,+    destinationConfiguration_outboundIp,++    -- * DestinationConfigurationRequest+    DestinationConfigurationRequest (..),+    newDestinationConfigurationRequest,+    destinationConfigurationRequest_destinationIp,+    destinationConfigurationRequest_destinationPort,+    destinationConfigurationRequest_interface,++    -- * EncodingParameters+    EncodingParameters (..),+    newEncodingParameters,+    encodingParameters_encoderProfile,+    encodingParameters_compressionFactor,++    -- * EncodingParametersRequest+    EncodingParametersRequest (..),+    newEncodingParametersRequest,+    encodingParametersRequest_encoderProfile,+    encodingParametersRequest_compressionFactor,++    -- * Encryption+    Encryption (..),+    newEncryption,+    encryption_algorithm,+    encryption_constantInitializationVector,+    encryption_deviceId,+    encryption_keyType,+    encryption_region,+    encryption_resourceId,+    encryption_secretArn,+    encryption_url,+    encryption_roleArn,++    -- * Entitlement+    Entitlement (..),+    newEntitlement,+    entitlement_dataTransferSubscriberFeePercent,+    entitlement_description,+    entitlement_encryption,+    entitlement_entitlementStatus,+    entitlement_entitlementArn,+    entitlement_subscribers,+    entitlement_name,++    -- * FailoverConfig+    FailoverConfig (..),+    newFailoverConfig,+    failoverConfig_failoverMode,+    failoverConfig_recoveryWindow,+    failoverConfig_sourcePriority,+    failoverConfig_state,++    -- * Flow+    Flow (..),+    newFlow,+    flow_description,+    flow_egressIp,+    flow_maintenance,+    flow_mediaStreams,+    flow_sourceFailoverConfig,+    flow_sources,+    flow_vpcInterfaces,+    flow_status,+    flow_entitlements,+    flow_outputs,+    flow_availabilityZone,+    flow_flowArn,+    flow_source,+    flow_name,++    -- * Fmtp+    Fmtp (..),+    newFmtp,+    fmtp_channelOrder,+    fmtp_colorimetry,+    fmtp_exactFramerate,+    fmtp_par,+    fmtp_range,+    fmtp_scanMode,+    fmtp_tcs,++    -- * FmtpRequest+    FmtpRequest (..),+    newFmtpRequest,+    fmtpRequest_channelOrder,+    fmtpRequest_colorimetry,+    fmtpRequest_exactFramerate,+    fmtpRequest_par,+    fmtpRequest_range,+    fmtpRequest_scanMode,+    fmtpRequest_tcs,++    -- * GrantEntitlementRequest+    GrantEntitlementRequest (..),+    newGrantEntitlementRequest,+    grantEntitlementRequest_dataTransferSubscriberFeePercent,+    grantEntitlementRequest_description,+    grantEntitlementRequest_encryption,+    grantEntitlementRequest_entitlementStatus,+    grantEntitlementRequest_name,+    grantEntitlementRequest_subscribers,++    -- * InputConfiguration+    InputConfiguration (..),+    newInputConfiguration,+    inputConfiguration_inputPort,+    inputConfiguration_inputIp,+    inputConfiguration_interface,++    -- * InputConfigurationRequest+    InputConfigurationRequest (..),+    newInputConfigurationRequest,+    inputConfigurationRequest_inputPort,+    inputConfigurationRequest_interface,++    -- * Interface+    Interface (..),+    newInterface,+    interface_name,++    -- * InterfaceRequest+    InterfaceRequest (..),+    newInterfaceRequest,+    interfaceRequest_name,++    -- * ListedEntitlement+    ListedEntitlement (..),+    newListedEntitlement,+    listedEntitlement_dataTransferSubscriberFeePercent,+    listedEntitlement_entitlementArn,+    listedEntitlement_entitlementName,++    -- * ListedFlow+    ListedFlow (..),+    newListedFlow,+    listedFlow_maintenance,+    listedFlow_status,+    listedFlow_description,+    listedFlow_sourceType,+    listedFlow_availabilityZone,+    listedFlow_flowArn,+    listedFlow_name,++    -- * Maintenance+    Maintenance (..),+    newMaintenance,+    maintenance_maintenanceDay,+    maintenance_maintenanceDeadline,+    maintenance_maintenanceScheduledDate,+    maintenance_maintenanceStartHour,++    -- * MediaStream+    MediaStream (..),+    newMediaStream,+    mediaStream_attributes,+    mediaStream_clockRate,+    mediaStream_description,+    mediaStream_videoFormat,+    mediaStream_mediaStreamType,+    mediaStream_mediaStreamId,+    mediaStream_mediaStreamName,+    mediaStream_fmt,++    -- * MediaStreamAttributes+    MediaStreamAttributes (..),+    newMediaStreamAttributes,+    mediaStreamAttributes_lang,+    mediaStreamAttributes_fmtp,++    -- * MediaStreamAttributesRequest+    MediaStreamAttributesRequest (..),+    newMediaStreamAttributesRequest,+    mediaStreamAttributesRequest_fmtp,+    mediaStreamAttributesRequest_lang,++    -- * MediaStreamOutputConfiguration+    MediaStreamOutputConfiguration (..),+    newMediaStreamOutputConfiguration,+    mediaStreamOutputConfiguration_destinationConfigurations,+    mediaStreamOutputConfiguration_encodingParameters,+    mediaStreamOutputConfiguration_mediaStreamName,+    mediaStreamOutputConfiguration_encodingName,++    -- * MediaStreamOutputConfigurationRequest+    MediaStreamOutputConfigurationRequest (..),+    newMediaStreamOutputConfigurationRequest,+    mediaStreamOutputConfigurationRequest_destinationConfigurations,+    mediaStreamOutputConfigurationRequest_encodingParameters,+    mediaStreamOutputConfigurationRequest_mediaStreamName,+    mediaStreamOutputConfigurationRequest_encodingName,++    -- * MediaStreamSourceConfiguration+    MediaStreamSourceConfiguration (..),+    newMediaStreamSourceConfiguration,+    mediaStreamSourceConfiguration_inputConfigurations,+    mediaStreamSourceConfiguration_mediaStreamName,+    mediaStreamSourceConfiguration_encodingName,++    -- * MediaStreamSourceConfigurationRequest+    MediaStreamSourceConfigurationRequest (..),+    newMediaStreamSourceConfigurationRequest,+    mediaStreamSourceConfigurationRequest_inputConfigurations,+    mediaStreamSourceConfigurationRequest_mediaStreamName,+    mediaStreamSourceConfigurationRequest_encodingName,++    -- * Messages+    Messages (..),+    newMessages,+    messages_errors,++    -- * Offering+    Offering (..),+    newOffering,+    offering_currencyCode,+    offering_offeringArn,+    offering_offeringDescription,+    offering_durationUnits,+    offering_duration,+    offering_pricePerUnit,+    offering_resourceSpecification,+    offering_priceUnits,++    -- * Output+    Output (..),+    newOutput,+    output_dataTransferSubscriberFeePercent,+    output_description,+    output_destination,+    output_encryption,+    output_entitlementArn,+    output_listenerAddress,+    output_mediaLiveInputArn,+    output_mediaStreamOutputConfigurations,+    output_port,+    output_transport,+    output_vpcInterfaceAttachment,+    output_outputArn,+    output_name,++    -- * Reservation+    Reservation (..),+    newReservation,+    reservation_currencyCode,+    reservation_reservationState,+    reservation_offeringArn,+    reservation_reservationArn,+    reservation_start,+    reservation_offeringDescription,+    reservation_reservationName,+    reservation_end,+    reservation_duration,+    reservation_durationUnits,+    reservation_pricePerUnit,+    reservation_resourceSpecification,+    reservation_priceUnits,++    -- * ResourceSpecification+    ResourceSpecification (..),+    newResourceSpecification,+    resourceSpecification_reservedBitrate,+    resourceSpecification_resourceType,++    -- * SetSourceRequest+    SetSourceRequest (..),+    newSetSourceRequest,+    setSourceRequest_decryption,+    setSourceRequest_description,+    setSourceRequest_entitlementArn,+    setSourceRequest_ingestPort,+    setSourceRequest_maxBitrate,+    setSourceRequest_maxLatency,+    setSourceRequest_maxSyncBuffer,+    setSourceRequest_mediaStreamSourceConfigurations,+    setSourceRequest_minLatency,+    setSourceRequest_name,+    setSourceRequest_protocol,+    setSourceRequest_senderControlPort,+    setSourceRequest_senderIpAddress,+    setSourceRequest_sourceListenerAddress,+    setSourceRequest_sourceListenerPort,+    setSourceRequest_streamId,+    setSourceRequest_vpcInterfaceName,+    setSourceRequest_whitelistCidr,++    -- * Source+    Source (..),+    newSource,+    source_dataTransferSubscriberFeePercent,+    source_decryption,+    source_description,+    source_entitlementArn,+    source_ingestIp,+    source_ingestPort,+    source_mediaStreamSourceConfigurations,+    source_senderControlPort,+    source_senderIpAddress,+    source_transport,+    source_vpcInterfaceName,+    source_whitelistCidr,+    source_sourceArn,+    source_name,++    -- * SourcePriority+    SourcePriority (..),+    newSourcePriority,+    sourcePriority_primarySource,++    -- * Transport+    Transport (..),+    newTransport,+    transport_cidrAllowList,+    transport_maxBitrate,+    transport_maxLatency,+    transport_maxSyncBuffer,+    transport_minLatency,+    transport_remoteId,+    transport_senderControlPort,+    transport_senderIpAddress,+    transport_smoothingLatency,+    transport_sourceListenerAddress,+    transport_sourceListenerPort,+    transport_streamId,+    transport_protocol,++    -- * UpdateEncryption+    UpdateEncryption (..),+    newUpdateEncryption,+    updateEncryption_algorithm,+    updateEncryption_constantInitializationVector,+    updateEncryption_deviceId,+    updateEncryption_keyType,+    updateEncryption_region,+    updateEncryption_resourceId,+    updateEncryption_roleArn,+    updateEncryption_secretArn,+    updateEncryption_url,++    -- * UpdateFailoverConfig+    UpdateFailoverConfig (..),+    newUpdateFailoverConfig,+    updateFailoverConfig_failoverMode,+    updateFailoverConfig_recoveryWindow,+    updateFailoverConfig_sourcePriority,+    updateFailoverConfig_state,++    -- * UpdateMaintenance+    UpdateMaintenance (..),+    newUpdateMaintenance,+    updateMaintenance_maintenanceDay,+    updateMaintenance_maintenanceScheduledDate,+    updateMaintenance_maintenanceStartHour,++    -- * VpcInterface+    VpcInterface (..),+    newVpcInterface,+    vpcInterface_networkInterfaceType,+    vpcInterface_networkInterfaceIds,+    vpcInterface_subnetId,+    vpcInterface_securityGroupIds,+    vpcInterface_roleArn,+    vpcInterface_name,++    -- * VpcInterfaceAttachment+    VpcInterfaceAttachment (..),+    newVpcInterfaceAttachment,+    vpcInterfaceAttachment_vpcInterfaceName,++    -- * VpcInterfaceRequest+    VpcInterfaceRequest (..),+    newVpcInterfaceRequest,+    vpcInterfaceRequest_networkInterfaceType,+    vpcInterfaceRequest_subnetId,+    vpcInterfaceRequest_securityGroupIds,+    vpcInterfaceRequest_roleArn,+    vpcInterfaceRequest_name,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.MediaConnect.Types.AddMaintenance+import Amazonka.MediaConnect.Types.AddMediaStreamRequest+import Amazonka.MediaConnect.Types.AddOutputRequest+import Amazonka.MediaConnect.Types.Algorithm+import Amazonka.MediaConnect.Types.Colorimetry+import Amazonka.MediaConnect.Types.DestinationConfiguration+import Amazonka.MediaConnect.Types.DestinationConfigurationRequest+import Amazonka.MediaConnect.Types.DurationUnits+import Amazonka.MediaConnect.Types.EncoderProfile+import Amazonka.MediaConnect.Types.EncodingName+import Amazonka.MediaConnect.Types.EncodingParameters+import Amazonka.MediaConnect.Types.EncodingParametersRequest+import Amazonka.MediaConnect.Types.Encryption+import Amazonka.MediaConnect.Types.Entitlement+import Amazonka.MediaConnect.Types.EntitlementStatus+import Amazonka.MediaConnect.Types.FailoverConfig+import Amazonka.MediaConnect.Types.FailoverMode+import Amazonka.MediaConnect.Types.Flow+import Amazonka.MediaConnect.Types.Fmtp+import Amazonka.MediaConnect.Types.FmtpRequest+import Amazonka.MediaConnect.Types.GrantEntitlementRequest+import Amazonka.MediaConnect.Types.InputConfiguration+import Amazonka.MediaConnect.Types.InputConfigurationRequest+import Amazonka.MediaConnect.Types.Interface+import Amazonka.MediaConnect.Types.InterfaceRequest+import Amazonka.MediaConnect.Types.KeyType+import Amazonka.MediaConnect.Types.ListedEntitlement+import Amazonka.MediaConnect.Types.ListedFlow+import Amazonka.MediaConnect.Types.Maintenance+import Amazonka.MediaConnect.Types.MaintenanceDay+import Amazonka.MediaConnect.Types.MediaStream+import Amazonka.MediaConnect.Types.MediaStreamAttributes+import Amazonka.MediaConnect.Types.MediaStreamAttributesRequest+import Amazonka.MediaConnect.Types.MediaStreamOutputConfiguration+import Amazonka.MediaConnect.Types.MediaStreamOutputConfigurationRequest+import Amazonka.MediaConnect.Types.MediaStreamSourceConfiguration+import Amazonka.MediaConnect.Types.MediaStreamSourceConfigurationRequest+import Amazonka.MediaConnect.Types.MediaStreamType+import Amazonka.MediaConnect.Types.Messages+import Amazonka.MediaConnect.Types.NetworkInterfaceType+import Amazonka.MediaConnect.Types.Offering+import Amazonka.MediaConnect.Types.Output+import Amazonka.MediaConnect.Types.PriceUnits+import Amazonka.MediaConnect.Types.Protocol+import Amazonka.MediaConnect.Types.Range+import Amazonka.MediaConnect.Types.Reservation+import Amazonka.MediaConnect.Types.ReservationState+import Amazonka.MediaConnect.Types.ResourceSpecification+import Amazonka.MediaConnect.Types.ResourceType+import Amazonka.MediaConnect.Types.ScanMode+import Amazonka.MediaConnect.Types.SetSourceRequest+import Amazonka.MediaConnect.Types.Source+import Amazonka.MediaConnect.Types.SourcePriority+import Amazonka.MediaConnect.Types.SourceType+import Amazonka.MediaConnect.Types.State+import Amazonka.MediaConnect.Types.Status+import Amazonka.MediaConnect.Types.Tcs+import Amazonka.MediaConnect.Types.Transport+import Amazonka.MediaConnect.Types.UpdateEncryption+import Amazonka.MediaConnect.Types.UpdateFailoverConfig+import Amazonka.MediaConnect.Types.UpdateMaintenance+import Amazonka.MediaConnect.Types.VpcInterface+import Amazonka.MediaConnect.Types.VpcInterfaceAttachment+import Amazonka.MediaConnect.Types.VpcInterfaceRequest+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Sign.V4 as Sign++-- | API version @2018-11-14@ of the Amazon MediaConnect SDK configuration.+defaultService :: Core.Service+defaultService =+  Core.Service+    { Core.abbrev = "MediaConnect",+      Core.signer = Sign.v4,+      Core.endpointPrefix = "mediaconnect",+      Core.signingName = "mediaconnect",+      Core.version = "2018-11-14",+      Core.s3AddressingStyle = Core.S3AddressingStyleAuto,+      Core.endpoint = Core.defaultEndpoint defaultService,+      Core.timeout = Prelude.Just 70,+      Core.check = Core.statusSuccess,+      Core.error = Core.parseJSONError "MediaConnect",+      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++-- | Exception raised by AWS Elemental MediaConnect. See the error message+-- and documentation for the operation for more information on the cause of+-- this exception.+_AddFlowOutputs420Exception :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_AddFlowOutputs420Exception =+  Core._MatchServiceError+    defaultService+    "AddFlowOutputs420Exception"+    Prelude.. Core.hasStatus 420++-- | Exception raised by AWS Elemental MediaConnect. See the error message+-- and documentation for the operation for more information on the cause of+-- this exception.+_BadRequestException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_BadRequestException =+  Core._MatchServiceError+    defaultService+    "BadRequestException"+    Prelude.. Core.hasStatus 400++-- | Exception raised by AWS Elemental MediaConnect. See the error message+-- and documentation for the operation for more information on the cause of+-- this exception.+_CreateFlow420Exception :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_CreateFlow420Exception =+  Core._MatchServiceError+    defaultService+    "CreateFlow420Exception"+    Prelude.. Core.hasStatus 420++-- | Exception raised by AWS Elemental MediaConnect. See the error message+-- and documentation for the operation for more information on the cause of+-- this exception.+_ForbiddenException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ForbiddenException =+  Core._MatchServiceError+    defaultService+    "ForbiddenException"+    Prelude.. Core.hasStatus 403++-- | Exception raised by AWS Elemental MediaConnect. See the error message+-- and documentation for the operation for more information on the cause of+-- this exception.+_GrantFlowEntitlements420Exception :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_GrantFlowEntitlements420Exception =+  Core._MatchServiceError+    defaultService+    "GrantFlowEntitlements420Exception"+    Prelude.. Core.hasStatus 420++-- | Exception raised by AWS Elemental MediaConnect. See the error message+-- and documentation for the operation for more information on the cause of+-- this exception.+_InternalServerErrorException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InternalServerErrorException =+  Core._MatchServiceError+    defaultService+    "InternalServerErrorException"+    Prelude.. Core.hasStatus 500++-- | Exception raised by AWS Elemental MediaConnect. See the error message+-- and documentation for the operation for more information on the cause of+-- this exception.+_NotFoundException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_NotFoundException =+  Core._MatchServiceError+    defaultService+    "NotFoundException"+    Prelude.. Core.hasStatus 404++-- | Exception raised by AWS Elemental MediaConnect. See the error message+-- and documentation for the operation for more information on the cause of+-- this exception.+_ServiceUnavailableException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ServiceUnavailableException =+  Core._MatchServiceError+    defaultService+    "ServiceUnavailableException"+    Prelude.. Core.hasStatus 503++-- | Exception raised by AWS Elemental MediaConnect. See the error message+-- and documentation for the operation for more information on the cause of+-- this exception.+_TooManyRequestsException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_TooManyRequestsException =+  Core._MatchServiceError+    defaultService+    "TooManyRequestsException"+    Prelude.. Core.hasStatus 429
+ gen/Amazonka/MediaConnect/Types/AddMaintenance.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.MediaConnect.Types.AddMaintenance+-- 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.MediaConnect.Types.AddMaintenance where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaConnect.Types.MaintenanceDay+import qualified Amazonka.Prelude as Prelude++-- | Create maintenance setting for a flow+--+-- /See:/ 'newAddMaintenance' smart constructor.+data AddMaintenance = AddMaintenance'+  { -- | A day of a week when the maintenance will happen. Use+    -- Monday\/Tuesday\/Wednesday\/Thursday\/Friday\/Saturday\/Sunday.+    maintenanceDay :: MaintenanceDay,+    -- | UTC time when the maintenance will happen. Use 24-hour HH:MM format.+    -- Minutes must be 00. Example: 13:00. The default value is 02:00.+    maintenanceStartHour :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AddMaintenance' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'maintenanceDay', 'addMaintenance_maintenanceDay' - A day of a week when the maintenance will happen. Use+-- Monday\/Tuesday\/Wednesday\/Thursday\/Friday\/Saturday\/Sunday.+--+-- 'maintenanceStartHour', 'addMaintenance_maintenanceStartHour' - UTC time when the maintenance will happen. Use 24-hour HH:MM format.+-- Minutes must be 00. Example: 13:00. The default value is 02:00.+newAddMaintenance ::+  -- | 'maintenanceDay'+  MaintenanceDay ->+  -- | 'maintenanceStartHour'+  Prelude.Text ->+  AddMaintenance+newAddMaintenance+  pMaintenanceDay_+  pMaintenanceStartHour_ =+    AddMaintenance'+      { maintenanceDay = pMaintenanceDay_,+        maintenanceStartHour = pMaintenanceStartHour_+      }++-- | A day of a week when the maintenance will happen. Use+-- Monday\/Tuesday\/Wednesday\/Thursday\/Friday\/Saturday\/Sunday.+addMaintenance_maintenanceDay :: Lens.Lens' AddMaintenance MaintenanceDay+addMaintenance_maintenanceDay = Lens.lens (\AddMaintenance' {maintenanceDay} -> maintenanceDay) (\s@AddMaintenance' {} a -> s {maintenanceDay = a} :: AddMaintenance)++-- | UTC time when the maintenance will happen. Use 24-hour HH:MM format.+-- Minutes must be 00. Example: 13:00. The default value is 02:00.+addMaintenance_maintenanceStartHour :: Lens.Lens' AddMaintenance Prelude.Text+addMaintenance_maintenanceStartHour = Lens.lens (\AddMaintenance' {maintenanceStartHour} -> maintenanceStartHour) (\s@AddMaintenance' {} a -> s {maintenanceStartHour = a} :: AddMaintenance)++instance Prelude.Hashable AddMaintenance where+  hashWithSalt _salt AddMaintenance' {..} =+    _salt+      `Prelude.hashWithSalt` maintenanceDay+      `Prelude.hashWithSalt` maintenanceStartHour++instance Prelude.NFData AddMaintenance where+  rnf AddMaintenance' {..} =+    Prelude.rnf maintenanceDay+      `Prelude.seq` Prelude.rnf maintenanceStartHour++instance Data.ToJSON AddMaintenance where+  toJSON AddMaintenance' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("maintenanceDay" Data..= maintenanceDay),+            Prelude.Just+              ( "maintenanceStartHour"+                  Data..= maintenanceStartHour+              )+          ]+      )
+ gen/Amazonka/MediaConnect/Types/AddMediaStreamRequest.hs view
@@ -0,0 +1,166 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaConnect.Types.AddMediaStreamRequest+-- 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.MediaConnect.Types.AddMediaStreamRequest where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaConnect.Types.MediaStreamAttributesRequest+import Amazonka.MediaConnect.Types.MediaStreamType+import qualified Amazonka.Prelude as Prelude++-- | The media stream that you want to add to the flow.+--+-- /See:/ 'newAddMediaStreamRequest' smart constructor.+data AddMediaStreamRequest = AddMediaStreamRequest'+  { -- | The attributes that you want to assign to the new media stream.+    attributes :: Prelude.Maybe MediaStreamAttributesRequest,+    -- | The sample rate (in Hz) for the stream. If the media stream type is+    -- video or ancillary data, set this value to 90000. If the media stream+    -- type is audio, set this value to either 48000 or 96000.+    clockRate :: Prelude.Maybe Prelude.Int,+    -- | A description that can help you quickly identify what your media stream+    -- is used for.+    description :: Prelude.Maybe Prelude.Text,+    -- | The resolution of the video.+    videoFormat :: Prelude.Maybe Prelude.Text,+    -- | The type of media stream.+    mediaStreamType :: MediaStreamType,+    -- | A unique identifier for the media stream.+    mediaStreamId :: Prelude.Int,+    -- | A name that helps you distinguish one media stream from another.+    mediaStreamName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AddMediaStreamRequest' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'attributes', 'addMediaStreamRequest_attributes' - The attributes that you want to assign to the new media stream.+--+-- 'clockRate', 'addMediaStreamRequest_clockRate' - The sample rate (in Hz) for the stream. If the media stream type is+-- video or ancillary data, set this value to 90000. If the media stream+-- type is audio, set this value to either 48000 or 96000.+--+-- 'description', 'addMediaStreamRequest_description' - A description that can help you quickly identify what your media stream+-- is used for.+--+-- 'videoFormat', 'addMediaStreamRequest_videoFormat' - The resolution of the video.+--+-- 'mediaStreamType', 'addMediaStreamRequest_mediaStreamType' - The type of media stream.+--+-- 'mediaStreamId', 'addMediaStreamRequest_mediaStreamId' - A unique identifier for the media stream.+--+-- 'mediaStreamName', 'addMediaStreamRequest_mediaStreamName' - A name that helps you distinguish one media stream from another.+newAddMediaStreamRequest ::+  -- | 'mediaStreamType'+  MediaStreamType ->+  -- | 'mediaStreamId'+  Prelude.Int ->+  -- | 'mediaStreamName'+  Prelude.Text ->+  AddMediaStreamRequest+newAddMediaStreamRequest+  pMediaStreamType_+  pMediaStreamId_+  pMediaStreamName_ =+    AddMediaStreamRequest'+      { attributes =+          Prelude.Nothing,+        clockRate = Prelude.Nothing,+        description = Prelude.Nothing,+        videoFormat = Prelude.Nothing,+        mediaStreamType = pMediaStreamType_,+        mediaStreamId = pMediaStreamId_,+        mediaStreamName = pMediaStreamName_+      }++-- | The attributes that you want to assign to the new media stream.+addMediaStreamRequest_attributes :: Lens.Lens' AddMediaStreamRequest (Prelude.Maybe MediaStreamAttributesRequest)+addMediaStreamRequest_attributes = Lens.lens (\AddMediaStreamRequest' {attributes} -> attributes) (\s@AddMediaStreamRequest' {} a -> s {attributes = a} :: AddMediaStreamRequest)++-- | The sample rate (in Hz) for the stream. If the media stream type is+-- video or ancillary data, set this value to 90000. If the media stream+-- type is audio, set this value to either 48000 or 96000.+addMediaStreamRequest_clockRate :: Lens.Lens' AddMediaStreamRequest (Prelude.Maybe Prelude.Int)+addMediaStreamRequest_clockRate = Lens.lens (\AddMediaStreamRequest' {clockRate} -> clockRate) (\s@AddMediaStreamRequest' {} a -> s {clockRate = a} :: AddMediaStreamRequest)++-- | A description that can help you quickly identify what your media stream+-- is used for.+addMediaStreamRequest_description :: Lens.Lens' AddMediaStreamRequest (Prelude.Maybe Prelude.Text)+addMediaStreamRequest_description = Lens.lens (\AddMediaStreamRequest' {description} -> description) (\s@AddMediaStreamRequest' {} a -> s {description = a} :: AddMediaStreamRequest)++-- | The resolution of the video.+addMediaStreamRequest_videoFormat :: Lens.Lens' AddMediaStreamRequest (Prelude.Maybe Prelude.Text)+addMediaStreamRequest_videoFormat = Lens.lens (\AddMediaStreamRequest' {videoFormat} -> videoFormat) (\s@AddMediaStreamRequest' {} a -> s {videoFormat = a} :: AddMediaStreamRequest)++-- | The type of media stream.+addMediaStreamRequest_mediaStreamType :: Lens.Lens' AddMediaStreamRequest MediaStreamType+addMediaStreamRequest_mediaStreamType = Lens.lens (\AddMediaStreamRequest' {mediaStreamType} -> mediaStreamType) (\s@AddMediaStreamRequest' {} a -> s {mediaStreamType = a} :: AddMediaStreamRequest)++-- | A unique identifier for the media stream.+addMediaStreamRequest_mediaStreamId :: Lens.Lens' AddMediaStreamRequest Prelude.Int+addMediaStreamRequest_mediaStreamId = Lens.lens (\AddMediaStreamRequest' {mediaStreamId} -> mediaStreamId) (\s@AddMediaStreamRequest' {} a -> s {mediaStreamId = a} :: AddMediaStreamRequest)++-- | A name that helps you distinguish one media stream from another.+addMediaStreamRequest_mediaStreamName :: Lens.Lens' AddMediaStreamRequest Prelude.Text+addMediaStreamRequest_mediaStreamName = Lens.lens (\AddMediaStreamRequest' {mediaStreamName} -> mediaStreamName) (\s@AddMediaStreamRequest' {} a -> s {mediaStreamName = a} :: AddMediaStreamRequest)++instance Prelude.Hashable AddMediaStreamRequest where+  hashWithSalt _salt AddMediaStreamRequest' {..} =+    _salt+      `Prelude.hashWithSalt` attributes+      `Prelude.hashWithSalt` clockRate+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` videoFormat+      `Prelude.hashWithSalt` mediaStreamType+      `Prelude.hashWithSalt` mediaStreamId+      `Prelude.hashWithSalt` mediaStreamName++instance Prelude.NFData AddMediaStreamRequest where+  rnf AddMediaStreamRequest' {..} =+    Prelude.rnf attributes+      `Prelude.seq` Prelude.rnf clockRate+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf videoFormat+      `Prelude.seq` Prelude.rnf mediaStreamType+      `Prelude.seq` Prelude.rnf mediaStreamId+      `Prelude.seq` Prelude.rnf mediaStreamName++instance Data.ToJSON AddMediaStreamRequest where+  toJSON AddMediaStreamRequest' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("attributes" Data..=) Prelude.<$> attributes,+            ("clockRate" Data..=) Prelude.<$> clockRate,+            ("description" Data..=) Prelude.<$> description,+            ("videoFormat" Data..=) Prelude.<$> videoFormat,+            Prelude.Just+              ("mediaStreamType" Data..= mediaStreamType),+            Prelude.Just ("mediaStreamId" Data..= mediaStreamId),+            Prelude.Just+              ("mediaStreamName" Data..= mediaStreamName)+          ]+      )
+ gen/Amazonka/MediaConnect/Types/AddOutputRequest.hs view
@@ -0,0 +1,291 @@+{-# 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.MediaConnect.Types.AddOutputRequest+-- 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.MediaConnect.Types.AddOutputRequest where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaConnect.Types.Encryption+import Amazonka.MediaConnect.Types.MediaStreamOutputConfigurationRequest+import Amazonka.MediaConnect.Types.Protocol+import Amazonka.MediaConnect.Types.VpcInterfaceAttachment+import qualified Amazonka.Prelude as Prelude++-- | The output that you want to add to this flow.+--+-- /See:/ 'newAddOutputRequest' smart constructor.+data AddOutputRequest = AddOutputRequest'+  { -- | The range of IP addresses that should be allowed to initiate output+    -- requests to this flow. These IP addresses should be in the form of a+    -- Classless Inter-Domain Routing (CIDR) block; for example, 10.0.0.0\/16.+    cidrAllowList :: Prelude.Maybe [Prelude.Text],+    -- | A description of the output. This description appears only on the AWS+    -- Elemental MediaConnect console and will not be seen by the end user.+    description :: Prelude.Maybe Prelude.Text,+    -- | The IP address from which video will be sent to output destinations.+    destination :: Prelude.Maybe Prelude.Text,+    -- | The type of key used for the encryption. If no keyType is provided, the+    -- service will use the default setting (static-key).+    encryption :: Prelude.Maybe Encryption,+    -- | The maximum latency in milliseconds. This parameter applies only to+    -- RIST-based, Zixi-based, and Fujitsu-based streams.+    maxLatency :: Prelude.Maybe Prelude.Int,+    -- | The media streams that are associated with the output, and the+    -- parameters for those associations.+    mediaStreamOutputConfigurations :: Prelude.Maybe [MediaStreamOutputConfigurationRequest],+    -- | The minimum latency in milliseconds for SRT-based streams. In streams+    -- that use the SRT protocol, this value that you set on your MediaConnect+    -- source or output represents the minimal potential latency of that+    -- connection. The latency of the stream is set to the highest number+    -- between the sender’s minimum latency and the receiver’s minimum latency.+    minLatency :: Prelude.Maybe Prelude.Int,+    -- | The name of the output. This value must be unique within the current+    -- flow.+    name :: Prelude.Maybe Prelude.Text,+    -- | The port to use when content is distributed to this output.+    port :: Prelude.Maybe Prelude.Int,+    -- | The remote ID for the Zixi-pull output stream.+    remoteId :: Prelude.Maybe Prelude.Text,+    -- | The port that the flow uses to send outbound requests to initiate+    -- connection with the sender.+    senderControlPort :: Prelude.Maybe Prelude.Int,+    -- | The smoothing latency in milliseconds for RIST, RTP, and RTP-FEC+    -- streams.+    smoothingLatency :: Prelude.Maybe Prelude.Int,+    -- | The stream ID that you want to use for this transport. This parameter+    -- applies only to Zixi-based streams.+    streamId :: Prelude.Maybe Prelude.Text,+    -- | The name of the VPC interface attachment to use for this output.+    vpcInterfaceAttachment :: Prelude.Maybe VpcInterfaceAttachment,+    -- | The protocol to use for the output.+    protocol :: Protocol+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AddOutputRequest' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'cidrAllowList', 'addOutputRequest_cidrAllowList' - The range of IP addresses that should be allowed to initiate output+-- requests to this flow. These IP addresses should be in the form of a+-- Classless Inter-Domain Routing (CIDR) block; for example, 10.0.0.0\/16.+--+-- 'description', 'addOutputRequest_description' - A description of the output. This description appears only on the AWS+-- Elemental MediaConnect console and will not be seen by the end user.+--+-- 'destination', 'addOutputRequest_destination' - The IP address from which video will be sent to output destinations.+--+-- 'encryption', 'addOutputRequest_encryption' - The type of key used for the encryption. If no keyType is provided, the+-- service will use the default setting (static-key).+--+-- 'maxLatency', 'addOutputRequest_maxLatency' - The maximum latency in milliseconds. This parameter applies only to+-- RIST-based, Zixi-based, and Fujitsu-based streams.+--+-- 'mediaStreamOutputConfigurations', 'addOutputRequest_mediaStreamOutputConfigurations' - The media streams that are associated with the output, and the+-- parameters for those associations.+--+-- 'minLatency', 'addOutputRequest_minLatency' - The minimum latency in milliseconds for SRT-based streams. In streams+-- that use the SRT protocol, this value that you set on your MediaConnect+-- source or output represents the minimal potential latency of that+-- connection. The latency of the stream is set to the highest number+-- between the sender’s minimum latency and the receiver’s minimum latency.+--+-- 'name', 'addOutputRequest_name' - The name of the output. This value must be unique within the current+-- flow.+--+-- 'port', 'addOutputRequest_port' - The port to use when content is distributed to this output.+--+-- 'remoteId', 'addOutputRequest_remoteId' - The remote ID for the Zixi-pull output stream.+--+-- 'senderControlPort', 'addOutputRequest_senderControlPort' - The port that the flow uses to send outbound requests to initiate+-- connection with the sender.+--+-- 'smoothingLatency', 'addOutputRequest_smoothingLatency' - The smoothing latency in milliseconds for RIST, RTP, and RTP-FEC+-- streams.+--+-- 'streamId', 'addOutputRequest_streamId' - The stream ID that you want to use for this transport. This parameter+-- applies only to Zixi-based streams.+--+-- 'vpcInterfaceAttachment', 'addOutputRequest_vpcInterfaceAttachment' - The name of the VPC interface attachment to use for this output.+--+-- 'protocol', 'addOutputRequest_protocol' - The protocol to use for the output.+newAddOutputRequest ::+  -- | 'protocol'+  Protocol ->+  AddOutputRequest+newAddOutputRequest pProtocol_ =+  AddOutputRequest'+    { cidrAllowList = Prelude.Nothing,+      description = Prelude.Nothing,+      destination = Prelude.Nothing,+      encryption = Prelude.Nothing,+      maxLatency = Prelude.Nothing,+      mediaStreamOutputConfigurations = Prelude.Nothing,+      minLatency = Prelude.Nothing,+      name = Prelude.Nothing,+      port = Prelude.Nothing,+      remoteId = Prelude.Nothing,+      senderControlPort = Prelude.Nothing,+      smoothingLatency = Prelude.Nothing,+      streamId = Prelude.Nothing,+      vpcInterfaceAttachment = Prelude.Nothing,+      protocol = pProtocol_+    }++-- | The range of IP addresses that should be allowed to initiate output+-- requests to this flow. These IP addresses should be in the form of a+-- Classless Inter-Domain Routing (CIDR) block; for example, 10.0.0.0\/16.+addOutputRequest_cidrAllowList :: Lens.Lens' AddOutputRequest (Prelude.Maybe [Prelude.Text])+addOutputRequest_cidrAllowList = Lens.lens (\AddOutputRequest' {cidrAllowList} -> cidrAllowList) (\s@AddOutputRequest' {} a -> s {cidrAllowList = a} :: AddOutputRequest) Prelude.. Lens.mapping Lens.coerced++-- | A description of the output. This description appears only on the AWS+-- Elemental MediaConnect console and will not be seen by the end user.+addOutputRequest_description :: Lens.Lens' AddOutputRequest (Prelude.Maybe Prelude.Text)+addOutputRequest_description = Lens.lens (\AddOutputRequest' {description} -> description) (\s@AddOutputRequest' {} a -> s {description = a} :: AddOutputRequest)++-- | The IP address from which video will be sent to output destinations.+addOutputRequest_destination :: Lens.Lens' AddOutputRequest (Prelude.Maybe Prelude.Text)+addOutputRequest_destination = Lens.lens (\AddOutputRequest' {destination} -> destination) (\s@AddOutputRequest' {} a -> s {destination = a} :: AddOutputRequest)++-- | The type of key used for the encryption. If no keyType is provided, the+-- service will use the default setting (static-key).+addOutputRequest_encryption :: Lens.Lens' AddOutputRequest (Prelude.Maybe Encryption)+addOutputRequest_encryption = Lens.lens (\AddOutputRequest' {encryption} -> encryption) (\s@AddOutputRequest' {} a -> s {encryption = a} :: AddOutputRequest)++-- | The maximum latency in milliseconds. This parameter applies only to+-- RIST-based, Zixi-based, and Fujitsu-based streams.+addOutputRequest_maxLatency :: Lens.Lens' AddOutputRequest (Prelude.Maybe Prelude.Int)+addOutputRequest_maxLatency = Lens.lens (\AddOutputRequest' {maxLatency} -> maxLatency) (\s@AddOutputRequest' {} a -> s {maxLatency = a} :: AddOutputRequest)++-- | The media streams that are associated with the output, and the+-- parameters for those associations.+addOutputRequest_mediaStreamOutputConfigurations :: Lens.Lens' AddOutputRequest (Prelude.Maybe [MediaStreamOutputConfigurationRequest])+addOutputRequest_mediaStreamOutputConfigurations = Lens.lens (\AddOutputRequest' {mediaStreamOutputConfigurations} -> mediaStreamOutputConfigurations) (\s@AddOutputRequest' {} a -> s {mediaStreamOutputConfigurations = a} :: AddOutputRequest) Prelude.. Lens.mapping Lens.coerced++-- | The minimum latency in milliseconds for SRT-based streams. In streams+-- that use the SRT protocol, this value that you set on your MediaConnect+-- source or output represents the minimal potential latency of that+-- connection. The latency of the stream is set to the highest number+-- between the sender’s minimum latency and the receiver’s minimum latency.+addOutputRequest_minLatency :: Lens.Lens' AddOutputRequest (Prelude.Maybe Prelude.Int)+addOutputRequest_minLatency = Lens.lens (\AddOutputRequest' {minLatency} -> minLatency) (\s@AddOutputRequest' {} a -> s {minLatency = a} :: AddOutputRequest)++-- | The name of the output. This value must be unique within the current+-- flow.+addOutputRequest_name :: Lens.Lens' AddOutputRequest (Prelude.Maybe Prelude.Text)+addOutputRequest_name = Lens.lens (\AddOutputRequest' {name} -> name) (\s@AddOutputRequest' {} a -> s {name = a} :: AddOutputRequest)++-- | The port to use when content is distributed to this output.+addOutputRequest_port :: Lens.Lens' AddOutputRequest (Prelude.Maybe Prelude.Int)+addOutputRequest_port = Lens.lens (\AddOutputRequest' {port} -> port) (\s@AddOutputRequest' {} a -> s {port = a} :: AddOutputRequest)++-- | The remote ID for the Zixi-pull output stream.+addOutputRequest_remoteId :: Lens.Lens' AddOutputRequest (Prelude.Maybe Prelude.Text)+addOutputRequest_remoteId = Lens.lens (\AddOutputRequest' {remoteId} -> remoteId) (\s@AddOutputRequest' {} a -> s {remoteId = a} :: AddOutputRequest)++-- | The port that the flow uses to send outbound requests to initiate+-- connection with the sender.+addOutputRequest_senderControlPort :: Lens.Lens' AddOutputRequest (Prelude.Maybe Prelude.Int)+addOutputRequest_senderControlPort = Lens.lens (\AddOutputRequest' {senderControlPort} -> senderControlPort) (\s@AddOutputRequest' {} a -> s {senderControlPort = a} :: AddOutputRequest)++-- | The smoothing latency in milliseconds for RIST, RTP, and RTP-FEC+-- streams.+addOutputRequest_smoothingLatency :: Lens.Lens' AddOutputRequest (Prelude.Maybe Prelude.Int)+addOutputRequest_smoothingLatency = Lens.lens (\AddOutputRequest' {smoothingLatency} -> smoothingLatency) (\s@AddOutputRequest' {} a -> s {smoothingLatency = a} :: AddOutputRequest)++-- | The stream ID that you want to use for this transport. This parameter+-- applies only to Zixi-based streams.+addOutputRequest_streamId :: Lens.Lens' AddOutputRequest (Prelude.Maybe Prelude.Text)+addOutputRequest_streamId = Lens.lens (\AddOutputRequest' {streamId} -> streamId) (\s@AddOutputRequest' {} a -> s {streamId = a} :: AddOutputRequest)++-- | The name of the VPC interface attachment to use for this output.+addOutputRequest_vpcInterfaceAttachment :: Lens.Lens' AddOutputRequest (Prelude.Maybe VpcInterfaceAttachment)+addOutputRequest_vpcInterfaceAttachment = Lens.lens (\AddOutputRequest' {vpcInterfaceAttachment} -> vpcInterfaceAttachment) (\s@AddOutputRequest' {} a -> s {vpcInterfaceAttachment = a} :: AddOutputRequest)++-- | The protocol to use for the output.+addOutputRequest_protocol :: Lens.Lens' AddOutputRequest Protocol+addOutputRequest_protocol = Lens.lens (\AddOutputRequest' {protocol} -> protocol) (\s@AddOutputRequest' {} a -> s {protocol = a} :: AddOutputRequest)++instance Prelude.Hashable AddOutputRequest where+  hashWithSalt _salt AddOutputRequest' {..} =+    _salt+      `Prelude.hashWithSalt` cidrAllowList+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` destination+      `Prelude.hashWithSalt` encryption+      `Prelude.hashWithSalt` maxLatency+      `Prelude.hashWithSalt` mediaStreamOutputConfigurations+      `Prelude.hashWithSalt` minLatency+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` port+      `Prelude.hashWithSalt` remoteId+      `Prelude.hashWithSalt` senderControlPort+      `Prelude.hashWithSalt` smoothingLatency+      `Prelude.hashWithSalt` streamId+      `Prelude.hashWithSalt` vpcInterfaceAttachment+      `Prelude.hashWithSalt` protocol++instance Prelude.NFData AddOutputRequest where+  rnf AddOutputRequest' {..} =+    Prelude.rnf cidrAllowList+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf destination+      `Prelude.seq` Prelude.rnf encryption+      `Prelude.seq` Prelude.rnf maxLatency+      `Prelude.seq` Prelude.rnf mediaStreamOutputConfigurations+      `Prelude.seq` Prelude.rnf minLatency+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf port+      `Prelude.seq` Prelude.rnf remoteId+      `Prelude.seq` Prelude.rnf senderControlPort+      `Prelude.seq` Prelude.rnf smoothingLatency+      `Prelude.seq` Prelude.rnf streamId+      `Prelude.seq` Prelude.rnf vpcInterfaceAttachment+      `Prelude.seq` Prelude.rnf protocol++instance Data.ToJSON AddOutputRequest where+  toJSON AddOutputRequest' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("cidrAllowList" Data..=) Prelude.<$> cidrAllowList,+            ("description" Data..=) Prelude.<$> description,+            ("destination" Data..=) Prelude.<$> destination,+            ("encryption" Data..=) Prelude.<$> encryption,+            ("maxLatency" Data..=) Prelude.<$> maxLatency,+            ("mediaStreamOutputConfigurations" Data..=)+              Prelude.<$> mediaStreamOutputConfigurations,+            ("minLatency" Data..=) Prelude.<$> minLatency,+            ("name" Data..=) Prelude.<$> name,+            ("port" Data..=) Prelude.<$> port,+            ("remoteId" Data..=) Prelude.<$> remoteId,+            ("senderControlPort" Data..=)+              Prelude.<$> senderControlPort,+            ("smoothingLatency" Data..=)+              Prelude.<$> smoothingLatency,+            ("streamId" Data..=) Prelude.<$> streamId,+            ("vpcInterfaceAttachment" Data..=)+              Prelude.<$> vpcInterfaceAttachment,+            Prelude.Just ("protocol" Data..= protocol)+          ]+      )
+ gen/Amazonka/MediaConnect/Types/Algorithm.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.MediaConnect.Types.Algorithm+-- 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.MediaConnect.Types.Algorithm+  ( Algorithm+      ( ..,+        Algorithm_Aes128,+        Algorithm_Aes192,+        Algorithm_Aes256+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype Algorithm = Algorithm'+  { fromAlgorithm ::+      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 Algorithm_Aes128 :: Algorithm+pattern Algorithm_Aes128 = Algorithm' "aes128"++pattern Algorithm_Aes192 :: Algorithm+pattern Algorithm_Aes192 = Algorithm' "aes192"++pattern Algorithm_Aes256 :: Algorithm+pattern Algorithm_Aes256 = Algorithm' "aes256"++{-# COMPLETE+  Algorithm_Aes128,+  Algorithm_Aes192,+  Algorithm_Aes256,+  Algorithm'+  #-}
+ gen/Amazonka/MediaConnect/Types/Colorimetry.hs view
@@ -0,0 +1,96 @@+{-# 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.MediaConnect.Types.Colorimetry+-- 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.MediaConnect.Types.Colorimetry+  ( Colorimetry+      ( ..,+        Colorimetry_BT2020,+        Colorimetry_BT2100,+        Colorimetry_BT601,+        Colorimetry_BT709,+        Colorimetry_ST2065_1,+        Colorimetry_ST2065_3,+        Colorimetry_XYZ+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype Colorimetry = Colorimetry'+  { fromColorimetry ::+      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 Colorimetry_BT2020 :: Colorimetry+pattern Colorimetry_BT2020 = Colorimetry' "BT2020"++pattern Colorimetry_BT2100 :: Colorimetry+pattern Colorimetry_BT2100 = Colorimetry' "BT2100"++pattern Colorimetry_BT601 :: Colorimetry+pattern Colorimetry_BT601 = Colorimetry' "BT601"++pattern Colorimetry_BT709 :: Colorimetry+pattern Colorimetry_BT709 = Colorimetry' "BT709"++pattern Colorimetry_ST2065_1 :: Colorimetry+pattern Colorimetry_ST2065_1 = Colorimetry' "ST2065-1"++pattern Colorimetry_ST2065_3 :: Colorimetry+pattern Colorimetry_ST2065_3 = Colorimetry' "ST2065-3"++pattern Colorimetry_XYZ :: Colorimetry+pattern Colorimetry_XYZ = Colorimetry' "XYZ"++{-# COMPLETE+  Colorimetry_BT2020,+  Colorimetry_BT2100,+  Colorimetry_BT601,+  Colorimetry_BT709,+  Colorimetry_ST2065_1,+  Colorimetry_ST2065_3,+  Colorimetry_XYZ,+  Colorimetry'+  #-}
+ gen/Amazonka/MediaConnect/Types/DestinationConfiguration.hs view
@@ -0,0 +1,138 @@+{-# 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.MediaConnect.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.MediaConnect.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.MediaConnect.Types.Interface+import qualified Amazonka.Prelude as Prelude++-- | The transport parameters that are associated with an outbound media+-- stream.+--+-- /See:/ 'newDestinationConfiguration' smart constructor.+data DestinationConfiguration = DestinationConfiguration'+  { -- | The IP address where contents of the media stream will be sent.+    destinationIp :: Prelude.Text,+    -- | The port to use when the content of the media stream is distributed to+    -- the output.+    destinationPort :: Prelude.Int,+    -- | The VPC interface that is used for the media stream associated with the+    -- output.+    interface :: Interface,+    -- | The IP address that the receiver requires in order to establish a+    -- connection with the flow. This value is represented by the elastic+    -- network interface IP address of the VPC. This field applies only to+    -- outputs that use the CDI or ST 2110 JPEG XS protocol.+    outboundIp :: Prelude.Text+  }+  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:+--+-- 'destinationIp', 'destinationConfiguration_destinationIp' - The IP address where contents of the media stream will be sent.+--+-- 'destinationPort', 'destinationConfiguration_destinationPort' - The port to use when the content of the media stream is distributed to+-- the output.+--+-- 'interface', 'destinationConfiguration_interface' - The VPC interface that is used for the media stream associated with the+-- output.+--+-- 'outboundIp', 'destinationConfiguration_outboundIp' - The IP address that the receiver requires in order to establish a+-- connection with the flow. This value is represented by the elastic+-- network interface IP address of the VPC. This field applies only to+-- outputs that use the CDI or ST 2110 JPEG XS protocol.+newDestinationConfiguration ::+  -- | 'destinationIp'+  Prelude.Text ->+  -- | 'destinationPort'+  Prelude.Int ->+  -- | 'interface'+  Interface ->+  -- | 'outboundIp'+  Prelude.Text ->+  DestinationConfiguration+newDestinationConfiguration+  pDestinationIp_+  pDestinationPort_+  pInterface_+  pOutboundIp_ =+    DestinationConfiguration'+      { destinationIp =+          pDestinationIp_,+        destinationPort = pDestinationPort_,+        interface = pInterface_,+        outboundIp = pOutboundIp_+      }++-- | The IP address where contents of the media stream will be sent.+destinationConfiguration_destinationIp :: Lens.Lens' DestinationConfiguration Prelude.Text+destinationConfiguration_destinationIp = Lens.lens (\DestinationConfiguration' {destinationIp} -> destinationIp) (\s@DestinationConfiguration' {} a -> s {destinationIp = a} :: DestinationConfiguration)++-- | The port to use when the content of the media stream is distributed to+-- the output.+destinationConfiguration_destinationPort :: Lens.Lens' DestinationConfiguration Prelude.Int+destinationConfiguration_destinationPort = Lens.lens (\DestinationConfiguration' {destinationPort} -> destinationPort) (\s@DestinationConfiguration' {} a -> s {destinationPort = a} :: DestinationConfiguration)++-- | The VPC interface that is used for the media stream associated with the+-- output.+destinationConfiguration_interface :: Lens.Lens' DestinationConfiguration Interface+destinationConfiguration_interface = Lens.lens (\DestinationConfiguration' {interface} -> interface) (\s@DestinationConfiguration' {} a -> s {interface = a} :: DestinationConfiguration)++-- | The IP address that the receiver requires in order to establish a+-- connection with the flow. This value is represented by the elastic+-- network interface IP address of the VPC. This field applies only to+-- outputs that use the CDI or ST 2110 JPEG XS protocol.+destinationConfiguration_outboundIp :: Lens.Lens' DestinationConfiguration Prelude.Text+destinationConfiguration_outboundIp = Lens.lens (\DestinationConfiguration' {outboundIp} -> outboundIp) (\s@DestinationConfiguration' {} a -> s {outboundIp = a} :: DestinationConfiguration)++instance Data.FromJSON DestinationConfiguration where+  parseJSON =+    Data.withObject+      "DestinationConfiguration"+      ( \x ->+          DestinationConfiguration'+            Prelude.<$> (x Data..: "destinationIp")+            Prelude.<*> (x Data..: "destinationPort")+            Prelude.<*> (x Data..: "interface")+            Prelude.<*> (x Data..: "outboundIp")+      )++instance Prelude.Hashable DestinationConfiguration where+  hashWithSalt _salt DestinationConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` destinationIp+      `Prelude.hashWithSalt` destinationPort+      `Prelude.hashWithSalt` interface+      `Prelude.hashWithSalt` outboundIp++instance Prelude.NFData DestinationConfiguration where+  rnf DestinationConfiguration' {..} =+    Prelude.rnf destinationIp+      `Prelude.seq` Prelude.rnf destinationPort+      `Prelude.seq` Prelude.rnf interface+      `Prelude.seq` Prelude.rnf outboundIp
+ gen/Amazonka/MediaConnect/Types/DestinationConfigurationRequest.hs view
@@ -0,0 +1,126 @@+{-# 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.MediaConnect.Types.DestinationConfigurationRequest+-- 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.MediaConnect.Types.DestinationConfigurationRequest where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaConnect.Types.InterfaceRequest+import qualified Amazonka.Prelude as Prelude++-- | The transport parameters that you want to associate with an outbound+-- media stream.+--+-- /See:/ 'newDestinationConfigurationRequest' smart constructor.+data DestinationConfigurationRequest = DestinationConfigurationRequest'+  { -- | The IP address where you want MediaConnect to send contents of the media+    -- stream.+    destinationIp :: Prelude.Text,+    -- | The port that you want MediaConnect to use when it distributes the media+    -- stream to the output.+    destinationPort :: Prelude.Int,+    -- | The VPC interface that you want to use for the media stream associated+    -- with the output.+    interface :: InterfaceRequest+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DestinationConfigurationRequest' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'destinationIp', 'destinationConfigurationRequest_destinationIp' - The IP address where you want MediaConnect to send contents of the media+-- stream.+--+-- 'destinationPort', 'destinationConfigurationRequest_destinationPort' - The port that you want MediaConnect to use when it distributes the media+-- stream to the output.+--+-- 'interface', 'destinationConfigurationRequest_interface' - The VPC interface that you want to use for the media stream associated+-- with the output.+newDestinationConfigurationRequest ::+  -- | 'destinationIp'+  Prelude.Text ->+  -- | 'destinationPort'+  Prelude.Int ->+  -- | 'interface'+  InterfaceRequest ->+  DestinationConfigurationRequest+newDestinationConfigurationRequest+  pDestinationIp_+  pDestinationPort_+  pInterface_ =+    DestinationConfigurationRequest'+      { destinationIp =+          pDestinationIp_,+        destinationPort = pDestinationPort_,+        interface = pInterface_+      }++-- | The IP address where you want MediaConnect to send contents of the media+-- stream.+destinationConfigurationRequest_destinationIp :: Lens.Lens' DestinationConfigurationRequest Prelude.Text+destinationConfigurationRequest_destinationIp = Lens.lens (\DestinationConfigurationRequest' {destinationIp} -> destinationIp) (\s@DestinationConfigurationRequest' {} a -> s {destinationIp = a} :: DestinationConfigurationRequest)++-- | The port that you want MediaConnect to use when it distributes the media+-- stream to the output.+destinationConfigurationRequest_destinationPort :: Lens.Lens' DestinationConfigurationRequest Prelude.Int+destinationConfigurationRequest_destinationPort = Lens.lens (\DestinationConfigurationRequest' {destinationPort} -> destinationPort) (\s@DestinationConfigurationRequest' {} a -> s {destinationPort = a} :: DestinationConfigurationRequest)++-- | The VPC interface that you want to use for the media stream associated+-- with the output.+destinationConfigurationRequest_interface :: Lens.Lens' DestinationConfigurationRequest InterfaceRequest+destinationConfigurationRequest_interface = Lens.lens (\DestinationConfigurationRequest' {interface} -> interface) (\s@DestinationConfigurationRequest' {} a -> s {interface = a} :: DestinationConfigurationRequest)++instance+  Prelude.Hashable+    DestinationConfigurationRequest+  where+  hashWithSalt+    _salt+    DestinationConfigurationRequest' {..} =+      _salt+        `Prelude.hashWithSalt` destinationIp+        `Prelude.hashWithSalt` destinationPort+        `Prelude.hashWithSalt` interface++instance+  Prelude.NFData+    DestinationConfigurationRequest+  where+  rnf DestinationConfigurationRequest' {..} =+    Prelude.rnf destinationIp+      `Prelude.seq` Prelude.rnf destinationPort+      `Prelude.seq` Prelude.rnf interface++instance Data.ToJSON DestinationConfigurationRequest where+  toJSON DestinationConfigurationRequest' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("destinationIp" Data..= destinationIp),+            Prelude.Just+              ("destinationPort" Data..= destinationPort),+            Prelude.Just ("interface" Data..= interface)+          ]+      )
+ gen/Amazonka/MediaConnect/Types/DurationUnits.hs view
@@ -0,0 +1,66 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaConnect.Types.DurationUnits+-- 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.MediaConnect.Types.DurationUnits+  ( DurationUnits+      ( ..,+        DurationUnits_MONTHS+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype DurationUnits = DurationUnits'+  { fromDurationUnits ::+      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 DurationUnits_MONTHS :: DurationUnits+pattern DurationUnits_MONTHS = DurationUnits' "MONTHS"++{-# COMPLETE+  DurationUnits_MONTHS,+  DurationUnits'+  #-}
+ gen/Amazonka/MediaConnect/Types/EncoderProfile.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.MediaConnect.Types.EncoderProfile+-- 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.MediaConnect.Types.EncoderProfile+  ( EncoderProfile+      ( ..,+        EncoderProfile_High,+        EncoderProfile_Main+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype EncoderProfile = EncoderProfile'+  { fromEncoderProfile ::+      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 EncoderProfile_High :: EncoderProfile+pattern EncoderProfile_High = EncoderProfile' "high"++pattern EncoderProfile_Main :: EncoderProfile+pattern EncoderProfile_Main = EncoderProfile' "main"++{-# COMPLETE+  EncoderProfile_High,+  EncoderProfile_Main,+  EncoderProfile'+  #-}
+ gen/Amazonka/MediaConnect/Types/EncodingName.hs view
@@ -0,0 +1,81 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaConnect.Types.EncodingName+-- 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.MediaConnect.Types.EncodingName+  ( EncodingName+      ( ..,+        EncodingName_Jxsv,+        EncodingName_Pcm,+        EncodingName_Raw,+        EncodingName_Smpte291+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype EncodingName = EncodingName'+  { fromEncodingName ::+      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 EncodingName_Jxsv :: EncodingName+pattern EncodingName_Jxsv = EncodingName' "jxsv"++pattern EncodingName_Pcm :: EncodingName+pattern EncodingName_Pcm = EncodingName' "pcm"++pattern EncodingName_Raw :: EncodingName+pattern EncodingName_Raw = EncodingName' "raw"++pattern EncodingName_Smpte291 :: EncodingName+pattern EncodingName_Smpte291 = EncodingName' "smpte291"++{-# COMPLETE+  EncodingName_Jxsv,+  EncodingName_Pcm,+  EncodingName_Raw,+  EncodingName_Smpte291,+  EncodingName'+  #-}
+ gen/Amazonka/MediaConnect/Types/EncodingParameters.hs view
@@ -0,0 +1,115 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaConnect.Types.EncodingParameters+-- 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.MediaConnect.Types.EncodingParameters where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaConnect.Types.EncoderProfile+import qualified Amazonka.Prelude as Prelude++-- | A collection of parameters that determine how MediaConnect will convert+-- the content. These fields only apply to outputs on flows that have a CDI+-- source.+--+-- /See:/ 'newEncodingParameters' smart constructor.+data EncodingParameters = EncodingParameters'+  { -- | A setting on the encoder that drives compression settings. This property+    -- only applies to video media streams associated with outputs that use the+    -- ST 2110 JPEG XS protocol, with a flow source that uses the CDI protocol.+    encoderProfile :: EncoderProfile,+    -- | A value that is used to calculate compression for an output. The bitrate+    -- of the output is calculated as follows: Output bitrate = (1 \/+    -- compressionFactor) * (source bitrate) This property only applies to+    -- outputs that use the ST 2110 JPEG XS protocol, with a flow source that+    -- uses the CDI protocol. Valid values are floating point numbers in the+    -- range of 3.0 to 10.0, inclusive.+    compressionFactor :: Prelude.Double+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'EncodingParameters' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'encoderProfile', 'encodingParameters_encoderProfile' - A setting on the encoder that drives compression settings. This property+-- only applies to video media streams associated with outputs that use the+-- ST 2110 JPEG XS protocol, with a flow source that uses the CDI protocol.+--+-- 'compressionFactor', 'encodingParameters_compressionFactor' - A value that is used to calculate compression for an output. The bitrate+-- of the output is calculated as follows: Output bitrate = (1 \/+-- compressionFactor) * (source bitrate) This property only applies to+-- outputs that use the ST 2110 JPEG XS protocol, with a flow source that+-- uses the CDI protocol. Valid values are floating point numbers in the+-- range of 3.0 to 10.0, inclusive.+newEncodingParameters ::+  -- | 'encoderProfile'+  EncoderProfile ->+  -- | 'compressionFactor'+  Prelude.Double ->+  EncodingParameters+newEncodingParameters+  pEncoderProfile_+  pCompressionFactor_ =+    EncodingParameters'+      { encoderProfile =+          pEncoderProfile_,+        compressionFactor = pCompressionFactor_+      }++-- | A setting on the encoder that drives compression settings. This property+-- only applies to video media streams associated with outputs that use the+-- ST 2110 JPEG XS protocol, with a flow source that uses the CDI protocol.+encodingParameters_encoderProfile :: Lens.Lens' EncodingParameters EncoderProfile+encodingParameters_encoderProfile = Lens.lens (\EncodingParameters' {encoderProfile} -> encoderProfile) (\s@EncodingParameters' {} a -> s {encoderProfile = a} :: EncodingParameters)++-- | A value that is used to calculate compression for an output. The bitrate+-- of the output is calculated as follows: Output bitrate = (1 \/+-- compressionFactor) * (source bitrate) This property only applies to+-- outputs that use the ST 2110 JPEG XS protocol, with a flow source that+-- uses the CDI protocol. Valid values are floating point numbers in the+-- range of 3.0 to 10.0, inclusive.+encodingParameters_compressionFactor :: Lens.Lens' EncodingParameters Prelude.Double+encodingParameters_compressionFactor = Lens.lens (\EncodingParameters' {compressionFactor} -> compressionFactor) (\s@EncodingParameters' {} a -> s {compressionFactor = a} :: EncodingParameters)++instance Data.FromJSON EncodingParameters where+  parseJSON =+    Data.withObject+      "EncodingParameters"+      ( \x ->+          EncodingParameters'+            Prelude.<$> (x Data..: "encoderProfile")+            Prelude.<*> (x Data..: "compressionFactor")+      )++instance Prelude.Hashable EncodingParameters where+  hashWithSalt _salt EncodingParameters' {..} =+    _salt+      `Prelude.hashWithSalt` encoderProfile+      `Prelude.hashWithSalt` compressionFactor++instance Prelude.NFData EncodingParameters where+  rnf EncodingParameters' {..} =+    Prelude.rnf encoderProfile+      `Prelude.seq` Prelude.rnf compressionFactor
+ gen/Amazonka/MediaConnect/Types/EncodingParametersRequest.hs view
@@ -0,0 +1,119 @@+{-# 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.MediaConnect.Types.EncodingParametersRequest+-- 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.MediaConnect.Types.EncodingParametersRequest where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaConnect.Types.EncoderProfile+import qualified Amazonka.Prelude as Prelude++-- | A collection of parameters that determine how MediaConnect will convert+-- the content. These fields only apply to outputs on flows that have a CDI+-- source.+--+-- /See:/ 'newEncodingParametersRequest' smart constructor.+data EncodingParametersRequest = EncodingParametersRequest'+  { -- | A setting on the encoder that drives compression settings. This property+    -- only applies to video media streams associated with outputs that use the+    -- ST 2110 JPEG XS protocol, if at least one source on the flow uses the+    -- CDI protocol.+    encoderProfile :: EncoderProfile,+    -- | A value that is used to calculate compression for an output. The bitrate+    -- of the output is calculated as follows: Output bitrate = (1 \/+    -- compressionFactor) * (source bitrate) This property only applies to+    -- outputs that use the ST 2110 JPEG XS protocol, with a flow source that+    -- uses the CDI protocol. Valid values are floating point numbers in the+    -- range of 3.0 to 10.0, inclusive.+    compressionFactor :: Prelude.Double+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'EncodingParametersRequest' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'encoderProfile', 'encodingParametersRequest_encoderProfile' - A setting on the encoder that drives compression settings. This property+-- only applies to video media streams associated with outputs that use the+-- ST 2110 JPEG XS protocol, if at least one source on the flow uses the+-- CDI protocol.+--+-- 'compressionFactor', 'encodingParametersRequest_compressionFactor' - A value that is used to calculate compression for an output. The bitrate+-- of the output is calculated as follows: Output bitrate = (1 \/+-- compressionFactor) * (source bitrate) This property only applies to+-- outputs that use the ST 2110 JPEG XS protocol, with a flow source that+-- uses the CDI protocol. Valid values are floating point numbers in the+-- range of 3.0 to 10.0, inclusive.+newEncodingParametersRequest ::+  -- | 'encoderProfile'+  EncoderProfile ->+  -- | 'compressionFactor'+  Prelude.Double ->+  EncodingParametersRequest+newEncodingParametersRequest+  pEncoderProfile_+  pCompressionFactor_ =+    EncodingParametersRequest'+      { encoderProfile =+          pEncoderProfile_,+        compressionFactor = pCompressionFactor_+      }++-- | A setting on the encoder that drives compression settings. This property+-- only applies to video media streams associated with outputs that use the+-- ST 2110 JPEG XS protocol, if at least one source on the flow uses the+-- CDI protocol.+encodingParametersRequest_encoderProfile :: Lens.Lens' EncodingParametersRequest EncoderProfile+encodingParametersRequest_encoderProfile = Lens.lens (\EncodingParametersRequest' {encoderProfile} -> encoderProfile) (\s@EncodingParametersRequest' {} a -> s {encoderProfile = a} :: EncodingParametersRequest)++-- | A value that is used to calculate compression for an output. The bitrate+-- of the output is calculated as follows: Output bitrate = (1 \/+-- compressionFactor) * (source bitrate) This property only applies to+-- outputs that use the ST 2110 JPEG XS protocol, with a flow source that+-- uses the CDI protocol. Valid values are floating point numbers in the+-- range of 3.0 to 10.0, inclusive.+encodingParametersRequest_compressionFactor :: Lens.Lens' EncodingParametersRequest Prelude.Double+encodingParametersRequest_compressionFactor = Lens.lens (\EncodingParametersRequest' {compressionFactor} -> compressionFactor) (\s@EncodingParametersRequest' {} a -> s {compressionFactor = a} :: EncodingParametersRequest)++instance Prelude.Hashable EncodingParametersRequest where+  hashWithSalt _salt EncodingParametersRequest' {..} =+    _salt+      `Prelude.hashWithSalt` encoderProfile+      `Prelude.hashWithSalt` compressionFactor++instance Prelude.NFData EncodingParametersRequest where+  rnf EncodingParametersRequest' {..} =+    Prelude.rnf encoderProfile+      `Prelude.seq` Prelude.rnf compressionFactor++instance Data.ToJSON EncodingParametersRequest where+  toJSON EncodingParametersRequest' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("encoderProfile" Data..= encoderProfile),+            Prelude.Just+              ("compressionFactor" Data..= compressionFactor)+          ]+      )
+ gen/Amazonka/MediaConnect/Types/Encryption.hs view
@@ -0,0 +1,240 @@+{-# 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.MediaConnect.Types.Encryption+-- 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.MediaConnect.Types.Encryption where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaConnect.Types.Algorithm+import Amazonka.MediaConnect.Types.KeyType+import qualified Amazonka.Prelude as Prelude++-- | Information about the encryption of the flow.+--+-- /See:/ 'newEncryption' smart constructor.+data Encryption = Encryption'+  { -- | The type of algorithm that is used for the encryption (such as aes128,+    -- aes192, or aes256).+    algorithm :: Prelude.Maybe Algorithm,+    -- | A 128-bit, 16-byte hex value represented by a 32-character string, to be+    -- used with the key for encrypting content. This parameter is not valid+    -- for static key encryption.+    constantInitializationVector :: Prelude.Maybe Prelude.Text,+    -- | The value of one of the devices that you configured with your digital+    -- rights management (DRM) platform key provider. This parameter is+    -- required for SPEKE encryption and is not valid for static key+    -- encryption.+    deviceId :: Prelude.Maybe Prelude.Text,+    -- | The type of key that is used for the encryption. If no keyType is+    -- provided, the service will use the default setting (static-key).+    keyType :: Prelude.Maybe KeyType,+    -- | The AWS Region that the API Gateway proxy endpoint was created in. This+    -- parameter is required for SPEKE encryption and is not valid for static+    -- key encryption.+    region :: Prelude.Maybe Prelude.Text,+    -- | An identifier for the content. The service sends this value to the key+    -- server to identify the current endpoint. The resource ID is also known+    -- as the content ID. This parameter is required for SPEKE encryption and+    -- is not valid for static key encryption.+    resourceId :: Prelude.Maybe Prelude.Text,+    -- | The ARN of the secret that you created in AWS Secrets Manager to store+    -- the encryption key. This parameter is required for static key encryption+    -- and is not valid for SPEKE encryption.+    secretArn :: Prelude.Maybe Prelude.Text,+    -- | The URL from the API Gateway proxy that you set up to talk to your key+    -- server. This parameter is required for SPEKE encryption and is not valid+    -- for static key encryption.+    url :: Prelude.Maybe Prelude.Text,+    -- | The ARN of the role that you created during setup (when you set up AWS+    -- Elemental MediaConnect as a trusted entity).+    roleArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Encryption' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'algorithm', 'encryption_algorithm' - The type of algorithm that is used for the encryption (such as aes128,+-- aes192, or aes256).+--+-- 'constantInitializationVector', 'encryption_constantInitializationVector' - A 128-bit, 16-byte hex value represented by a 32-character string, to be+-- used with the key for encrypting content. This parameter is not valid+-- for static key encryption.+--+-- 'deviceId', 'encryption_deviceId' - The value of one of the devices that you configured with your digital+-- rights management (DRM) platform key provider. This parameter is+-- required for SPEKE encryption and is not valid for static key+-- encryption.+--+-- 'keyType', 'encryption_keyType' - The type of key that is used for the encryption. If no keyType is+-- provided, the service will use the default setting (static-key).+--+-- 'region', 'encryption_region' - The AWS Region that the API Gateway proxy endpoint was created in. This+-- parameter is required for SPEKE encryption and is not valid for static+-- key encryption.+--+-- 'resourceId', 'encryption_resourceId' - An identifier for the content. The service sends this value to the key+-- server to identify the current endpoint. The resource ID is also known+-- as the content ID. This parameter is required for SPEKE encryption and+-- is not valid for static key encryption.+--+-- 'secretArn', 'encryption_secretArn' - The ARN of the secret that you created in AWS Secrets Manager to store+-- the encryption key. This parameter is required for static key encryption+-- and is not valid for SPEKE encryption.+--+-- 'url', 'encryption_url' - The URL from the API Gateway proxy that you set up to talk to your key+-- server. This parameter is required for SPEKE encryption and is not valid+-- for static key encryption.+--+-- 'roleArn', 'encryption_roleArn' - The ARN of the role that you created during setup (when you set up AWS+-- Elemental MediaConnect as a trusted entity).+newEncryption ::+  -- | 'roleArn'+  Prelude.Text ->+  Encryption+newEncryption pRoleArn_ =+  Encryption'+    { algorithm = Prelude.Nothing,+      constantInitializationVector = Prelude.Nothing,+      deviceId = Prelude.Nothing,+      keyType = Prelude.Nothing,+      region = Prelude.Nothing,+      resourceId = Prelude.Nothing,+      secretArn = Prelude.Nothing,+      url = Prelude.Nothing,+      roleArn = pRoleArn_+    }++-- | The type of algorithm that is used for the encryption (such as aes128,+-- aes192, or aes256).+encryption_algorithm :: Lens.Lens' Encryption (Prelude.Maybe Algorithm)+encryption_algorithm = Lens.lens (\Encryption' {algorithm} -> algorithm) (\s@Encryption' {} a -> s {algorithm = a} :: Encryption)++-- | A 128-bit, 16-byte hex value represented by a 32-character string, to be+-- used with the key for encrypting content. This parameter is not valid+-- for static key encryption.+encryption_constantInitializationVector :: Lens.Lens' Encryption (Prelude.Maybe Prelude.Text)+encryption_constantInitializationVector = Lens.lens (\Encryption' {constantInitializationVector} -> constantInitializationVector) (\s@Encryption' {} a -> s {constantInitializationVector = a} :: Encryption)++-- | The value of one of the devices that you configured with your digital+-- rights management (DRM) platform key provider. This parameter is+-- required for SPEKE encryption and is not valid for static key+-- encryption.+encryption_deviceId :: Lens.Lens' Encryption (Prelude.Maybe Prelude.Text)+encryption_deviceId = Lens.lens (\Encryption' {deviceId} -> deviceId) (\s@Encryption' {} a -> s {deviceId = a} :: Encryption)++-- | The type of key that is used for the encryption. If no keyType is+-- provided, the service will use the default setting (static-key).+encryption_keyType :: Lens.Lens' Encryption (Prelude.Maybe KeyType)+encryption_keyType = Lens.lens (\Encryption' {keyType} -> keyType) (\s@Encryption' {} a -> s {keyType = a} :: Encryption)++-- | The AWS Region that the API Gateway proxy endpoint was created in. This+-- parameter is required for SPEKE encryption and is not valid for static+-- key encryption.+encryption_region :: Lens.Lens' Encryption (Prelude.Maybe Prelude.Text)+encryption_region = Lens.lens (\Encryption' {region} -> region) (\s@Encryption' {} a -> s {region = a} :: Encryption)++-- | An identifier for the content. The service sends this value to the key+-- server to identify the current endpoint. The resource ID is also known+-- as the content ID. This parameter is required for SPEKE encryption and+-- is not valid for static key encryption.+encryption_resourceId :: Lens.Lens' Encryption (Prelude.Maybe Prelude.Text)+encryption_resourceId = Lens.lens (\Encryption' {resourceId} -> resourceId) (\s@Encryption' {} a -> s {resourceId = a} :: Encryption)++-- | The ARN of the secret that you created in AWS Secrets Manager to store+-- the encryption key. This parameter is required for static key encryption+-- and is not valid for SPEKE encryption.+encryption_secretArn :: Lens.Lens' Encryption (Prelude.Maybe Prelude.Text)+encryption_secretArn = Lens.lens (\Encryption' {secretArn} -> secretArn) (\s@Encryption' {} a -> s {secretArn = a} :: Encryption)++-- | The URL from the API Gateway proxy that you set up to talk to your key+-- server. This parameter is required for SPEKE encryption and is not valid+-- for static key encryption.+encryption_url :: Lens.Lens' Encryption (Prelude.Maybe Prelude.Text)+encryption_url = Lens.lens (\Encryption' {url} -> url) (\s@Encryption' {} a -> s {url = a} :: Encryption)++-- | The ARN of the role that you created during setup (when you set up AWS+-- Elemental MediaConnect as a trusted entity).+encryption_roleArn :: Lens.Lens' Encryption Prelude.Text+encryption_roleArn = Lens.lens (\Encryption' {roleArn} -> roleArn) (\s@Encryption' {} a -> s {roleArn = a} :: Encryption)++instance Data.FromJSON Encryption where+  parseJSON =+    Data.withObject+      "Encryption"+      ( \x ->+          Encryption'+            Prelude.<$> (x Data..:? "algorithm")+            Prelude.<*> (x Data..:? "constantInitializationVector")+            Prelude.<*> (x Data..:? "deviceId")+            Prelude.<*> (x Data..:? "keyType")+            Prelude.<*> (x Data..:? "region")+            Prelude.<*> (x Data..:? "resourceId")+            Prelude.<*> (x Data..:? "secretArn")+            Prelude.<*> (x Data..:? "url")+            Prelude.<*> (x Data..: "roleArn")+      )++instance Prelude.Hashable Encryption where+  hashWithSalt _salt Encryption' {..} =+    _salt+      `Prelude.hashWithSalt` algorithm+      `Prelude.hashWithSalt` constantInitializationVector+      `Prelude.hashWithSalt` deviceId+      `Prelude.hashWithSalt` keyType+      `Prelude.hashWithSalt` region+      `Prelude.hashWithSalt` resourceId+      `Prelude.hashWithSalt` secretArn+      `Prelude.hashWithSalt` url+      `Prelude.hashWithSalt` roleArn++instance Prelude.NFData Encryption where+  rnf Encryption' {..} =+    Prelude.rnf algorithm+      `Prelude.seq` Prelude.rnf constantInitializationVector+      `Prelude.seq` Prelude.rnf deviceId+      `Prelude.seq` Prelude.rnf keyType+      `Prelude.seq` Prelude.rnf region+      `Prelude.seq` Prelude.rnf resourceId+      `Prelude.seq` Prelude.rnf secretArn+      `Prelude.seq` Prelude.rnf url+      `Prelude.seq` Prelude.rnf roleArn++instance Data.ToJSON Encryption where+  toJSON Encryption' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("algorithm" Data..=) Prelude.<$> algorithm,+            ("constantInitializationVector" Data..=)+              Prelude.<$> constantInitializationVector,+            ("deviceId" Data..=) Prelude.<$> deviceId,+            ("keyType" Data..=) Prelude.<$> keyType,+            ("region" Data..=) Prelude.<$> region,+            ("resourceId" Data..=) Prelude.<$> resourceId,+            ("secretArn" Data..=) Prelude.<$> secretArn,+            ("url" Data..=) Prelude.<$> url,+            Prelude.Just ("roleArn" Data..= roleArn)+          ]+      )
+ gen/Amazonka/MediaConnect/Types/Entitlement.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.MediaConnect.Types.Entitlement+-- 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.MediaConnect.Types.Entitlement where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaConnect.Types.Encryption+import Amazonka.MediaConnect.Types.EntitlementStatus+import qualified Amazonka.Prelude as Prelude++-- | The settings for a flow entitlement.+--+-- /See:/ 'newEntitlement' smart constructor.+data Entitlement = Entitlement'+  { -- | Percentage from 0-100 of the data transfer cost to be billed to the+    -- subscriber.+    dataTransferSubscriberFeePercent :: Prelude.Maybe Prelude.Int,+    -- | A description of the entitlement.+    description :: Prelude.Maybe Prelude.Text,+    -- | The type of encryption that will be used on the output that is+    -- associated with this entitlement.+    encryption :: Prelude.Maybe Encryption,+    -- | An indication of whether the entitlement is enabled.+    entitlementStatus :: Prelude.Maybe EntitlementStatus,+    -- | The ARN of the entitlement.+    entitlementArn :: Prelude.Text,+    -- | The AWS account IDs that you want to share your content with. The+    -- receiving accounts (subscribers) will be allowed to create their own+    -- flow using your content as the source.+    subscribers :: [Prelude.Text],+    -- | The name of the entitlement.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Entitlement' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dataTransferSubscriberFeePercent', 'entitlement_dataTransferSubscriberFeePercent' - Percentage from 0-100 of the data transfer cost to be billed to the+-- subscriber.+--+-- 'description', 'entitlement_description' - A description of the entitlement.+--+-- 'encryption', 'entitlement_encryption' - The type of encryption that will be used on the output that is+-- associated with this entitlement.+--+-- 'entitlementStatus', 'entitlement_entitlementStatus' - An indication of whether the entitlement is enabled.+--+-- 'entitlementArn', 'entitlement_entitlementArn' - The ARN of the entitlement.+--+-- 'subscribers', 'entitlement_subscribers' - The AWS account IDs that you want to share your content with. The+-- receiving accounts (subscribers) will be allowed to create their own+-- flow using your content as the source.+--+-- 'name', 'entitlement_name' - The name of the entitlement.+newEntitlement ::+  -- | 'entitlementArn'+  Prelude.Text ->+  -- | 'name'+  Prelude.Text ->+  Entitlement+newEntitlement pEntitlementArn_ pName_ =+  Entitlement'+    { dataTransferSubscriberFeePercent =+        Prelude.Nothing,+      description = Prelude.Nothing,+      encryption = Prelude.Nothing,+      entitlementStatus = Prelude.Nothing,+      entitlementArn = pEntitlementArn_,+      subscribers = Prelude.mempty,+      name = pName_+    }++-- | Percentage from 0-100 of the data transfer cost to be billed to the+-- subscriber.+entitlement_dataTransferSubscriberFeePercent :: Lens.Lens' Entitlement (Prelude.Maybe Prelude.Int)+entitlement_dataTransferSubscriberFeePercent = Lens.lens (\Entitlement' {dataTransferSubscriberFeePercent} -> dataTransferSubscriberFeePercent) (\s@Entitlement' {} a -> s {dataTransferSubscriberFeePercent = a} :: Entitlement)++-- | A description of the entitlement.+entitlement_description :: Lens.Lens' Entitlement (Prelude.Maybe Prelude.Text)+entitlement_description = Lens.lens (\Entitlement' {description} -> description) (\s@Entitlement' {} a -> s {description = a} :: Entitlement)++-- | The type of encryption that will be used on the output that is+-- associated with this entitlement.+entitlement_encryption :: Lens.Lens' Entitlement (Prelude.Maybe Encryption)+entitlement_encryption = Lens.lens (\Entitlement' {encryption} -> encryption) (\s@Entitlement' {} a -> s {encryption = a} :: Entitlement)++-- | An indication of whether the entitlement is enabled.+entitlement_entitlementStatus :: Lens.Lens' Entitlement (Prelude.Maybe EntitlementStatus)+entitlement_entitlementStatus = Lens.lens (\Entitlement' {entitlementStatus} -> entitlementStatus) (\s@Entitlement' {} a -> s {entitlementStatus = a} :: Entitlement)++-- | The ARN of the entitlement.+entitlement_entitlementArn :: Lens.Lens' Entitlement Prelude.Text+entitlement_entitlementArn = Lens.lens (\Entitlement' {entitlementArn} -> entitlementArn) (\s@Entitlement' {} a -> s {entitlementArn = a} :: Entitlement)++-- | The AWS account IDs that you want to share your content with. The+-- receiving accounts (subscribers) will be allowed to create their own+-- flow using your content as the source.+entitlement_subscribers :: Lens.Lens' Entitlement [Prelude.Text]+entitlement_subscribers = Lens.lens (\Entitlement' {subscribers} -> subscribers) (\s@Entitlement' {} a -> s {subscribers = a} :: Entitlement) Prelude.. Lens.coerced++-- | The name of the entitlement.+entitlement_name :: Lens.Lens' Entitlement Prelude.Text+entitlement_name = Lens.lens (\Entitlement' {name} -> name) (\s@Entitlement' {} a -> s {name = a} :: Entitlement)++instance Data.FromJSON Entitlement where+  parseJSON =+    Data.withObject+      "Entitlement"+      ( \x ->+          Entitlement'+            Prelude.<$> (x Data..:? "dataTransferSubscriberFeePercent")+            Prelude.<*> (x Data..:? "description")+            Prelude.<*> (x Data..:? "encryption")+            Prelude.<*> (x Data..:? "entitlementStatus")+            Prelude.<*> (x Data..: "entitlementArn")+            Prelude.<*> (x Data..:? "subscribers" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..: "name")+      )++instance Prelude.Hashable Entitlement where+  hashWithSalt _salt Entitlement' {..} =+    _salt+      `Prelude.hashWithSalt` dataTransferSubscriberFeePercent+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` encryption+      `Prelude.hashWithSalt` entitlementStatus+      `Prelude.hashWithSalt` entitlementArn+      `Prelude.hashWithSalt` subscribers+      `Prelude.hashWithSalt` name++instance Prelude.NFData Entitlement where+  rnf Entitlement' {..} =+    Prelude.rnf dataTransferSubscriberFeePercent+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf encryption+      `Prelude.seq` Prelude.rnf entitlementStatus+      `Prelude.seq` Prelude.rnf entitlementArn+      `Prelude.seq` Prelude.rnf subscribers+      `Prelude.seq` Prelude.rnf name
+ gen/Amazonka/MediaConnect/Types/EntitlementStatus.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.MediaConnect.Types.EntitlementStatus+-- 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.MediaConnect.Types.EntitlementStatus+  ( EntitlementStatus+      ( ..,+        EntitlementStatus_DISABLED,+        EntitlementStatus_ENABLED+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype EntitlementStatus = EntitlementStatus'+  { fromEntitlementStatus ::+      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 EntitlementStatus_DISABLED :: EntitlementStatus+pattern EntitlementStatus_DISABLED = EntitlementStatus' "DISABLED"++pattern EntitlementStatus_ENABLED :: EntitlementStatus+pattern EntitlementStatus_ENABLED = EntitlementStatus' "ENABLED"++{-# COMPLETE+  EntitlementStatus_DISABLED,+  EntitlementStatus_ENABLED,+  EntitlementStatus'+  #-}
+ gen/Amazonka/MediaConnect/Types/FailoverConfig.hs view
@@ -0,0 +1,132 @@+{-# 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.MediaConnect.Types.FailoverConfig+-- 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.MediaConnect.Types.FailoverConfig where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaConnect.Types.FailoverMode+import Amazonka.MediaConnect.Types.SourcePriority+import Amazonka.MediaConnect.Types.State+import qualified Amazonka.Prelude as Prelude++-- | The settings for source failover.+--+-- /See:/ 'newFailoverConfig' smart constructor.+data FailoverConfig = FailoverConfig'+  { -- | The type of failover you choose for this flow. MERGE combines the source+    -- streams into a single stream, allowing graceful recovery from any+    -- single-source loss. FAILOVER allows switching between different streams.+    failoverMode :: Prelude.Maybe FailoverMode,+    -- | Search window time to look for dash-7 packets+    recoveryWindow :: Prelude.Maybe Prelude.Int,+    -- | The priority you want to assign to a source. You can have a primary+    -- stream and a backup stream or two equally prioritized streams.+    sourcePriority :: Prelude.Maybe SourcePriority,+    state :: Prelude.Maybe State+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'FailoverConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'failoverMode', 'failoverConfig_failoverMode' - The type of failover you choose for this flow. MERGE combines the source+-- streams into a single stream, allowing graceful recovery from any+-- single-source loss. FAILOVER allows switching between different streams.+--+-- 'recoveryWindow', 'failoverConfig_recoveryWindow' - Search window time to look for dash-7 packets+--+-- 'sourcePriority', 'failoverConfig_sourcePriority' - The priority you want to assign to a source. You can have a primary+-- stream and a backup stream or two equally prioritized streams.+--+-- 'state', 'failoverConfig_state' - Undocumented member.+newFailoverConfig ::+  FailoverConfig+newFailoverConfig =+  FailoverConfig'+    { failoverMode = Prelude.Nothing,+      recoveryWindow = Prelude.Nothing,+      sourcePriority = Prelude.Nothing,+      state = Prelude.Nothing+    }++-- | The type of failover you choose for this flow. MERGE combines the source+-- streams into a single stream, allowing graceful recovery from any+-- single-source loss. FAILOVER allows switching between different streams.+failoverConfig_failoverMode :: Lens.Lens' FailoverConfig (Prelude.Maybe FailoverMode)+failoverConfig_failoverMode = Lens.lens (\FailoverConfig' {failoverMode} -> failoverMode) (\s@FailoverConfig' {} a -> s {failoverMode = a} :: FailoverConfig)++-- | Search window time to look for dash-7 packets+failoverConfig_recoveryWindow :: Lens.Lens' FailoverConfig (Prelude.Maybe Prelude.Int)+failoverConfig_recoveryWindow = Lens.lens (\FailoverConfig' {recoveryWindow} -> recoveryWindow) (\s@FailoverConfig' {} a -> s {recoveryWindow = a} :: FailoverConfig)++-- | The priority you want to assign to a source. You can have a primary+-- stream and a backup stream or two equally prioritized streams.+failoverConfig_sourcePriority :: Lens.Lens' FailoverConfig (Prelude.Maybe SourcePriority)+failoverConfig_sourcePriority = Lens.lens (\FailoverConfig' {sourcePriority} -> sourcePriority) (\s@FailoverConfig' {} a -> s {sourcePriority = a} :: FailoverConfig)++-- | Undocumented member.+failoverConfig_state :: Lens.Lens' FailoverConfig (Prelude.Maybe State)+failoverConfig_state = Lens.lens (\FailoverConfig' {state} -> state) (\s@FailoverConfig' {} a -> s {state = a} :: FailoverConfig)++instance Data.FromJSON FailoverConfig where+  parseJSON =+    Data.withObject+      "FailoverConfig"+      ( \x ->+          FailoverConfig'+            Prelude.<$> (x Data..:? "failoverMode")+            Prelude.<*> (x Data..:? "recoveryWindow")+            Prelude.<*> (x Data..:? "sourcePriority")+            Prelude.<*> (x Data..:? "state")+      )++instance Prelude.Hashable FailoverConfig where+  hashWithSalt _salt FailoverConfig' {..} =+    _salt+      `Prelude.hashWithSalt` failoverMode+      `Prelude.hashWithSalt` recoveryWindow+      `Prelude.hashWithSalt` sourcePriority+      `Prelude.hashWithSalt` state++instance Prelude.NFData FailoverConfig where+  rnf FailoverConfig' {..} =+    Prelude.rnf failoverMode+      `Prelude.seq` Prelude.rnf recoveryWindow+      `Prelude.seq` Prelude.rnf sourcePriority+      `Prelude.seq` Prelude.rnf state++instance Data.ToJSON FailoverConfig where+  toJSON FailoverConfig' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("failoverMode" Data..=) Prelude.<$> failoverMode,+            ("recoveryWindow" Data..=)+              Prelude.<$> recoveryWindow,+            ("sourcePriority" Data..=)+              Prelude.<$> sourcePriority,+            ("state" Data..=) Prelude.<$> state+          ]+      )
+ gen/Amazonka/MediaConnect/Types/FailoverMode.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.MediaConnect.Types.FailoverMode+-- 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.MediaConnect.Types.FailoverMode+  ( FailoverMode+      ( ..,+        FailoverMode_FAILOVER,+        FailoverMode_MERGE+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype FailoverMode = FailoverMode'+  { fromFailoverMode ::+      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 FailoverMode_FAILOVER :: FailoverMode+pattern FailoverMode_FAILOVER = FailoverMode' "FAILOVER"++pattern FailoverMode_MERGE :: FailoverMode+pattern FailoverMode_MERGE = FailoverMode' "MERGE"++{-# COMPLETE+  FailoverMode_FAILOVER,+  FailoverMode_MERGE,+  FailoverMode'+  #-}
+ gen/Amazonka/MediaConnect/Types/Flow.hs view
@@ -0,0 +1,263 @@+{-# 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.MediaConnect.Types.Flow+-- 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.MediaConnect.Types.Flow where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaConnect.Types.Entitlement+import Amazonka.MediaConnect.Types.FailoverConfig+import Amazonka.MediaConnect.Types.Maintenance+import Amazonka.MediaConnect.Types.MediaStream+import Amazonka.MediaConnect.Types.Output+import Amazonka.MediaConnect.Types.Source+import Amazonka.MediaConnect.Types.Status+import Amazonka.MediaConnect.Types.VpcInterface+import qualified Amazonka.Prelude as Prelude++-- | The settings for a flow, including its source, outputs, and+-- entitlements.+--+-- /See:/ 'newFlow' smart constructor.+data Flow = Flow'+  { -- | A description of the flow. This value is not used or seen outside of the+    -- current AWS Elemental MediaConnect account.+    description :: Prelude.Maybe Prelude.Text,+    -- | The IP address from which video will be sent to output destinations.+    egressIp :: Prelude.Maybe Prelude.Text,+    maintenance :: Prelude.Maybe Maintenance,+    -- | The media streams that are associated with the flow. After you associate+    -- a media stream with a source, you can also associate it with outputs on+    -- the flow.+    mediaStreams :: Prelude.Maybe [MediaStream],+    sourceFailoverConfig :: Prelude.Maybe FailoverConfig,+    sources :: Prelude.Maybe [Source],+    -- | The VPC Interfaces for this flow.+    vpcInterfaces :: Prelude.Maybe [VpcInterface],+    -- | The current status of the flow.+    status :: Status,+    -- | The entitlements in this flow.+    entitlements :: [Entitlement],+    -- | The outputs in this flow.+    outputs :: [Output],+    -- | The Availability Zone that you want to create the flow in. These options+    -- are limited to the Availability Zones within the current AWS.+    availabilityZone :: Prelude.Text,+    -- | The Amazon Resource Name (ARN), a unique identifier for any AWS+    -- resource, of the flow.+    flowArn :: Prelude.Text,+    source :: Source,+    -- | The name of the flow.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Flow' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'description', 'flow_description' - A description of the flow. This value is not used or seen outside of the+-- current AWS Elemental MediaConnect account.+--+-- 'egressIp', 'flow_egressIp' - The IP address from which video will be sent to output destinations.+--+-- 'maintenance', 'flow_maintenance' - Undocumented member.+--+-- 'mediaStreams', 'flow_mediaStreams' - The media streams that are associated with the flow. After you associate+-- a media stream with a source, you can also associate it with outputs on+-- the flow.+--+-- 'sourceFailoverConfig', 'flow_sourceFailoverConfig' - Undocumented member.+--+-- 'sources', 'flow_sources' - Undocumented member.+--+-- 'vpcInterfaces', 'flow_vpcInterfaces' - The VPC Interfaces for this flow.+--+-- 'status', 'flow_status' - The current status of the flow.+--+-- 'entitlements', 'flow_entitlements' - The entitlements in this flow.+--+-- 'outputs', 'flow_outputs' - The outputs in this flow.+--+-- 'availabilityZone', 'flow_availabilityZone' - The Availability Zone that you want to create the flow in. These options+-- are limited to the Availability Zones within the current AWS.+--+-- 'flowArn', 'flow_flowArn' - The Amazon Resource Name (ARN), a unique identifier for any AWS+-- resource, of the flow.+--+-- 'source', 'flow_source' - Undocumented member.+--+-- 'name', 'flow_name' - The name of the flow.+newFlow ::+  -- | 'status'+  Status ->+  -- | 'availabilityZone'+  Prelude.Text ->+  -- | 'flowArn'+  Prelude.Text ->+  -- | 'source'+  Source ->+  -- | 'name'+  Prelude.Text ->+  Flow+newFlow+  pStatus_+  pAvailabilityZone_+  pFlowArn_+  pSource_+  pName_ =+    Flow'+      { description = Prelude.Nothing,+        egressIp = Prelude.Nothing,+        maintenance = Prelude.Nothing,+        mediaStreams = Prelude.Nothing,+        sourceFailoverConfig = Prelude.Nothing,+        sources = Prelude.Nothing,+        vpcInterfaces = Prelude.Nothing,+        status = pStatus_,+        entitlements = Prelude.mempty,+        outputs = Prelude.mempty,+        availabilityZone = pAvailabilityZone_,+        flowArn = pFlowArn_,+        source = pSource_,+        name = pName_+      }++-- | A description of the flow. This value is not used or seen outside of the+-- current AWS Elemental MediaConnect account.+flow_description :: Lens.Lens' Flow (Prelude.Maybe Prelude.Text)+flow_description = Lens.lens (\Flow' {description} -> description) (\s@Flow' {} a -> s {description = a} :: Flow)++-- | The IP address from which video will be sent to output destinations.+flow_egressIp :: Lens.Lens' Flow (Prelude.Maybe Prelude.Text)+flow_egressIp = Lens.lens (\Flow' {egressIp} -> egressIp) (\s@Flow' {} a -> s {egressIp = a} :: Flow)++-- | Undocumented member.+flow_maintenance :: Lens.Lens' Flow (Prelude.Maybe Maintenance)+flow_maintenance = Lens.lens (\Flow' {maintenance} -> maintenance) (\s@Flow' {} a -> s {maintenance = a} :: Flow)++-- | The media streams that are associated with the flow. After you associate+-- a media stream with a source, you can also associate it with outputs on+-- the flow.+flow_mediaStreams :: Lens.Lens' Flow (Prelude.Maybe [MediaStream])+flow_mediaStreams = Lens.lens (\Flow' {mediaStreams} -> mediaStreams) (\s@Flow' {} a -> s {mediaStreams = a} :: Flow) Prelude.. Lens.mapping Lens.coerced++-- | Undocumented member.+flow_sourceFailoverConfig :: Lens.Lens' Flow (Prelude.Maybe FailoverConfig)+flow_sourceFailoverConfig = Lens.lens (\Flow' {sourceFailoverConfig} -> sourceFailoverConfig) (\s@Flow' {} a -> s {sourceFailoverConfig = a} :: Flow)++-- | Undocumented member.+flow_sources :: Lens.Lens' Flow (Prelude.Maybe [Source])+flow_sources = Lens.lens (\Flow' {sources} -> sources) (\s@Flow' {} a -> s {sources = a} :: Flow) Prelude.. Lens.mapping Lens.coerced++-- | The VPC Interfaces for this flow.+flow_vpcInterfaces :: Lens.Lens' Flow (Prelude.Maybe [VpcInterface])+flow_vpcInterfaces = Lens.lens (\Flow' {vpcInterfaces} -> vpcInterfaces) (\s@Flow' {} a -> s {vpcInterfaces = a} :: Flow) Prelude.. Lens.mapping Lens.coerced++-- | The current status of the flow.+flow_status :: Lens.Lens' Flow Status+flow_status = Lens.lens (\Flow' {status} -> status) (\s@Flow' {} a -> s {status = a} :: Flow)++-- | The entitlements in this flow.+flow_entitlements :: Lens.Lens' Flow [Entitlement]+flow_entitlements = Lens.lens (\Flow' {entitlements} -> entitlements) (\s@Flow' {} a -> s {entitlements = a} :: Flow) Prelude.. Lens.coerced++-- | The outputs in this flow.+flow_outputs :: Lens.Lens' Flow [Output]+flow_outputs = Lens.lens (\Flow' {outputs} -> outputs) (\s@Flow' {} a -> s {outputs = a} :: Flow) Prelude.. Lens.coerced++-- | The Availability Zone that you want to create the flow in. These options+-- are limited to the Availability Zones within the current AWS.+flow_availabilityZone :: Lens.Lens' Flow Prelude.Text+flow_availabilityZone = Lens.lens (\Flow' {availabilityZone} -> availabilityZone) (\s@Flow' {} a -> s {availabilityZone = a} :: Flow)++-- | The Amazon Resource Name (ARN), a unique identifier for any AWS+-- resource, of the flow.+flow_flowArn :: Lens.Lens' Flow Prelude.Text+flow_flowArn = Lens.lens (\Flow' {flowArn} -> flowArn) (\s@Flow' {} a -> s {flowArn = a} :: Flow)++-- | Undocumented member.+flow_source :: Lens.Lens' Flow Source+flow_source = Lens.lens (\Flow' {source} -> source) (\s@Flow' {} a -> s {source = a} :: Flow)++-- | The name of the flow.+flow_name :: Lens.Lens' Flow Prelude.Text+flow_name = Lens.lens (\Flow' {name} -> name) (\s@Flow' {} a -> s {name = a} :: Flow)++instance Data.FromJSON Flow where+  parseJSON =+    Data.withObject+      "Flow"+      ( \x ->+          Flow'+            Prelude.<$> (x Data..:? "description")+            Prelude.<*> (x Data..:? "egressIp")+            Prelude.<*> (x Data..:? "maintenance")+            Prelude.<*> (x Data..:? "mediaStreams" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "sourceFailoverConfig")+            Prelude.<*> (x Data..:? "sources" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "vpcInterfaces" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..: "status")+            Prelude.<*> (x Data..:? "entitlements" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "outputs" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..: "availabilityZone")+            Prelude.<*> (x Data..: "flowArn")+            Prelude.<*> (x Data..: "source")+            Prelude.<*> (x Data..: "name")+      )++instance Prelude.Hashable Flow where+  hashWithSalt _salt Flow' {..} =+    _salt+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` egressIp+      `Prelude.hashWithSalt` maintenance+      `Prelude.hashWithSalt` mediaStreams+      `Prelude.hashWithSalt` sourceFailoverConfig+      `Prelude.hashWithSalt` sources+      `Prelude.hashWithSalt` vpcInterfaces+      `Prelude.hashWithSalt` status+      `Prelude.hashWithSalt` entitlements+      `Prelude.hashWithSalt` outputs+      `Prelude.hashWithSalt` availabilityZone+      `Prelude.hashWithSalt` flowArn+      `Prelude.hashWithSalt` source+      `Prelude.hashWithSalt` name++instance Prelude.NFData Flow where+  rnf Flow' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf egressIp+      `Prelude.seq` Prelude.rnf maintenance+      `Prelude.seq` Prelude.rnf mediaStreams+      `Prelude.seq` Prelude.rnf sourceFailoverConfig+      `Prelude.seq` Prelude.rnf sources+      `Prelude.seq` Prelude.rnf vpcInterfaces+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf entitlements+      `Prelude.seq` Prelude.rnf outputs+      `Prelude.seq` Prelude.rnf availabilityZone+      `Prelude.seq` Prelude.rnf flowArn+      `Prelude.seq` Prelude.rnf source+      `Prelude.seq` Prelude.rnf name
+ gen/Amazonka/MediaConnect/Types/Fmtp.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.MediaConnect.Types.Fmtp+-- 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.MediaConnect.Types.Fmtp where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaConnect.Types.Colorimetry+import Amazonka.MediaConnect.Types.Range+import Amazonka.MediaConnect.Types.ScanMode+import Amazonka.MediaConnect.Types.Tcs+import qualified Amazonka.Prelude as Prelude++-- | FMTP+--+-- /See:/ 'newFmtp' smart constructor.+data Fmtp = Fmtp'+  { -- | The format of the audio channel.+    channelOrder :: Prelude.Maybe Prelude.Text,+    -- | The format that is used for the representation of color.+    colorimetry :: Prelude.Maybe Colorimetry,+    -- | The frame rate for the video stream, in frames\/second. For example:+    -- 60000\/1001. If you specify a whole number, MediaConnect uses a ratio of+    -- N\/1. For example, if you specify 60, MediaConnect uses 60\/1 as the+    -- exactFramerate.+    exactFramerate :: Prelude.Maybe Prelude.Text,+    -- | The pixel aspect ratio (PAR) of the video.+    par :: Prelude.Maybe Prelude.Text,+    -- | The encoding range of the video.+    range :: Prelude.Maybe Range,+    -- | The type of compression that was used to smooth the video’s appearance+    scanMode :: Prelude.Maybe ScanMode,+    -- | The transfer characteristic system (TCS) that is used in the video.+    tcs :: Prelude.Maybe Tcs+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Fmtp' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'channelOrder', 'fmtp_channelOrder' - The format of the audio channel.+--+-- 'colorimetry', 'fmtp_colorimetry' - The format that is used for the representation of color.+--+-- 'exactFramerate', 'fmtp_exactFramerate' - The frame rate for the video stream, in frames\/second. For example:+-- 60000\/1001. If you specify a whole number, MediaConnect uses a ratio of+-- N\/1. For example, if you specify 60, MediaConnect uses 60\/1 as the+-- exactFramerate.+--+-- 'par', 'fmtp_par' - The pixel aspect ratio (PAR) of the video.+--+-- 'range', 'fmtp_range' - The encoding range of the video.+--+-- 'scanMode', 'fmtp_scanMode' - The type of compression that was used to smooth the video’s appearance+--+-- 'tcs', 'fmtp_tcs' - The transfer characteristic system (TCS) that is used in the video.+newFmtp ::+  Fmtp+newFmtp =+  Fmtp'+    { channelOrder = Prelude.Nothing,+      colorimetry = Prelude.Nothing,+      exactFramerate = Prelude.Nothing,+      par = Prelude.Nothing,+      range = Prelude.Nothing,+      scanMode = Prelude.Nothing,+      tcs = Prelude.Nothing+    }++-- | The format of the audio channel.+fmtp_channelOrder :: Lens.Lens' Fmtp (Prelude.Maybe Prelude.Text)+fmtp_channelOrder = Lens.lens (\Fmtp' {channelOrder} -> channelOrder) (\s@Fmtp' {} a -> s {channelOrder = a} :: Fmtp)++-- | The format that is used for the representation of color.+fmtp_colorimetry :: Lens.Lens' Fmtp (Prelude.Maybe Colorimetry)+fmtp_colorimetry = Lens.lens (\Fmtp' {colorimetry} -> colorimetry) (\s@Fmtp' {} a -> s {colorimetry = a} :: Fmtp)++-- | The frame rate for the video stream, in frames\/second. For example:+-- 60000\/1001. If you specify a whole number, MediaConnect uses a ratio of+-- N\/1. For example, if you specify 60, MediaConnect uses 60\/1 as the+-- exactFramerate.+fmtp_exactFramerate :: Lens.Lens' Fmtp (Prelude.Maybe Prelude.Text)+fmtp_exactFramerate = Lens.lens (\Fmtp' {exactFramerate} -> exactFramerate) (\s@Fmtp' {} a -> s {exactFramerate = a} :: Fmtp)++-- | The pixel aspect ratio (PAR) of the video.+fmtp_par :: Lens.Lens' Fmtp (Prelude.Maybe Prelude.Text)+fmtp_par = Lens.lens (\Fmtp' {par} -> par) (\s@Fmtp' {} a -> s {par = a} :: Fmtp)++-- | The encoding range of the video.+fmtp_range :: Lens.Lens' Fmtp (Prelude.Maybe Range)+fmtp_range = Lens.lens (\Fmtp' {range} -> range) (\s@Fmtp' {} a -> s {range = a} :: Fmtp)++-- | The type of compression that was used to smooth the video’s appearance+fmtp_scanMode :: Lens.Lens' Fmtp (Prelude.Maybe ScanMode)+fmtp_scanMode = Lens.lens (\Fmtp' {scanMode} -> scanMode) (\s@Fmtp' {} a -> s {scanMode = a} :: Fmtp)++-- | The transfer characteristic system (TCS) that is used in the video.+fmtp_tcs :: Lens.Lens' Fmtp (Prelude.Maybe Tcs)+fmtp_tcs = Lens.lens (\Fmtp' {tcs} -> tcs) (\s@Fmtp' {} a -> s {tcs = a} :: Fmtp)++instance Data.FromJSON Fmtp where+  parseJSON =+    Data.withObject+      "Fmtp"+      ( \x ->+          Fmtp'+            Prelude.<$> (x Data..:? "channelOrder")+            Prelude.<*> (x Data..:? "colorimetry")+            Prelude.<*> (x Data..:? "exactFramerate")+            Prelude.<*> (x Data..:? "par")+            Prelude.<*> (x Data..:? "range")+            Prelude.<*> (x Data..:? "scanMode")+            Prelude.<*> (x Data..:? "tcs")+      )++instance Prelude.Hashable Fmtp where+  hashWithSalt _salt Fmtp' {..} =+    _salt+      `Prelude.hashWithSalt` channelOrder+      `Prelude.hashWithSalt` colorimetry+      `Prelude.hashWithSalt` exactFramerate+      `Prelude.hashWithSalt` par+      `Prelude.hashWithSalt` range+      `Prelude.hashWithSalt` scanMode+      `Prelude.hashWithSalt` tcs++instance Prelude.NFData Fmtp where+  rnf Fmtp' {..} =+    Prelude.rnf channelOrder+      `Prelude.seq` Prelude.rnf colorimetry+      `Prelude.seq` Prelude.rnf exactFramerate+      `Prelude.seq` Prelude.rnf par+      `Prelude.seq` Prelude.rnf range+      `Prelude.seq` Prelude.rnf scanMode+      `Prelude.seq` Prelude.rnf tcs
+ gen/Amazonka/MediaConnect/Types/FmtpRequest.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.MediaConnect.Types.FmtpRequest+-- 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.MediaConnect.Types.FmtpRequest where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaConnect.Types.Colorimetry+import Amazonka.MediaConnect.Types.Range+import Amazonka.MediaConnect.Types.ScanMode+import Amazonka.MediaConnect.Types.Tcs+import qualified Amazonka.Prelude as Prelude++-- | The settings that you want to use to define the media stream.+--+-- /See:/ 'newFmtpRequest' smart constructor.+data FmtpRequest = FmtpRequest'+  { -- | The format of the audio channel.+    channelOrder :: Prelude.Maybe Prelude.Text,+    -- | The format that is used for the representation of color.+    colorimetry :: Prelude.Maybe Colorimetry,+    -- | The frame rate for the video stream, in frames\/second. For example:+    -- 60000\/1001. If you specify a whole number, MediaConnect uses a ratio of+    -- N\/1. For example, if you specify 60, MediaConnect uses 60\/1 as the+    -- exactFramerate.+    exactFramerate :: Prelude.Maybe Prelude.Text,+    -- | The pixel aspect ratio (PAR) of the video.+    par :: Prelude.Maybe Prelude.Text,+    -- | The encoding range of the video.+    range :: Prelude.Maybe Range,+    -- | The type of compression that was used to smooth the video’s appearance.+    scanMode :: Prelude.Maybe ScanMode,+    -- | The transfer characteristic system (TCS) that is used in the video.+    tcs :: Prelude.Maybe Tcs+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'FmtpRequest' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'channelOrder', 'fmtpRequest_channelOrder' - The format of the audio channel.+--+-- 'colorimetry', 'fmtpRequest_colorimetry' - The format that is used for the representation of color.+--+-- 'exactFramerate', 'fmtpRequest_exactFramerate' - The frame rate for the video stream, in frames\/second. For example:+-- 60000\/1001. If you specify a whole number, MediaConnect uses a ratio of+-- N\/1. For example, if you specify 60, MediaConnect uses 60\/1 as the+-- exactFramerate.+--+-- 'par', 'fmtpRequest_par' - The pixel aspect ratio (PAR) of the video.+--+-- 'range', 'fmtpRequest_range' - The encoding range of the video.+--+-- 'scanMode', 'fmtpRequest_scanMode' - The type of compression that was used to smooth the video’s appearance.+--+-- 'tcs', 'fmtpRequest_tcs' - The transfer characteristic system (TCS) that is used in the video.+newFmtpRequest ::+  FmtpRequest+newFmtpRequest =+  FmtpRequest'+    { channelOrder = Prelude.Nothing,+      colorimetry = Prelude.Nothing,+      exactFramerate = Prelude.Nothing,+      par = Prelude.Nothing,+      range = Prelude.Nothing,+      scanMode = Prelude.Nothing,+      tcs = Prelude.Nothing+    }++-- | The format of the audio channel.+fmtpRequest_channelOrder :: Lens.Lens' FmtpRequest (Prelude.Maybe Prelude.Text)+fmtpRequest_channelOrder = Lens.lens (\FmtpRequest' {channelOrder} -> channelOrder) (\s@FmtpRequest' {} a -> s {channelOrder = a} :: FmtpRequest)++-- | The format that is used for the representation of color.+fmtpRequest_colorimetry :: Lens.Lens' FmtpRequest (Prelude.Maybe Colorimetry)+fmtpRequest_colorimetry = Lens.lens (\FmtpRequest' {colorimetry} -> colorimetry) (\s@FmtpRequest' {} a -> s {colorimetry = a} :: FmtpRequest)++-- | The frame rate for the video stream, in frames\/second. For example:+-- 60000\/1001. If you specify a whole number, MediaConnect uses a ratio of+-- N\/1. For example, if you specify 60, MediaConnect uses 60\/1 as the+-- exactFramerate.+fmtpRequest_exactFramerate :: Lens.Lens' FmtpRequest (Prelude.Maybe Prelude.Text)+fmtpRequest_exactFramerate = Lens.lens (\FmtpRequest' {exactFramerate} -> exactFramerate) (\s@FmtpRequest' {} a -> s {exactFramerate = a} :: FmtpRequest)++-- | The pixel aspect ratio (PAR) of the video.+fmtpRequest_par :: Lens.Lens' FmtpRequest (Prelude.Maybe Prelude.Text)+fmtpRequest_par = Lens.lens (\FmtpRequest' {par} -> par) (\s@FmtpRequest' {} a -> s {par = a} :: FmtpRequest)++-- | The encoding range of the video.+fmtpRequest_range :: Lens.Lens' FmtpRequest (Prelude.Maybe Range)+fmtpRequest_range = Lens.lens (\FmtpRequest' {range} -> range) (\s@FmtpRequest' {} a -> s {range = a} :: FmtpRequest)++-- | The type of compression that was used to smooth the video’s appearance.+fmtpRequest_scanMode :: Lens.Lens' FmtpRequest (Prelude.Maybe ScanMode)+fmtpRequest_scanMode = Lens.lens (\FmtpRequest' {scanMode} -> scanMode) (\s@FmtpRequest' {} a -> s {scanMode = a} :: FmtpRequest)++-- | The transfer characteristic system (TCS) that is used in the video.+fmtpRequest_tcs :: Lens.Lens' FmtpRequest (Prelude.Maybe Tcs)+fmtpRequest_tcs = Lens.lens (\FmtpRequest' {tcs} -> tcs) (\s@FmtpRequest' {} a -> s {tcs = a} :: FmtpRequest)++instance Prelude.Hashable FmtpRequest where+  hashWithSalt _salt FmtpRequest' {..} =+    _salt+      `Prelude.hashWithSalt` channelOrder+      `Prelude.hashWithSalt` colorimetry+      `Prelude.hashWithSalt` exactFramerate+      `Prelude.hashWithSalt` par+      `Prelude.hashWithSalt` range+      `Prelude.hashWithSalt` scanMode+      `Prelude.hashWithSalt` tcs++instance Prelude.NFData FmtpRequest where+  rnf FmtpRequest' {..} =+    Prelude.rnf channelOrder+      `Prelude.seq` Prelude.rnf colorimetry+      `Prelude.seq` Prelude.rnf exactFramerate+      `Prelude.seq` Prelude.rnf par+      `Prelude.seq` Prelude.rnf range+      `Prelude.seq` Prelude.rnf scanMode+      `Prelude.seq` Prelude.rnf tcs++instance Data.ToJSON FmtpRequest where+  toJSON FmtpRequest' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("channelOrder" Data..=) Prelude.<$> channelOrder,+            ("colorimetry" Data..=) Prelude.<$> colorimetry,+            ("exactFramerate" Data..=)+              Prelude.<$> exactFramerate,+            ("par" Data..=) Prelude.<$> par,+            ("range" Data..=) Prelude.<$> range,+            ("scanMode" Data..=) Prelude.<$> scanMode,+            ("tcs" Data..=) Prelude.<$> tcs+          ]+      )
+ gen/Amazonka/MediaConnect/Types/GrantEntitlementRequest.hs view
@@ -0,0 +1,166 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaConnect.Types.GrantEntitlementRequest+-- 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.MediaConnect.Types.GrantEntitlementRequest where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaConnect.Types.Encryption+import Amazonka.MediaConnect.Types.EntitlementStatus+import qualified Amazonka.Prelude as Prelude++-- | The entitlements that you want to grant on a flow.+--+-- /See:/ 'newGrantEntitlementRequest' smart constructor.+data GrantEntitlementRequest = GrantEntitlementRequest'+  { -- | Percentage from 0-100 of the data transfer cost to be billed to the+    -- subscriber.+    dataTransferSubscriberFeePercent :: Prelude.Maybe Prelude.Int,+    -- | A description of the entitlement. This description appears only on the+    -- AWS Elemental MediaConnect console and will not be seen by the+    -- subscriber or end user.+    description :: Prelude.Maybe Prelude.Text,+    -- | The type of encryption that will be used on the output that is+    -- associated with this entitlement.+    encryption :: Prelude.Maybe Encryption,+    -- | An indication of whether the new entitlement should be enabled or+    -- disabled as soon as it is created. If you don’t specify the+    -- entitlementStatus field in your request, MediaConnect sets it to+    -- ENABLED.+    entitlementStatus :: Prelude.Maybe EntitlementStatus,+    -- | The name of the entitlement. This value must be unique within the+    -- current flow.+    name :: Prelude.Maybe Prelude.Text,+    -- | The AWS account IDs that you want to share your content with. The+    -- receiving accounts (subscribers) will be allowed to create their own+    -- flows using your content as the source.+    subscribers :: [Prelude.Text]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GrantEntitlementRequest' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dataTransferSubscriberFeePercent', 'grantEntitlementRequest_dataTransferSubscriberFeePercent' - Percentage from 0-100 of the data transfer cost to be billed to the+-- subscriber.+--+-- 'description', 'grantEntitlementRequest_description' - A description of the entitlement. This description appears only on the+-- AWS Elemental MediaConnect console and will not be seen by the+-- subscriber or end user.+--+-- 'encryption', 'grantEntitlementRequest_encryption' - The type of encryption that will be used on the output that is+-- associated with this entitlement.+--+-- 'entitlementStatus', 'grantEntitlementRequest_entitlementStatus' - An indication of whether the new entitlement should be enabled or+-- disabled as soon as it is created. If you don’t specify the+-- entitlementStatus field in your request, MediaConnect sets it to+-- ENABLED.+--+-- 'name', 'grantEntitlementRequest_name' - The name of the entitlement. This value must be unique within the+-- current flow.+--+-- 'subscribers', 'grantEntitlementRequest_subscribers' - The AWS account IDs that you want to share your content with. The+-- receiving accounts (subscribers) will be allowed to create their own+-- flows using your content as the source.+newGrantEntitlementRequest ::+  GrantEntitlementRequest+newGrantEntitlementRequest =+  GrantEntitlementRequest'+    { dataTransferSubscriberFeePercent =+        Prelude.Nothing,+      description = Prelude.Nothing,+      encryption = Prelude.Nothing,+      entitlementStatus = Prelude.Nothing,+      name = Prelude.Nothing,+      subscribers = Prelude.mempty+    }++-- | Percentage from 0-100 of the data transfer cost to be billed to the+-- subscriber.+grantEntitlementRequest_dataTransferSubscriberFeePercent :: Lens.Lens' GrantEntitlementRequest (Prelude.Maybe Prelude.Int)+grantEntitlementRequest_dataTransferSubscriberFeePercent = Lens.lens (\GrantEntitlementRequest' {dataTransferSubscriberFeePercent} -> dataTransferSubscriberFeePercent) (\s@GrantEntitlementRequest' {} a -> s {dataTransferSubscriberFeePercent = a} :: GrantEntitlementRequest)++-- | A description of the entitlement. This description appears only on the+-- AWS Elemental MediaConnect console and will not be seen by the+-- subscriber or end user.+grantEntitlementRequest_description :: Lens.Lens' GrantEntitlementRequest (Prelude.Maybe Prelude.Text)+grantEntitlementRequest_description = Lens.lens (\GrantEntitlementRequest' {description} -> description) (\s@GrantEntitlementRequest' {} a -> s {description = a} :: GrantEntitlementRequest)++-- | The type of encryption that will be used on the output that is+-- associated with this entitlement.+grantEntitlementRequest_encryption :: Lens.Lens' GrantEntitlementRequest (Prelude.Maybe Encryption)+grantEntitlementRequest_encryption = Lens.lens (\GrantEntitlementRequest' {encryption} -> encryption) (\s@GrantEntitlementRequest' {} a -> s {encryption = a} :: GrantEntitlementRequest)++-- | An indication of whether the new entitlement should be enabled or+-- disabled as soon as it is created. If you don’t specify the+-- entitlementStatus field in your request, MediaConnect sets it to+-- ENABLED.+grantEntitlementRequest_entitlementStatus :: Lens.Lens' GrantEntitlementRequest (Prelude.Maybe EntitlementStatus)+grantEntitlementRequest_entitlementStatus = Lens.lens (\GrantEntitlementRequest' {entitlementStatus} -> entitlementStatus) (\s@GrantEntitlementRequest' {} a -> s {entitlementStatus = a} :: GrantEntitlementRequest)++-- | The name of the entitlement. This value must be unique within the+-- current flow.+grantEntitlementRequest_name :: Lens.Lens' GrantEntitlementRequest (Prelude.Maybe Prelude.Text)+grantEntitlementRequest_name = Lens.lens (\GrantEntitlementRequest' {name} -> name) (\s@GrantEntitlementRequest' {} a -> s {name = a} :: GrantEntitlementRequest)++-- | The AWS account IDs that you want to share your content with. The+-- receiving accounts (subscribers) will be allowed to create their own+-- flows using your content as the source.+grantEntitlementRequest_subscribers :: Lens.Lens' GrantEntitlementRequest [Prelude.Text]+grantEntitlementRequest_subscribers = Lens.lens (\GrantEntitlementRequest' {subscribers} -> subscribers) (\s@GrantEntitlementRequest' {} a -> s {subscribers = a} :: GrantEntitlementRequest) Prelude.. Lens.coerced++instance Prelude.Hashable GrantEntitlementRequest where+  hashWithSalt _salt GrantEntitlementRequest' {..} =+    _salt+      `Prelude.hashWithSalt` dataTransferSubscriberFeePercent+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` encryption+      `Prelude.hashWithSalt` entitlementStatus+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` subscribers++instance Prelude.NFData GrantEntitlementRequest where+  rnf GrantEntitlementRequest' {..} =+    Prelude.rnf dataTransferSubscriberFeePercent+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf encryption+      `Prelude.seq` Prelude.rnf entitlementStatus+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf subscribers++instance Data.ToJSON GrantEntitlementRequest where+  toJSON GrantEntitlementRequest' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("dataTransferSubscriberFeePercent" Data..=)+              Prelude.<$> dataTransferSubscriberFeePercent,+            ("description" Data..=) Prelude.<$> description,+            ("encryption" Data..=) Prelude.<$> encryption,+            ("entitlementStatus" Data..=)+              Prelude.<$> entitlementStatus,+            ("name" Data..=) Prelude.<$> name,+            Prelude.Just ("subscribers" Data..= subscribers)+          ]+      )
+ gen/Amazonka/MediaConnect/Types/InputConfiguration.hs view
@@ -0,0 +1,110 @@+{-# 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.MediaConnect.Types.InputConfiguration+-- 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.MediaConnect.Types.InputConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaConnect.Types.Interface+import qualified Amazonka.Prelude as Prelude++-- | The transport parameters that are associated with an incoming media+-- stream.+--+-- /See:/ 'newInputConfiguration' smart constructor.+data InputConfiguration = InputConfiguration'+  { -- | The port that the flow listens on for an incoming media stream.+    inputPort :: Prelude.Int,+    -- | The IP address that the flow listens on for incoming content for a media+    -- stream.+    inputIp :: Prelude.Text,+    -- | The VPC interface where the media stream comes in from.+    interface :: Interface+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'InputConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'inputPort', 'inputConfiguration_inputPort' - The port that the flow listens on for an incoming media stream.+--+-- 'inputIp', 'inputConfiguration_inputIp' - The IP address that the flow listens on for incoming content for a media+-- stream.+--+-- 'interface', 'inputConfiguration_interface' - The VPC interface where the media stream comes in from.+newInputConfiguration ::+  -- | 'inputPort'+  Prelude.Int ->+  -- | 'inputIp'+  Prelude.Text ->+  -- | 'interface'+  Interface ->+  InputConfiguration+newInputConfiguration+  pInputPort_+  pInputIp_+  pInterface_ =+    InputConfiguration'+      { inputPort = pInputPort_,+        inputIp = pInputIp_,+        interface = pInterface_+      }++-- | The port that the flow listens on for an incoming media stream.+inputConfiguration_inputPort :: Lens.Lens' InputConfiguration Prelude.Int+inputConfiguration_inputPort = Lens.lens (\InputConfiguration' {inputPort} -> inputPort) (\s@InputConfiguration' {} a -> s {inputPort = a} :: InputConfiguration)++-- | The IP address that the flow listens on for incoming content for a media+-- stream.+inputConfiguration_inputIp :: Lens.Lens' InputConfiguration Prelude.Text+inputConfiguration_inputIp = Lens.lens (\InputConfiguration' {inputIp} -> inputIp) (\s@InputConfiguration' {} a -> s {inputIp = a} :: InputConfiguration)++-- | The VPC interface where the media stream comes in from.+inputConfiguration_interface :: Lens.Lens' InputConfiguration Interface+inputConfiguration_interface = Lens.lens (\InputConfiguration' {interface} -> interface) (\s@InputConfiguration' {} a -> s {interface = a} :: InputConfiguration)++instance Data.FromJSON InputConfiguration where+  parseJSON =+    Data.withObject+      "InputConfiguration"+      ( \x ->+          InputConfiguration'+            Prelude.<$> (x Data..: "inputPort")+            Prelude.<*> (x Data..: "inputIp")+            Prelude.<*> (x Data..: "interface")+      )++instance Prelude.Hashable InputConfiguration where+  hashWithSalt _salt InputConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` inputPort+      `Prelude.hashWithSalt` inputIp+      `Prelude.hashWithSalt` interface++instance Prelude.NFData InputConfiguration where+  rnf InputConfiguration' {..} =+    Prelude.rnf inputPort+      `Prelude.seq` Prelude.rnf inputIp+      `Prelude.seq` Prelude.rnf interface
+ gen/Amazonka/MediaConnect/Types/InputConfigurationRequest.hs view
@@ -0,0 +1,92 @@+{-# 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.MediaConnect.Types.InputConfigurationRequest+-- 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.MediaConnect.Types.InputConfigurationRequest where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaConnect.Types.InterfaceRequest+import qualified Amazonka.Prelude as Prelude++-- | The transport parameters that you want to associate with an incoming+-- media stream.+--+-- /See:/ 'newInputConfigurationRequest' smart constructor.+data InputConfigurationRequest = InputConfigurationRequest'+  { -- | The port that you want the flow to listen on for an incoming media+    -- stream.+    inputPort :: Prelude.Int,+    -- | The VPC interface that you want to use for the incoming media stream.+    interface :: InterfaceRequest+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'InputConfigurationRequest' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'inputPort', 'inputConfigurationRequest_inputPort' - The port that you want the flow to listen on for an incoming media+-- stream.+--+-- 'interface', 'inputConfigurationRequest_interface' - The VPC interface that you want to use for the incoming media stream.+newInputConfigurationRequest ::+  -- | 'inputPort'+  Prelude.Int ->+  -- | 'interface'+  InterfaceRequest ->+  InputConfigurationRequest+newInputConfigurationRequest pInputPort_ pInterface_ =+  InputConfigurationRequest'+    { inputPort = pInputPort_,+      interface = pInterface_+    }++-- | The port that you want the flow to listen on for an incoming media+-- stream.+inputConfigurationRequest_inputPort :: Lens.Lens' InputConfigurationRequest Prelude.Int+inputConfigurationRequest_inputPort = Lens.lens (\InputConfigurationRequest' {inputPort} -> inputPort) (\s@InputConfigurationRequest' {} a -> s {inputPort = a} :: InputConfigurationRequest)++-- | The VPC interface that you want to use for the incoming media stream.+inputConfigurationRequest_interface :: Lens.Lens' InputConfigurationRequest InterfaceRequest+inputConfigurationRequest_interface = Lens.lens (\InputConfigurationRequest' {interface} -> interface) (\s@InputConfigurationRequest' {} a -> s {interface = a} :: InputConfigurationRequest)++instance Prelude.Hashable InputConfigurationRequest where+  hashWithSalt _salt InputConfigurationRequest' {..} =+    _salt+      `Prelude.hashWithSalt` inputPort+      `Prelude.hashWithSalt` interface++instance Prelude.NFData InputConfigurationRequest where+  rnf InputConfigurationRequest' {..} =+    Prelude.rnf inputPort+      `Prelude.seq` Prelude.rnf interface++instance Data.ToJSON InputConfigurationRequest where+  toJSON InputConfigurationRequest' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("inputPort" Data..= inputPort),+            Prelude.Just ("interface" Data..= interface)+          ]+      )
+ gen/Amazonka/MediaConnect/Types/Interface.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.MediaConnect.Types.Interface+-- 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.MediaConnect.Types.Interface where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The VPC interface that is used for the media stream associated with the+-- source or output.+--+-- /See:/ 'newInterface' smart constructor.+data Interface = Interface'+  { -- | The name of the VPC interface.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Interface' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'interface_name' - The name of the VPC interface.+newInterface ::+  -- | 'name'+  Prelude.Text ->+  Interface+newInterface pName_ = Interface' {name = pName_}++-- | The name of the VPC interface.+interface_name :: Lens.Lens' Interface Prelude.Text+interface_name = Lens.lens (\Interface' {name} -> name) (\s@Interface' {} a -> s {name = a} :: Interface)++instance Data.FromJSON Interface where+  parseJSON =+    Data.withObject+      "Interface"+      (\x -> Interface' Prelude.<$> (x Data..: "name"))++instance Prelude.Hashable Interface where+  hashWithSalt _salt Interface' {..} =+    _salt `Prelude.hashWithSalt` name++instance Prelude.NFData Interface where+  rnf Interface' {..} = Prelude.rnf name
+ gen/Amazonka/MediaConnect/Types/InterfaceRequest.hs view
@@ -0,0 +1,69 @@+{-# 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.MediaConnect.Types.InterfaceRequest+-- 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.MediaConnect.Types.InterfaceRequest where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The VPC interface that you want to designate where the media stream is+-- coming from or going to.+--+-- /See:/ 'newInterfaceRequest' smart constructor.+data InterfaceRequest = InterfaceRequest'+  { -- | The name of the VPC interface.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'InterfaceRequest' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'interfaceRequest_name' - The name of the VPC interface.+newInterfaceRequest ::+  -- | 'name'+  Prelude.Text ->+  InterfaceRequest+newInterfaceRequest pName_ =+  InterfaceRequest' {name = pName_}++-- | The name of the VPC interface.+interfaceRequest_name :: Lens.Lens' InterfaceRequest Prelude.Text+interfaceRequest_name = Lens.lens (\InterfaceRequest' {name} -> name) (\s@InterfaceRequest' {} a -> s {name = a} :: InterfaceRequest)++instance Prelude.Hashable InterfaceRequest where+  hashWithSalt _salt InterfaceRequest' {..} =+    _salt `Prelude.hashWithSalt` name++instance Prelude.NFData InterfaceRequest where+  rnf InterfaceRequest' {..} = Prelude.rnf name++instance Data.ToJSON InterfaceRequest where+  toJSON InterfaceRequest' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("name" Data..= name)]+      )
+ gen/Amazonka/MediaConnect/Types/KeyType.hs view
@@ -0,0 +1,73 @@+{-# 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.MediaConnect.Types.KeyType+-- 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.MediaConnect.Types.KeyType+  ( KeyType+      ( ..,+        KeyType_Speke,+        KeyType_Srt_password,+        KeyType_Static_key+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype KeyType = KeyType' {fromKeyType :: 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 KeyType_Speke :: KeyType+pattern KeyType_Speke = KeyType' "speke"++pattern KeyType_Srt_password :: KeyType+pattern KeyType_Srt_password = KeyType' "srt-password"++pattern KeyType_Static_key :: KeyType+pattern KeyType_Static_key = KeyType' "static-key"++{-# COMPLETE+  KeyType_Speke,+  KeyType_Srt_password,+  KeyType_Static_key,+  KeyType'+  #-}
+ gen/Amazonka/MediaConnect/Types/ListedEntitlement.hs view
@@ -0,0 +1,106 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaConnect.Types.ListedEntitlement+-- 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.MediaConnect.Types.ListedEntitlement where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | An entitlement that has been granted to you from other AWS accounts.+--+-- /See:/ 'newListedEntitlement' smart constructor.+data ListedEntitlement = ListedEntitlement'+  { -- | Percentage from 0-100 of the data transfer cost to be billed to the+    -- subscriber.+    dataTransferSubscriberFeePercent :: Prelude.Maybe Prelude.Int,+    -- | The ARN of the entitlement.+    entitlementArn :: Prelude.Text,+    -- | The name of the entitlement.+    entitlementName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListedEntitlement' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dataTransferSubscriberFeePercent', 'listedEntitlement_dataTransferSubscriberFeePercent' - Percentage from 0-100 of the data transfer cost to be billed to the+-- subscriber.+--+-- 'entitlementArn', 'listedEntitlement_entitlementArn' - The ARN of the entitlement.+--+-- 'entitlementName', 'listedEntitlement_entitlementName' - The name of the entitlement.+newListedEntitlement ::+  -- | 'entitlementArn'+  Prelude.Text ->+  -- | 'entitlementName'+  Prelude.Text ->+  ListedEntitlement+newListedEntitlement+  pEntitlementArn_+  pEntitlementName_ =+    ListedEntitlement'+      { dataTransferSubscriberFeePercent =+          Prelude.Nothing,+        entitlementArn = pEntitlementArn_,+        entitlementName = pEntitlementName_+      }++-- | Percentage from 0-100 of the data transfer cost to be billed to the+-- subscriber.+listedEntitlement_dataTransferSubscriberFeePercent :: Lens.Lens' ListedEntitlement (Prelude.Maybe Prelude.Int)+listedEntitlement_dataTransferSubscriberFeePercent = Lens.lens (\ListedEntitlement' {dataTransferSubscriberFeePercent} -> dataTransferSubscriberFeePercent) (\s@ListedEntitlement' {} a -> s {dataTransferSubscriberFeePercent = a} :: ListedEntitlement)++-- | The ARN of the entitlement.+listedEntitlement_entitlementArn :: Lens.Lens' ListedEntitlement Prelude.Text+listedEntitlement_entitlementArn = Lens.lens (\ListedEntitlement' {entitlementArn} -> entitlementArn) (\s@ListedEntitlement' {} a -> s {entitlementArn = a} :: ListedEntitlement)++-- | The name of the entitlement.+listedEntitlement_entitlementName :: Lens.Lens' ListedEntitlement Prelude.Text+listedEntitlement_entitlementName = Lens.lens (\ListedEntitlement' {entitlementName} -> entitlementName) (\s@ListedEntitlement' {} a -> s {entitlementName = a} :: ListedEntitlement)++instance Data.FromJSON ListedEntitlement where+  parseJSON =+    Data.withObject+      "ListedEntitlement"+      ( \x ->+          ListedEntitlement'+            Prelude.<$> (x Data..:? "dataTransferSubscriberFeePercent")+            Prelude.<*> (x Data..: "entitlementArn")+            Prelude.<*> (x Data..: "entitlementName")+      )++instance Prelude.Hashable ListedEntitlement where+  hashWithSalt _salt ListedEntitlement' {..} =+    _salt+      `Prelude.hashWithSalt` dataTransferSubscriberFeePercent+      `Prelude.hashWithSalt` entitlementArn+      `Prelude.hashWithSalt` entitlementName++instance Prelude.NFData ListedEntitlement where+  rnf ListedEntitlement' {..} =+    Prelude.rnf dataTransferSubscriberFeePercent+      `Prelude.seq` Prelude.rnf entitlementArn+      `Prelude.seq` Prelude.rnf entitlementName
+ gen/Amazonka/MediaConnect/Types/ListedFlow.hs view
@@ -0,0 +1,174 @@+{-# 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.MediaConnect.Types.ListedFlow+-- 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.MediaConnect.Types.ListedFlow where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaConnect.Types.Maintenance+import Amazonka.MediaConnect.Types.SourceType+import Amazonka.MediaConnect.Types.Status+import qualified Amazonka.Prelude as Prelude++-- | Provides a summary of a flow, including its ARN, Availability Zone, and+-- source type.+--+-- /See:/ 'newListedFlow' smart constructor.+data ListedFlow = ListedFlow'+  { maintenance :: Prelude.Maybe Maintenance,+    -- | The current status of the flow.+    status :: Status,+    -- | A description of the flow.+    description :: Prelude.Text,+    -- | The type of source. This value is either owned (originated somewhere+    -- other than an AWS Elemental MediaConnect flow owned by another AWS+    -- account) or entitled (originated at an AWS Elemental MediaConnect flow+    -- owned by another AWS account).+    sourceType :: SourceType,+    -- | The Availability Zone that the flow was created in.+    availabilityZone :: Prelude.Text,+    -- | The ARN of the flow.+    flowArn :: Prelude.Text,+    -- | The name of the flow.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListedFlow' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'maintenance', 'listedFlow_maintenance' - Undocumented member.+--+-- 'status', 'listedFlow_status' - The current status of the flow.+--+-- 'description', 'listedFlow_description' - A description of the flow.+--+-- 'sourceType', 'listedFlow_sourceType' - The type of source. This value is either owned (originated somewhere+-- other than an AWS Elemental MediaConnect flow owned by another AWS+-- account) or entitled (originated at an AWS Elemental MediaConnect flow+-- owned by another AWS account).+--+-- 'availabilityZone', 'listedFlow_availabilityZone' - The Availability Zone that the flow was created in.+--+-- 'flowArn', 'listedFlow_flowArn' - The ARN of the flow.+--+-- 'name', 'listedFlow_name' - The name of the flow.+newListedFlow ::+  -- | 'status'+  Status ->+  -- | 'description'+  Prelude.Text ->+  -- | 'sourceType'+  SourceType ->+  -- | 'availabilityZone'+  Prelude.Text ->+  -- | 'flowArn'+  Prelude.Text ->+  -- | 'name'+  Prelude.Text ->+  ListedFlow+newListedFlow+  pStatus_+  pDescription_+  pSourceType_+  pAvailabilityZone_+  pFlowArn_+  pName_ =+    ListedFlow'+      { maintenance = Prelude.Nothing,+        status = pStatus_,+        description = pDescription_,+        sourceType = pSourceType_,+        availabilityZone = pAvailabilityZone_,+        flowArn = pFlowArn_,+        name = pName_+      }++-- | Undocumented member.+listedFlow_maintenance :: Lens.Lens' ListedFlow (Prelude.Maybe Maintenance)+listedFlow_maintenance = Lens.lens (\ListedFlow' {maintenance} -> maintenance) (\s@ListedFlow' {} a -> s {maintenance = a} :: ListedFlow)++-- | The current status of the flow.+listedFlow_status :: Lens.Lens' ListedFlow Status+listedFlow_status = Lens.lens (\ListedFlow' {status} -> status) (\s@ListedFlow' {} a -> s {status = a} :: ListedFlow)++-- | A description of the flow.+listedFlow_description :: Lens.Lens' ListedFlow Prelude.Text+listedFlow_description = Lens.lens (\ListedFlow' {description} -> description) (\s@ListedFlow' {} a -> s {description = a} :: ListedFlow)++-- | The type of source. This value is either owned (originated somewhere+-- other than an AWS Elemental MediaConnect flow owned by another AWS+-- account) or entitled (originated at an AWS Elemental MediaConnect flow+-- owned by another AWS account).+listedFlow_sourceType :: Lens.Lens' ListedFlow SourceType+listedFlow_sourceType = Lens.lens (\ListedFlow' {sourceType} -> sourceType) (\s@ListedFlow' {} a -> s {sourceType = a} :: ListedFlow)++-- | The Availability Zone that the flow was created in.+listedFlow_availabilityZone :: Lens.Lens' ListedFlow Prelude.Text+listedFlow_availabilityZone = Lens.lens (\ListedFlow' {availabilityZone} -> availabilityZone) (\s@ListedFlow' {} a -> s {availabilityZone = a} :: ListedFlow)++-- | The ARN of the flow.+listedFlow_flowArn :: Lens.Lens' ListedFlow Prelude.Text+listedFlow_flowArn = Lens.lens (\ListedFlow' {flowArn} -> flowArn) (\s@ListedFlow' {} a -> s {flowArn = a} :: ListedFlow)++-- | The name of the flow.+listedFlow_name :: Lens.Lens' ListedFlow Prelude.Text+listedFlow_name = Lens.lens (\ListedFlow' {name} -> name) (\s@ListedFlow' {} a -> s {name = a} :: ListedFlow)++instance Data.FromJSON ListedFlow where+  parseJSON =+    Data.withObject+      "ListedFlow"+      ( \x ->+          ListedFlow'+            Prelude.<$> (x Data..:? "maintenance")+            Prelude.<*> (x Data..: "status")+            Prelude.<*> (x Data..: "description")+            Prelude.<*> (x Data..: "sourceType")+            Prelude.<*> (x Data..: "availabilityZone")+            Prelude.<*> (x Data..: "flowArn")+            Prelude.<*> (x Data..: "name")+      )++instance Prelude.Hashable ListedFlow where+  hashWithSalt _salt ListedFlow' {..} =+    _salt+      `Prelude.hashWithSalt` maintenance+      `Prelude.hashWithSalt` status+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` sourceType+      `Prelude.hashWithSalt` availabilityZone+      `Prelude.hashWithSalt` flowArn+      `Prelude.hashWithSalt` name++instance Prelude.NFData ListedFlow where+  rnf ListedFlow' {..} =+    Prelude.rnf maintenance+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf sourceType+      `Prelude.seq` Prelude.rnf availabilityZone+      `Prelude.seq` Prelude.rnf flowArn+      `Prelude.seq` Prelude.rnf name
+ gen/Amazonka/MediaConnect/Types/Maintenance.hs view
@@ -0,0 +1,121 @@+{-# 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.MediaConnect.Types.Maintenance+-- 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.MediaConnect.Types.Maintenance where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaConnect.Types.MaintenanceDay+import qualified Amazonka.Prelude as Prelude++-- | The maintenance setting of a flow+--+-- /See:/ 'newMaintenance' smart constructor.+data Maintenance = Maintenance'+  { -- | A day of a week when the maintenance will happen. Use+    -- Monday\/Tuesday\/Wednesday\/Thursday\/Friday\/Saturday\/Sunday.+    maintenanceDay :: Prelude.Maybe MaintenanceDay,+    -- | The Maintenance has to be performed before this deadline in ISO UTC+    -- format. Example: 2021-01-30T08:30:00Z.+    maintenanceDeadline :: Prelude.Maybe Prelude.Text,+    -- | A scheduled date in ISO UTC format when the maintenance will happen. Use+    -- YYYY-MM-DD format. Example: 2021-01-30.+    maintenanceScheduledDate :: Prelude.Maybe Prelude.Text,+    -- | UTC time when the maintenance will happen. Use 24-hour HH:MM format.+    -- Minutes must be 00. Example: 13:00. The default value is 02:00.+    maintenanceStartHour :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Maintenance' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'maintenanceDay', 'maintenance_maintenanceDay' - A day of a week when the maintenance will happen. Use+-- Monday\/Tuesday\/Wednesday\/Thursday\/Friday\/Saturday\/Sunday.+--+-- 'maintenanceDeadline', 'maintenance_maintenanceDeadline' - The Maintenance has to be performed before this deadline in ISO UTC+-- format. Example: 2021-01-30T08:30:00Z.+--+-- 'maintenanceScheduledDate', 'maintenance_maintenanceScheduledDate' - A scheduled date in ISO UTC format when the maintenance will happen. Use+-- YYYY-MM-DD format. Example: 2021-01-30.+--+-- 'maintenanceStartHour', 'maintenance_maintenanceStartHour' - UTC time when the maintenance will happen. Use 24-hour HH:MM format.+-- Minutes must be 00. Example: 13:00. The default value is 02:00.+newMaintenance ::+  Maintenance+newMaintenance =+  Maintenance'+    { maintenanceDay = Prelude.Nothing,+      maintenanceDeadline = Prelude.Nothing,+      maintenanceScheduledDate = Prelude.Nothing,+      maintenanceStartHour = Prelude.Nothing+    }++-- | A day of a week when the maintenance will happen. Use+-- Monday\/Tuesday\/Wednesday\/Thursday\/Friday\/Saturday\/Sunday.+maintenance_maintenanceDay :: Lens.Lens' Maintenance (Prelude.Maybe MaintenanceDay)+maintenance_maintenanceDay = Lens.lens (\Maintenance' {maintenanceDay} -> maintenanceDay) (\s@Maintenance' {} a -> s {maintenanceDay = a} :: Maintenance)++-- | The Maintenance has to be performed before this deadline in ISO UTC+-- format. Example: 2021-01-30T08:30:00Z.+maintenance_maintenanceDeadline :: Lens.Lens' Maintenance (Prelude.Maybe Prelude.Text)+maintenance_maintenanceDeadline = Lens.lens (\Maintenance' {maintenanceDeadline} -> maintenanceDeadline) (\s@Maintenance' {} a -> s {maintenanceDeadline = a} :: Maintenance)++-- | A scheduled date in ISO UTC format when the maintenance will happen. Use+-- YYYY-MM-DD format. Example: 2021-01-30.+maintenance_maintenanceScheduledDate :: Lens.Lens' Maintenance (Prelude.Maybe Prelude.Text)+maintenance_maintenanceScheduledDate = Lens.lens (\Maintenance' {maintenanceScheduledDate} -> maintenanceScheduledDate) (\s@Maintenance' {} a -> s {maintenanceScheduledDate = a} :: Maintenance)++-- | UTC time when the maintenance will happen. Use 24-hour HH:MM format.+-- Minutes must be 00. Example: 13:00. The default value is 02:00.+maintenance_maintenanceStartHour :: Lens.Lens' Maintenance (Prelude.Maybe Prelude.Text)+maintenance_maintenanceStartHour = Lens.lens (\Maintenance' {maintenanceStartHour} -> maintenanceStartHour) (\s@Maintenance' {} a -> s {maintenanceStartHour = a} :: Maintenance)++instance Data.FromJSON Maintenance where+  parseJSON =+    Data.withObject+      "Maintenance"+      ( \x ->+          Maintenance'+            Prelude.<$> (x Data..:? "maintenanceDay")+            Prelude.<*> (x Data..:? "maintenanceDeadline")+            Prelude.<*> (x Data..:? "maintenanceScheduledDate")+            Prelude.<*> (x Data..:? "maintenanceStartHour")+      )++instance Prelude.Hashable Maintenance where+  hashWithSalt _salt Maintenance' {..} =+    _salt+      `Prelude.hashWithSalt` maintenanceDay+      `Prelude.hashWithSalt` maintenanceDeadline+      `Prelude.hashWithSalt` maintenanceScheduledDate+      `Prelude.hashWithSalt` maintenanceStartHour++instance Prelude.NFData Maintenance where+  rnf Maintenance' {..} =+    Prelude.rnf maintenanceDay+      `Prelude.seq` Prelude.rnf maintenanceDeadline+      `Prelude.seq` Prelude.rnf maintenanceScheduledDate+      `Prelude.seq` Prelude.rnf maintenanceStartHour
+ gen/Amazonka/MediaConnect/Types/MaintenanceDay.hs view
@@ -0,0 +1,96 @@+{-# 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.MediaConnect.Types.MaintenanceDay+-- 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.MediaConnect.Types.MaintenanceDay+  ( MaintenanceDay+      ( ..,+        MaintenanceDay_Friday,+        MaintenanceDay_Monday,+        MaintenanceDay_Saturday,+        MaintenanceDay_Sunday,+        MaintenanceDay_Thursday,+        MaintenanceDay_Tuesday,+        MaintenanceDay_Wednesday+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype MaintenanceDay = MaintenanceDay'+  { fromMaintenanceDay ::+      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 MaintenanceDay_Friday :: MaintenanceDay+pattern MaintenanceDay_Friday = MaintenanceDay' "Friday"++pattern MaintenanceDay_Monday :: MaintenanceDay+pattern MaintenanceDay_Monday = MaintenanceDay' "Monday"++pattern MaintenanceDay_Saturday :: MaintenanceDay+pattern MaintenanceDay_Saturday = MaintenanceDay' "Saturday"++pattern MaintenanceDay_Sunday :: MaintenanceDay+pattern MaintenanceDay_Sunday = MaintenanceDay' "Sunday"++pattern MaintenanceDay_Thursday :: MaintenanceDay+pattern MaintenanceDay_Thursday = MaintenanceDay' "Thursday"++pattern MaintenanceDay_Tuesday :: MaintenanceDay+pattern MaintenanceDay_Tuesday = MaintenanceDay' "Tuesday"++pattern MaintenanceDay_Wednesday :: MaintenanceDay+pattern MaintenanceDay_Wednesday = MaintenanceDay' "Wednesday"++{-# COMPLETE+  MaintenanceDay_Friday,+  MaintenanceDay_Monday,+  MaintenanceDay_Saturday,+  MaintenanceDay_Sunday,+  MaintenanceDay_Thursday,+  MaintenanceDay_Tuesday,+  MaintenanceDay_Wednesday,+  MaintenanceDay'+  #-}
+ gen/Amazonka/MediaConnect/Types/MediaStream.hs view
@@ -0,0 +1,186 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaConnect.Types.MediaStream+-- 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.MediaConnect.Types.MediaStream where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaConnect.Types.MediaStreamAttributes+import Amazonka.MediaConnect.Types.MediaStreamType+import qualified Amazonka.Prelude as Prelude++-- | A single track or stream of media that contains video, audio, or+-- ancillary data. After you add a media stream to a flow, you can+-- associate it with sources and outputs on that flow, as long as they use+-- the CDI protocol or the ST 2110 JPEG XS protocol. Each source or output+-- can consist of one or many media streams.+--+-- /See:/ 'newMediaStream' smart constructor.+data MediaStream = MediaStream'+  { -- | Attributes that are related to the media stream.+    attributes :: Prelude.Maybe MediaStreamAttributes,+    -- | The sample rate for the stream. This value is measured in Hz.+    clockRate :: Prelude.Maybe Prelude.Int,+    -- | A description that can help you quickly identify what your media stream+    -- is used for.+    description :: Prelude.Maybe Prelude.Text,+    -- | The resolution of the video.+    videoFormat :: Prelude.Maybe Prelude.Text,+    -- | The type of media stream.+    mediaStreamType :: MediaStreamType,+    -- | A unique identifier for the media stream.+    mediaStreamId :: Prelude.Int,+    -- | A name that helps you distinguish one media stream from another.+    mediaStreamName :: Prelude.Text,+    -- | The format type number (sometimes referred to as RTP payload type) of+    -- the media stream. MediaConnect assigns this value to the media stream.+    -- For ST 2110 JPEG XS outputs, you need to provide this value to the+    -- receiver.+    fmt :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'MediaStream' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'attributes', 'mediaStream_attributes' - Attributes that are related to the media stream.+--+-- 'clockRate', 'mediaStream_clockRate' - The sample rate for the stream. This value is measured in Hz.+--+-- 'description', 'mediaStream_description' - A description that can help you quickly identify what your media stream+-- is used for.+--+-- 'videoFormat', 'mediaStream_videoFormat' - The resolution of the video.+--+-- 'mediaStreamType', 'mediaStream_mediaStreamType' - The type of media stream.+--+-- 'mediaStreamId', 'mediaStream_mediaStreamId' - A unique identifier for the media stream.+--+-- 'mediaStreamName', 'mediaStream_mediaStreamName' - A name that helps you distinguish one media stream from another.+--+-- 'fmt', 'mediaStream_fmt' - The format type number (sometimes referred to as RTP payload type) of+-- the media stream. MediaConnect assigns this value to the media stream.+-- For ST 2110 JPEG XS outputs, you need to provide this value to the+-- receiver.+newMediaStream ::+  -- | 'mediaStreamType'+  MediaStreamType ->+  -- | 'mediaStreamId'+  Prelude.Int ->+  -- | 'mediaStreamName'+  Prelude.Text ->+  -- | 'fmt'+  Prelude.Int ->+  MediaStream+newMediaStream+  pMediaStreamType_+  pMediaStreamId_+  pMediaStreamName_+  pFmt_ =+    MediaStream'+      { attributes = Prelude.Nothing,+        clockRate = Prelude.Nothing,+        description = Prelude.Nothing,+        videoFormat = Prelude.Nothing,+        mediaStreamType = pMediaStreamType_,+        mediaStreamId = pMediaStreamId_,+        mediaStreamName = pMediaStreamName_,+        fmt = pFmt_+      }++-- | Attributes that are related to the media stream.+mediaStream_attributes :: Lens.Lens' MediaStream (Prelude.Maybe MediaStreamAttributes)+mediaStream_attributes = Lens.lens (\MediaStream' {attributes} -> attributes) (\s@MediaStream' {} a -> s {attributes = a} :: MediaStream)++-- | The sample rate for the stream. This value is measured in Hz.+mediaStream_clockRate :: Lens.Lens' MediaStream (Prelude.Maybe Prelude.Int)+mediaStream_clockRate = Lens.lens (\MediaStream' {clockRate} -> clockRate) (\s@MediaStream' {} a -> s {clockRate = a} :: MediaStream)++-- | A description that can help you quickly identify what your media stream+-- is used for.+mediaStream_description :: Lens.Lens' MediaStream (Prelude.Maybe Prelude.Text)+mediaStream_description = Lens.lens (\MediaStream' {description} -> description) (\s@MediaStream' {} a -> s {description = a} :: MediaStream)++-- | The resolution of the video.+mediaStream_videoFormat :: Lens.Lens' MediaStream (Prelude.Maybe Prelude.Text)+mediaStream_videoFormat = Lens.lens (\MediaStream' {videoFormat} -> videoFormat) (\s@MediaStream' {} a -> s {videoFormat = a} :: MediaStream)++-- | The type of media stream.+mediaStream_mediaStreamType :: Lens.Lens' MediaStream MediaStreamType+mediaStream_mediaStreamType = Lens.lens (\MediaStream' {mediaStreamType} -> mediaStreamType) (\s@MediaStream' {} a -> s {mediaStreamType = a} :: MediaStream)++-- | A unique identifier for the media stream.+mediaStream_mediaStreamId :: Lens.Lens' MediaStream Prelude.Int+mediaStream_mediaStreamId = Lens.lens (\MediaStream' {mediaStreamId} -> mediaStreamId) (\s@MediaStream' {} a -> s {mediaStreamId = a} :: MediaStream)++-- | A name that helps you distinguish one media stream from another.+mediaStream_mediaStreamName :: Lens.Lens' MediaStream Prelude.Text+mediaStream_mediaStreamName = Lens.lens (\MediaStream' {mediaStreamName} -> mediaStreamName) (\s@MediaStream' {} a -> s {mediaStreamName = a} :: MediaStream)++-- | The format type number (sometimes referred to as RTP payload type) of+-- the media stream. MediaConnect assigns this value to the media stream.+-- For ST 2110 JPEG XS outputs, you need to provide this value to the+-- receiver.+mediaStream_fmt :: Lens.Lens' MediaStream Prelude.Int+mediaStream_fmt = Lens.lens (\MediaStream' {fmt} -> fmt) (\s@MediaStream' {} a -> s {fmt = a} :: MediaStream)++instance Data.FromJSON MediaStream where+  parseJSON =+    Data.withObject+      "MediaStream"+      ( \x ->+          MediaStream'+            Prelude.<$> (x Data..:? "attributes")+            Prelude.<*> (x Data..:? "clockRate")+            Prelude.<*> (x Data..:? "description")+            Prelude.<*> (x Data..:? "videoFormat")+            Prelude.<*> (x Data..: "mediaStreamType")+            Prelude.<*> (x Data..: "mediaStreamId")+            Prelude.<*> (x Data..: "mediaStreamName")+            Prelude.<*> (x Data..: "fmt")+      )++instance Prelude.Hashable MediaStream where+  hashWithSalt _salt MediaStream' {..} =+    _salt+      `Prelude.hashWithSalt` attributes+      `Prelude.hashWithSalt` clockRate+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` videoFormat+      `Prelude.hashWithSalt` mediaStreamType+      `Prelude.hashWithSalt` mediaStreamId+      `Prelude.hashWithSalt` mediaStreamName+      `Prelude.hashWithSalt` fmt++instance Prelude.NFData MediaStream where+  rnf MediaStream' {..} =+    Prelude.rnf attributes+      `Prelude.seq` Prelude.rnf clockRate+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf videoFormat+      `Prelude.seq` Prelude.rnf mediaStreamType+      `Prelude.seq` Prelude.rnf mediaStreamId+      `Prelude.seq` Prelude.rnf mediaStreamName+      `Prelude.seq` Prelude.rnf fmt
+ gen/Amazonka/MediaConnect/Types/MediaStreamAttributes.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.MediaConnect.Types.MediaStreamAttributes+-- 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.MediaConnect.Types.MediaStreamAttributes where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaConnect.Types.Fmtp+import qualified Amazonka.Prelude as Prelude++-- | Attributes that are related to the media stream.+--+-- /See:/ 'newMediaStreamAttributes' smart constructor.+data MediaStreamAttributes = MediaStreamAttributes'+  { -- | The audio language, in a format that is recognized by the receiver.+    lang :: Prelude.Maybe Prelude.Text,+    -- | A set of parameters that define the media stream.+    fmtp :: Fmtp+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'MediaStreamAttributes' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'lang', 'mediaStreamAttributes_lang' - The audio language, in a format that is recognized by the receiver.+--+-- 'fmtp', 'mediaStreamAttributes_fmtp' - A set of parameters that define the media stream.+newMediaStreamAttributes ::+  -- | 'fmtp'+  Fmtp ->+  MediaStreamAttributes+newMediaStreamAttributes pFmtp_ =+  MediaStreamAttributes'+    { lang = Prelude.Nothing,+      fmtp = pFmtp_+    }++-- | The audio language, in a format that is recognized by the receiver.+mediaStreamAttributes_lang :: Lens.Lens' MediaStreamAttributes (Prelude.Maybe Prelude.Text)+mediaStreamAttributes_lang = Lens.lens (\MediaStreamAttributes' {lang} -> lang) (\s@MediaStreamAttributes' {} a -> s {lang = a} :: MediaStreamAttributes)++-- | A set of parameters that define the media stream.+mediaStreamAttributes_fmtp :: Lens.Lens' MediaStreamAttributes Fmtp+mediaStreamAttributes_fmtp = Lens.lens (\MediaStreamAttributes' {fmtp} -> fmtp) (\s@MediaStreamAttributes' {} a -> s {fmtp = a} :: MediaStreamAttributes)++instance Data.FromJSON MediaStreamAttributes where+  parseJSON =+    Data.withObject+      "MediaStreamAttributes"+      ( \x ->+          MediaStreamAttributes'+            Prelude.<$> (x Data..:? "lang")+            Prelude.<*> (x Data..: "fmtp")+      )++instance Prelude.Hashable MediaStreamAttributes where+  hashWithSalt _salt MediaStreamAttributes' {..} =+    _salt+      `Prelude.hashWithSalt` lang+      `Prelude.hashWithSalt` fmtp++instance Prelude.NFData MediaStreamAttributes where+  rnf MediaStreamAttributes' {..} =+    Prelude.rnf lang `Prelude.seq` Prelude.rnf fmtp
+ gen/Amazonka/MediaConnect/Types/MediaStreamAttributesRequest.hs view
@@ -0,0 +1,87 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaConnect.Types.MediaStreamAttributesRequest+-- 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.MediaConnect.Types.MediaStreamAttributesRequest where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaConnect.Types.FmtpRequest+import qualified Amazonka.Prelude as Prelude++-- | Attributes that are related to the media stream.+--+-- /See:/ 'newMediaStreamAttributesRequest' smart constructor.+data MediaStreamAttributesRequest = MediaStreamAttributesRequest'+  { -- | The settings that you want to use to define the media stream.+    fmtp :: Prelude.Maybe FmtpRequest,+    -- | The audio language, in a format that is recognized by the receiver.+    lang :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'MediaStreamAttributesRequest' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'fmtp', 'mediaStreamAttributesRequest_fmtp' - The settings that you want to use to define the media stream.+--+-- 'lang', 'mediaStreamAttributesRequest_lang' - The audio language, in a format that is recognized by the receiver.+newMediaStreamAttributesRequest ::+  MediaStreamAttributesRequest+newMediaStreamAttributesRequest =+  MediaStreamAttributesRequest'+    { fmtp =+        Prelude.Nothing,+      lang = Prelude.Nothing+    }++-- | The settings that you want to use to define the media stream.+mediaStreamAttributesRequest_fmtp :: Lens.Lens' MediaStreamAttributesRequest (Prelude.Maybe FmtpRequest)+mediaStreamAttributesRequest_fmtp = Lens.lens (\MediaStreamAttributesRequest' {fmtp} -> fmtp) (\s@MediaStreamAttributesRequest' {} a -> s {fmtp = a} :: MediaStreamAttributesRequest)++-- | The audio language, in a format that is recognized by the receiver.+mediaStreamAttributesRequest_lang :: Lens.Lens' MediaStreamAttributesRequest (Prelude.Maybe Prelude.Text)+mediaStreamAttributesRequest_lang = Lens.lens (\MediaStreamAttributesRequest' {lang} -> lang) (\s@MediaStreamAttributesRequest' {} a -> s {lang = a} :: MediaStreamAttributesRequest)++instance+  Prelude.Hashable+    MediaStreamAttributesRequest+  where+  hashWithSalt _salt MediaStreamAttributesRequest' {..} =+    _salt+      `Prelude.hashWithSalt` fmtp+      `Prelude.hashWithSalt` lang++instance Prelude.NFData MediaStreamAttributesRequest where+  rnf MediaStreamAttributesRequest' {..} =+    Prelude.rnf fmtp `Prelude.seq` Prelude.rnf lang++instance Data.ToJSON MediaStreamAttributesRequest where+  toJSON MediaStreamAttributesRequest' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("fmtp" Data..=) Prelude.<$> fmtp,+            ("lang" Data..=) Prelude.<$> lang+          ]+      )
+ gen/Amazonka/MediaConnect/Types/MediaStreamOutputConfiguration.hs view
@@ -0,0 +1,142 @@+{-# 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.MediaConnect.Types.MediaStreamOutputConfiguration+-- 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.MediaConnect.Types.MediaStreamOutputConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaConnect.Types.DestinationConfiguration+import Amazonka.MediaConnect.Types.EncodingName+import Amazonka.MediaConnect.Types.EncodingParameters+import qualified Amazonka.Prelude as Prelude++-- | The media stream that is associated with the output, and the parameters+-- for that association.+--+-- /See:/ 'newMediaStreamOutputConfiguration' smart constructor.+data MediaStreamOutputConfiguration = MediaStreamOutputConfiguration'+  { -- | The transport parameters that are associated with each outbound media+    -- stream.+    destinationConfigurations :: Prelude.Maybe [DestinationConfiguration],+    -- | Encoding parameters+    encodingParameters :: Prelude.Maybe EncodingParameters,+    -- | The name of the media stream.+    mediaStreamName :: Prelude.Text,+    -- | The format that was used to encode the data. For ancillary data streams,+    -- set the encoding name to smpte291. For audio streams, set the encoding+    -- name to pcm. For video, 2110 streams, set the encoding name to raw. For+    -- video, JPEG XS streams, set the encoding name to jxsv.+    encodingName :: EncodingName+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'MediaStreamOutputConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'destinationConfigurations', 'mediaStreamOutputConfiguration_destinationConfigurations' - The transport parameters that are associated with each outbound media+-- stream.+--+-- 'encodingParameters', 'mediaStreamOutputConfiguration_encodingParameters' - Encoding parameters+--+-- 'mediaStreamName', 'mediaStreamOutputConfiguration_mediaStreamName' - The name of the media stream.+--+-- 'encodingName', 'mediaStreamOutputConfiguration_encodingName' - The format that was used to encode the data. For ancillary data streams,+-- set the encoding name to smpte291. For audio streams, set the encoding+-- name to pcm. For video, 2110 streams, set the encoding name to raw. For+-- video, JPEG XS streams, set the encoding name to jxsv.+newMediaStreamOutputConfiguration ::+  -- | 'mediaStreamName'+  Prelude.Text ->+  -- | 'encodingName'+  EncodingName ->+  MediaStreamOutputConfiguration+newMediaStreamOutputConfiguration+  pMediaStreamName_+  pEncodingName_ =+    MediaStreamOutputConfiguration'+      { destinationConfigurations =+          Prelude.Nothing,+        encodingParameters = Prelude.Nothing,+        mediaStreamName = pMediaStreamName_,+        encodingName = pEncodingName_+      }++-- | The transport parameters that are associated with each outbound media+-- stream.+mediaStreamOutputConfiguration_destinationConfigurations :: Lens.Lens' MediaStreamOutputConfiguration (Prelude.Maybe [DestinationConfiguration])+mediaStreamOutputConfiguration_destinationConfigurations = Lens.lens (\MediaStreamOutputConfiguration' {destinationConfigurations} -> destinationConfigurations) (\s@MediaStreamOutputConfiguration' {} a -> s {destinationConfigurations = a} :: MediaStreamOutputConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | Encoding parameters+mediaStreamOutputConfiguration_encodingParameters :: Lens.Lens' MediaStreamOutputConfiguration (Prelude.Maybe EncodingParameters)+mediaStreamOutputConfiguration_encodingParameters = Lens.lens (\MediaStreamOutputConfiguration' {encodingParameters} -> encodingParameters) (\s@MediaStreamOutputConfiguration' {} a -> s {encodingParameters = a} :: MediaStreamOutputConfiguration)++-- | The name of the media stream.+mediaStreamOutputConfiguration_mediaStreamName :: Lens.Lens' MediaStreamOutputConfiguration Prelude.Text+mediaStreamOutputConfiguration_mediaStreamName = Lens.lens (\MediaStreamOutputConfiguration' {mediaStreamName} -> mediaStreamName) (\s@MediaStreamOutputConfiguration' {} a -> s {mediaStreamName = a} :: MediaStreamOutputConfiguration)++-- | The format that was used to encode the data. For ancillary data streams,+-- set the encoding name to smpte291. For audio streams, set the encoding+-- name to pcm. For video, 2110 streams, set the encoding name to raw. For+-- video, JPEG XS streams, set the encoding name to jxsv.+mediaStreamOutputConfiguration_encodingName :: Lens.Lens' MediaStreamOutputConfiguration EncodingName+mediaStreamOutputConfiguration_encodingName = Lens.lens (\MediaStreamOutputConfiguration' {encodingName} -> encodingName) (\s@MediaStreamOutputConfiguration' {} a -> s {encodingName = a} :: MediaStreamOutputConfiguration)++instance Data.FromJSON MediaStreamOutputConfiguration where+  parseJSON =+    Data.withObject+      "MediaStreamOutputConfiguration"+      ( \x ->+          MediaStreamOutputConfiguration'+            Prelude.<$> ( x+                            Data..:? "destinationConfigurations"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "encodingParameters")+            Prelude.<*> (x Data..: "mediaStreamName")+            Prelude.<*> (x Data..: "encodingName")+      )++instance+  Prelude.Hashable+    MediaStreamOutputConfiguration+  where+  hashWithSalt+    _salt+    MediaStreamOutputConfiguration' {..} =+      _salt+        `Prelude.hashWithSalt` destinationConfigurations+        `Prelude.hashWithSalt` encodingParameters+        `Prelude.hashWithSalt` mediaStreamName+        `Prelude.hashWithSalt` encodingName++instance+  Prelude.NFData+    MediaStreamOutputConfiguration+  where+  rnf MediaStreamOutputConfiguration' {..} =+    Prelude.rnf destinationConfigurations+      `Prelude.seq` Prelude.rnf encodingParameters+      `Prelude.seq` Prelude.rnf mediaStreamName+      `Prelude.seq` Prelude.rnf encodingName
+ gen/Amazonka/MediaConnect/Types/MediaStreamOutputConfigurationRequest.hs view
@@ -0,0 +1,150 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaConnect.Types.MediaStreamOutputConfigurationRequest+-- 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.MediaConnect.Types.MediaStreamOutputConfigurationRequest where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaConnect.Types.DestinationConfigurationRequest+import Amazonka.MediaConnect.Types.EncodingName+import Amazonka.MediaConnect.Types.EncodingParametersRequest+import qualified Amazonka.Prelude as Prelude++-- | The media stream that you want to associate with the output, and the+-- parameters for that association.+--+-- /See:/ 'newMediaStreamOutputConfigurationRequest' smart constructor.+data MediaStreamOutputConfigurationRequest = MediaStreamOutputConfigurationRequest'+  { -- | The transport parameters that you want to associate with the media+    -- stream.+    destinationConfigurations :: Prelude.Maybe [DestinationConfigurationRequest],+    -- | A collection of parameters that determine how MediaConnect will convert+    -- the content. These fields only apply to outputs on flows that have a CDI+    -- source.+    encodingParameters :: Prelude.Maybe EncodingParametersRequest,+    -- | The name of the media stream that is associated with the output.+    mediaStreamName :: Prelude.Text,+    -- | The format that will be used to encode the data. For ancillary data+    -- streams, set the encoding name to smpte291. For audio streams, set the+    -- encoding name to pcm. For video, 2110 streams, set the encoding name to+    -- raw. For video, JPEG XS streams, set the encoding name to jxsv.+    encodingName :: EncodingName+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'MediaStreamOutputConfigurationRequest' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'destinationConfigurations', 'mediaStreamOutputConfigurationRequest_destinationConfigurations' - The transport parameters that you want to associate with the media+-- stream.+--+-- 'encodingParameters', 'mediaStreamOutputConfigurationRequest_encodingParameters' - A collection of parameters that determine how MediaConnect will convert+-- the content. These fields only apply to outputs on flows that have a CDI+-- source.+--+-- 'mediaStreamName', 'mediaStreamOutputConfigurationRequest_mediaStreamName' - The name of the media stream that is associated with the output.+--+-- 'encodingName', 'mediaStreamOutputConfigurationRequest_encodingName' - The format that will be used to encode the data. For ancillary data+-- streams, set the encoding name to smpte291. For audio streams, set the+-- encoding name to pcm. For video, 2110 streams, set the encoding name to+-- raw. For video, JPEG XS streams, set the encoding name to jxsv.+newMediaStreamOutputConfigurationRequest ::+  -- | 'mediaStreamName'+  Prelude.Text ->+  -- | 'encodingName'+  EncodingName ->+  MediaStreamOutputConfigurationRequest+newMediaStreamOutputConfigurationRequest+  pMediaStreamName_+  pEncodingName_ =+    MediaStreamOutputConfigurationRequest'+      { destinationConfigurations =+          Prelude.Nothing,+        encodingParameters = Prelude.Nothing,+        mediaStreamName = pMediaStreamName_,+        encodingName = pEncodingName_+      }++-- | The transport parameters that you want to associate with the media+-- stream.+mediaStreamOutputConfigurationRequest_destinationConfigurations :: Lens.Lens' MediaStreamOutputConfigurationRequest (Prelude.Maybe [DestinationConfigurationRequest])+mediaStreamOutputConfigurationRequest_destinationConfigurations = Lens.lens (\MediaStreamOutputConfigurationRequest' {destinationConfigurations} -> destinationConfigurations) (\s@MediaStreamOutputConfigurationRequest' {} a -> s {destinationConfigurations = a} :: MediaStreamOutputConfigurationRequest) Prelude.. Lens.mapping Lens.coerced++-- | A collection of parameters that determine how MediaConnect will convert+-- the content. These fields only apply to outputs on flows that have a CDI+-- source.+mediaStreamOutputConfigurationRequest_encodingParameters :: Lens.Lens' MediaStreamOutputConfigurationRequest (Prelude.Maybe EncodingParametersRequest)+mediaStreamOutputConfigurationRequest_encodingParameters = Lens.lens (\MediaStreamOutputConfigurationRequest' {encodingParameters} -> encodingParameters) (\s@MediaStreamOutputConfigurationRequest' {} a -> s {encodingParameters = a} :: MediaStreamOutputConfigurationRequest)++-- | The name of the media stream that is associated with the output.+mediaStreamOutputConfigurationRequest_mediaStreamName :: Lens.Lens' MediaStreamOutputConfigurationRequest Prelude.Text+mediaStreamOutputConfigurationRequest_mediaStreamName = Lens.lens (\MediaStreamOutputConfigurationRequest' {mediaStreamName} -> mediaStreamName) (\s@MediaStreamOutputConfigurationRequest' {} a -> s {mediaStreamName = a} :: MediaStreamOutputConfigurationRequest)++-- | The format that will be used to encode the data. For ancillary data+-- streams, set the encoding name to smpte291. For audio streams, set the+-- encoding name to pcm. For video, 2110 streams, set the encoding name to+-- raw. For video, JPEG XS streams, set the encoding name to jxsv.+mediaStreamOutputConfigurationRequest_encodingName :: Lens.Lens' MediaStreamOutputConfigurationRequest EncodingName+mediaStreamOutputConfigurationRequest_encodingName = Lens.lens (\MediaStreamOutputConfigurationRequest' {encodingName} -> encodingName) (\s@MediaStreamOutputConfigurationRequest' {} a -> s {encodingName = a} :: MediaStreamOutputConfigurationRequest)++instance+  Prelude.Hashable+    MediaStreamOutputConfigurationRequest+  where+  hashWithSalt+    _salt+    MediaStreamOutputConfigurationRequest' {..} =+      _salt+        `Prelude.hashWithSalt` destinationConfigurations+        `Prelude.hashWithSalt` encodingParameters+        `Prelude.hashWithSalt` mediaStreamName+        `Prelude.hashWithSalt` encodingName++instance+  Prelude.NFData+    MediaStreamOutputConfigurationRequest+  where+  rnf MediaStreamOutputConfigurationRequest' {..} =+    Prelude.rnf destinationConfigurations+      `Prelude.seq` Prelude.rnf encodingParameters+      `Prelude.seq` Prelude.rnf mediaStreamName+      `Prelude.seq` Prelude.rnf encodingName++instance+  Data.ToJSON+    MediaStreamOutputConfigurationRequest+  where+  toJSON MediaStreamOutputConfigurationRequest' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("destinationConfigurations" Data..=)+              Prelude.<$> destinationConfigurations,+            ("encodingParameters" Data..=)+              Prelude.<$> encodingParameters,+            Prelude.Just+              ("mediaStreamName" Data..= mediaStreamName),+            Prelude.Just ("encodingName" Data..= encodingName)+          ]+      )
+ gen/Amazonka/MediaConnect/Types/MediaStreamSourceConfiguration.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.MediaConnect.Types.MediaStreamSourceConfiguration+-- 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.MediaConnect.Types.MediaStreamSourceConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaConnect.Types.EncodingName+import Amazonka.MediaConnect.Types.InputConfiguration+import qualified Amazonka.Prelude as Prelude++-- | The media stream that is associated with the source, and the parameters+-- for that association.+--+-- /See:/ 'newMediaStreamSourceConfiguration' smart constructor.+data MediaStreamSourceConfiguration = MediaStreamSourceConfiguration'+  { -- | The transport parameters that are associated with an incoming media+    -- stream.+    inputConfigurations :: Prelude.Maybe [InputConfiguration],+    -- | The name of the media stream.+    mediaStreamName :: Prelude.Text,+    -- | The format that was used to encode the data. For ancillary data streams,+    -- set the encoding name to smpte291. For audio streams, set the encoding+    -- name to pcm. For video, 2110 streams, set the encoding name to raw. For+    -- video, JPEG XS streams, set the encoding name to jxsv.+    encodingName :: EncodingName+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'MediaStreamSourceConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'inputConfigurations', 'mediaStreamSourceConfiguration_inputConfigurations' - The transport parameters that are associated with an incoming media+-- stream.+--+-- 'mediaStreamName', 'mediaStreamSourceConfiguration_mediaStreamName' - The name of the media stream.+--+-- 'encodingName', 'mediaStreamSourceConfiguration_encodingName' - The format that was used to encode the data. For ancillary data streams,+-- set the encoding name to smpte291. For audio streams, set the encoding+-- name to pcm. For video, 2110 streams, set the encoding name to raw. For+-- video, JPEG XS streams, set the encoding name to jxsv.+newMediaStreamSourceConfiguration ::+  -- | 'mediaStreamName'+  Prelude.Text ->+  -- | 'encodingName'+  EncodingName ->+  MediaStreamSourceConfiguration+newMediaStreamSourceConfiguration+  pMediaStreamName_+  pEncodingName_ =+    MediaStreamSourceConfiguration'+      { inputConfigurations =+          Prelude.Nothing,+        mediaStreamName = pMediaStreamName_,+        encodingName = pEncodingName_+      }++-- | The transport parameters that are associated with an incoming media+-- stream.+mediaStreamSourceConfiguration_inputConfigurations :: Lens.Lens' MediaStreamSourceConfiguration (Prelude.Maybe [InputConfiguration])+mediaStreamSourceConfiguration_inputConfigurations = Lens.lens (\MediaStreamSourceConfiguration' {inputConfigurations} -> inputConfigurations) (\s@MediaStreamSourceConfiguration' {} a -> s {inputConfigurations = a} :: MediaStreamSourceConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | The name of the media stream.+mediaStreamSourceConfiguration_mediaStreamName :: Lens.Lens' MediaStreamSourceConfiguration Prelude.Text+mediaStreamSourceConfiguration_mediaStreamName = Lens.lens (\MediaStreamSourceConfiguration' {mediaStreamName} -> mediaStreamName) (\s@MediaStreamSourceConfiguration' {} a -> s {mediaStreamName = a} :: MediaStreamSourceConfiguration)++-- | The format that was used to encode the data. For ancillary data streams,+-- set the encoding name to smpte291. For audio streams, set the encoding+-- name to pcm. For video, 2110 streams, set the encoding name to raw. For+-- video, JPEG XS streams, set the encoding name to jxsv.+mediaStreamSourceConfiguration_encodingName :: Lens.Lens' MediaStreamSourceConfiguration EncodingName+mediaStreamSourceConfiguration_encodingName = Lens.lens (\MediaStreamSourceConfiguration' {encodingName} -> encodingName) (\s@MediaStreamSourceConfiguration' {} a -> s {encodingName = a} :: MediaStreamSourceConfiguration)++instance Data.FromJSON MediaStreamSourceConfiguration where+  parseJSON =+    Data.withObject+      "MediaStreamSourceConfiguration"+      ( \x ->+          MediaStreamSourceConfiguration'+            Prelude.<$> ( x+                            Data..:? "inputConfigurations"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..: "mediaStreamName")+            Prelude.<*> (x Data..: "encodingName")+      )++instance+  Prelude.Hashable+    MediaStreamSourceConfiguration+  where+  hashWithSalt+    _salt+    MediaStreamSourceConfiguration' {..} =+      _salt+        `Prelude.hashWithSalt` inputConfigurations+        `Prelude.hashWithSalt` mediaStreamName+        `Prelude.hashWithSalt` encodingName++instance+  Prelude.NFData+    MediaStreamSourceConfiguration+  where+  rnf MediaStreamSourceConfiguration' {..} =+    Prelude.rnf inputConfigurations+      `Prelude.seq` Prelude.rnf mediaStreamName+      `Prelude.seq` Prelude.rnf encodingName
+ gen/Amazonka/MediaConnect/Types/MediaStreamSourceConfigurationRequest.hs view
@@ -0,0 +1,130 @@+{-# 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.MediaConnect.Types.MediaStreamSourceConfigurationRequest+-- 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.MediaConnect.Types.MediaStreamSourceConfigurationRequest where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaConnect.Types.EncodingName+import Amazonka.MediaConnect.Types.InputConfigurationRequest+import qualified Amazonka.Prelude as Prelude++-- | The definition of a media stream that you want to associate with the+-- source.+--+-- /See:/ 'newMediaStreamSourceConfigurationRequest' smart constructor.+data MediaStreamSourceConfigurationRequest = MediaStreamSourceConfigurationRequest'+  { -- | The transport parameters that you want to associate with the media+    -- stream.+    inputConfigurations :: Prelude.Maybe [InputConfigurationRequest],+    -- | The name of the media stream.+    mediaStreamName :: Prelude.Text,+    -- | The format you want to use to encode the data. For ancillary data+    -- streams, set the encoding name to smpte291. For audio streams, set the+    -- encoding name to pcm. For video, 2110 streams, set the encoding name to+    -- raw. For video, JPEG XS streams, set the encoding name to jxsv.+    encodingName :: EncodingName+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'MediaStreamSourceConfigurationRequest' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'inputConfigurations', 'mediaStreamSourceConfigurationRequest_inputConfigurations' - The transport parameters that you want to associate with the media+-- stream.+--+-- 'mediaStreamName', 'mediaStreamSourceConfigurationRequest_mediaStreamName' - The name of the media stream.+--+-- 'encodingName', 'mediaStreamSourceConfigurationRequest_encodingName' - The format you want to use to encode the data. For ancillary data+-- streams, set the encoding name to smpte291. For audio streams, set the+-- encoding name to pcm. For video, 2110 streams, set the encoding name to+-- raw. For video, JPEG XS streams, set the encoding name to jxsv.+newMediaStreamSourceConfigurationRequest ::+  -- | 'mediaStreamName'+  Prelude.Text ->+  -- | 'encodingName'+  EncodingName ->+  MediaStreamSourceConfigurationRequest+newMediaStreamSourceConfigurationRequest+  pMediaStreamName_+  pEncodingName_ =+    MediaStreamSourceConfigurationRequest'+      { inputConfigurations =+          Prelude.Nothing,+        mediaStreamName = pMediaStreamName_,+        encodingName = pEncodingName_+      }++-- | The transport parameters that you want to associate with the media+-- stream.+mediaStreamSourceConfigurationRequest_inputConfigurations :: Lens.Lens' MediaStreamSourceConfigurationRequest (Prelude.Maybe [InputConfigurationRequest])+mediaStreamSourceConfigurationRequest_inputConfigurations = Lens.lens (\MediaStreamSourceConfigurationRequest' {inputConfigurations} -> inputConfigurations) (\s@MediaStreamSourceConfigurationRequest' {} a -> s {inputConfigurations = a} :: MediaStreamSourceConfigurationRequest) Prelude.. Lens.mapping Lens.coerced++-- | The name of the media stream.+mediaStreamSourceConfigurationRequest_mediaStreamName :: Lens.Lens' MediaStreamSourceConfigurationRequest Prelude.Text+mediaStreamSourceConfigurationRequest_mediaStreamName = Lens.lens (\MediaStreamSourceConfigurationRequest' {mediaStreamName} -> mediaStreamName) (\s@MediaStreamSourceConfigurationRequest' {} a -> s {mediaStreamName = a} :: MediaStreamSourceConfigurationRequest)++-- | The format you want to use to encode the data. For ancillary data+-- streams, set the encoding name to smpte291. For audio streams, set the+-- encoding name to pcm. For video, 2110 streams, set the encoding name to+-- raw. For video, JPEG XS streams, set the encoding name to jxsv.+mediaStreamSourceConfigurationRequest_encodingName :: Lens.Lens' MediaStreamSourceConfigurationRequest EncodingName+mediaStreamSourceConfigurationRequest_encodingName = Lens.lens (\MediaStreamSourceConfigurationRequest' {encodingName} -> encodingName) (\s@MediaStreamSourceConfigurationRequest' {} a -> s {encodingName = a} :: MediaStreamSourceConfigurationRequest)++instance+  Prelude.Hashable+    MediaStreamSourceConfigurationRequest+  where+  hashWithSalt+    _salt+    MediaStreamSourceConfigurationRequest' {..} =+      _salt+        `Prelude.hashWithSalt` inputConfigurations+        `Prelude.hashWithSalt` mediaStreamName+        `Prelude.hashWithSalt` encodingName++instance+  Prelude.NFData+    MediaStreamSourceConfigurationRequest+  where+  rnf MediaStreamSourceConfigurationRequest' {..} =+    Prelude.rnf inputConfigurations+      `Prelude.seq` Prelude.rnf mediaStreamName+      `Prelude.seq` Prelude.rnf encodingName++instance+  Data.ToJSON+    MediaStreamSourceConfigurationRequest+  where+  toJSON MediaStreamSourceConfigurationRequest' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("inputConfigurations" Data..=)+              Prelude.<$> inputConfigurations,+            Prelude.Just+              ("mediaStreamName" Data..= mediaStreamName),+            Prelude.Just ("encodingName" Data..= encodingName)+          ]+      )
+ gen/Amazonka/MediaConnect/Types/MediaStreamType.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.MediaConnect.Types.MediaStreamType+-- 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.MediaConnect.Types.MediaStreamType+  ( MediaStreamType+      ( ..,+        MediaStreamType_Ancillary_data,+        MediaStreamType_Audio,+        MediaStreamType_Video+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype MediaStreamType = MediaStreamType'+  { fromMediaStreamType ::+      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 MediaStreamType_Ancillary_data :: MediaStreamType+pattern MediaStreamType_Ancillary_data = MediaStreamType' "ancillary-data"++pattern MediaStreamType_Audio :: MediaStreamType+pattern MediaStreamType_Audio = MediaStreamType' "audio"++pattern MediaStreamType_Video :: MediaStreamType+pattern MediaStreamType_Video = MediaStreamType' "video"++{-# COMPLETE+  MediaStreamType_Ancillary_data,+  MediaStreamType_Audio,+  MediaStreamType_Video,+  MediaStreamType'+  #-}
+ gen/Amazonka/MediaConnect/Types/Messages.hs view
@@ -0,0 +1,70 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaConnect.Types.Messages+-- 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.MediaConnect.Types.Messages 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++-- | Messages that provide the state of the flow.+--+-- /See:/ 'newMessages' smart constructor.+data Messages = Messages'+  { -- | A list of errors that might have been generated from processes on this+    -- flow.+    errors :: [Prelude.Text]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Messages' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'messages_errors' - A list of errors that might have been generated from processes on this+-- flow.+newMessages ::+  Messages+newMessages = Messages' {errors = Prelude.mempty}++-- | A list of errors that might have been generated from processes on this+-- flow.+messages_errors :: Lens.Lens' Messages [Prelude.Text]+messages_errors = Lens.lens (\Messages' {errors} -> errors) (\s@Messages' {} a -> s {errors = a} :: Messages) Prelude.. Lens.coerced++instance Data.FromJSON Messages where+  parseJSON =+    Data.withObject+      "Messages"+      ( \x ->+          Messages'+            Prelude.<$> (x Data..:? "errors" Data..!= Prelude.mempty)+      )++instance Prelude.Hashable Messages where+  hashWithSalt _salt Messages' {..} =+    _salt `Prelude.hashWithSalt` errors++instance Prelude.NFData Messages where+  rnf Messages' {..} = Prelude.rnf errors
+ gen/Amazonka/MediaConnect/Types/NetworkInterfaceType.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaConnect.Types.NetworkInterfaceType+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MediaConnect.Types.NetworkInterfaceType+  ( NetworkInterfaceType+      ( ..,+        NetworkInterfaceType_Efa,+        NetworkInterfaceType_Ena+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype NetworkInterfaceType = NetworkInterfaceType'+  { fromNetworkInterfaceType ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern NetworkInterfaceType_Efa :: NetworkInterfaceType+pattern NetworkInterfaceType_Efa = NetworkInterfaceType' "efa"++pattern NetworkInterfaceType_Ena :: NetworkInterfaceType+pattern NetworkInterfaceType_Ena = NetworkInterfaceType' "ena"++{-# COMPLETE+  NetworkInterfaceType_Efa,+  NetworkInterfaceType_Ena,+  NetworkInterfaceType'+  #-}
+ gen/Amazonka/MediaConnect/Types/Offering.hs view
@@ -0,0 +1,199 @@+{-# 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.MediaConnect.Types.Offering+-- 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.MediaConnect.Types.Offering where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaConnect.Types.DurationUnits+import Amazonka.MediaConnect.Types.PriceUnits+import Amazonka.MediaConnect.Types.ResourceSpecification+import qualified Amazonka.Prelude as Prelude++-- | A savings plan that reserves a certain amount of outbound bandwidth+-- usage at a discounted rate each month over a period of time.+--+-- /See:/ 'newOffering' smart constructor.+data Offering = Offering'+  { -- | The type of currency that is used for billing. The currencyCode used for+    -- all reservations is US dollars.+    currencyCode :: Prelude.Text,+    -- | The Amazon Resource Name (ARN) that MediaConnect assigns to the+    -- offering.+    offeringArn :: Prelude.Text,+    -- | A description of the offering.+    offeringDescription :: Prelude.Text,+    -- | The unit of measurement for the duration of the offering.+    durationUnits :: DurationUnits,+    -- | The length of time that your reservation would be active.+    duration :: Prelude.Int,+    -- | The cost of a single unit. This value, in combination with priceUnits,+    -- makes up the rate.+    pricePerUnit :: Prelude.Text,+    -- | A definition of the amount of outbound bandwidth that you would be+    -- reserving if you purchase the offering.+    resourceSpecification :: ResourceSpecification,+    -- | The unit of measurement that is used for billing. This value, in+    -- combination with pricePerUnit, makes up the rate.+    priceUnits :: PriceUnits+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Offering' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'currencyCode', 'offering_currencyCode' - The type of currency that is used for billing. The currencyCode used for+-- all reservations is US dollars.+--+-- 'offeringArn', 'offering_offeringArn' - The Amazon Resource Name (ARN) that MediaConnect assigns to the+-- offering.+--+-- 'offeringDescription', 'offering_offeringDescription' - A description of the offering.+--+-- 'durationUnits', 'offering_durationUnits' - The unit of measurement for the duration of the offering.+--+-- 'duration', 'offering_duration' - The length of time that your reservation would be active.+--+-- 'pricePerUnit', 'offering_pricePerUnit' - The cost of a single unit. This value, in combination with priceUnits,+-- makes up the rate.+--+-- 'resourceSpecification', 'offering_resourceSpecification' - A definition of the amount of outbound bandwidth that you would be+-- reserving if you purchase the offering.+--+-- 'priceUnits', 'offering_priceUnits' - The unit of measurement that is used for billing. This value, in+-- combination with pricePerUnit, makes up the rate.+newOffering ::+  -- | 'currencyCode'+  Prelude.Text ->+  -- | 'offeringArn'+  Prelude.Text ->+  -- | 'offeringDescription'+  Prelude.Text ->+  -- | 'durationUnits'+  DurationUnits ->+  -- | 'duration'+  Prelude.Int ->+  -- | 'pricePerUnit'+  Prelude.Text ->+  -- | 'resourceSpecification'+  ResourceSpecification ->+  -- | 'priceUnits'+  PriceUnits ->+  Offering+newOffering+  pCurrencyCode_+  pOfferingArn_+  pOfferingDescription_+  pDurationUnits_+  pDuration_+  pPricePerUnit_+  pResourceSpecification_+  pPriceUnits_ =+    Offering'+      { currencyCode = pCurrencyCode_,+        offeringArn = pOfferingArn_,+        offeringDescription = pOfferingDescription_,+        durationUnits = pDurationUnits_,+        duration = pDuration_,+        pricePerUnit = pPricePerUnit_,+        resourceSpecification = pResourceSpecification_,+        priceUnits = pPriceUnits_+      }++-- | The type of currency that is used for billing. The currencyCode used for+-- all reservations is US dollars.+offering_currencyCode :: Lens.Lens' Offering Prelude.Text+offering_currencyCode = Lens.lens (\Offering' {currencyCode} -> currencyCode) (\s@Offering' {} a -> s {currencyCode = a} :: Offering)++-- | The Amazon Resource Name (ARN) that MediaConnect assigns to the+-- offering.+offering_offeringArn :: Lens.Lens' Offering Prelude.Text+offering_offeringArn = Lens.lens (\Offering' {offeringArn} -> offeringArn) (\s@Offering' {} a -> s {offeringArn = a} :: Offering)++-- | A description of the offering.+offering_offeringDescription :: Lens.Lens' Offering Prelude.Text+offering_offeringDescription = Lens.lens (\Offering' {offeringDescription} -> offeringDescription) (\s@Offering' {} a -> s {offeringDescription = a} :: Offering)++-- | The unit of measurement for the duration of the offering.+offering_durationUnits :: Lens.Lens' Offering DurationUnits+offering_durationUnits = Lens.lens (\Offering' {durationUnits} -> durationUnits) (\s@Offering' {} a -> s {durationUnits = a} :: Offering)++-- | The length of time that your reservation would be active.+offering_duration :: Lens.Lens' Offering Prelude.Int+offering_duration = Lens.lens (\Offering' {duration} -> duration) (\s@Offering' {} a -> s {duration = a} :: Offering)++-- | The cost of a single unit. This value, in combination with priceUnits,+-- makes up the rate.+offering_pricePerUnit :: Lens.Lens' Offering Prelude.Text+offering_pricePerUnit = Lens.lens (\Offering' {pricePerUnit} -> pricePerUnit) (\s@Offering' {} a -> s {pricePerUnit = a} :: Offering)++-- | A definition of the amount of outbound bandwidth that you would be+-- reserving if you purchase the offering.+offering_resourceSpecification :: Lens.Lens' Offering ResourceSpecification+offering_resourceSpecification = Lens.lens (\Offering' {resourceSpecification} -> resourceSpecification) (\s@Offering' {} a -> s {resourceSpecification = a} :: Offering)++-- | The unit of measurement that is used for billing. This value, in+-- combination with pricePerUnit, makes up the rate.+offering_priceUnits :: Lens.Lens' Offering PriceUnits+offering_priceUnits = Lens.lens (\Offering' {priceUnits} -> priceUnits) (\s@Offering' {} a -> s {priceUnits = a} :: Offering)++instance Data.FromJSON Offering where+  parseJSON =+    Data.withObject+      "Offering"+      ( \x ->+          Offering'+            Prelude.<$> (x Data..: "currencyCode")+            Prelude.<*> (x Data..: "offeringArn")+            Prelude.<*> (x Data..: "offeringDescription")+            Prelude.<*> (x Data..: "durationUnits")+            Prelude.<*> (x Data..: "duration")+            Prelude.<*> (x Data..: "pricePerUnit")+            Prelude.<*> (x Data..: "resourceSpecification")+            Prelude.<*> (x Data..: "priceUnits")+      )++instance Prelude.Hashable Offering where+  hashWithSalt _salt Offering' {..} =+    _salt+      `Prelude.hashWithSalt` currencyCode+      `Prelude.hashWithSalt` offeringArn+      `Prelude.hashWithSalt` offeringDescription+      `Prelude.hashWithSalt` durationUnits+      `Prelude.hashWithSalt` duration+      `Prelude.hashWithSalt` pricePerUnit+      `Prelude.hashWithSalt` resourceSpecification+      `Prelude.hashWithSalt` priceUnits++instance Prelude.NFData Offering where+  rnf Offering' {..} =+    Prelude.rnf currencyCode+      `Prelude.seq` Prelude.rnf offeringArn+      `Prelude.seq` Prelude.rnf offeringDescription+      `Prelude.seq` Prelude.rnf durationUnits+      `Prelude.seq` Prelude.rnf duration+      `Prelude.seq` Prelude.rnf pricePerUnit+      `Prelude.seq` Prelude.rnf resourceSpecification+      `Prelude.seq` Prelude.rnf priceUnits
+ gen/Amazonka/MediaConnect/Types/Output.hs view
@@ -0,0 +1,261 @@+{-# 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.MediaConnect.Types.Output+-- 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.MediaConnect.Types.Output where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaConnect.Types.Encryption+import Amazonka.MediaConnect.Types.MediaStreamOutputConfiguration+import Amazonka.MediaConnect.Types.Transport+import Amazonka.MediaConnect.Types.VpcInterfaceAttachment+import qualified Amazonka.Prelude as Prelude++-- | The settings for an output.+--+-- /See:/ 'newOutput' smart constructor.+data Output = Output'+  { -- | Percentage from 0-100 of the data transfer cost to be billed to the+    -- subscriber.+    dataTransferSubscriberFeePercent :: Prelude.Maybe Prelude.Int,+    -- | A description of the output.+    description :: Prelude.Maybe Prelude.Text,+    -- | The address where you want to send the output.+    destination :: Prelude.Maybe Prelude.Text,+    -- | The type of key used for the encryption. If no keyType is provided, the+    -- service will use the default setting (static-key).+    encryption :: Prelude.Maybe Encryption,+    -- | The ARN of the entitlement on the originator\'\'s flow. This value is+    -- relevant only on entitled flows.+    entitlementArn :: Prelude.Maybe Prelude.Text,+    -- | The IP address that the receiver requires in order to establish a+    -- connection with the flow. For public networking, the ListenerAddress is+    -- represented by the elastic IP address of the flow. For private+    -- networking, the ListenerAddress is represented by the elastic network+    -- interface IP address of the VPC. This field applies only to outputs that+    -- use the Zixi pull or SRT listener protocol.+    listenerAddress :: Prelude.Maybe Prelude.Text,+    -- | The input ARN of the AWS Elemental MediaLive channel. This parameter is+    -- relevant only for outputs that were added by creating a MediaLive input.+    mediaLiveInputArn :: Prelude.Maybe Prelude.Text,+    -- | The configuration for each media stream that is associated with the+    -- output.+    mediaStreamOutputConfigurations :: Prelude.Maybe [MediaStreamOutputConfiguration],+    -- | The port to use when content is distributed to this output.+    port :: Prelude.Maybe Prelude.Int,+    -- | Attributes related to the transport stream that are used in the output.+    transport :: Prelude.Maybe Transport,+    -- | The name of the VPC interface attachment to use for this output.+    vpcInterfaceAttachment :: Prelude.Maybe VpcInterfaceAttachment,+    -- | The ARN of the output.+    outputArn :: Prelude.Text,+    -- | The name of the output. This value must be unique within the current+    -- flow.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Output' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dataTransferSubscriberFeePercent', 'output_dataTransferSubscriberFeePercent' - Percentage from 0-100 of the data transfer cost to be billed to the+-- subscriber.+--+-- 'description', 'output_description' - A description of the output.+--+-- 'destination', 'output_destination' - The address where you want to send the output.+--+-- 'encryption', 'output_encryption' - The type of key used for the encryption. If no keyType is provided, the+-- service will use the default setting (static-key).+--+-- 'entitlementArn', 'output_entitlementArn' - The ARN of the entitlement on the originator\'\'s flow. This value is+-- relevant only on entitled flows.+--+-- 'listenerAddress', 'output_listenerAddress' - The IP address that the receiver requires in order to establish a+-- connection with the flow. For public networking, the ListenerAddress is+-- represented by the elastic IP address of the flow. For private+-- networking, the ListenerAddress is represented by the elastic network+-- interface IP address of the VPC. This field applies only to outputs that+-- use the Zixi pull or SRT listener protocol.+--+-- 'mediaLiveInputArn', 'output_mediaLiveInputArn' - The input ARN of the AWS Elemental MediaLive channel. This parameter is+-- relevant only for outputs that were added by creating a MediaLive input.+--+-- 'mediaStreamOutputConfigurations', 'output_mediaStreamOutputConfigurations' - The configuration for each media stream that is associated with the+-- output.+--+-- 'port', 'output_port' - The port to use when content is distributed to this output.+--+-- 'transport', 'output_transport' - Attributes related to the transport stream that are used in the output.+--+-- 'vpcInterfaceAttachment', 'output_vpcInterfaceAttachment' - The name of the VPC interface attachment to use for this output.+--+-- 'outputArn', 'output_outputArn' - The ARN of the output.+--+-- 'name', 'output_name' - The name of the output. This value must be unique within the current+-- flow.+newOutput ::+  -- | 'outputArn'+  Prelude.Text ->+  -- | 'name'+  Prelude.Text ->+  Output+newOutput pOutputArn_ pName_ =+  Output'+    { dataTransferSubscriberFeePercent =+        Prelude.Nothing,+      description = Prelude.Nothing,+      destination = Prelude.Nothing,+      encryption = Prelude.Nothing,+      entitlementArn = Prelude.Nothing,+      listenerAddress = Prelude.Nothing,+      mediaLiveInputArn = Prelude.Nothing,+      mediaStreamOutputConfigurations = Prelude.Nothing,+      port = Prelude.Nothing,+      transport = Prelude.Nothing,+      vpcInterfaceAttachment = Prelude.Nothing,+      outputArn = pOutputArn_,+      name = pName_+    }++-- | Percentage from 0-100 of the data transfer cost to be billed to the+-- subscriber.+output_dataTransferSubscriberFeePercent :: Lens.Lens' Output (Prelude.Maybe Prelude.Int)+output_dataTransferSubscriberFeePercent = Lens.lens (\Output' {dataTransferSubscriberFeePercent} -> dataTransferSubscriberFeePercent) (\s@Output' {} a -> s {dataTransferSubscriberFeePercent = a} :: Output)++-- | A description of the output.+output_description :: Lens.Lens' Output (Prelude.Maybe Prelude.Text)+output_description = Lens.lens (\Output' {description} -> description) (\s@Output' {} a -> s {description = a} :: Output)++-- | The address where you want to send the output.+output_destination :: Lens.Lens' Output (Prelude.Maybe Prelude.Text)+output_destination = Lens.lens (\Output' {destination} -> destination) (\s@Output' {} a -> s {destination = a} :: Output)++-- | The type of key used for the encryption. If no keyType is provided, the+-- service will use the default setting (static-key).+output_encryption :: Lens.Lens' Output (Prelude.Maybe Encryption)+output_encryption = Lens.lens (\Output' {encryption} -> encryption) (\s@Output' {} a -> s {encryption = a} :: Output)++-- | The ARN of the entitlement on the originator\'\'s flow. This value is+-- relevant only on entitled flows.+output_entitlementArn :: Lens.Lens' Output (Prelude.Maybe Prelude.Text)+output_entitlementArn = Lens.lens (\Output' {entitlementArn} -> entitlementArn) (\s@Output' {} a -> s {entitlementArn = a} :: Output)++-- | The IP address that the receiver requires in order to establish a+-- connection with the flow. For public networking, the ListenerAddress is+-- represented by the elastic IP address of the flow. For private+-- networking, the ListenerAddress is represented by the elastic network+-- interface IP address of the VPC. This field applies only to outputs that+-- use the Zixi pull or SRT listener protocol.+output_listenerAddress :: Lens.Lens' Output (Prelude.Maybe Prelude.Text)+output_listenerAddress = Lens.lens (\Output' {listenerAddress} -> listenerAddress) (\s@Output' {} a -> s {listenerAddress = a} :: Output)++-- | The input ARN of the AWS Elemental MediaLive channel. This parameter is+-- relevant only for outputs that were added by creating a MediaLive input.+output_mediaLiveInputArn :: Lens.Lens' Output (Prelude.Maybe Prelude.Text)+output_mediaLiveInputArn = Lens.lens (\Output' {mediaLiveInputArn} -> mediaLiveInputArn) (\s@Output' {} a -> s {mediaLiveInputArn = a} :: Output)++-- | The configuration for each media stream that is associated with the+-- output.+output_mediaStreamOutputConfigurations :: Lens.Lens' Output (Prelude.Maybe [MediaStreamOutputConfiguration])+output_mediaStreamOutputConfigurations = Lens.lens (\Output' {mediaStreamOutputConfigurations} -> mediaStreamOutputConfigurations) (\s@Output' {} a -> s {mediaStreamOutputConfigurations = a} :: Output) Prelude.. Lens.mapping Lens.coerced++-- | The port to use when content is distributed to this output.+output_port :: Lens.Lens' Output (Prelude.Maybe Prelude.Int)+output_port = Lens.lens (\Output' {port} -> port) (\s@Output' {} a -> s {port = a} :: Output)++-- | Attributes related to the transport stream that are used in the output.+output_transport :: Lens.Lens' Output (Prelude.Maybe Transport)+output_transport = Lens.lens (\Output' {transport} -> transport) (\s@Output' {} a -> s {transport = a} :: Output)++-- | The name of the VPC interface attachment to use for this output.+output_vpcInterfaceAttachment :: Lens.Lens' Output (Prelude.Maybe VpcInterfaceAttachment)+output_vpcInterfaceAttachment = Lens.lens (\Output' {vpcInterfaceAttachment} -> vpcInterfaceAttachment) (\s@Output' {} a -> s {vpcInterfaceAttachment = a} :: Output)++-- | The ARN of the output.+output_outputArn :: Lens.Lens' Output Prelude.Text+output_outputArn = Lens.lens (\Output' {outputArn} -> outputArn) (\s@Output' {} a -> s {outputArn = a} :: Output)++-- | The name of the output. This value must be unique within the current+-- flow.+output_name :: Lens.Lens' Output Prelude.Text+output_name = Lens.lens (\Output' {name} -> name) (\s@Output' {} a -> s {name = a} :: Output)++instance Data.FromJSON Output where+  parseJSON =+    Data.withObject+      "Output"+      ( \x ->+          Output'+            Prelude.<$> (x Data..:? "dataTransferSubscriberFeePercent")+            Prelude.<*> (x Data..:? "description")+            Prelude.<*> (x Data..:? "destination")+            Prelude.<*> (x Data..:? "encryption")+            Prelude.<*> (x Data..:? "entitlementArn")+            Prelude.<*> (x Data..:? "listenerAddress")+            Prelude.<*> (x Data..:? "mediaLiveInputArn")+            Prelude.<*> ( x+                            Data..:? "mediaStreamOutputConfigurations"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "port")+            Prelude.<*> (x Data..:? "transport")+            Prelude.<*> (x Data..:? "vpcInterfaceAttachment")+            Prelude.<*> (x Data..: "outputArn")+            Prelude.<*> (x Data..: "name")+      )++instance Prelude.Hashable Output where+  hashWithSalt _salt Output' {..} =+    _salt+      `Prelude.hashWithSalt` dataTransferSubscriberFeePercent+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` destination+      `Prelude.hashWithSalt` encryption+      `Prelude.hashWithSalt` entitlementArn+      `Prelude.hashWithSalt` listenerAddress+      `Prelude.hashWithSalt` mediaLiveInputArn+      `Prelude.hashWithSalt` mediaStreamOutputConfigurations+      `Prelude.hashWithSalt` port+      `Prelude.hashWithSalt` transport+      `Prelude.hashWithSalt` vpcInterfaceAttachment+      `Prelude.hashWithSalt` outputArn+      `Prelude.hashWithSalt` name++instance Prelude.NFData Output where+  rnf Output' {..} =+    Prelude.rnf dataTransferSubscriberFeePercent+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf destination+      `Prelude.seq` Prelude.rnf encryption+      `Prelude.seq` Prelude.rnf entitlementArn+      `Prelude.seq` Prelude.rnf listenerAddress+      `Prelude.seq` Prelude.rnf mediaLiveInputArn+      `Prelude.seq` Prelude.rnf mediaStreamOutputConfigurations+      `Prelude.seq` Prelude.rnf port+      `Prelude.seq` Prelude.rnf transport+      `Prelude.seq` Prelude.rnf vpcInterfaceAttachment+      `Prelude.seq` Prelude.rnf outputArn+      `Prelude.seq` Prelude.rnf name
+ gen/Amazonka/MediaConnect/Types/PriceUnits.hs view
@@ -0,0 +1,66 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaConnect.Types.PriceUnits+-- 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.MediaConnect.Types.PriceUnits+  ( PriceUnits+      ( ..,+        PriceUnits_HOURLY+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype PriceUnits = PriceUnits'+  { fromPriceUnits ::+      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 PriceUnits_HOURLY :: PriceUnits+pattern PriceUnits_HOURLY = PriceUnits' "HOURLY"++{-# COMPLETE+  PriceUnits_HOURLY,+  PriceUnits'+  #-}
+ gen/Amazonka/MediaConnect/Types/Protocol.hs view
@@ -0,0 +1,111 @@+{-# 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.MediaConnect.Types.Protocol+-- 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.MediaConnect.Types.Protocol+  ( Protocol+      ( ..,+        Protocol_Cdi,+        Protocol_Fujitsu_qos,+        Protocol_Rist,+        Protocol_Rtp,+        Protocol_Rtp_fec,+        Protocol_Srt_caller,+        Protocol_Srt_listener,+        Protocol_St2110_jpegxs,+        Protocol_Zixi_pull,+        Protocol_Zixi_push+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype Protocol = Protocol'+  { fromProtocol ::+      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 Protocol_Cdi :: Protocol+pattern Protocol_Cdi = Protocol' "cdi"++pattern Protocol_Fujitsu_qos :: Protocol+pattern Protocol_Fujitsu_qos = Protocol' "fujitsu-qos"++pattern Protocol_Rist :: Protocol+pattern Protocol_Rist = Protocol' "rist"++pattern Protocol_Rtp :: Protocol+pattern Protocol_Rtp = Protocol' "rtp"++pattern Protocol_Rtp_fec :: Protocol+pattern Protocol_Rtp_fec = Protocol' "rtp-fec"++pattern Protocol_Srt_caller :: Protocol+pattern Protocol_Srt_caller = Protocol' "srt-caller"++pattern Protocol_Srt_listener :: Protocol+pattern Protocol_Srt_listener = Protocol' "srt-listener"++pattern Protocol_St2110_jpegxs :: Protocol+pattern Protocol_St2110_jpegxs = Protocol' "st2110-jpegxs"++pattern Protocol_Zixi_pull :: Protocol+pattern Protocol_Zixi_pull = Protocol' "zixi-pull"++pattern Protocol_Zixi_push :: Protocol+pattern Protocol_Zixi_push = Protocol' "zixi-push"++{-# COMPLETE+  Protocol_Cdi,+  Protocol_Fujitsu_qos,+  Protocol_Rist,+  Protocol_Rtp,+  Protocol_Rtp_fec,+  Protocol_Srt_caller,+  Protocol_Srt_listener,+  Protocol_St2110_jpegxs,+  Protocol_Zixi_pull,+  Protocol_Zixi_push,+  Protocol'+  #-}
+ gen/Amazonka/MediaConnect/Types/Range.hs view
@@ -0,0 +1,73 @@+{-# 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.MediaConnect.Types.Range+-- 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.MediaConnect.Types.Range+  ( Range+      ( ..,+        Range_FULL,+        Range_FULLPROTECT,+        Range_NARROW+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype Range = Range' {fromRange :: 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 Range_FULL :: Range+pattern Range_FULL = Range' "FULL"++pattern Range_FULLPROTECT :: Range+pattern Range_FULLPROTECT = Range' "FULLPROTECT"++pattern Range_NARROW :: Range+pattern Range_NARROW = Range' "NARROW"++{-# COMPLETE+  Range_FULL,+  Range_FULLPROTECT,+  Range_NARROW,+  Range'+  #-}
+ gen/Amazonka/MediaConnect/Types/Reservation.hs view
@@ -0,0 +1,310 @@+{-# 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.MediaConnect.Types.Reservation+-- 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.MediaConnect.Types.Reservation where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaConnect.Types.DurationUnits+import Amazonka.MediaConnect.Types.PriceUnits+import Amazonka.MediaConnect.Types.ReservationState+import Amazonka.MediaConnect.Types.ResourceSpecification+import qualified Amazonka.Prelude as Prelude++-- | A pricing agreement for a discounted rate for a specific outbound+-- bandwidth that your MediaConnect account will use each month over a+-- specific time period. The discounted rate in the reservation applies to+-- outbound bandwidth for all flows from your account until your account+-- reaches the amount of bandwidth in your reservation. If you use more+-- outbound bandwidth than the agreed upon amount in a single month, the+-- overage is charged at the on-demand rate.+--+-- /See:/ 'newReservation' smart constructor.+data Reservation = Reservation'+  { -- | The type of currency that is used for billing. The currencyCode used for+    -- your reservation is US dollars.+    currencyCode :: Prelude.Text,+    -- | The status of your reservation.+    reservationState :: ReservationState,+    -- | The Amazon Resource Name (ARN) that MediaConnect assigns to the+    -- offering.+    offeringArn :: Prelude.Text,+    -- | The Amazon Resource Name (ARN) that MediaConnect assigns to the+    -- reservation when you purchase an offering.+    reservationArn :: Prelude.Text,+    -- | The day and time that the reservation becomes active. You set this value+    -- when you purchase the offering.+    start :: Prelude.Text,+    -- | A description of the offering. MediaConnect defines this value in the+    -- offering.+    offeringDescription :: Prelude.Text,+    -- | The name that you assigned to the reservation when you purchased the+    -- offering.+    reservationName :: Prelude.Text,+    -- | The day and time that this reservation expires. This value is calculated+    -- based on the start date and time that you set and the offering\'s+    -- duration.+    end :: Prelude.Text,+    -- | The length of time that this reservation is active. MediaConnect defines+    -- this value in the offering.+    duration :: Prelude.Int,+    -- | The unit of measurement for the duration of the reservation.+    -- MediaConnect defines this value in the offering.+    durationUnits :: DurationUnits,+    -- | The cost of a single unit. This value, in combination with priceUnits,+    -- makes up the rate. MediaConnect defines this value in the offering.+    pricePerUnit :: Prelude.Text,+    -- | A definition of the amount of outbound bandwidth that you would be+    -- reserving if you purchase the offering. MediaConnect defines the values+    -- that make up the resourceSpecification in the offering.+    resourceSpecification :: ResourceSpecification,+    -- | The unit of measurement that is used for billing. This value, in+    -- combination with pricePerUnit, makes up the rate. MediaConnect defines+    -- this value in the offering.+    priceUnits :: PriceUnits+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Reservation' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'currencyCode', 'reservation_currencyCode' - The type of currency that is used for billing. The currencyCode used for+-- your reservation is US dollars.+--+-- 'reservationState', 'reservation_reservationState' - The status of your reservation.+--+-- 'offeringArn', 'reservation_offeringArn' - The Amazon Resource Name (ARN) that MediaConnect assigns to the+-- offering.+--+-- 'reservationArn', 'reservation_reservationArn' - The Amazon Resource Name (ARN) that MediaConnect assigns to the+-- reservation when you purchase an offering.+--+-- 'start', 'reservation_start' - The day and time that the reservation becomes active. You set this value+-- when you purchase the offering.+--+-- 'offeringDescription', 'reservation_offeringDescription' - A description of the offering. MediaConnect defines this value in the+-- offering.+--+-- 'reservationName', 'reservation_reservationName' - The name that you assigned to the reservation when you purchased the+-- offering.+--+-- 'end', 'reservation_end' - The day and time that this reservation expires. This value is calculated+-- based on the start date and time that you set and the offering\'s+-- duration.+--+-- 'duration', 'reservation_duration' - The length of time that this reservation is active. MediaConnect defines+-- this value in the offering.+--+-- 'durationUnits', 'reservation_durationUnits' - The unit of measurement for the duration of the reservation.+-- MediaConnect defines this value in the offering.+--+-- 'pricePerUnit', 'reservation_pricePerUnit' - The cost of a single unit. This value, in combination with priceUnits,+-- makes up the rate. MediaConnect defines this value in the offering.+--+-- 'resourceSpecification', 'reservation_resourceSpecification' - A definition of the amount of outbound bandwidth that you would be+-- reserving if you purchase the offering. MediaConnect defines the values+-- that make up the resourceSpecification in the offering.+--+-- 'priceUnits', 'reservation_priceUnits' - The unit of measurement that is used for billing. This value, in+-- combination with pricePerUnit, makes up the rate. MediaConnect defines+-- this value in the offering.+newReservation ::+  -- | 'currencyCode'+  Prelude.Text ->+  -- | 'reservationState'+  ReservationState ->+  -- | 'offeringArn'+  Prelude.Text ->+  -- | 'reservationArn'+  Prelude.Text ->+  -- | 'start'+  Prelude.Text ->+  -- | 'offeringDescription'+  Prelude.Text ->+  -- | 'reservationName'+  Prelude.Text ->+  -- | 'end'+  Prelude.Text ->+  -- | 'duration'+  Prelude.Int ->+  -- | 'durationUnits'+  DurationUnits ->+  -- | 'pricePerUnit'+  Prelude.Text ->+  -- | 'resourceSpecification'+  ResourceSpecification ->+  -- | 'priceUnits'+  PriceUnits ->+  Reservation+newReservation+  pCurrencyCode_+  pReservationState_+  pOfferingArn_+  pReservationArn_+  pStart_+  pOfferingDescription_+  pReservationName_+  pEnd_+  pDuration_+  pDurationUnits_+  pPricePerUnit_+  pResourceSpecification_+  pPriceUnits_ =+    Reservation'+      { currencyCode = pCurrencyCode_,+        reservationState = pReservationState_,+        offeringArn = pOfferingArn_,+        reservationArn = pReservationArn_,+        start = pStart_,+        offeringDescription = pOfferingDescription_,+        reservationName = pReservationName_,+        end = pEnd_,+        duration = pDuration_,+        durationUnits = pDurationUnits_,+        pricePerUnit = pPricePerUnit_,+        resourceSpecification = pResourceSpecification_,+        priceUnits = pPriceUnits_+      }++-- | The type of currency that is used for billing. The currencyCode used for+-- your reservation is US dollars.+reservation_currencyCode :: Lens.Lens' Reservation Prelude.Text+reservation_currencyCode = Lens.lens (\Reservation' {currencyCode} -> currencyCode) (\s@Reservation' {} a -> s {currencyCode = a} :: Reservation)++-- | The status of your reservation.+reservation_reservationState :: Lens.Lens' Reservation ReservationState+reservation_reservationState = Lens.lens (\Reservation' {reservationState} -> reservationState) (\s@Reservation' {} a -> s {reservationState = a} :: Reservation)++-- | The Amazon Resource Name (ARN) that MediaConnect assigns to the+-- offering.+reservation_offeringArn :: Lens.Lens' Reservation Prelude.Text+reservation_offeringArn = Lens.lens (\Reservation' {offeringArn} -> offeringArn) (\s@Reservation' {} a -> s {offeringArn = a} :: Reservation)++-- | The Amazon Resource Name (ARN) that MediaConnect assigns to the+-- reservation when you purchase an offering.+reservation_reservationArn :: Lens.Lens' Reservation Prelude.Text+reservation_reservationArn = Lens.lens (\Reservation' {reservationArn} -> reservationArn) (\s@Reservation' {} a -> s {reservationArn = a} :: Reservation)++-- | The day and time that the reservation becomes active. You set this value+-- when you purchase the offering.+reservation_start :: Lens.Lens' Reservation Prelude.Text+reservation_start = Lens.lens (\Reservation' {start} -> start) (\s@Reservation' {} a -> s {start = a} :: Reservation)++-- | A description of the offering. MediaConnect defines this value in the+-- offering.+reservation_offeringDescription :: Lens.Lens' Reservation Prelude.Text+reservation_offeringDescription = Lens.lens (\Reservation' {offeringDescription} -> offeringDescription) (\s@Reservation' {} a -> s {offeringDescription = a} :: Reservation)++-- | The name that you assigned to the reservation when you purchased the+-- offering.+reservation_reservationName :: Lens.Lens' Reservation Prelude.Text+reservation_reservationName = Lens.lens (\Reservation' {reservationName} -> reservationName) (\s@Reservation' {} a -> s {reservationName = a} :: Reservation)++-- | The day and time that this reservation expires. This value is calculated+-- based on the start date and time that you set and the offering\'s+-- duration.+reservation_end :: Lens.Lens' Reservation Prelude.Text+reservation_end = Lens.lens (\Reservation' {end} -> end) (\s@Reservation' {} a -> s {end = a} :: Reservation)++-- | The length of time that this reservation is active. MediaConnect defines+-- this value in the offering.+reservation_duration :: Lens.Lens' Reservation Prelude.Int+reservation_duration = Lens.lens (\Reservation' {duration} -> duration) (\s@Reservation' {} a -> s {duration = a} :: Reservation)++-- | The unit of measurement for the duration of the reservation.+-- MediaConnect defines this value in the offering.+reservation_durationUnits :: Lens.Lens' Reservation DurationUnits+reservation_durationUnits = Lens.lens (\Reservation' {durationUnits} -> durationUnits) (\s@Reservation' {} a -> s {durationUnits = a} :: Reservation)++-- | The cost of a single unit. This value, in combination with priceUnits,+-- makes up the rate. MediaConnect defines this value in the offering.+reservation_pricePerUnit :: Lens.Lens' Reservation Prelude.Text+reservation_pricePerUnit = Lens.lens (\Reservation' {pricePerUnit} -> pricePerUnit) (\s@Reservation' {} a -> s {pricePerUnit = a} :: Reservation)++-- | A definition of the amount of outbound bandwidth that you would be+-- reserving if you purchase the offering. MediaConnect defines the values+-- that make up the resourceSpecification in the offering.+reservation_resourceSpecification :: Lens.Lens' Reservation ResourceSpecification+reservation_resourceSpecification = Lens.lens (\Reservation' {resourceSpecification} -> resourceSpecification) (\s@Reservation' {} a -> s {resourceSpecification = a} :: Reservation)++-- | The unit of measurement that is used for billing. This value, in+-- combination with pricePerUnit, makes up the rate. MediaConnect defines+-- this value in the offering.+reservation_priceUnits :: Lens.Lens' Reservation PriceUnits+reservation_priceUnits = Lens.lens (\Reservation' {priceUnits} -> priceUnits) (\s@Reservation' {} a -> s {priceUnits = a} :: Reservation)++instance Data.FromJSON Reservation where+  parseJSON =+    Data.withObject+      "Reservation"+      ( \x ->+          Reservation'+            Prelude.<$> (x Data..: "currencyCode")+            Prelude.<*> (x Data..: "reservationState")+            Prelude.<*> (x Data..: "offeringArn")+            Prelude.<*> (x Data..: "reservationArn")+            Prelude.<*> (x Data..: "start")+            Prelude.<*> (x Data..: "offeringDescription")+            Prelude.<*> (x Data..: "reservationName")+            Prelude.<*> (x Data..: "end")+            Prelude.<*> (x Data..: "duration")+            Prelude.<*> (x Data..: "durationUnits")+            Prelude.<*> (x Data..: "pricePerUnit")+            Prelude.<*> (x Data..: "resourceSpecification")+            Prelude.<*> (x Data..: "priceUnits")+      )++instance Prelude.Hashable Reservation where+  hashWithSalt _salt Reservation' {..} =+    _salt+      `Prelude.hashWithSalt` currencyCode+      `Prelude.hashWithSalt` reservationState+      `Prelude.hashWithSalt` offeringArn+      `Prelude.hashWithSalt` reservationArn+      `Prelude.hashWithSalt` start+      `Prelude.hashWithSalt` offeringDescription+      `Prelude.hashWithSalt` reservationName+      `Prelude.hashWithSalt` end+      `Prelude.hashWithSalt` duration+      `Prelude.hashWithSalt` durationUnits+      `Prelude.hashWithSalt` pricePerUnit+      `Prelude.hashWithSalt` resourceSpecification+      `Prelude.hashWithSalt` priceUnits++instance Prelude.NFData Reservation where+  rnf Reservation' {..} =+    Prelude.rnf currencyCode+      `Prelude.seq` Prelude.rnf reservationState+      `Prelude.seq` Prelude.rnf offeringArn+      `Prelude.seq` Prelude.rnf reservationArn+      `Prelude.seq` Prelude.rnf start+      `Prelude.seq` Prelude.rnf offeringDescription+      `Prelude.seq` Prelude.rnf reservationName+      `Prelude.seq` Prelude.rnf end+      `Prelude.seq` Prelude.rnf duration+      `Prelude.seq` Prelude.rnf durationUnits+      `Prelude.seq` Prelude.rnf pricePerUnit+      `Prelude.seq` Prelude.rnf resourceSpecification+      `Prelude.seq` Prelude.rnf priceUnits
+ gen/Amazonka/MediaConnect/Types/ReservationState.hs view
@@ -0,0 +1,81 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaConnect.Types.ReservationState+-- 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.MediaConnect.Types.ReservationState+  ( ReservationState+      ( ..,+        ReservationState_ACTIVE,+        ReservationState_CANCELED,+        ReservationState_EXPIRED,+        ReservationState_PROCESSING+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ReservationState = ReservationState'+  { fromReservationState ::+      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 ReservationState_ACTIVE :: ReservationState+pattern ReservationState_ACTIVE = ReservationState' "ACTIVE"++pattern ReservationState_CANCELED :: ReservationState+pattern ReservationState_CANCELED = ReservationState' "CANCELED"++pattern ReservationState_EXPIRED :: ReservationState+pattern ReservationState_EXPIRED = ReservationState' "EXPIRED"++pattern ReservationState_PROCESSING :: ReservationState+pattern ReservationState_PROCESSING = ReservationState' "PROCESSING"++{-# COMPLETE+  ReservationState_ACTIVE,+  ReservationState_CANCELED,+  ReservationState_EXPIRED,+  ReservationState_PROCESSING,+  ReservationState'+  #-}
+ gen/Amazonka/MediaConnect/Types/ResourceSpecification.hs view
@@ -0,0 +1,88 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaConnect.Types.ResourceSpecification+-- 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.MediaConnect.Types.ResourceSpecification where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaConnect.Types.ResourceType+import qualified Amazonka.Prelude as Prelude++-- | A definition of what is being billed for, including the type and amount.+--+-- /See:/ 'newResourceSpecification' smart constructor.+data ResourceSpecification = ResourceSpecification'+  { -- | The amount of outbound bandwidth that is discounted in the offering.+    reservedBitrate :: Prelude.Maybe Prelude.Int,+    -- | The type of resource and the unit that is being billed for.+    resourceType :: ResourceType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ResourceSpecification' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'reservedBitrate', 'resourceSpecification_reservedBitrate' - The amount of outbound bandwidth that is discounted in the offering.+--+-- 'resourceType', 'resourceSpecification_resourceType' - The type of resource and the unit that is being billed for.+newResourceSpecification ::+  -- | 'resourceType'+  ResourceType ->+  ResourceSpecification+newResourceSpecification pResourceType_ =+  ResourceSpecification'+    { reservedBitrate =+        Prelude.Nothing,+      resourceType = pResourceType_+    }++-- | The amount of outbound bandwidth that is discounted in the offering.+resourceSpecification_reservedBitrate :: Lens.Lens' ResourceSpecification (Prelude.Maybe Prelude.Int)+resourceSpecification_reservedBitrate = Lens.lens (\ResourceSpecification' {reservedBitrate} -> reservedBitrate) (\s@ResourceSpecification' {} a -> s {reservedBitrate = a} :: ResourceSpecification)++-- | The type of resource and the unit that is being billed for.+resourceSpecification_resourceType :: Lens.Lens' ResourceSpecification ResourceType+resourceSpecification_resourceType = Lens.lens (\ResourceSpecification' {resourceType} -> resourceType) (\s@ResourceSpecification' {} a -> s {resourceType = a} :: ResourceSpecification)++instance Data.FromJSON ResourceSpecification where+  parseJSON =+    Data.withObject+      "ResourceSpecification"+      ( \x ->+          ResourceSpecification'+            Prelude.<$> (x Data..:? "reservedBitrate")+            Prelude.<*> (x Data..: "resourceType")+      )++instance Prelude.Hashable ResourceSpecification where+  hashWithSalt _salt ResourceSpecification' {..} =+    _salt+      `Prelude.hashWithSalt` reservedBitrate+      `Prelude.hashWithSalt` resourceType++instance Prelude.NFData ResourceSpecification where+  rnf ResourceSpecification' {..} =+    Prelude.rnf reservedBitrate+      `Prelude.seq` Prelude.rnf resourceType
+ gen/Amazonka/MediaConnect/Types/ResourceType.hs view
@@ -0,0 +1,66 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaConnect.Types.ResourceType+-- 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.MediaConnect.Types.ResourceType+  ( ResourceType+      ( ..,+        ResourceType_Mbps_Outbound_Bandwidth+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ResourceType = ResourceType'+  { fromResourceType ::+      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 ResourceType_Mbps_Outbound_Bandwidth :: ResourceType+pattern ResourceType_Mbps_Outbound_Bandwidth = ResourceType' "Mbps_Outbound_Bandwidth"++{-# COMPLETE+  ResourceType_Mbps_Outbound_Bandwidth,+  ResourceType'+  #-}
+ gen/Amazonka/MediaConnect/Types/ScanMode.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.MediaConnect.Types.ScanMode+-- 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.MediaConnect.Types.ScanMode+  ( ScanMode+      ( ..,+        ScanMode_Interlace,+        ScanMode_Progressive,+        ScanMode_Progressive_segmented_frame+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ScanMode = ScanMode'+  { fromScanMode ::+      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 ScanMode_Interlace :: ScanMode+pattern ScanMode_Interlace = ScanMode' "interlace"++pattern ScanMode_Progressive :: ScanMode+pattern ScanMode_Progressive = ScanMode' "progressive"++pattern ScanMode_Progressive_segmented_frame :: ScanMode+pattern ScanMode_Progressive_segmented_frame = ScanMode' "progressive-segmented-frame"++{-# COMPLETE+  ScanMode_Interlace,+  ScanMode_Progressive,+  ScanMode_Progressive_segmented_frame,+  ScanMode'+  #-}
+ gen/Amazonka/MediaConnect/Types/SetSourceRequest.hs view
@@ -0,0 +1,333 @@+{-# 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.MediaConnect.Types.SetSourceRequest+-- 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.MediaConnect.Types.SetSourceRequest where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaConnect.Types.Encryption+import Amazonka.MediaConnect.Types.MediaStreamSourceConfigurationRequest+import Amazonka.MediaConnect.Types.Protocol+import qualified Amazonka.Prelude as Prelude++-- | The settings for the source of the flow.+--+-- /See:/ 'newSetSourceRequest' smart constructor.+data SetSourceRequest = SetSourceRequest'+  { -- | The type of encryption that is used on the content ingested from this+    -- source.+    decryption :: Prelude.Maybe Encryption,+    -- | A description for the source. This value is not used or seen outside of+    -- the current AWS Elemental MediaConnect account.+    description :: Prelude.Maybe Prelude.Text,+    -- | The ARN of the entitlement that allows you to subscribe to this flow.+    -- The entitlement is set by the flow originator, and the ARN is generated+    -- as part of the originator\'s flow.+    entitlementArn :: Prelude.Maybe Prelude.Text,+    -- | The port that the flow will be listening on for incoming content.+    ingestPort :: Prelude.Maybe Prelude.Int,+    -- | The smoothing max bitrate for RIST, RTP, and RTP-FEC streams.+    maxBitrate :: Prelude.Maybe Prelude.Int,+    -- | The maximum latency in milliseconds. This parameter applies only to+    -- RIST-based, Zixi-based, and Fujitsu-based streams.+    maxLatency :: Prelude.Maybe Prelude.Int,+    -- | The size of the buffer (in milliseconds) to use to sync incoming source+    -- data.+    maxSyncBuffer :: Prelude.Maybe Prelude.Int,+    -- | The media streams that are associated with the source, and the+    -- parameters for those associations.+    mediaStreamSourceConfigurations :: Prelude.Maybe [MediaStreamSourceConfigurationRequest],+    -- | The minimum latency in milliseconds for SRT-based streams. In streams+    -- that use the SRT protocol, this value that you set on your MediaConnect+    -- source or output represents the minimal potential latency of that+    -- connection. The latency of the stream is set to the highest number+    -- between the sender’s minimum latency and the receiver’s minimum latency.+    minLatency :: Prelude.Maybe Prelude.Int,+    -- | The name of the source.+    name :: Prelude.Maybe Prelude.Text,+    -- | The protocol that is used by the source.+    protocol :: Prelude.Maybe Protocol,+    -- | The port that the flow uses to send outbound requests to initiate+    -- connection with the sender.+    senderControlPort :: Prelude.Maybe Prelude.Int,+    -- | The IP address that the flow communicates with to initiate connection+    -- with the sender.+    senderIpAddress :: Prelude.Maybe Prelude.Text,+    -- | Source IP or domain name for SRT-caller protocol.+    sourceListenerAddress :: Prelude.Maybe Prelude.Text,+    -- | Source port for SRT-caller protocol.+    sourceListenerPort :: Prelude.Maybe Prelude.Int,+    -- | The stream ID that you want to use for this transport. This parameter+    -- applies only to Zixi-based streams.+    streamId :: Prelude.Maybe Prelude.Text,+    -- | The name of the VPC interface to use for this source.+    vpcInterfaceName :: Prelude.Maybe Prelude.Text,+    -- | The range of IP addresses that should be allowed to contribute content+    -- to your source. These IP addresses should be in the form of a Classless+    -- Inter-Domain Routing (CIDR) block; for example, 10.0.0.0\/16.+    whitelistCidr :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SetSourceRequest' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'decryption', 'setSourceRequest_decryption' - The type of encryption that is used on the content ingested from this+-- source.+--+-- 'description', 'setSourceRequest_description' - A description for the source. This value is not used or seen outside of+-- the current AWS Elemental MediaConnect account.+--+-- 'entitlementArn', 'setSourceRequest_entitlementArn' - The ARN of the entitlement that allows you to subscribe to this flow.+-- The entitlement is set by the flow originator, and the ARN is generated+-- as part of the originator\'s flow.+--+-- 'ingestPort', 'setSourceRequest_ingestPort' - The port that the flow will be listening on for incoming content.+--+-- 'maxBitrate', 'setSourceRequest_maxBitrate' - The smoothing max bitrate for RIST, RTP, and RTP-FEC streams.+--+-- 'maxLatency', 'setSourceRequest_maxLatency' - The maximum latency in milliseconds. This parameter applies only to+-- RIST-based, Zixi-based, and Fujitsu-based streams.+--+-- 'maxSyncBuffer', 'setSourceRequest_maxSyncBuffer' - The size of the buffer (in milliseconds) to use to sync incoming source+-- data.+--+-- 'mediaStreamSourceConfigurations', 'setSourceRequest_mediaStreamSourceConfigurations' - The media streams that are associated with the source, and the+-- parameters for those associations.+--+-- 'minLatency', 'setSourceRequest_minLatency' - The minimum latency in milliseconds for SRT-based streams. In streams+-- that use the SRT protocol, this value that you set on your MediaConnect+-- source or output represents the minimal potential latency of that+-- connection. The latency of the stream is set to the highest number+-- between the sender’s minimum latency and the receiver’s minimum latency.+--+-- 'name', 'setSourceRequest_name' - The name of the source.+--+-- 'protocol', 'setSourceRequest_protocol' - The protocol that is used by the source.+--+-- 'senderControlPort', 'setSourceRequest_senderControlPort' - The port that the flow uses to send outbound requests to initiate+-- connection with the sender.+--+-- 'senderIpAddress', 'setSourceRequest_senderIpAddress' - The IP address that the flow communicates with to initiate connection+-- with the sender.+--+-- 'sourceListenerAddress', 'setSourceRequest_sourceListenerAddress' - Source IP or domain name for SRT-caller protocol.+--+-- 'sourceListenerPort', 'setSourceRequest_sourceListenerPort' - Source port for SRT-caller protocol.+--+-- 'streamId', 'setSourceRequest_streamId' - The stream ID that you want to use for this transport. This parameter+-- applies only to Zixi-based streams.+--+-- 'vpcInterfaceName', 'setSourceRequest_vpcInterfaceName' - The name of the VPC interface to use for this source.+--+-- 'whitelistCidr', 'setSourceRequest_whitelistCidr' - The range of IP addresses that should be allowed to contribute content+-- to your source. These IP addresses should be in the form of a Classless+-- Inter-Domain Routing (CIDR) block; for example, 10.0.0.0\/16.+newSetSourceRequest ::+  SetSourceRequest+newSetSourceRequest =+  SetSourceRequest'+    { decryption = Prelude.Nothing,+      description = Prelude.Nothing,+      entitlementArn = Prelude.Nothing,+      ingestPort = Prelude.Nothing,+      maxBitrate = Prelude.Nothing,+      maxLatency = Prelude.Nothing,+      maxSyncBuffer = Prelude.Nothing,+      mediaStreamSourceConfigurations = Prelude.Nothing,+      minLatency = Prelude.Nothing,+      name = Prelude.Nothing,+      protocol = Prelude.Nothing,+      senderControlPort = Prelude.Nothing,+      senderIpAddress = Prelude.Nothing,+      sourceListenerAddress = Prelude.Nothing,+      sourceListenerPort = Prelude.Nothing,+      streamId = Prelude.Nothing,+      vpcInterfaceName = Prelude.Nothing,+      whitelistCidr = Prelude.Nothing+    }++-- | The type of encryption that is used on the content ingested from this+-- source.+setSourceRequest_decryption :: Lens.Lens' SetSourceRequest (Prelude.Maybe Encryption)+setSourceRequest_decryption = Lens.lens (\SetSourceRequest' {decryption} -> decryption) (\s@SetSourceRequest' {} a -> s {decryption = a} :: SetSourceRequest)++-- | A description for the source. This value is not used or seen outside of+-- the current AWS Elemental MediaConnect account.+setSourceRequest_description :: Lens.Lens' SetSourceRequest (Prelude.Maybe Prelude.Text)+setSourceRequest_description = Lens.lens (\SetSourceRequest' {description} -> description) (\s@SetSourceRequest' {} a -> s {description = a} :: SetSourceRequest)++-- | The ARN of the entitlement that allows you to subscribe to this flow.+-- The entitlement is set by the flow originator, and the ARN is generated+-- as part of the originator\'s flow.+setSourceRequest_entitlementArn :: Lens.Lens' SetSourceRequest (Prelude.Maybe Prelude.Text)+setSourceRequest_entitlementArn = Lens.lens (\SetSourceRequest' {entitlementArn} -> entitlementArn) (\s@SetSourceRequest' {} a -> s {entitlementArn = a} :: SetSourceRequest)++-- | The port that the flow will be listening on for incoming content.+setSourceRequest_ingestPort :: Lens.Lens' SetSourceRequest (Prelude.Maybe Prelude.Int)+setSourceRequest_ingestPort = Lens.lens (\SetSourceRequest' {ingestPort} -> ingestPort) (\s@SetSourceRequest' {} a -> s {ingestPort = a} :: SetSourceRequest)++-- | The smoothing max bitrate for RIST, RTP, and RTP-FEC streams.+setSourceRequest_maxBitrate :: Lens.Lens' SetSourceRequest (Prelude.Maybe Prelude.Int)+setSourceRequest_maxBitrate = Lens.lens (\SetSourceRequest' {maxBitrate} -> maxBitrate) (\s@SetSourceRequest' {} a -> s {maxBitrate = a} :: SetSourceRequest)++-- | The maximum latency in milliseconds. This parameter applies only to+-- RIST-based, Zixi-based, and Fujitsu-based streams.+setSourceRequest_maxLatency :: Lens.Lens' SetSourceRequest (Prelude.Maybe Prelude.Int)+setSourceRequest_maxLatency = Lens.lens (\SetSourceRequest' {maxLatency} -> maxLatency) (\s@SetSourceRequest' {} a -> s {maxLatency = a} :: SetSourceRequest)++-- | The size of the buffer (in milliseconds) to use to sync incoming source+-- data.+setSourceRequest_maxSyncBuffer :: Lens.Lens' SetSourceRequest (Prelude.Maybe Prelude.Int)+setSourceRequest_maxSyncBuffer = Lens.lens (\SetSourceRequest' {maxSyncBuffer} -> maxSyncBuffer) (\s@SetSourceRequest' {} a -> s {maxSyncBuffer = a} :: SetSourceRequest)++-- | The media streams that are associated with the source, and the+-- parameters for those associations.+setSourceRequest_mediaStreamSourceConfigurations :: Lens.Lens' SetSourceRequest (Prelude.Maybe [MediaStreamSourceConfigurationRequest])+setSourceRequest_mediaStreamSourceConfigurations = Lens.lens (\SetSourceRequest' {mediaStreamSourceConfigurations} -> mediaStreamSourceConfigurations) (\s@SetSourceRequest' {} a -> s {mediaStreamSourceConfigurations = a} :: SetSourceRequest) Prelude.. Lens.mapping Lens.coerced++-- | The minimum latency in milliseconds for SRT-based streams. In streams+-- that use the SRT protocol, this value that you set on your MediaConnect+-- source or output represents the minimal potential latency of that+-- connection. The latency of the stream is set to the highest number+-- between the sender’s minimum latency and the receiver’s minimum latency.+setSourceRequest_minLatency :: Lens.Lens' SetSourceRequest (Prelude.Maybe Prelude.Int)+setSourceRequest_minLatency = Lens.lens (\SetSourceRequest' {minLatency} -> minLatency) (\s@SetSourceRequest' {} a -> s {minLatency = a} :: SetSourceRequest)++-- | The name of the source.+setSourceRequest_name :: Lens.Lens' SetSourceRequest (Prelude.Maybe Prelude.Text)+setSourceRequest_name = Lens.lens (\SetSourceRequest' {name} -> name) (\s@SetSourceRequest' {} a -> s {name = a} :: SetSourceRequest)++-- | The protocol that is used by the source.+setSourceRequest_protocol :: Lens.Lens' SetSourceRequest (Prelude.Maybe Protocol)+setSourceRequest_protocol = Lens.lens (\SetSourceRequest' {protocol} -> protocol) (\s@SetSourceRequest' {} a -> s {protocol = a} :: SetSourceRequest)++-- | The port that the flow uses to send outbound requests to initiate+-- connection with the sender.+setSourceRequest_senderControlPort :: Lens.Lens' SetSourceRequest (Prelude.Maybe Prelude.Int)+setSourceRequest_senderControlPort = Lens.lens (\SetSourceRequest' {senderControlPort} -> senderControlPort) (\s@SetSourceRequest' {} a -> s {senderControlPort = a} :: SetSourceRequest)++-- | The IP address that the flow communicates with to initiate connection+-- with the sender.+setSourceRequest_senderIpAddress :: Lens.Lens' SetSourceRequest (Prelude.Maybe Prelude.Text)+setSourceRequest_senderIpAddress = Lens.lens (\SetSourceRequest' {senderIpAddress} -> senderIpAddress) (\s@SetSourceRequest' {} a -> s {senderIpAddress = a} :: SetSourceRequest)++-- | Source IP or domain name for SRT-caller protocol.+setSourceRequest_sourceListenerAddress :: Lens.Lens' SetSourceRequest (Prelude.Maybe Prelude.Text)+setSourceRequest_sourceListenerAddress = Lens.lens (\SetSourceRequest' {sourceListenerAddress} -> sourceListenerAddress) (\s@SetSourceRequest' {} a -> s {sourceListenerAddress = a} :: SetSourceRequest)++-- | Source port for SRT-caller protocol.+setSourceRequest_sourceListenerPort :: Lens.Lens' SetSourceRequest (Prelude.Maybe Prelude.Int)+setSourceRequest_sourceListenerPort = Lens.lens (\SetSourceRequest' {sourceListenerPort} -> sourceListenerPort) (\s@SetSourceRequest' {} a -> s {sourceListenerPort = a} :: SetSourceRequest)++-- | The stream ID that you want to use for this transport. This parameter+-- applies only to Zixi-based streams.+setSourceRequest_streamId :: Lens.Lens' SetSourceRequest (Prelude.Maybe Prelude.Text)+setSourceRequest_streamId = Lens.lens (\SetSourceRequest' {streamId} -> streamId) (\s@SetSourceRequest' {} a -> s {streamId = a} :: SetSourceRequest)++-- | The name of the VPC interface to use for this source.+setSourceRequest_vpcInterfaceName :: Lens.Lens' SetSourceRequest (Prelude.Maybe Prelude.Text)+setSourceRequest_vpcInterfaceName = Lens.lens (\SetSourceRequest' {vpcInterfaceName} -> vpcInterfaceName) (\s@SetSourceRequest' {} a -> s {vpcInterfaceName = a} :: SetSourceRequest)++-- | The range of IP addresses that should be allowed to contribute content+-- to your source. These IP addresses should be in the form of a Classless+-- Inter-Domain Routing (CIDR) block; for example, 10.0.0.0\/16.+setSourceRequest_whitelistCidr :: Lens.Lens' SetSourceRequest (Prelude.Maybe Prelude.Text)+setSourceRequest_whitelistCidr = Lens.lens (\SetSourceRequest' {whitelistCidr} -> whitelistCidr) (\s@SetSourceRequest' {} a -> s {whitelistCidr = a} :: SetSourceRequest)++instance Prelude.Hashable SetSourceRequest where+  hashWithSalt _salt SetSourceRequest' {..} =+    _salt+      `Prelude.hashWithSalt` decryption+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` entitlementArn+      `Prelude.hashWithSalt` ingestPort+      `Prelude.hashWithSalt` maxBitrate+      `Prelude.hashWithSalt` maxLatency+      `Prelude.hashWithSalt` maxSyncBuffer+      `Prelude.hashWithSalt` mediaStreamSourceConfigurations+      `Prelude.hashWithSalt` minLatency+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` protocol+      `Prelude.hashWithSalt` senderControlPort+      `Prelude.hashWithSalt` senderIpAddress+      `Prelude.hashWithSalt` sourceListenerAddress+      `Prelude.hashWithSalt` sourceListenerPort+      `Prelude.hashWithSalt` streamId+      `Prelude.hashWithSalt` vpcInterfaceName+      `Prelude.hashWithSalt` whitelistCidr++instance Prelude.NFData SetSourceRequest where+  rnf SetSourceRequest' {..} =+    Prelude.rnf decryption+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf entitlementArn+      `Prelude.seq` Prelude.rnf ingestPort+      `Prelude.seq` Prelude.rnf maxBitrate+      `Prelude.seq` Prelude.rnf maxLatency+      `Prelude.seq` Prelude.rnf maxSyncBuffer+      `Prelude.seq` Prelude.rnf mediaStreamSourceConfigurations+      `Prelude.seq` Prelude.rnf minLatency+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf protocol+      `Prelude.seq` Prelude.rnf senderControlPort+      `Prelude.seq` Prelude.rnf senderIpAddress+      `Prelude.seq` Prelude.rnf sourceListenerAddress+      `Prelude.seq` Prelude.rnf sourceListenerPort+      `Prelude.seq` Prelude.rnf streamId+      `Prelude.seq` Prelude.rnf vpcInterfaceName+      `Prelude.seq` Prelude.rnf whitelistCidr++instance Data.ToJSON SetSourceRequest where+  toJSON SetSourceRequest' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("decryption" Data..=) Prelude.<$> decryption,+            ("description" Data..=) Prelude.<$> description,+            ("entitlementArn" Data..=)+              Prelude.<$> entitlementArn,+            ("ingestPort" Data..=) Prelude.<$> ingestPort,+            ("maxBitrate" Data..=) Prelude.<$> maxBitrate,+            ("maxLatency" Data..=) Prelude.<$> maxLatency,+            ("maxSyncBuffer" Data..=) Prelude.<$> maxSyncBuffer,+            ("mediaStreamSourceConfigurations" Data..=)+              Prelude.<$> mediaStreamSourceConfigurations,+            ("minLatency" Data..=) Prelude.<$> minLatency,+            ("name" Data..=) Prelude.<$> name,+            ("protocol" Data..=) Prelude.<$> protocol,+            ("senderControlPort" Data..=)+              Prelude.<$> senderControlPort,+            ("senderIpAddress" Data..=)+              Prelude.<$> senderIpAddress,+            ("sourceListenerAddress" Data..=)+              Prelude.<$> sourceListenerAddress,+            ("sourceListenerPort" Data..=)+              Prelude.<$> sourceListenerPort,+            ("streamId" Data..=) Prelude.<$> streamId,+            ("vpcInterfaceName" Data..=)+              Prelude.<$> vpcInterfaceName,+            ("whitelistCidr" Data..=) Prelude.<$> whitelistCidr+          ]+      )
+ gen/Amazonka/MediaConnect/Types/Source.hs view
@@ -0,0 +1,269 @@+{-# 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.MediaConnect.Types.Source+-- 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.MediaConnect.Types.Source where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaConnect.Types.Encryption+import Amazonka.MediaConnect.Types.MediaStreamSourceConfiguration+import Amazonka.MediaConnect.Types.Transport+import qualified Amazonka.Prelude as Prelude++-- | The settings for the source of the flow.+--+-- /See:/ 'newSource' smart constructor.+data Source = Source'+  { -- | Percentage from 0-100 of the data transfer cost to be billed to the+    -- subscriber.+    dataTransferSubscriberFeePercent :: Prelude.Maybe Prelude.Int,+    -- | The type of encryption that is used on the content ingested from this+    -- source.+    decryption :: Prelude.Maybe Encryption,+    -- | A description for the source. This value is not used or seen outside of+    -- the current AWS Elemental MediaConnect account.+    description :: Prelude.Maybe Prelude.Text,+    -- | The ARN of the entitlement that allows you to subscribe to content that+    -- comes from another AWS account. The entitlement is set by the content+    -- originator and the ARN is generated as part of the originator\'s flow.+    entitlementArn :: Prelude.Maybe Prelude.Text,+    -- | The IP address that the flow will be listening on for incoming content.+    ingestIp :: Prelude.Maybe Prelude.Text,+    -- | The port that the flow will be listening on for incoming content.+    ingestPort :: Prelude.Maybe Prelude.Int,+    -- | The media streams that are associated with the source, and the+    -- parameters for those associations.+    mediaStreamSourceConfigurations :: Prelude.Maybe [MediaStreamSourceConfiguration],+    -- | The port that the flow uses to send outbound requests to initiate+    -- connection with the sender.+    senderControlPort :: Prelude.Maybe Prelude.Int,+    -- | The IP address that the flow communicates with to initiate connection+    -- with the sender.+    senderIpAddress :: Prelude.Maybe Prelude.Text,+    -- | Attributes related to the transport stream that are used in the source.+    transport :: Prelude.Maybe Transport,+    -- | The name of the VPC interface that is used for this source.+    vpcInterfaceName :: Prelude.Maybe Prelude.Text,+    -- | The range of IP addresses that should be allowed to contribute content+    -- to your source. These IP addresses should be in the form of a Classless+    -- Inter-Domain Routing (CIDR) block; for example, 10.0.0.0\/16.+    whitelistCidr :: Prelude.Maybe Prelude.Text,+    -- | The ARN of the source.+    sourceArn :: Prelude.Text,+    -- | The name of the source.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Source' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dataTransferSubscriberFeePercent', 'source_dataTransferSubscriberFeePercent' - Percentage from 0-100 of the data transfer cost to be billed to the+-- subscriber.+--+-- 'decryption', 'source_decryption' - The type of encryption that is used on the content ingested from this+-- source.+--+-- 'description', 'source_description' - A description for the source. This value is not used or seen outside of+-- the current AWS Elemental MediaConnect account.+--+-- 'entitlementArn', 'source_entitlementArn' - The ARN of the entitlement that allows you to subscribe to content that+-- comes from another AWS account. The entitlement is set by the content+-- originator and the ARN is generated as part of the originator\'s flow.+--+-- 'ingestIp', 'source_ingestIp' - The IP address that the flow will be listening on for incoming content.+--+-- 'ingestPort', 'source_ingestPort' - The port that the flow will be listening on for incoming content.+--+-- 'mediaStreamSourceConfigurations', 'source_mediaStreamSourceConfigurations' - The media streams that are associated with the source, and the+-- parameters for those associations.+--+-- 'senderControlPort', 'source_senderControlPort' - The port that the flow uses to send outbound requests to initiate+-- connection with the sender.+--+-- 'senderIpAddress', 'source_senderIpAddress' - The IP address that the flow communicates with to initiate connection+-- with the sender.+--+-- 'transport', 'source_transport' - Attributes related to the transport stream that are used in the source.+--+-- 'vpcInterfaceName', 'source_vpcInterfaceName' - The name of the VPC interface that is used for this source.+--+-- 'whitelistCidr', 'source_whitelistCidr' - The range of IP addresses that should be allowed to contribute content+-- to your source. These IP addresses should be in the form of a Classless+-- Inter-Domain Routing (CIDR) block; for example, 10.0.0.0\/16.+--+-- 'sourceArn', 'source_sourceArn' - The ARN of the source.+--+-- 'name', 'source_name' - The name of the source.+newSource ::+  -- | 'sourceArn'+  Prelude.Text ->+  -- | 'name'+  Prelude.Text ->+  Source+newSource pSourceArn_ pName_ =+  Source'+    { dataTransferSubscriberFeePercent =+        Prelude.Nothing,+      decryption = Prelude.Nothing,+      description = Prelude.Nothing,+      entitlementArn = Prelude.Nothing,+      ingestIp = Prelude.Nothing,+      ingestPort = Prelude.Nothing,+      mediaStreamSourceConfigurations = Prelude.Nothing,+      senderControlPort = Prelude.Nothing,+      senderIpAddress = Prelude.Nothing,+      transport = Prelude.Nothing,+      vpcInterfaceName = Prelude.Nothing,+      whitelistCidr = Prelude.Nothing,+      sourceArn = pSourceArn_,+      name = pName_+    }++-- | Percentage from 0-100 of the data transfer cost to be billed to the+-- subscriber.+source_dataTransferSubscriberFeePercent :: Lens.Lens' Source (Prelude.Maybe Prelude.Int)+source_dataTransferSubscriberFeePercent = Lens.lens (\Source' {dataTransferSubscriberFeePercent} -> dataTransferSubscriberFeePercent) (\s@Source' {} a -> s {dataTransferSubscriberFeePercent = a} :: Source)++-- | The type of encryption that is used on the content ingested from this+-- source.+source_decryption :: Lens.Lens' Source (Prelude.Maybe Encryption)+source_decryption = Lens.lens (\Source' {decryption} -> decryption) (\s@Source' {} a -> s {decryption = a} :: Source)++-- | A description for the source. This value is not used or seen outside of+-- the current AWS Elemental MediaConnect account.+source_description :: Lens.Lens' Source (Prelude.Maybe Prelude.Text)+source_description = Lens.lens (\Source' {description} -> description) (\s@Source' {} a -> s {description = a} :: Source)++-- | The ARN of the entitlement that allows you to subscribe to content that+-- comes from another AWS account. The entitlement is set by the content+-- originator and the ARN is generated as part of the originator\'s flow.+source_entitlementArn :: Lens.Lens' Source (Prelude.Maybe Prelude.Text)+source_entitlementArn = Lens.lens (\Source' {entitlementArn} -> entitlementArn) (\s@Source' {} a -> s {entitlementArn = a} :: Source)++-- | The IP address that the flow will be listening on for incoming content.+source_ingestIp :: Lens.Lens' Source (Prelude.Maybe Prelude.Text)+source_ingestIp = Lens.lens (\Source' {ingestIp} -> ingestIp) (\s@Source' {} a -> s {ingestIp = a} :: Source)++-- | The port that the flow will be listening on for incoming content.+source_ingestPort :: Lens.Lens' Source (Prelude.Maybe Prelude.Int)+source_ingestPort = Lens.lens (\Source' {ingestPort} -> ingestPort) (\s@Source' {} a -> s {ingestPort = a} :: Source)++-- | The media streams that are associated with the source, and the+-- parameters for those associations.+source_mediaStreamSourceConfigurations :: Lens.Lens' Source (Prelude.Maybe [MediaStreamSourceConfiguration])+source_mediaStreamSourceConfigurations = Lens.lens (\Source' {mediaStreamSourceConfigurations} -> mediaStreamSourceConfigurations) (\s@Source' {} a -> s {mediaStreamSourceConfigurations = a} :: Source) Prelude.. Lens.mapping Lens.coerced++-- | The port that the flow uses to send outbound requests to initiate+-- connection with the sender.+source_senderControlPort :: Lens.Lens' Source (Prelude.Maybe Prelude.Int)+source_senderControlPort = Lens.lens (\Source' {senderControlPort} -> senderControlPort) (\s@Source' {} a -> s {senderControlPort = a} :: Source)++-- | The IP address that the flow communicates with to initiate connection+-- with the sender.+source_senderIpAddress :: Lens.Lens' Source (Prelude.Maybe Prelude.Text)+source_senderIpAddress = Lens.lens (\Source' {senderIpAddress} -> senderIpAddress) (\s@Source' {} a -> s {senderIpAddress = a} :: Source)++-- | Attributes related to the transport stream that are used in the source.+source_transport :: Lens.Lens' Source (Prelude.Maybe Transport)+source_transport = Lens.lens (\Source' {transport} -> transport) (\s@Source' {} a -> s {transport = a} :: Source)++-- | The name of the VPC interface that is used for this source.+source_vpcInterfaceName :: Lens.Lens' Source (Prelude.Maybe Prelude.Text)+source_vpcInterfaceName = Lens.lens (\Source' {vpcInterfaceName} -> vpcInterfaceName) (\s@Source' {} a -> s {vpcInterfaceName = a} :: Source)++-- | The range of IP addresses that should be allowed to contribute content+-- to your source. These IP addresses should be in the form of a Classless+-- Inter-Domain Routing (CIDR) block; for example, 10.0.0.0\/16.+source_whitelistCidr :: Lens.Lens' Source (Prelude.Maybe Prelude.Text)+source_whitelistCidr = Lens.lens (\Source' {whitelistCidr} -> whitelistCidr) (\s@Source' {} a -> s {whitelistCidr = a} :: Source)++-- | The ARN of the source.+source_sourceArn :: Lens.Lens' Source Prelude.Text+source_sourceArn = Lens.lens (\Source' {sourceArn} -> sourceArn) (\s@Source' {} a -> s {sourceArn = a} :: Source)++-- | The name of the source.+source_name :: Lens.Lens' Source Prelude.Text+source_name = Lens.lens (\Source' {name} -> name) (\s@Source' {} a -> s {name = a} :: Source)++instance Data.FromJSON Source where+  parseJSON =+    Data.withObject+      "Source"+      ( \x ->+          Source'+            Prelude.<$> (x Data..:? "dataTransferSubscriberFeePercent")+            Prelude.<*> (x Data..:? "decryption")+            Prelude.<*> (x Data..:? "description")+            Prelude.<*> (x Data..:? "entitlementArn")+            Prelude.<*> (x Data..:? "ingestIp")+            Prelude.<*> (x Data..:? "ingestPort")+            Prelude.<*> ( x+                            Data..:? "mediaStreamSourceConfigurations"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "senderControlPort")+            Prelude.<*> (x Data..:? "senderIpAddress")+            Prelude.<*> (x Data..:? "transport")+            Prelude.<*> (x Data..:? "vpcInterfaceName")+            Prelude.<*> (x Data..:? "whitelistCidr")+            Prelude.<*> (x Data..: "sourceArn")+            Prelude.<*> (x Data..: "name")+      )++instance Prelude.Hashable Source where+  hashWithSalt _salt Source' {..} =+    _salt+      `Prelude.hashWithSalt` dataTransferSubscriberFeePercent+      `Prelude.hashWithSalt` decryption+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` entitlementArn+      `Prelude.hashWithSalt` ingestIp+      `Prelude.hashWithSalt` ingestPort+      `Prelude.hashWithSalt` mediaStreamSourceConfigurations+      `Prelude.hashWithSalt` senderControlPort+      `Prelude.hashWithSalt` senderIpAddress+      `Prelude.hashWithSalt` transport+      `Prelude.hashWithSalt` vpcInterfaceName+      `Prelude.hashWithSalt` whitelistCidr+      `Prelude.hashWithSalt` sourceArn+      `Prelude.hashWithSalt` name++instance Prelude.NFData Source where+  rnf Source' {..} =+    Prelude.rnf dataTransferSubscriberFeePercent+      `Prelude.seq` Prelude.rnf decryption+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf entitlementArn+      `Prelude.seq` Prelude.rnf ingestIp+      `Prelude.seq` Prelude.rnf ingestPort+      `Prelude.seq` Prelude.rnf mediaStreamSourceConfigurations+      `Prelude.seq` Prelude.rnf senderControlPort+      `Prelude.seq` Prelude.rnf senderIpAddress+      `Prelude.seq` Prelude.rnf transport+      `Prelude.seq` Prelude.rnf vpcInterfaceName+      `Prelude.seq` Prelude.rnf whitelistCidr+      `Prelude.seq` Prelude.rnf sourceArn+      `Prelude.seq` Prelude.rnf name
+ gen/Amazonka/MediaConnect/Types/SourcePriority.hs view
@@ -0,0 +1,78 @@+{-# 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.MediaConnect.Types.SourcePriority+-- 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.MediaConnect.Types.SourcePriority where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The priority you want to assign to a source. You can have a primary+-- stream and a backup stream or two equally prioritized streams.+--+-- /See:/ 'newSourcePriority' smart constructor.+data SourcePriority = SourcePriority'+  { -- | The name of the source you choose as the primary source for this flow.+    primarySource :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SourcePriority' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'primarySource', 'sourcePriority_primarySource' - The name of the source you choose as the primary source for this flow.+newSourcePriority ::+  SourcePriority+newSourcePriority =+  SourcePriority' {primarySource = Prelude.Nothing}++-- | The name of the source you choose as the primary source for this flow.+sourcePriority_primarySource :: Lens.Lens' SourcePriority (Prelude.Maybe Prelude.Text)+sourcePriority_primarySource = Lens.lens (\SourcePriority' {primarySource} -> primarySource) (\s@SourcePriority' {} a -> s {primarySource = a} :: SourcePriority)++instance Data.FromJSON SourcePriority where+  parseJSON =+    Data.withObject+      "SourcePriority"+      ( \x ->+          SourcePriority'+            Prelude.<$> (x Data..:? "primarySource")+      )++instance Prelude.Hashable SourcePriority where+  hashWithSalt _salt SourcePriority' {..} =+    _salt `Prelude.hashWithSalt` primarySource++instance Prelude.NFData SourcePriority where+  rnf SourcePriority' {..} = Prelude.rnf primarySource++instance Data.ToJSON SourcePriority where+  toJSON SourcePriority' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("primarySource" Data..=)+              Prelude.<$> primarySource+          ]+      )
+ gen/Amazonka/MediaConnect/Types/SourceType.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.MediaConnect.Types.SourceType+-- 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.MediaConnect.Types.SourceType+  ( SourceType+      ( ..,+        SourceType_ENTITLED,+        SourceType_OWNED+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype SourceType = SourceType'+  { fromSourceType ::+      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 SourceType_ENTITLED :: SourceType+pattern SourceType_ENTITLED = SourceType' "ENTITLED"++pattern SourceType_OWNED :: SourceType+pattern SourceType_OWNED = SourceType' "OWNED"++{-# COMPLETE+  SourceType_ENTITLED,+  SourceType_OWNED,+  SourceType'+  #-}
+ gen/Amazonka/MediaConnect/Types/State.hs view
@@ -0,0 +1,68 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaConnect.Types.State+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MediaConnect.Types.State+  ( State+      ( ..,+        State_DISABLED,+        State_ENABLED+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype State = State' {fromState :: Data.Text}+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern State_DISABLED :: State+pattern State_DISABLED = State' "DISABLED"++pattern State_ENABLED :: State+pattern State_ENABLED = State' "ENABLED"++{-# COMPLETE+  State_DISABLED,+  State_ENABLED,+  State'+  #-}
+ gen/Amazonka/MediaConnect/Types/Status.hs view
@@ -0,0 +1,93 @@+{-# 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.MediaConnect.Types.Status+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.MediaConnect.Types.Status+  ( Status+      ( ..,+        Status_ACTIVE,+        Status_DELETING,+        Status_ERROR,+        Status_STANDBY,+        Status_STARTING,+        Status_STOPPING,+        Status_UPDATING+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype Status = Status' {fromStatus :: 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 Status_ACTIVE :: Status+pattern Status_ACTIVE = Status' "ACTIVE"++pattern Status_DELETING :: Status+pattern Status_DELETING = Status' "DELETING"++pattern Status_ERROR :: Status+pattern Status_ERROR = Status' "ERROR"++pattern Status_STANDBY :: Status+pattern Status_STANDBY = Status' "STANDBY"++pattern Status_STARTING :: Status+pattern Status_STARTING = Status' "STARTING"++pattern Status_STOPPING :: Status+pattern Status_STOPPING = Status' "STOPPING"++pattern Status_UPDATING :: Status+pattern Status_UPDATING = Status' "UPDATING"++{-# COMPLETE+  Status_ACTIVE,+  Status_DELETING,+  Status_ERROR,+  Status_STANDBY,+  Status_STARTING,+  Status_STOPPING,+  Status_UPDATING,+  Status'+  #-}
+ gen/Amazonka/MediaConnect/Types/Tcs.hs view
@@ -0,0 +1,103 @@+{-# 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.MediaConnect.Types.Tcs+-- 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.MediaConnect.Types.Tcs+  ( Tcs+      ( ..,+        Tcs_BT2100LINHLG,+        Tcs_BT2100LINPQ,+        Tcs_DENSITY,+        Tcs_HLG,+        Tcs_LINEAR,+        Tcs_PQ,+        Tcs_SDR,+        Tcs_ST2065_1,+        Tcs_ST428_1+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype Tcs = Tcs' {fromTcs :: 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 Tcs_BT2100LINHLG :: Tcs+pattern Tcs_BT2100LINHLG = Tcs' "BT2100LINHLG"++pattern Tcs_BT2100LINPQ :: Tcs+pattern Tcs_BT2100LINPQ = Tcs' "BT2100LINPQ"++pattern Tcs_DENSITY :: Tcs+pattern Tcs_DENSITY = Tcs' "DENSITY"++pattern Tcs_HLG :: Tcs+pattern Tcs_HLG = Tcs' "HLG"++pattern Tcs_LINEAR :: Tcs+pattern Tcs_LINEAR = Tcs' "LINEAR"++pattern Tcs_PQ :: Tcs+pattern Tcs_PQ = Tcs' "PQ"++pattern Tcs_SDR :: Tcs+pattern Tcs_SDR = Tcs' "SDR"++pattern Tcs_ST2065_1 :: Tcs+pattern Tcs_ST2065_1 = Tcs' "ST2065-1"++pattern Tcs_ST428_1 :: Tcs+pattern Tcs_ST428_1 = Tcs' "ST428-1"++{-# COMPLETE+  Tcs_BT2100LINHLG,+  Tcs_BT2100LINPQ,+  Tcs_DENSITY,+  Tcs_HLG,+  Tcs_LINEAR,+  Tcs_PQ,+  Tcs_SDR,+  Tcs_ST2065_1,+  Tcs_ST428_1,+  Tcs'+  #-}
+ gen/Amazonka/MediaConnect/Types/Transport.hs view
@@ -0,0 +1,256 @@+{-# 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.MediaConnect.Types.Transport+-- 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.MediaConnect.Types.Transport where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaConnect.Types.Protocol+import qualified Amazonka.Prelude as Prelude++-- | Attributes related to the transport stream that are used in a source or+-- output.+--+-- /See:/ 'newTransport' smart constructor.+data Transport = Transport'+  { -- | The range of IP addresses that should be allowed to initiate output+    -- requests to this flow. These IP addresses should be in the form of a+    -- Classless Inter-Domain Routing (CIDR) block; for example, 10.0.0.0\/16.+    cidrAllowList :: Prelude.Maybe [Prelude.Text],+    -- | The smoothing max bitrate for RIST, RTP, and RTP-FEC streams.+    maxBitrate :: Prelude.Maybe Prelude.Int,+    -- | The maximum latency in milliseconds. This parameter applies only to+    -- RIST-based, Zixi-based, and Fujitsu-based streams.+    maxLatency :: Prelude.Maybe Prelude.Int,+    -- | The size of the buffer (in milliseconds) to use to sync incoming source+    -- data.+    maxSyncBuffer :: Prelude.Maybe Prelude.Int,+    -- | The minimum latency in milliseconds for SRT-based streams. In streams+    -- that use the SRT protocol, this value that you set on your MediaConnect+    -- source or output represents the minimal potential latency of that+    -- connection. The latency of the stream is set to the highest number+    -- between the sender’s minimum latency and the receiver’s minimum latency.+    minLatency :: Prelude.Maybe Prelude.Int,+    -- | The remote ID for the Zixi-pull stream.+    remoteId :: Prelude.Maybe Prelude.Text,+    -- | The port that the flow uses to send outbound requests to initiate+    -- connection with the sender.+    senderControlPort :: Prelude.Maybe Prelude.Int,+    -- | The IP address that the flow communicates with to initiate connection+    -- with the sender.+    senderIpAddress :: Prelude.Maybe Prelude.Text,+    -- | The smoothing latency in milliseconds for RIST, RTP, and RTP-FEC+    -- streams.+    smoothingLatency :: Prelude.Maybe Prelude.Int,+    -- | Source IP or domain name for SRT-caller protocol.+    sourceListenerAddress :: Prelude.Maybe Prelude.Text,+    -- | Source port for SRT-caller protocol.+    sourceListenerPort :: Prelude.Maybe Prelude.Int,+    -- | The stream ID that you want to use for this transport. This parameter+    -- applies only to Zixi-based streams.+    streamId :: Prelude.Maybe Prelude.Text,+    -- | The protocol that is used by the source or output.+    protocol :: Protocol+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Transport' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'cidrAllowList', 'transport_cidrAllowList' - The range of IP addresses that should be allowed to initiate output+-- requests to this flow. These IP addresses should be in the form of a+-- Classless Inter-Domain Routing (CIDR) block; for example, 10.0.0.0\/16.+--+-- 'maxBitrate', 'transport_maxBitrate' - The smoothing max bitrate for RIST, RTP, and RTP-FEC streams.+--+-- 'maxLatency', 'transport_maxLatency' - The maximum latency in milliseconds. This parameter applies only to+-- RIST-based, Zixi-based, and Fujitsu-based streams.+--+-- 'maxSyncBuffer', 'transport_maxSyncBuffer' - The size of the buffer (in milliseconds) to use to sync incoming source+-- data.+--+-- 'minLatency', 'transport_minLatency' - The minimum latency in milliseconds for SRT-based streams. In streams+-- that use the SRT protocol, this value that you set on your MediaConnect+-- source or output represents the minimal potential latency of that+-- connection. The latency of the stream is set to the highest number+-- between the sender’s minimum latency and the receiver’s minimum latency.+--+-- 'remoteId', 'transport_remoteId' - The remote ID for the Zixi-pull stream.+--+-- 'senderControlPort', 'transport_senderControlPort' - The port that the flow uses to send outbound requests to initiate+-- connection with the sender.+--+-- 'senderIpAddress', 'transport_senderIpAddress' - The IP address that the flow communicates with to initiate connection+-- with the sender.+--+-- 'smoothingLatency', 'transport_smoothingLatency' - The smoothing latency in milliseconds for RIST, RTP, and RTP-FEC+-- streams.+--+-- 'sourceListenerAddress', 'transport_sourceListenerAddress' - Source IP or domain name for SRT-caller protocol.+--+-- 'sourceListenerPort', 'transport_sourceListenerPort' - Source port for SRT-caller protocol.+--+-- 'streamId', 'transport_streamId' - The stream ID that you want to use for this transport. This parameter+-- applies only to Zixi-based streams.+--+-- 'protocol', 'transport_protocol' - The protocol that is used by the source or output.+newTransport ::+  -- | 'protocol'+  Protocol ->+  Transport+newTransport pProtocol_ =+  Transport'+    { cidrAllowList = Prelude.Nothing,+      maxBitrate = Prelude.Nothing,+      maxLatency = Prelude.Nothing,+      maxSyncBuffer = Prelude.Nothing,+      minLatency = Prelude.Nothing,+      remoteId = Prelude.Nothing,+      senderControlPort = Prelude.Nothing,+      senderIpAddress = Prelude.Nothing,+      smoothingLatency = Prelude.Nothing,+      sourceListenerAddress = Prelude.Nothing,+      sourceListenerPort = Prelude.Nothing,+      streamId = Prelude.Nothing,+      protocol = pProtocol_+    }++-- | The range of IP addresses that should be allowed to initiate output+-- requests to this flow. These IP addresses should be in the form of a+-- Classless Inter-Domain Routing (CIDR) block; for example, 10.0.0.0\/16.+transport_cidrAllowList :: Lens.Lens' Transport (Prelude.Maybe [Prelude.Text])+transport_cidrAllowList = Lens.lens (\Transport' {cidrAllowList} -> cidrAllowList) (\s@Transport' {} a -> s {cidrAllowList = a} :: Transport) Prelude.. Lens.mapping Lens.coerced++-- | The smoothing max bitrate for RIST, RTP, and RTP-FEC streams.+transport_maxBitrate :: Lens.Lens' Transport (Prelude.Maybe Prelude.Int)+transport_maxBitrate = Lens.lens (\Transport' {maxBitrate} -> maxBitrate) (\s@Transport' {} a -> s {maxBitrate = a} :: Transport)++-- | The maximum latency in milliseconds. This parameter applies only to+-- RIST-based, Zixi-based, and Fujitsu-based streams.+transport_maxLatency :: Lens.Lens' Transport (Prelude.Maybe Prelude.Int)+transport_maxLatency = Lens.lens (\Transport' {maxLatency} -> maxLatency) (\s@Transport' {} a -> s {maxLatency = a} :: Transport)++-- | The size of the buffer (in milliseconds) to use to sync incoming source+-- data.+transport_maxSyncBuffer :: Lens.Lens' Transport (Prelude.Maybe Prelude.Int)+transport_maxSyncBuffer = Lens.lens (\Transport' {maxSyncBuffer} -> maxSyncBuffer) (\s@Transport' {} a -> s {maxSyncBuffer = a} :: Transport)++-- | The minimum latency in milliseconds for SRT-based streams. In streams+-- that use the SRT protocol, this value that you set on your MediaConnect+-- source or output represents the minimal potential latency of that+-- connection. The latency of the stream is set to the highest number+-- between the sender’s minimum latency and the receiver’s minimum latency.+transport_minLatency :: Lens.Lens' Transport (Prelude.Maybe Prelude.Int)+transport_minLatency = Lens.lens (\Transport' {minLatency} -> minLatency) (\s@Transport' {} a -> s {minLatency = a} :: Transport)++-- | The remote ID for the Zixi-pull stream.+transport_remoteId :: Lens.Lens' Transport (Prelude.Maybe Prelude.Text)+transport_remoteId = Lens.lens (\Transport' {remoteId} -> remoteId) (\s@Transport' {} a -> s {remoteId = a} :: Transport)++-- | The port that the flow uses to send outbound requests to initiate+-- connection with the sender.+transport_senderControlPort :: Lens.Lens' Transport (Prelude.Maybe Prelude.Int)+transport_senderControlPort = Lens.lens (\Transport' {senderControlPort} -> senderControlPort) (\s@Transport' {} a -> s {senderControlPort = a} :: Transport)++-- | The IP address that the flow communicates with to initiate connection+-- with the sender.+transport_senderIpAddress :: Lens.Lens' Transport (Prelude.Maybe Prelude.Text)+transport_senderIpAddress = Lens.lens (\Transport' {senderIpAddress} -> senderIpAddress) (\s@Transport' {} a -> s {senderIpAddress = a} :: Transport)++-- | The smoothing latency in milliseconds for RIST, RTP, and RTP-FEC+-- streams.+transport_smoothingLatency :: Lens.Lens' Transport (Prelude.Maybe Prelude.Int)+transport_smoothingLatency = Lens.lens (\Transport' {smoothingLatency} -> smoothingLatency) (\s@Transport' {} a -> s {smoothingLatency = a} :: Transport)++-- | Source IP or domain name for SRT-caller protocol.+transport_sourceListenerAddress :: Lens.Lens' Transport (Prelude.Maybe Prelude.Text)+transport_sourceListenerAddress = Lens.lens (\Transport' {sourceListenerAddress} -> sourceListenerAddress) (\s@Transport' {} a -> s {sourceListenerAddress = a} :: Transport)++-- | Source port for SRT-caller protocol.+transport_sourceListenerPort :: Lens.Lens' Transport (Prelude.Maybe Prelude.Int)+transport_sourceListenerPort = Lens.lens (\Transport' {sourceListenerPort} -> sourceListenerPort) (\s@Transport' {} a -> s {sourceListenerPort = a} :: Transport)++-- | The stream ID that you want to use for this transport. This parameter+-- applies only to Zixi-based streams.+transport_streamId :: Lens.Lens' Transport (Prelude.Maybe Prelude.Text)+transport_streamId = Lens.lens (\Transport' {streamId} -> streamId) (\s@Transport' {} a -> s {streamId = a} :: Transport)++-- | The protocol that is used by the source or output.+transport_protocol :: Lens.Lens' Transport Protocol+transport_protocol = Lens.lens (\Transport' {protocol} -> protocol) (\s@Transport' {} a -> s {protocol = a} :: Transport)++instance Data.FromJSON Transport where+  parseJSON =+    Data.withObject+      "Transport"+      ( \x ->+          Transport'+            Prelude.<$> (x Data..:? "cidrAllowList" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "maxBitrate")+            Prelude.<*> (x Data..:? "maxLatency")+            Prelude.<*> (x Data..:? "maxSyncBuffer")+            Prelude.<*> (x Data..:? "minLatency")+            Prelude.<*> (x Data..:? "remoteId")+            Prelude.<*> (x Data..:? "senderControlPort")+            Prelude.<*> (x Data..:? "senderIpAddress")+            Prelude.<*> (x Data..:? "smoothingLatency")+            Prelude.<*> (x Data..:? "sourceListenerAddress")+            Prelude.<*> (x Data..:? "sourceListenerPort")+            Prelude.<*> (x Data..:? "streamId")+            Prelude.<*> (x Data..: "protocol")+      )++instance Prelude.Hashable Transport where+  hashWithSalt _salt Transport' {..} =+    _salt+      `Prelude.hashWithSalt` cidrAllowList+      `Prelude.hashWithSalt` maxBitrate+      `Prelude.hashWithSalt` maxLatency+      `Prelude.hashWithSalt` maxSyncBuffer+      `Prelude.hashWithSalt` minLatency+      `Prelude.hashWithSalt` remoteId+      `Prelude.hashWithSalt` senderControlPort+      `Prelude.hashWithSalt` senderIpAddress+      `Prelude.hashWithSalt` smoothingLatency+      `Prelude.hashWithSalt` sourceListenerAddress+      `Prelude.hashWithSalt` sourceListenerPort+      `Prelude.hashWithSalt` streamId+      `Prelude.hashWithSalt` protocol++instance Prelude.NFData Transport where+  rnf Transport' {..} =+    Prelude.rnf cidrAllowList+      `Prelude.seq` Prelude.rnf maxBitrate+      `Prelude.seq` Prelude.rnf maxLatency+      `Prelude.seq` Prelude.rnf maxSyncBuffer+      `Prelude.seq` Prelude.rnf minLatency+      `Prelude.seq` Prelude.rnf remoteId+      `Prelude.seq` Prelude.rnf senderControlPort+      `Prelude.seq` Prelude.rnf senderIpAddress+      `Prelude.seq` Prelude.rnf smoothingLatency+      `Prelude.seq` Prelude.rnf sourceListenerAddress+      `Prelude.seq` Prelude.rnf sourceListenerPort+      `Prelude.seq` Prelude.rnf streamId+      `Prelude.seq` Prelude.rnf protocol
+ gen/Amazonka/MediaConnect/Types/UpdateEncryption.hs view
@@ -0,0 +1,221 @@+{-# 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.MediaConnect.Types.UpdateEncryption+-- 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.MediaConnect.Types.UpdateEncryption where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaConnect.Types.Algorithm+import Amazonka.MediaConnect.Types.KeyType+import qualified Amazonka.Prelude as Prelude++-- | Information about the encryption of the flow.+--+-- /See:/ 'newUpdateEncryption' smart constructor.+data UpdateEncryption = UpdateEncryption'+  { -- | The type of algorithm that is used for the encryption (such as aes128,+    -- aes192, or aes256).+    algorithm :: Prelude.Maybe Algorithm,+    -- | A 128-bit, 16-byte hex value represented by a 32-character string, to be+    -- used with the key for encrypting content. This parameter is not valid+    -- for static key encryption.+    constantInitializationVector :: Prelude.Maybe Prelude.Text,+    -- | The value of one of the devices that you configured with your digital+    -- rights management (DRM) platform key provider. This parameter is+    -- required for SPEKE encryption and is not valid for static key+    -- encryption.+    deviceId :: Prelude.Maybe Prelude.Text,+    -- | The type of key that is used for the encryption. If no keyType is+    -- provided, the service will use the default setting (static-key).+    keyType :: Prelude.Maybe KeyType,+    -- | The AWS Region that the API Gateway proxy endpoint was created in. This+    -- parameter is required for SPEKE encryption and is not valid for static+    -- key encryption.+    region :: Prelude.Maybe Prelude.Text,+    -- | An identifier for the content. The service sends this value to the key+    -- server to identify the current endpoint. The resource ID is also known+    -- as the content ID. This parameter is required for SPEKE encryption and+    -- is not valid for static key encryption.+    resourceId :: Prelude.Maybe Prelude.Text,+    -- | The ARN of the role that you created during setup (when you set up AWS+    -- Elemental MediaConnect as a trusted entity).+    roleArn :: Prelude.Maybe Prelude.Text,+    -- | The ARN of the secret that you created in AWS Secrets Manager to store+    -- the encryption key. This parameter is required for static key encryption+    -- and is not valid for SPEKE encryption.+    secretArn :: Prelude.Maybe Prelude.Text,+    -- | The URL from the API Gateway proxy that you set up to talk to your key+    -- server. This parameter is required for SPEKE encryption and is not valid+    -- for static key encryption.+    url :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateEncryption' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'algorithm', 'updateEncryption_algorithm' - The type of algorithm that is used for the encryption (such as aes128,+-- aes192, or aes256).+--+-- 'constantInitializationVector', 'updateEncryption_constantInitializationVector' - A 128-bit, 16-byte hex value represented by a 32-character string, to be+-- used with the key for encrypting content. This parameter is not valid+-- for static key encryption.+--+-- 'deviceId', 'updateEncryption_deviceId' - The value of one of the devices that you configured with your digital+-- rights management (DRM) platform key provider. This parameter is+-- required for SPEKE encryption and is not valid for static key+-- encryption.+--+-- 'keyType', 'updateEncryption_keyType' - The type of key that is used for the encryption. If no keyType is+-- provided, the service will use the default setting (static-key).+--+-- 'region', 'updateEncryption_region' - The AWS Region that the API Gateway proxy endpoint was created in. This+-- parameter is required for SPEKE encryption and is not valid for static+-- key encryption.+--+-- 'resourceId', 'updateEncryption_resourceId' - An identifier for the content. The service sends this value to the key+-- server to identify the current endpoint. The resource ID is also known+-- as the content ID. This parameter is required for SPEKE encryption and+-- is not valid for static key encryption.+--+-- 'roleArn', 'updateEncryption_roleArn' - The ARN of the role that you created during setup (when you set up AWS+-- Elemental MediaConnect as a trusted entity).+--+-- 'secretArn', 'updateEncryption_secretArn' - The ARN of the secret that you created in AWS Secrets Manager to store+-- the encryption key. This parameter is required for static key encryption+-- and is not valid for SPEKE encryption.+--+-- 'url', 'updateEncryption_url' - The URL from the API Gateway proxy that you set up to talk to your key+-- server. This parameter is required for SPEKE encryption and is not valid+-- for static key encryption.+newUpdateEncryption ::+  UpdateEncryption+newUpdateEncryption =+  UpdateEncryption'+    { algorithm = Prelude.Nothing,+      constantInitializationVector = Prelude.Nothing,+      deviceId = Prelude.Nothing,+      keyType = Prelude.Nothing,+      region = Prelude.Nothing,+      resourceId = Prelude.Nothing,+      roleArn = Prelude.Nothing,+      secretArn = Prelude.Nothing,+      url = Prelude.Nothing+    }++-- | The type of algorithm that is used for the encryption (such as aes128,+-- aes192, or aes256).+updateEncryption_algorithm :: Lens.Lens' UpdateEncryption (Prelude.Maybe Algorithm)+updateEncryption_algorithm = Lens.lens (\UpdateEncryption' {algorithm} -> algorithm) (\s@UpdateEncryption' {} a -> s {algorithm = a} :: UpdateEncryption)++-- | A 128-bit, 16-byte hex value represented by a 32-character string, to be+-- used with the key for encrypting content. This parameter is not valid+-- for static key encryption.+updateEncryption_constantInitializationVector :: Lens.Lens' UpdateEncryption (Prelude.Maybe Prelude.Text)+updateEncryption_constantInitializationVector = Lens.lens (\UpdateEncryption' {constantInitializationVector} -> constantInitializationVector) (\s@UpdateEncryption' {} a -> s {constantInitializationVector = a} :: UpdateEncryption)++-- | The value of one of the devices that you configured with your digital+-- rights management (DRM) platform key provider. This parameter is+-- required for SPEKE encryption and is not valid for static key+-- encryption.+updateEncryption_deviceId :: Lens.Lens' UpdateEncryption (Prelude.Maybe Prelude.Text)+updateEncryption_deviceId = Lens.lens (\UpdateEncryption' {deviceId} -> deviceId) (\s@UpdateEncryption' {} a -> s {deviceId = a} :: UpdateEncryption)++-- | The type of key that is used for the encryption. If no keyType is+-- provided, the service will use the default setting (static-key).+updateEncryption_keyType :: Lens.Lens' UpdateEncryption (Prelude.Maybe KeyType)+updateEncryption_keyType = Lens.lens (\UpdateEncryption' {keyType} -> keyType) (\s@UpdateEncryption' {} a -> s {keyType = a} :: UpdateEncryption)++-- | The AWS Region that the API Gateway proxy endpoint was created in. This+-- parameter is required for SPEKE encryption and is not valid for static+-- key encryption.+updateEncryption_region :: Lens.Lens' UpdateEncryption (Prelude.Maybe Prelude.Text)+updateEncryption_region = Lens.lens (\UpdateEncryption' {region} -> region) (\s@UpdateEncryption' {} a -> s {region = a} :: UpdateEncryption)++-- | An identifier for the content. The service sends this value to the key+-- server to identify the current endpoint. The resource ID is also known+-- as the content ID. This parameter is required for SPEKE encryption and+-- is not valid for static key encryption.+updateEncryption_resourceId :: Lens.Lens' UpdateEncryption (Prelude.Maybe Prelude.Text)+updateEncryption_resourceId = Lens.lens (\UpdateEncryption' {resourceId} -> resourceId) (\s@UpdateEncryption' {} a -> s {resourceId = a} :: UpdateEncryption)++-- | The ARN of the role that you created during setup (when you set up AWS+-- Elemental MediaConnect as a trusted entity).+updateEncryption_roleArn :: Lens.Lens' UpdateEncryption (Prelude.Maybe Prelude.Text)+updateEncryption_roleArn = Lens.lens (\UpdateEncryption' {roleArn} -> roleArn) (\s@UpdateEncryption' {} a -> s {roleArn = a} :: UpdateEncryption)++-- | The ARN of the secret that you created in AWS Secrets Manager to store+-- the encryption key. This parameter is required for static key encryption+-- and is not valid for SPEKE encryption.+updateEncryption_secretArn :: Lens.Lens' UpdateEncryption (Prelude.Maybe Prelude.Text)+updateEncryption_secretArn = Lens.lens (\UpdateEncryption' {secretArn} -> secretArn) (\s@UpdateEncryption' {} a -> s {secretArn = a} :: UpdateEncryption)++-- | The URL from the API Gateway proxy that you set up to talk to your key+-- server. This parameter is required for SPEKE encryption and is not valid+-- for static key encryption.+updateEncryption_url :: Lens.Lens' UpdateEncryption (Prelude.Maybe Prelude.Text)+updateEncryption_url = Lens.lens (\UpdateEncryption' {url} -> url) (\s@UpdateEncryption' {} a -> s {url = a} :: UpdateEncryption)++instance Prelude.Hashable UpdateEncryption where+  hashWithSalt _salt UpdateEncryption' {..} =+    _salt+      `Prelude.hashWithSalt` algorithm+      `Prelude.hashWithSalt` constantInitializationVector+      `Prelude.hashWithSalt` deviceId+      `Prelude.hashWithSalt` keyType+      `Prelude.hashWithSalt` region+      `Prelude.hashWithSalt` resourceId+      `Prelude.hashWithSalt` roleArn+      `Prelude.hashWithSalt` secretArn+      `Prelude.hashWithSalt` url++instance Prelude.NFData UpdateEncryption where+  rnf UpdateEncryption' {..} =+    Prelude.rnf algorithm+      `Prelude.seq` Prelude.rnf constantInitializationVector+      `Prelude.seq` Prelude.rnf deviceId+      `Prelude.seq` Prelude.rnf keyType+      `Prelude.seq` Prelude.rnf region+      `Prelude.seq` Prelude.rnf resourceId+      `Prelude.seq` Prelude.rnf roleArn+      `Prelude.seq` Prelude.rnf secretArn+      `Prelude.seq` Prelude.rnf url++instance Data.ToJSON UpdateEncryption where+  toJSON UpdateEncryption' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("algorithm" Data..=) Prelude.<$> algorithm,+            ("constantInitializationVector" Data..=)+              Prelude.<$> constantInitializationVector,+            ("deviceId" Data..=) Prelude.<$> deviceId,+            ("keyType" Data..=) Prelude.<$> keyType,+            ("region" Data..=) Prelude.<$> region,+            ("resourceId" Data..=) Prelude.<$> resourceId,+            ("roleArn" Data..=) Prelude.<$> roleArn,+            ("secretArn" Data..=) Prelude.<$> secretArn,+            ("url" Data..=) Prelude.<$> url+          ]+      )
+ gen/Amazonka/MediaConnect/Types/UpdateFailoverConfig.hs view
@@ -0,0 +1,121 @@+{-# 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.MediaConnect.Types.UpdateFailoverConfig+-- 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.MediaConnect.Types.UpdateFailoverConfig where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaConnect.Types.FailoverMode+import Amazonka.MediaConnect.Types.SourcePriority+import Amazonka.MediaConnect.Types.State+import qualified Amazonka.Prelude as Prelude++-- | The settings for source failover.+--+-- /See:/ 'newUpdateFailoverConfig' smart constructor.+data UpdateFailoverConfig = UpdateFailoverConfig'+  { -- | The type of failover you choose for this flow. MERGE combines the source+    -- streams into a single stream, allowing graceful recovery from any+    -- single-source loss. FAILOVER allows switching between different streams.+    failoverMode :: Prelude.Maybe FailoverMode,+    -- | Recovery window time to look for dash-7 packets+    recoveryWindow :: Prelude.Maybe Prelude.Int,+    -- | The priority you want to assign to a source. You can have a primary+    -- stream and a backup stream or two equally prioritized streams.+    sourcePriority :: Prelude.Maybe SourcePriority,+    state :: Prelude.Maybe State+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateFailoverConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'failoverMode', 'updateFailoverConfig_failoverMode' - The type of failover you choose for this flow. MERGE combines the source+-- streams into a single stream, allowing graceful recovery from any+-- single-source loss. FAILOVER allows switching between different streams.+--+-- 'recoveryWindow', 'updateFailoverConfig_recoveryWindow' - Recovery window time to look for dash-7 packets+--+-- 'sourcePriority', 'updateFailoverConfig_sourcePriority' - The priority you want to assign to a source. You can have a primary+-- stream and a backup stream or two equally prioritized streams.+--+-- 'state', 'updateFailoverConfig_state' - Undocumented member.+newUpdateFailoverConfig ::+  UpdateFailoverConfig+newUpdateFailoverConfig =+  UpdateFailoverConfig'+    { failoverMode =+        Prelude.Nothing,+      recoveryWindow = Prelude.Nothing,+      sourcePriority = Prelude.Nothing,+      state = Prelude.Nothing+    }++-- | The type of failover you choose for this flow. MERGE combines the source+-- streams into a single stream, allowing graceful recovery from any+-- single-source loss. FAILOVER allows switching between different streams.+updateFailoverConfig_failoverMode :: Lens.Lens' UpdateFailoverConfig (Prelude.Maybe FailoverMode)+updateFailoverConfig_failoverMode = Lens.lens (\UpdateFailoverConfig' {failoverMode} -> failoverMode) (\s@UpdateFailoverConfig' {} a -> s {failoverMode = a} :: UpdateFailoverConfig)++-- | Recovery window time to look for dash-7 packets+updateFailoverConfig_recoveryWindow :: Lens.Lens' UpdateFailoverConfig (Prelude.Maybe Prelude.Int)+updateFailoverConfig_recoveryWindow = Lens.lens (\UpdateFailoverConfig' {recoveryWindow} -> recoveryWindow) (\s@UpdateFailoverConfig' {} a -> s {recoveryWindow = a} :: UpdateFailoverConfig)++-- | The priority you want to assign to a source. You can have a primary+-- stream and a backup stream or two equally prioritized streams.+updateFailoverConfig_sourcePriority :: Lens.Lens' UpdateFailoverConfig (Prelude.Maybe SourcePriority)+updateFailoverConfig_sourcePriority = Lens.lens (\UpdateFailoverConfig' {sourcePriority} -> sourcePriority) (\s@UpdateFailoverConfig' {} a -> s {sourcePriority = a} :: UpdateFailoverConfig)++-- | Undocumented member.+updateFailoverConfig_state :: Lens.Lens' UpdateFailoverConfig (Prelude.Maybe State)+updateFailoverConfig_state = Lens.lens (\UpdateFailoverConfig' {state} -> state) (\s@UpdateFailoverConfig' {} a -> s {state = a} :: UpdateFailoverConfig)++instance Prelude.Hashable UpdateFailoverConfig where+  hashWithSalt _salt UpdateFailoverConfig' {..} =+    _salt+      `Prelude.hashWithSalt` failoverMode+      `Prelude.hashWithSalt` recoveryWindow+      `Prelude.hashWithSalt` sourcePriority+      `Prelude.hashWithSalt` state++instance Prelude.NFData UpdateFailoverConfig where+  rnf UpdateFailoverConfig' {..} =+    Prelude.rnf failoverMode+      `Prelude.seq` Prelude.rnf recoveryWindow+      `Prelude.seq` Prelude.rnf sourcePriority+      `Prelude.seq` Prelude.rnf state++instance Data.ToJSON UpdateFailoverConfig where+  toJSON UpdateFailoverConfig' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("failoverMode" Data..=) Prelude.<$> failoverMode,+            ("recoveryWindow" Data..=)+              Prelude.<$> recoveryWindow,+            ("sourcePriority" Data..=)+              Prelude.<$> sourcePriority,+            ("state" Data..=) Prelude.<$> state+          ]+      )
+ gen/Amazonka/MediaConnect/Types/UpdateMaintenance.hs view
@@ -0,0 +1,109 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaConnect.Types.UpdateMaintenance+-- 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.MediaConnect.Types.UpdateMaintenance where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaConnect.Types.MaintenanceDay+import qualified Amazonka.Prelude as Prelude++-- | Update maintenance setting for a flow+--+-- /See:/ 'newUpdateMaintenance' smart constructor.+data UpdateMaintenance = UpdateMaintenance'+  { -- | A day of a week when the maintenance will happen. use+    -- Monday\/Tuesday\/Wednesday\/Thursday\/Friday\/Saturday\/Sunday.+    maintenanceDay :: Prelude.Maybe MaintenanceDay,+    -- | A scheduled date in ISO UTC format when the maintenance will happen. Use+    -- YYYY-MM-DD format. Example: 2021-01-30.+    maintenanceScheduledDate :: Prelude.Maybe Prelude.Text,+    -- | UTC time when the maintenance will happen. Use 24-hour HH:MM format.+    -- Minutes must be 00. Example: 13:00. The default value is 02:00.+    maintenanceStartHour :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateMaintenance' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'maintenanceDay', 'updateMaintenance_maintenanceDay' - A day of a week when the maintenance will happen. use+-- Monday\/Tuesday\/Wednesday\/Thursday\/Friday\/Saturday\/Sunday.+--+-- 'maintenanceScheduledDate', 'updateMaintenance_maintenanceScheduledDate' - A scheduled date in ISO UTC format when the maintenance will happen. Use+-- YYYY-MM-DD format. Example: 2021-01-30.+--+-- 'maintenanceStartHour', 'updateMaintenance_maintenanceStartHour' - UTC time when the maintenance will happen. Use 24-hour HH:MM format.+-- Minutes must be 00. Example: 13:00. The default value is 02:00.+newUpdateMaintenance ::+  UpdateMaintenance+newUpdateMaintenance =+  UpdateMaintenance'+    { maintenanceDay =+        Prelude.Nothing,+      maintenanceScheduledDate = Prelude.Nothing,+      maintenanceStartHour = Prelude.Nothing+    }++-- | A day of a week when the maintenance will happen. use+-- Monday\/Tuesday\/Wednesday\/Thursday\/Friday\/Saturday\/Sunday.+updateMaintenance_maintenanceDay :: Lens.Lens' UpdateMaintenance (Prelude.Maybe MaintenanceDay)+updateMaintenance_maintenanceDay = Lens.lens (\UpdateMaintenance' {maintenanceDay} -> maintenanceDay) (\s@UpdateMaintenance' {} a -> s {maintenanceDay = a} :: UpdateMaintenance)++-- | A scheduled date in ISO UTC format when the maintenance will happen. Use+-- YYYY-MM-DD format. Example: 2021-01-30.+updateMaintenance_maintenanceScheduledDate :: Lens.Lens' UpdateMaintenance (Prelude.Maybe Prelude.Text)+updateMaintenance_maintenanceScheduledDate = Lens.lens (\UpdateMaintenance' {maintenanceScheduledDate} -> maintenanceScheduledDate) (\s@UpdateMaintenance' {} a -> s {maintenanceScheduledDate = a} :: UpdateMaintenance)++-- | UTC time when the maintenance will happen. Use 24-hour HH:MM format.+-- Minutes must be 00. Example: 13:00. The default value is 02:00.+updateMaintenance_maintenanceStartHour :: Lens.Lens' UpdateMaintenance (Prelude.Maybe Prelude.Text)+updateMaintenance_maintenanceStartHour = Lens.lens (\UpdateMaintenance' {maintenanceStartHour} -> maintenanceStartHour) (\s@UpdateMaintenance' {} a -> s {maintenanceStartHour = a} :: UpdateMaintenance)++instance Prelude.Hashable UpdateMaintenance where+  hashWithSalt _salt UpdateMaintenance' {..} =+    _salt+      `Prelude.hashWithSalt` maintenanceDay+      `Prelude.hashWithSalt` maintenanceScheduledDate+      `Prelude.hashWithSalt` maintenanceStartHour++instance Prelude.NFData UpdateMaintenance where+  rnf UpdateMaintenance' {..} =+    Prelude.rnf maintenanceDay+      `Prelude.seq` Prelude.rnf maintenanceScheduledDate+      `Prelude.seq` Prelude.rnf maintenanceStartHour++instance Data.ToJSON UpdateMaintenance where+  toJSON UpdateMaintenance' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("maintenanceDay" Data..=)+              Prelude.<$> maintenanceDay,+            ("maintenanceScheduledDate" Data..=)+              Prelude.<$> maintenanceScheduledDate,+            ("maintenanceStartHour" Data..=)+              Prelude.<$> maintenanceStartHour+          ]+      )
+ gen/Amazonka/MediaConnect/Types/VpcInterface.hs view
@@ -0,0 +1,158 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaConnect.Types.VpcInterface+-- 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.MediaConnect.Types.VpcInterface where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaConnect.Types.NetworkInterfaceType+import qualified Amazonka.Prelude as Prelude++-- | The settings for a VPC Source.+--+-- /See:/ 'newVpcInterface' smart constructor.+data VpcInterface = VpcInterface'+  { -- | The type of network interface.+    networkInterfaceType :: NetworkInterfaceType,+    -- | IDs of the network interfaces created in customer\'s account by+    -- MediaConnect.+    networkInterfaceIds :: [Prelude.Text],+    -- | Subnet must be in the AZ of the Flow+    subnetId :: Prelude.Text,+    -- | Security Group IDs to be used on ENI.+    securityGroupIds :: [Prelude.Text],+    -- | Role Arn MediaConnect can assumes to create ENIs in customer\'s account+    roleArn :: Prelude.Text,+    -- | Immutable and has to be a unique against other VpcInterfaces in this+    -- Flow.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VpcInterface' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'networkInterfaceType', 'vpcInterface_networkInterfaceType' - The type of network interface.+--+-- 'networkInterfaceIds', 'vpcInterface_networkInterfaceIds' - IDs of the network interfaces created in customer\'s account by+-- MediaConnect.+--+-- 'subnetId', 'vpcInterface_subnetId' - Subnet must be in the AZ of the Flow+--+-- 'securityGroupIds', 'vpcInterface_securityGroupIds' - Security Group IDs to be used on ENI.+--+-- 'roleArn', 'vpcInterface_roleArn' - Role Arn MediaConnect can assumes to create ENIs in customer\'s account+--+-- 'name', 'vpcInterface_name' - Immutable and has to be a unique against other VpcInterfaces in this+-- Flow.+newVpcInterface ::+  -- | 'networkInterfaceType'+  NetworkInterfaceType ->+  -- | 'subnetId'+  Prelude.Text ->+  -- | 'roleArn'+  Prelude.Text ->+  -- | 'name'+  Prelude.Text ->+  VpcInterface+newVpcInterface+  pNetworkInterfaceType_+  pSubnetId_+  pRoleArn_+  pName_ =+    VpcInterface'+      { networkInterfaceType =+          pNetworkInterfaceType_,+        networkInterfaceIds = Prelude.mempty,+        subnetId = pSubnetId_,+        securityGroupIds = Prelude.mempty,+        roleArn = pRoleArn_,+        name = pName_+      }++-- | The type of network interface.+vpcInterface_networkInterfaceType :: Lens.Lens' VpcInterface NetworkInterfaceType+vpcInterface_networkInterfaceType = Lens.lens (\VpcInterface' {networkInterfaceType} -> networkInterfaceType) (\s@VpcInterface' {} a -> s {networkInterfaceType = a} :: VpcInterface)++-- | IDs of the network interfaces created in customer\'s account by+-- MediaConnect.+vpcInterface_networkInterfaceIds :: Lens.Lens' VpcInterface [Prelude.Text]+vpcInterface_networkInterfaceIds = Lens.lens (\VpcInterface' {networkInterfaceIds} -> networkInterfaceIds) (\s@VpcInterface' {} a -> s {networkInterfaceIds = a} :: VpcInterface) Prelude.. Lens.coerced++-- | Subnet must be in the AZ of the Flow+vpcInterface_subnetId :: Lens.Lens' VpcInterface Prelude.Text+vpcInterface_subnetId = Lens.lens (\VpcInterface' {subnetId} -> subnetId) (\s@VpcInterface' {} a -> s {subnetId = a} :: VpcInterface)++-- | Security Group IDs to be used on ENI.+vpcInterface_securityGroupIds :: Lens.Lens' VpcInterface [Prelude.Text]+vpcInterface_securityGroupIds = Lens.lens (\VpcInterface' {securityGroupIds} -> securityGroupIds) (\s@VpcInterface' {} a -> s {securityGroupIds = a} :: VpcInterface) Prelude.. Lens.coerced++-- | Role Arn MediaConnect can assumes to create ENIs in customer\'s account+vpcInterface_roleArn :: Lens.Lens' VpcInterface Prelude.Text+vpcInterface_roleArn = Lens.lens (\VpcInterface' {roleArn} -> roleArn) (\s@VpcInterface' {} a -> s {roleArn = a} :: VpcInterface)++-- | Immutable and has to be a unique against other VpcInterfaces in this+-- Flow.+vpcInterface_name :: Lens.Lens' VpcInterface Prelude.Text+vpcInterface_name = Lens.lens (\VpcInterface' {name} -> name) (\s@VpcInterface' {} a -> s {name = a} :: VpcInterface)++instance Data.FromJSON VpcInterface where+  parseJSON =+    Data.withObject+      "VpcInterface"+      ( \x ->+          VpcInterface'+            Prelude.<$> (x Data..: "networkInterfaceType")+            Prelude.<*> ( x+                            Data..:? "networkInterfaceIds"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..: "subnetId")+            Prelude.<*> ( x+                            Data..:? "securityGroupIds"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..: "roleArn")+            Prelude.<*> (x Data..: "name")+      )++instance Prelude.Hashable VpcInterface where+  hashWithSalt _salt VpcInterface' {..} =+    _salt+      `Prelude.hashWithSalt` networkInterfaceType+      `Prelude.hashWithSalt` networkInterfaceIds+      `Prelude.hashWithSalt` subnetId+      `Prelude.hashWithSalt` securityGroupIds+      `Prelude.hashWithSalt` roleArn+      `Prelude.hashWithSalt` name++instance Prelude.NFData VpcInterface where+  rnf VpcInterface' {..} =+    Prelude.rnf networkInterfaceType+      `Prelude.seq` Prelude.rnf networkInterfaceIds+      `Prelude.seq` Prelude.rnf subnetId+      `Prelude.seq` Prelude.rnf securityGroupIds+      `Prelude.seq` Prelude.rnf roleArn+      `Prelude.seq` Prelude.rnf name
+ gen/Amazonka/MediaConnect/Types/VpcInterfaceAttachment.hs view
@@ -0,0 +1,81 @@+{-# 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.MediaConnect.Types.VpcInterfaceAttachment+-- 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.MediaConnect.Types.VpcInterfaceAttachment where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The settings for attaching a VPC interface to an output.+--+-- /See:/ 'newVpcInterfaceAttachment' smart constructor.+data VpcInterfaceAttachment = VpcInterfaceAttachment'+  { -- | The name of the VPC interface to use for this output.+    vpcInterfaceName :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VpcInterfaceAttachment' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'vpcInterfaceName', 'vpcInterfaceAttachment_vpcInterfaceName' - The name of the VPC interface to use for this output.+newVpcInterfaceAttachment ::+  VpcInterfaceAttachment+newVpcInterfaceAttachment =+  VpcInterfaceAttachment'+    { vpcInterfaceName =+        Prelude.Nothing+    }++-- | The name of the VPC interface to use for this output.+vpcInterfaceAttachment_vpcInterfaceName :: Lens.Lens' VpcInterfaceAttachment (Prelude.Maybe Prelude.Text)+vpcInterfaceAttachment_vpcInterfaceName = Lens.lens (\VpcInterfaceAttachment' {vpcInterfaceName} -> vpcInterfaceName) (\s@VpcInterfaceAttachment' {} a -> s {vpcInterfaceName = a} :: VpcInterfaceAttachment)++instance Data.FromJSON VpcInterfaceAttachment where+  parseJSON =+    Data.withObject+      "VpcInterfaceAttachment"+      ( \x ->+          VpcInterfaceAttachment'+            Prelude.<$> (x Data..:? "vpcInterfaceName")+      )++instance Prelude.Hashable VpcInterfaceAttachment where+  hashWithSalt _salt VpcInterfaceAttachment' {..} =+    _salt `Prelude.hashWithSalt` vpcInterfaceName++instance Prelude.NFData VpcInterfaceAttachment where+  rnf VpcInterfaceAttachment' {..} =+    Prelude.rnf vpcInterfaceName++instance Data.ToJSON VpcInterfaceAttachment where+  toJSON VpcInterfaceAttachment' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("vpcInterfaceName" Data..=)+              Prelude.<$> vpcInterfaceName+          ]+      )
+ gen/Amazonka/MediaConnect/Types/VpcInterfaceRequest.hs view
@@ -0,0 +1,135 @@+{-# 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.MediaConnect.Types.VpcInterfaceRequest+-- 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.MediaConnect.Types.VpcInterfaceRequest where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaConnect.Types.NetworkInterfaceType+import qualified Amazonka.Prelude as Prelude++-- | Desired VPC Interface for a Flow+--+-- /See:/ 'newVpcInterfaceRequest' smart constructor.+data VpcInterfaceRequest = VpcInterfaceRequest'+  { -- | The type of network interface. If this value is not included in the+    -- request, MediaConnect uses ENA as the networkInterfaceType.+    networkInterfaceType :: Prelude.Maybe NetworkInterfaceType,+    -- | Subnet must be in the AZ of the Flow+    subnetId :: Prelude.Text,+    -- | Security Group IDs to be used on ENI.+    securityGroupIds :: [Prelude.Text],+    -- | Role Arn MediaConnect can assumes to create ENIs in customer\'s account+    roleArn :: Prelude.Text,+    -- | The name of the VPC Interface. This value must be unique within the+    -- current flow.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VpcInterfaceRequest' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'networkInterfaceType', 'vpcInterfaceRequest_networkInterfaceType' - The type of network interface. If this value is not included in the+-- request, MediaConnect uses ENA as the networkInterfaceType.+--+-- 'subnetId', 'vpcInterfaceRequest_subnetId' - Subnet must be in the AZ of the Flow+--+-- 'securityGroupIds', 'vpcInterfaceRequest_securityGroupIds' - Security Group IDs to be used on ENI.+--+-- 'roleArn', 'vpcInterfaceRequest_roleArn' - Role Arn MediaConnect can assumes to create ENIs in customer\'s account+--+-- 'name', 'vpcInterfaceRequest_name' - The name of the VPC Interface. This value must be unique within the+-- current flow.+newVpcInterfaceRequest ::+  -- | 'subnetId'+  Prelude.Text ->+  -- | 'roleArn'+  Prelude.Text ->+  -- | 'name'+  Prelude.Text ->+  VpcInterfaceRequest+newVpcInterfaceRequest pSubnetId_ pRoleArn_ pName_ =+  VpcInterfaceRequest'+    { networkInterfaceType =+        Prelude.Nothing,+      subnetId = pSubnetId_,+      securityGroupIds = Prelude.mempty,+      roleArn = pRoleArn_,+      name = pName_+    }++-- | The type of network interface. If this value is not included in the+-- request, MediaConnect uses ENA as the networkInterfaceType.+vpcInterfaceRequest_networkInterfaceType :: Lens.Lens' VpcInterfaceRequest (Prelude.Maybe NetworkInterfaceType)+vpcInterfaceRequest_networkInterfaceType = Lens.lens (\VpcInterfaceRequest' {networkInterfaceType} -> networkInterfaceType) (\s@VpcInterfaceRequest' {} a -> s {networkInterfaceType = a} :: VpcInterfaceRequest)++-- | Subnet must be in the AZ of the Flow+vpcInterfaceRequest_subnetId :: Lens.Lens' VpcInterfaceRequest Prelude.Text+vpcInterfaceRequest_subnetId = Lens.lens (\VpcInterfaceRequest' {subnetId} -> subnetId) (\s@VpcInterfaceRequest' {} a -> s {subnetId = a} :: VpcInterfaceRequest)++-- | Security Group IDs to be used on ENI.+vpcInterfaceRequest_securityGroupIds :: Lens.Lens' VpcInterfaceRequest [Prelude.Text]+vpcInterfaceRequest_securityGroupIds = Lens.lens (\VpcInterfaceRequest' {securityGroupIds} -> securityGroupIds) (\s@VpcInterfaceRequest' {} a -> s {securityGroupIds = a} :: VpcInterfaceRequest) Prelude.. Lens.coerced++-- | Role Arn MediaConnect can assumes to create ENIs in customer\'s account+vpcInterfaceRequest_roleArn :: Lens.Lens' VpcInterfaceRequest Prelude.Text+vpcInterfaceRequest_roleArn = Lens.lens (\VpcInterfaceRequest' {roleArn} -> roleArn) (\s@VpcInterfaceRequest' {} a -> s {roleArn = a} :: VpcInterfaceRequest)++-- | The name of the VPC Interface. This value must be unique within the+-- current flow.+vpcInterfaceRequest_name :: Lens.Lens' VpcInterfaceRequest Prelude.Text+vpcInterfaceRequest_name = Lens.lens (\VpcInterfaceRequest' {name} -> name) (\s@VpcInterfaceRequest' {} a -> s {name = a} :: VpcInterfaceRequest)++instance Prelude.Hashable VpcInterfaceRequest where+  hashWithSalt _salt VpcInterfaceRequest' {..} =+    _salt+      `Prelude.hashWithSalt` networkInterfaceType+      `Prelude.hashWithSalt` subnetId+      `Prelude.hashWithSalt` securityGroupIds+      `Prelude.hashWithSalt` roleArn+      `Prelude.hashWithSalt` name++instance Prelude.NFData VpcInterfaceRequest where+  rnf VpcInterfaceRequest' {..} =+    Prelude.rnf networkInterfaceType+      `Prelude.seq` Prelude.rnf subnetId+      `Prelude.seq` Prelude.rnf securityGroupIds+      `Prelude.seq` Prelude.rnf roleArn+      `Prelude.seq` Prelude.rnf name++instance Data.ToJSON VpcInterfaceRequest where+  toJSON VpcInterfaceRequest' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("networkInterfaceType" Data..=)+              Prelude.<$> networkInterfaceType,+            Prelude.Just ("subnetId" Data..= subnetId),+            Prelude.Just+              ("securityGroupIds" Data..= securityGroupIds),+            Prelude.Just ("roleArn" Data..= roleArn),+            Prelude.Just ("name" Data..= name)+          ]+      )
+ gen/Amazonka/MediaConnect/UntagResource.hs view
@@ -0,0 +1,143 @@+{-# 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.MediaConnect.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)+--+-- Deletes specified tags from a resource.+module Amazonka.MediaConnect.UntagResource+  ( -- * Creating a Request+    UntagResource (..),+    newUntagResource,++    -- * Request Lenses+    untagResource_tagKeys,+    untagResource_resourceArn,++    -- * Destructuring the Response+    UntagResourceResponse (..),+    newUntagResourceResponse,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaConnect.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUntagResource' smart constructor.+data UntagResource = UntagResource'+  { -- | The keys of the tags to be removed.+    tagKeys :: [Prelude.Text],+    -- | The Amazon Resource Name (ARN) that identifies the AWS Elemental+    -- MediaConnect resource from which to delete tags.+    resourceArn :: 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:+--+-- 'tagKeys', 'untagResource_tagKeys' - The keys of the tags to be removed.+--+-- 'resourceArn', 'untagResource_resourceArn' - The Amazon Resource Name (ARN) that identifies the AWS Elemental+-- MediaConnect resource from which to delete tags.+newUntagResource ::+  -- | 'resourceArn'+  Prelude.Text ->+  UntagResource+newUntagResource pResourceArn_ =+  UntagResource'+    { tagKeys = Prelude.mempty,+      resourceArn = pResourceArn_+    }++-- | The keys of the tags to be removed.+untagResource_tagKeys :: Lens.Lens' UntagResource [Prelude.Text]+untagResource_tagKeys = Lens.lens (\UntagResource' {tagKeys} -> tagKeys) (\s@UntagResource' {} a -> s {tagKeys = a} :: UntagResource) Prelude.. Lens.coerced++-- | The Amazon Resource Name (ARN) that identifies the AWS Elemental+-- MediaConnect resource from which to delete tags.+untagResource_resourceArn :: Lens.Lens' UntagResource Prelude.Text+untagResource_resourceArn = Lens.lens (\UntagResource' {resourceArn} -> resourceArn) (\s@UntagResource' {} a -> s {resourceArn = a} :: UntagResource)++instance Core.AWSRequest UntagResource where+  type+    AWSResponse UntagResource =+      UntagResourceResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveNull UntagResourceResponse'++instance Prelude.Hashable UntagResource where+  hashWithSalt _salt UntagResource' {..} =+    _salt+      `Prelude.hashWithSalt` tagKeys+      `Prelude.hashWithSalt` resourceArn++instance Prelude.NFData UntagResource where+  rnf UntagResource' {..} =+    Prelude.rnf tagKeys+      `Prelude.seq` Prelude.rnf resourceArn++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'+  {+  }+  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.+newUntagResourceResponse ::+  UntagResourceResponse+newUntagResourceResponse = UntagResourceResponse'++instance Prelude.NFData UntagResourceResponse where+  rnf _ = ()
+ gen/Amazonka/MediaConnect/UpdateFlow.hs view
@@ -0,0 +1,192 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaConnect.UpdateFlow+-- 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 flow+module Amazonka.MediaConnect.UpdateFlow+  ( -- * Creating a Request+    UpdateFlow (..),+    newUpdateFlow,++    -- * Request Lenses+    updateFlow_maintenance,+    updateFlow_sourceFailoverConfig,+    updateFlow_flowArn,++    -- * Destructuring the Response+    UpdateFlowResponse (..),+    newUpdateFlowResponse,++    -- * Response Lenses+    updateFlowResponse_flow,+    updateFlowResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaConnect.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | A request to update flow.+--+-- /See:/ 'newUpdateFlow' smart constructor.+data UpdateFlow = UpdateFlow'+  { maintenance :: Prelude.Maybe UpdateMaintenance,+    sourceFailoverConfig :: Prelude.Maybe UpdateFailoverConfig,+    -- | The flow that you want to update.+    flowArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateFlow' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'maintenance', 'updateFlow_maintenance' - Undocumented member.+--+-- 'sourceFailoverConfig', 'updateFlow_sourceFailoverConfig' - Undocumented member.+--+-- 'flowArn', 'updateFlow_flowArn' - The flow that you want to update.+newUpdateFlow ::+  -- | 'flowArn'+  Prelude.Text ->+  UpdateFlow+newUpdateFlow pFlowArn_ =+  UpdateFlow'+    { maintenance = Prelude.Nothing,+      sourceFailoverConfig = Prelude.Nothing,+      flowArn = pFlowArn_+    }++-- | Undocumented member.+updateFlow_maintenance :: Lens.Lens' UpdateFlow (Prelude.Maybe UpdateMaintenance)+updateFlow_maintenance = Lens.lens (\UpdateFlow' {maintenance} -> maintenance) (\s@UpdateFlow' {} a -> s {maintenance = a} :: UpdateFlow)++-- | Undocumented member.+updateFlow_sourceFailoverConfig :: Lens.Lens' UpdateFlow (Prelude.Maybe UpdateFailoverConfig)+updateFlow_sourceFailoverConfig = Lens.lens (\UpdateFlow' {sourceFailoverConfig} -> sourceFailoverConfig) (\s@UpdateFlow' {} a -> s {sourceFailoverConfig = a} :: UpdateFlow)++-- | The flow that you want to update.+updateFlow_flowArn :: Lens.Lens' UpdateFlow Prelude.Text+updateFlow_flowArn = Lens.lens (\UpdateFlow' {flowArn} -> flowArn) (\s@UpdateFlow' {} a -> s {flowArn = a} :: UpdateFlow)++instance Core.AWSRequest UpdateFlow where+  type AWSResponse UpdateFlow = UpdateFlowResponse+  request overrides =+    Request.putJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateFlowResponse'+            Prelude.<$> (x Data..?> "flow")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateFlow where+  hashWithSalt _salt UpdateFlow' {..} =+    _salt+      `Prelude.hashWithSalt` maintenance+      `Prelude.hashWithSalt` sourceFailoverConfig+      `Prelude.hashWithSalt` flowArn++instance Prelude.NFData UpdateFlow where+  rnf UpdateFlow' {..} =+    Prelude.rnf maintenance+      `Prelude.seq` Prelude.rnf sourceFailoverConfig+      `Prelude.seq` Prelude.rnf flowArn++instance Data.ToHeaders UpdateFlow where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateFlow where+  toJSON UpdateFlow' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("maintenance" Data..=) Prelude.<$> maintenance,+            ("sourceFailoverConfig" Data..=)+              Prelude.<$> sourceFailoverConfig+          ]+      )++instance Data.ToPath UpdateFlow where+  toPath UpdateFlow' {..} =+    Prelude.mconcat ["/v1/flows/", Data.toBS flowArn]++instance Data.ToQuery UpdateFlow where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateFlowResponse' smart constructor.+data UpdateFlowResponse = UpdateFlowResponse'+  { flow :: Prelude.Maybe Flow,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateFlowResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'flow', 'updateFlowResponse_flow' - Undocumented member.+--+-- 'httpStatus', 'updateFlowResponse_httpStatus' - The response's http status code.+newUpdateFlowResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateFlowResponse+newUpdateFlowResponse pHttpStatus_ =+  UpdateFlowResponse'+    { flow = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Undocumented member.+updateFlowResponse_flow :: Lens.Lens' UpdateFlowResponse (Prelude.Maybe Flow)+updateFlowResponse_flow = Lens.lens (\UpdateFlowResponse' {flow} -> flow) (\s@UpdateFlowResponse' {} a -> s {flow = a} :: UpdateFlowResponse)++-- | The response's http status code.+updateFlowResponse_httpStatus :: Lens.Lens' UpdateFlowResponse Prelude.Int+updateFlowResponse_httpStatus = Lens.lens (\UpdateFlowResponse' {httpStatus} -> httpStatus) (\s@UpdateFlowResponse' {} a -> s {httpStatus = a} :: UpdateFlowResponse)++instance Prelude.NFData UpdateFlowResponse where+  rnf UpdateFlowResponse' {..} =+    Prelude.rnf flow+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MediaConnect/UpdateFlowEntitlement.hs view
@@ -0,0 +1,285 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.MediaConnect.UpdateFlowEntitlement+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- You can change an entitlement\'s description, subscribers, and+-- encryption. If you change the subscribers, the service will remove the+-- outputs that are are used by the subscribers that are removed.+module Amazonka.MediaConnect.UpdateFlowEntitlement+  ( -- * Creating a Request+    UpdateFlowEntitlement (..),+    newUpdateFlowEntitlement,++    -- * Request Lenses+    updateFlowEntitlement_description,+    updateFlowEntitlement_encryption,+    updateFlowEntitlement_entitlementStatus,+    updateFlowEntitlement_subscribers,+    updateFlowEntitlement_flowArn,+    updateFlowEntitlement_entitlementArn,++    -- * Destructuring the Response+    UpdateFlowEntitlementResponse (..),+    newUpdateFlowEntitlementResponse,++    -- * Response Lenses+    updateFlowEntitlementResponse_entitlement,+    updateFlowEntitlementResponse_flowArn,+    updateFlowEntitlementResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaConnect.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | The entitlement fields that you want to update.+--+-- /See:/ 'newUpdateFlowEntitlement' smart constructor.+data UpdateFlowEntitlement = UpdateFlowEntitlement'+  { -- | A description of the entitlement. This description appears only on the+    -- AWS Elemental MediaConnect console and will not be seen by the+    -- subscriber or end user.+    description :: Prelude.Maybe Prelude.Text,+    -- | The type of encryption that will be used on the output associated with+    -- this entitlement.+    encryption :: Prelude.Maybe UpdateEncryption,+    -- | An indication of whether you want to enable the entitlement to allow+    -- access, or disable it to stop streaming content to the subscriber’s flow+    -- temporarily. If you don’t specify the entitlementStatus field in your+    -- request, MediaConnect leaves the value unchanged.+    entitlementStatus :: Prelude.Maybe EntitlementStatus,+    -- | The AWS account IDs that you want to share your content with. The+    -- receiving accounts (subscribers) will be allowed to create their own+    -- flow using your content as the source.+    subscribers :: Prelude.Maybe [Prelude.Text],+    -- | The flow that is associated with the entitlement that you want to+    -- update.+    flowArn :: Prelude.Text,+    -- | The ARN of the entitlement that you want to update.+    entitlementArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateFlowEntitlement' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'description', 'updateFlowEntitlement_description' - A description of the entitlement. This description appears only on the+-- AWS Elemental MediaConnect console and will not be seen by the+-- subscriber or end user.+--+-- 'encryption', 'updateFlowEntitlement_encryption' - The type of encryption that will be used on the output associated with+-- this entitlement.+--+-- 'entitlementStatus', 'updateFlowEntitlement_entitlementStatus' - An indication of whether you want to enable the entitlement to allow+-- access, or disable it to stop streaming content to the subscriber’s flow+-- temporarily. If you don’t specify the entitlementStatus field in your+-- request, MediaConnect leaves the value unchanged.+--+-- 'subscribers', 'updateFlowEntitlement_subscribers' - The AWS account IDs that you want to share your content with. The+-- receiving accounts (subscribers) will be allowed to create their own+-- flow using your content as the source.+--+-- 'flowArn', 'updateFlowEntitlement_flowArn' - The flow that is associated with the entitlement that you want to+-- update.+--+-- 'entitlementArn', 'updateFlowEntitlement_entitlementArn' - The ARN of the entitlement that you want to update.+newUpdateFlowEntitlement ::+  -- | 'flowArn'+  Prelude.Text ->+  -- | 'entitlementArn'+  Prelude.Text ->+  UpdateFlowEntitlement+newUpdateFlowEntitlement pFlowArn_ pEntitlementArn_ =+  UpdateFlowEntitlement'+    { description =+        Prelude.Nothing,+      encryption = Prelude.Nothing,+      entitlementStatus = Prelude.Nothing,+      subscribers = Prelude.Nothing,+      flowArn = pFlowArn_,+      entitlementArn = pEntitlementArn_+    }++-- | A description of the entitlement. This description appears only on the+-- AWS Elemental MediaConnect console and will not be seen by the+-- subscriber or end user.+updateFlowEntitlement_description :: Lens.Lens' UpdateFlowEntitlement (Prelude.Maybe Prelude.Text)+updateFlowEntitlement_description = Lens.lens (\UpdateFlowEntitlement' {description} -> description) (\s@UpdateFlowEntitlement' {} a -> s {description = a} :: UpdateFlowEntitlement)++-- | The type of encryption that will be used on the output associated with+-- this entitlement.+updateFlowEntitlement_encryption :: Lens.Lens' UpdateFlowEntitlement (Prelude.Maybe UpdateEncryption)+updateFlowEntitlement_encryption = Lens.lens (\UpdateFlowEntitlement' {encryption} -> encryption) (\s@UpdateFlowEntitlement' {} a -> s {encryption = a} :: UpdateFlowEntitlement)++-- | An indication of whether you want to enable the entitlement to allow+-- access, or disable it to stop streaming content to the subscriber’s flow+-- temporarily. If you don’t specify the entitlementStatus field in your+-- request, MediaConnect leaves the value unchanged.+updateFlowEntitlement_entitlementStatus :: Lens.Lens' UpdateFlowEntitlement (Prelude.Maybe EntitlementStatus)+updateFlowEntitlement_entitlementStatus = Lens.lens (\UpdateFlowEntitlement' {entitlementStatus} -> entitlementStatus) (\s@UpdateFlowEntitlement' {} a -> s {entitlementStatus = a} :: UpdateFlowEntitlement)++-- | The AWS account IDs that you want to share your content with. The+-- receiving accounts (subscribers) will be allowed to create their own+-- flow using your content as the source.+updateFlowEntitlement_subscribers :: Lens.Lens' UpdateFlowEntitlement (Prelude.Maybe [Prelude.Text])+updateFlowEntitlement_subscribers = Lens.lens (\UpdateFlowEntitlement' {subscribers} -> subscribers) (\s@UpdateFlowEntitlement' {} a -> s {subscribers = a} :: UpdateFlowEntitlement) Prelude.. Lens.mapping Lens.coerced++-- | The flow that is associated with the entitlement that you want to+-- update.+updateFlowEntitlement_flowArn :: Lens.Lens' UpdateFlowEntitlement Prelude.Text+updateFlowEntitlement_flowArn = Lens.lens (\UpdateFlowEntitlement' {flowArn} -> flowArn) (\s@UpdateFlowEntitlement' {} a -> s {flowArn = a} :: UpdateFlowEntitlement)++-- | The ARN of the entitlement that you want to update.+updateFlowEntitlement_entitlementArn :: Lens.Lens' UpdateFlowEntitlement Prelude.Text+updateFlowEntitlement_entitlementArn = Lens.lens (\UpdateFlowEntitlement' {entitlementArn} -> entitlementArn) (\s@UpdateFlowEntitlement' {} a -> s {entitlementArn = a} :: UpdateFlowEntitlement)++instance Core.AWSRequest UpdateFlowEntitlement where+  type+    AWSResponse UpdateFlowEntitlement =+      UpdateFlowEntitlementResponse+  request overrides =+    Request.putJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateFlowEntitlementResponse'+            Prelude.<$> (x Data..?> "entitlement")+            Prelude.<*> (x Data..?> "flowArn")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateFlowEntitlement where+  hashWithSalt _salt UpdateFlowEntitlement' {..} =+    _salt+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` encryption+      `Prelude.hashWithSalt` entitlementStatus+      `Prelude.hashWithSalt` subscribers+      `Prelude.hashWithSalt` flowArn+      `Prelude.hashWithSalt` entitlementArn++instance Prelude.NFData UpdateFlowEntitlement where+  rnf UpdateFlowEntitlement' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf encryption+      `Prelude.seq` Prelude.rnf entitlementStatus+      `Prelude.seq` Prelude.rnf subscribers+      `Prelude.seq` Prelude.rnf flowArn+      `Prelude.seq` Prelude.rnf entitlementArn++instance Data.ToHeaders UpdateFlowEntitlement where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateFlowEntitlement where+  toJSON UpdateFlowEntitlement' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("description" Data..=) Prelude.<$> description,+            ("encryption" Data..=) Prelude.<$> encryption,+            ("entitlementStatus" Data..=)+              Prelude.<$> entitlementStatus,+            ("subscribers" Data..=) Prelude.<$> subscribers+          ]+      )++instance Data.ToPath UpdateFlowEntitlement where+  toPath UpdateFlowEntitlement' {..} =+    Prelude.mconcat+      [ "/v1/flows/",+        Data.toBS flowArn,+        "/entitlements/",+        Data.toBS entitlementArn+      ]++instance Data.ToQuery UpdateFlowEntitlement where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateFlowEntitlementResponse' smart constructor.+data UpdateFlowEntitlementResponse = UpdateFlowEntitlementResponse'+  { -- | The new configuration of the entitlement that you updated.+    entitlement :: Prelude.Maybe Entitlement,+    -- | The ARN of the flow that this entitlement was granted on.+    flowArn :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateFlowEntitlementResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'entitlement', 'updateFlowEntitlementResponse_entitlement' - The new configuration of the entitlement that you updated.+--+-- 'flowArn', 'updateFlowEntitlementResponse_flowArn' - The ARN of the flow that this entitlement was granted on.+--+-- 'httpStatus', 'updateFlowEntitlementResponse_httpStatus' - The response's http status code.+newUpdateFlowEntitlementResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateFlowEntitlementResponse+newUpdateFlowEntitlementResponse pHttpStatus_ =+  UpdateFlowEntitlementResponse'+    { entitlement =+        Prelude.Nothing,+      flowArn = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The new configuration of the entitlement that you updated.+updateFlowEntitlementResponse_entitlement :: Lens.Lens' UpdateFlowEntitlementResponse (Prelude.Maybe Entitlement)+updateFlowEntitlementResponse_entitlement = Lens.lens (\UpdateFlowEntitlementResponse' {entitlement} -> entitlement) (\s@UpdateFlowEntitlementResponse' {} a -> s {entitlement = a} :: UpdateFlowEntitlementResponse)++-- | The ARN of the flow that this entitlement was granted on.+updateFlowEntitlementResponse_flowArn :: Lens.Lens' UpdateFlowEntitlementResponse (Prelude.Maybe Prelude.Text)+updateFlowEntitlementResponse_flowArn = Lens.lens (\UpdateFlowEntitlementResponse' {flowArn} -> flowArn) (\s@UpdateFlowEntitlementResponse' {} a -> s {flowArn = a} :: UpdateFlowEntitlementResponse)++-- | The response's http status code.+updateFlowEntitlementResponse_httpStatus :: Lens.Lens' UpdateFlowEntitlementResponse Prelude.Int+updateFlowEntitlementResponse_httpStatus = Lens.lens (\UpdateFlowEntitlementResponse' {httpStatus} -> httpStatus) (\s@UpdateFlowEntitlementResponse' {} a -> s {httpStatus = a} :: UpdateFlowEntitlementResponse)++instance Prelude.NFData UpdateFlowEntitlementResponse where+  rnf UpdateFlowEntitlementResponse' {..} =+    Prelude.rnf entitlement+      `Prelude.seq` Prelude.rnf flowArn+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MediaConnect/UpdateFlowMediaStream.hs view
@@ -0,0 +1,278 @@+{-# 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.MediaConnect.UpdateFlowMediaStream+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates an existing media stream.+module Amazonka.MediaConnect.UpdateFlowMediaStream+  ( -- * Creating a Request+    UpdateFlowMediaStream (..),+    newUpdateFlowMediaStream,++    -- * Request Lenses+    updateFlowMediaStream_attributes,+    updateFlowMediaStream_clockRate,+    updateFlowMediaStream_description,+    updateFlowMediaStream_mediaStreamType,+    updateFlowMediaStream_videoFormat,+    updateFlowMediaStream_flowArn,+    updateFlowMediaStream_mediaStreamName,++    -- * Destructuring the Response+    UpdateFlowMediaStreamResponse (..),+    newUpdateFlowMediaStreamResponse,++    -- * Response Lenses+    updateFlowMediaStreamResponse_flowArn,+    updateFlowMediaStreamResponse_mediaStream,+    updateFlowMediaStreamResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaConnect.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | The fields that you want to update in the media stream.+--+-- /See:/ 'newUpdateFlowMediaStream' smart constructor.+data UpdateFlowMediaStream = UpdateFlowMediaStream'+  { -- | The attributes that you want to assign to the media stream.+    attributes :: Prelude.Maybe MediaStreamAttributesRequest,+    -- | The sample rate (in Hz) for the stream. If the media stream type is+    -- video or ancillary data, set this value to 90000. If the media stream+    -- type is audio, set this value to either 48000 or 96000.+    clockRate :: Prelude.Maybe Prelude.Int,+    -- | Description+    description :: Prelude.Maybe Prelude.Text,+    -- | The type of media stream.+    mediaStreamType :: Prelude.Maybe MediaStreamType,+    -- | The resolution of the video.+    videoFormat :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the flow.+    flowArn :: Prelude.Text,+    -- | The name of the media stream that you want to update.+    mediaStreamName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateFlowMediaStream' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'attributes', 'updateFlowMediaStream_attributes' - The attributes that you want to assign to the media stream.+--+-- 'clockRate', 'updateFlowMediaStream_clockRate' - The sample rate (in Hz) for the stream. If the media stream type is+-- video or ancillary data, set this value to 90000. If the media stream+-- type is audio, set this value to either 48000 or 96000.+--+-- 'description', 'updateFlowMediaStream_description' - Description+--+-- 'mediaStreamType', 'updateFlowMediaStream_mediaStreamType' - The type of media stream.+--+-- 'videoFormat', 'updateFlowMediaStream_videoFormat' - The resolution of the video.+--+-- 'flowArn', 'updateFlowMediaStream_flowArn' - The Amazon Resource Name (ARN) of the flow.+--+-- 'mediaStreamName', 'updateFlowMediaStream_mediaStreamName' - The name of the media stream that you want to update.+newUpdateFlowMediaStream ::+  -- | 'flowArn'+  Prelude.Text ->+  -- | 'mediaStreamName'+  Prelude.Text ->+  UpdateFlowMediaStream+newUpdateFlowMediaStream pFlowArn_ pMediaStreamName_ =+  UpdateFlowMediaStream'+    { attributes =+        Prelude.Nothing,+      clockRate = Prelude.Nothing,+      description = Prelude.Nothing,+      mediaStreamType = Prelude.Nothing,+      videoFormat = Prelude.Nothing,+      flowArn = pFlowArn_,+      mediaStreamName = pMediaStreamName_+    }++-- | The attributes that you want to assign to the media stream.+updateFlowMediaStream_attributes :: Lens.Lens' UpdateFlowMediaStream (Prelude.Maybe MediaStreamAttributesRequest)+updateFlowMediaStream_attributes = Lens.lens (\UpdateFlowMediaStream' {attributes} -> attributes) (\s@UpdateFlowMediaStream' {} a -> s {attributes = a} :: UpdateFlowMediaStream)++-- | The sample rate (in Hz) for the stream. If the media stream type is+-- video or ancillary data, set this value to 90000. If the media stream+-- type is audio, set this value to either 48000 or 96000.+updateFlowMediaStream_clockRate :: Lens.Lens' UpdateFlowMediaStream (Prelude.Maybe Prelude.Int)+updateFlowMediaStream_clockRate = Lens.lens (\UpdateFlowMediaStream' {clockRate} -> clockRate) (\s@UpdateFlowMediaStream' {} a -> s {clockRate = a} :: UpdateFlowMediaStream)++-- | Description+updateFlowMediaStream_description :: Lens.Lens' UpdateFlowMediaStream (Prelude.Maybe Prelude.Text)+updateFlowMediaStream_description = Lens.lens (\UpdateFlowMediaStream' {description} -> description) (\s@UpdateFlowMediaStream' {} a -> s {description = a} :: UpdateFlowMediaStream)++-- | The type of media stream.+updateFlowMediaStream_mediaStreamType :: Lens.Lens' UpdateFlowMediaStream (Prelude.Maybe MediaStreamType)+updateFlowMediaStream_mediaStreamType = Lens.lens (\UpdateFlowMediaStream' {mediaStreamType} -> mediaStreamType) (\s@UpdateFlowMediaStream' {} a -> s {mediaStreamType = a} :: UpdateFlowMediaStream)++-- | The resolution of the video.+updateFlowMediaStream_videoFormat :: Lens.Lens' UpdateFlowMediaStream (Prelude.Maybe Prelude.Text)+updateFlowMediaStream_videoFormat = Lens.lens (\UpdateFlowMediaStream' {videoFormat} -> videoFormat) (\s@UpdateFlowMediaStream' {} a -> s {videoFormat = a} :: UpdateFlowMediaStream)++-- | The Amazon Resource Name (ARN) of the flow.+updateFlowMediaStream_flowArn :: Lens.Lens' UpdateFlowMediaStream Prelude.Text+updateFlowMediaStream_flowArn = Lens.lens (\UpdateFlowMediaStream' {flowArn} -> flowArn) (\s@UpdateFlowMediaStream' {} a -> s {flowArn = a} :: UpdateFlowMediaStream)++-- | The name of the media stream that you want to update.+updateFlowMediaStream_mediaStreamName :: Lens.Lens' UpdateFlowMediaStream Prelude.Text+updateFlowMediaStream_mediaStreamName = Lens.lens (\UpdateFlowMediaStream' {mediaStreamName} -> mediaStreamName) (\s@UpdateFlowMediaStream' {} a -> s {mediaStreamName = a} :: UpdateFlowMediaStream)++instance Core.AWSRequest UpdateFlowMediaStream where+  type+    AWSResponse UpdateFlowMediaStream =+      UpdateFlowMediaStreamResponse+  request overrides =+    Request.putJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateFlowMediaStreamResponse'+            Prelude.<$> (x Data..?> "flowArn")+            Prelude.<*> (x Data..?> "mediaStream")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateFlowMediaStream where+  hashWithSalt _salt UpdateFlowMediaStream' {..} =+    _salt+      `Prelude.hashWithSalt` attributes+      `Prelude.hashWithSalt` clockRate+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` mediaStreamType+      `Prelude.hashWithSalt` videoFormat+      `Prelude.hashWithSalt` flowArn+      `Prelude.hashWithSalt` mediaStreamName++instance Prelude.NFData UpdateFlowMediaStream where+  rnf UpdateFlowMediaStream' {..} =+    Prelude.rnf attributes+      `Prelude.seq` Prelude.rnf clockRate+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf mediaStreamType+      `Prelude.seq` Prelude.rnf videoFormat+      `Prelude.seq` Prelude.rnf flowArn+      `Prelude.seq` Prelude.rnf mediaStreamName++instance Data.ToHeaders UpdateFlowMediaStream where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateFlowMediaStream where+  toJSON UpdateFlowMediaStream' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("attributes" Data..=) Prelude.<$> attributes,+            ("clockRate" Data..=) Prelude.<$> clockRate,+            ("description" Data..=) Prelude.<$> description,+            ("mediaStreamType" Data..=)+              Prelude.<$> mediaStreamType,+            ("videoFormat" Data..=) Prelude.<$> videoFormat+          ]+      )++instance Data.ToPath UpdateFlowMediaStream where+  toPath UpdateFlowMediaStream' {..} =+    Prelude.mconcat+      [ "/v1/flows/",+        Data.toBS flowArn,+        "/mediaStreams/",+        Data.toBS mediaStreamName+      ]++instance Data.ToQuery UpdateFlowMediaStream where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateFlowMediaStreamResponse' smart constructor.+data UpdateFlowMediaStreamResponse = UpdateFlowMediaStreamResponse'+  { -- | The ARN of the flow that is associated with the media stream that you+    -- updated.+    flowArn :: Prelude.Maybe Prelude.Text,+    -- | The media stream that you updated.+    mediaStream :: Prelude.Maybe MediaStream,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateFlowMediaStreamResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'flowArn', 'updateFlowMediaStreamResponse_flowArn' - The ARN of the flow that is associated with the media stream that you+-- updated.+--+-- 'mediaStream', 'updateFlowMediaStreamResponse_mediaStream' - The media stream that you updated.+--+-- 'httpStatus', 'updateFlowMediaStreamResponse_httpStatus' - The response's http status code.+newUpdateFlowMediaStreamResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateFlowMediaStreamResponse+newUpdateFlowMediaStreamResponse pHttpStatus_ =+  UpdateFlowMediaStreamResponse'+    { flowArn =+        Prelude.Nothing,+      mediaStream = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The ARN of the flow that is associated with the media stream that you+-- updated.+updateFlowMediaStreamResponse_flowArn :: Lens.Lens' UpdateFlowMediaStreamResponse (Prelude.Maybe Prelude.Text)+updateFlowMediaStreamResponse_flowArn = Lens.lens (\UpdateFlowMediaStreamResponse' {flowArn} -> flowArn) (\s@UpdateFlowMediaStreamResponse' {} a -> s {flowArn = a} :: UpdateFlowMediaStreamResponse)++-- | The media stream that you updated.+updateFlowMediaStreamResponse_mediaStream :: Lens.Lens' UpdateFlowMediaStreamResponse (Prelude.Maybe MediaStream)+updateFlowMediaStreamResponse_mediaStream = Lens.lens (\UpdateFlowMediaStreamResponse' {mediaStream} -> mediaStream) (\s@UpdateFlowMediaStreamResponse' {} a -> s {mediaStream = a} :: UpdateFlowMediaStreamResponse)++-- | The response's http status code.+updateFlowMediaStreamResponse_httpStatus :: Lens.Lens' UpdateFlowMediaStreamResponse Prelude.Int+updateFlowMediaStreamResponse_httpStatus = Lens.lens (\UpdateFlowMediaStreamResponse' {httpStatus} -> httpStatus) (\s@UpdateFlowMediaStreamResponse' {} a -> s {httpStatus = a} :: UpdateFlowMediaStreamResponse)++instance Prelude.NFData UpdateFlowMediaStreamResponse where+  rnf UpdateFlowMediaStreamResponse' {..} =+    Prelude.rnf flowArn+      `Prelude.seq` Prelude.rnf mediaStream+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MediaConnect/UpdateFlowOutput.hs view
@@ -0,0 +1,444 @@+{-# 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.MediaConnect.UpdateFlowOutput+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates an existing flow output.+module Amazonka.MediaConnect.UpdateFlowOutput+  ( -- * Creating a Request+    UpdateFlowOutput (..),+    newUpdateFlowOutput,++    -- * Request Lenses+    updateFlowOutput_cidrAllowList,+    updateFlowOutput_description,+    updateFlowOutput_destination,+    updateFlowOutput_encryption,+    updateFlowOutput_maxLatency,+    updateFlowOutput_mediaStreamOutputConfigurations,+    updateFlowOutput_minLatency,+    updateFlowOutput_port,+    updateFlowOutput_protocol,+    updateFlowOutput_remoteId,+    updateFlowOutput_senderControlPort,+    updateFlowOutput_senderIpAddress,+    updateFlowOutput_smoothingLatency,+    updateFlowOutput_streamId,+    updateFlowOutput_vpcInterfaceAttachment,+    updateFlowOutput_flowArn,+    updateFlowOutput_outputArn,++    -- * Destructuring the Response+    UpdateFlowOutputResponse (..),+    newUpdateFlowOutputResponse,++    -- * Response Lenses+    updateFlowOutputResponse_flowArn,+    updateFlowOutputResponse_output,+    updateFlowOutputResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaConnect.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | The fields that you want to update in the output.+--+-- /See:/ 'newUpdateFlowOutput' smart constructor.+data UpdateFlowOutput = UpdateFlowOutput'+  { -- | The range of IP addresses that should be allowed to initiate output+    -- requests to this flow. These IP addresses should be in the form of a+    -- Classless Inter-Domain Routing (CIDR) block; for example, 10.0.0.0\/16.+    cidrAllowList :: Prelude.Maybe [Prelude.Text],+    -- | A description of the output. This description appears only on the AWS+    -- Elemental MediaConnect console and will not be seen by the end user.+    description :: Prelude.Maybe Prelude.Text,+    -- | The IP address where you want to send the output.+    destination :: Prelude.Maybe Prelude.Text,+    -- | The type of key used for the encryption. If no keyType is provided, the+    -- service will use the default setting (static-key).+    encryption :: Prelude.Maybe UpdateEncryption,+    -- | The maximum latency in milliseconds. This parameter applies only to+    -- RIST-based, Zixi-based, and Fujitsu-based streams.+    maxLatency :: Prelude.Maybe Prelude.Int,+    -- | The media streams that are associated with the output, and the+    -- parameters for those associations.+    mediaStreamOutputConfigurations :: Prelude.Maybe [MediaStreamOutputConfigurationRequest],+    -- | The minimum latency in milliseconds for SRT-based streams. In streams+    -- that use the SRT protocol, this value that you set on your MediaConnect+    -- source or output represents the minimal potential latency of that+    -- connection. The latency of the stream is set to the highest number+    -- between the sender’s minimum latency and the receiver’s minimum latency.+    minLatency :: Prelude.Maybe Prelude.Int,+    -- | The port to use when content is distributed to this output.+    port :: Prelude.Maybe Prelude.Int,+    -- | The protocol to use for the output.+    protocol :: Prelude.Maybe Protocol,+    -- | The remote ID for the Zixi-pull stream.+    remoteId :: Prelude.Maybe Prelude.Text,+    -- | The port that the flow uses to send outbound requests to initiate+    -- connection with the sender.+    senderControlPort :: Prelude.Maybe Prelude.Int,+    -- | The IP address that the flow communicates with to initiate connection+    -- with the sender.+    senderIpAddress :: Prelude.Maybe Prelude.Text,+    -- | The smoothing latency in milliseconds for RIST, RTP, and RTP-FEC+    -- streams.+    smoothingLatency :: Prelude.Maybe Prelude.Int,+    -- | The stream ID that you want to use for this transport. This parameter+    -- applies only to Zixi-based streams.+    streamId :: Prelude.Maybe Prelude.Text,+    -- | The name of the VPC interface attachment to use for this output.+    vpcInterfaceAttachment :: Prelude.Maybe VpcInterfaceAttachment,+    -- | The flow that is associated with the output that you want to update.+    flowArn :: Prelude.Text,+    -- | The ARN of the output that you want to update.+    outputArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateFlowOutput' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'cidrAllowList', 'updateFlowOutput_cidrAllowList' - The range of IP addresses that should be allowed to initiate output+-- requests to this flow. These IP addresses should be in the form of a+-- Classless Inter-Domain Routing (CIDR) block; for example, 10.0.0.0\/16.+--+-- 'description', 'updateFlowOutput_description' - A description of the output. This description appears only on the AWS+-- Elemental MediaConnect console and will not be seen by the end user.+--+-- 'destination', 'updateFlowOutput_destination' - The IP address where you want to send the output.+--+-- 'encryption', 'updateFlowOutput_encryption' - The type of key used for the encryption. If no keyType is provided, the+-- service will use the default setting (static-key).+--+-- 'maxLatency', 'updateFlowOutput_maxLatency' - The maximum latency in milliseconds. This parameter applies only to+-- RIST-based, Zixi-based, and Fujitsu-based streams.+--+-- 'mediaStreamOutputConfigurations', 'updateFlowOutput_mediaStreamOutputConfigurations' - The media streams that are associated with the output, and the+-- parameters for those associations.+--+-- 'minLatency', 'updateFlowOutput_minLatency' - The minimum latency in milliseconds for SRT-based streams. In streams+-- that use the SRT protocol, this value that you set on your MediaConnect+-- source or output represents the minimal potential latency of that+-- connection. The latency of the stream is set to the highest number+-- between the sender’s minimum latency and the receiver’s minimum latency.+--+-- 'port', 'updateFlowOutput_port' - The port to use when content is distributed to this output.+--+-- 'protocol', 'updateFlowOutput_protocol' - The protocol to use for the output.+--+-- 'remoteId', 'updateFlowOutput_remoteId' - The remote ID for the Zixi-pull stream.+--+-- 'senderControlPort', 'updateFlowOutput_senderControlPort' - The port that the flow uses to send outbound requests to initiate+-- connection with the sender.+--+-- 'senderIpAddress', 'updateFlowOutput_senderIpAddress' - The IP address that the flow communicates with to initiate connection+-- with the sender.+--+-- 'smoothingLatency', 'updateFlowOutput_smoothingLatency' - The smoothing latency in milliseconds for RIST, RTP, and RTP-FEC+-- streams.+--+-- 'streamId', 'updateFlowOutput_streamId' - The stream ID that you want to use for this transport. This parameter+-- applies only to Zixi-based streams.+--+-- 'vpcInterfaceAttachment', 'updateFlowOutput_vpcInterfaceAttachment' - The name of the VPC interface attachment to use for this output.+--+-- 'flowArn', 'updateFlowOutput_flowArn' - The flow that is associated with the output that you want to update.+--+-- 'outputArn', 'updateFlowOutput_outputArn' - The ARN of the output that you want to update.+newUpdateFlowOutput ::+  -- | 'flowArn'+  Prelude.Text ->+  -- | 'outputArn'+  Prelude.Text ->+  UpdateFlowOutput+newUpdateFlowOutput pFlowArn_ pOutputArn_ =+  UpdateFlowOutput'+    { cidrAllowList = Prelude.Nothing,+      description = Prelude.Nothing,+      destination = Prelude.Nothing,+      encryption = Prelude.Nothing,+      maxLatency = Prelude.Nothing,+      mediaStreamOutputConfigurations = Prelude.Nothing,+      minLatency = Prelude.Nothing,+      port = Prelude.Nothing,+      protocol = Prelude.Nothing,+      remoteId = Prelude.Nothing,+      senderControlPort = Prelude.Nothing,+      senderIpAddress = Prelude.Nothing,+      smoothingLatency = Prelude.Nothing,+      streamId = Prelude.Nothing,+      vpcInterfaceAttachment = Prelude.Nothing,+      flowArn = pFlowArn_,+      outputArn = pOutputArn_+    }++-- | The range of IP addresses that should be allowed to initiate output+-- requests to this flow. These IP addresses should be in the form of a+-- Classless Inter-Domain Routing (CIDR) block; for example, 10.0.0.0\/16.+updateFlowOutput_cidrAllowList :: Lens.Lens' UpdateFlowOutput (Prelude.Maybe [Prelude.Text])+updateFlowOutput_cidrAllowList = Lens.lens (\UpdateFlowOutput' {cidrAllowList} -> cidrAllowList) (\s@UpdateFlowOutput' {} a -> s {cidrAllowList = a} :: UpdateFlowOutput) Prelude.. Lens.mapping Lens.coerced++-- | A description of the output. This description appears only on the AWS+-- Elemental MediaConnect console and will not be seen by the end user.+updateFlowOutput_description :: Lens.Lens' UpdateFlowOutput (Prelude.Maybe Prelude.Text)+updateFlowOutput_description = Lens.lens (\UpdateFlowOutput' {description} -> description) (\s@UpdateFlowOutput' {} a -> s {description = a} :: UpdateFlowOutput)++-- | The IP address where you want to send the output.+updateFlowOutput_destination :: Lens.Lens' UpdateFlowOutput (Prelude.Maybe Prelude.Text)+updateFlowOutput_destination = Lens.lens (\UpdateFlowOutput' {destination} -> destination) (\s@UpdateFlowOutput' {} a -> s {destination = a} :: UpdateFlowOutput)++-- | The type of key used for the encryption. If no keyType is provided, the+-- service will use the default setting (static-key).+updateFlowOutput_encryption :: Lens.Lens' UpdateFlowOutput (Prelude.Maybe UpdateEncryption)+updateFlowOutput_encryption = Lens.lens (\UpdateFlowOutput' {encryption} -> encryption) (\s@UpdateFlowOutput' {} a -> s {encryption = a} :: UpdateFlowOutput)++-- | The maximum latency in milliseconds. This parameter applies only to+-- RIST-based, Zixi-based, and Fujitsu-based streams.+updateFlowOutput_maxLatency :: Lens.Lens' UpdateFlowOutput (Prelude.Maybe Prelude.Int)+updateFlowOutput_maxLatency = Lens.lens (\UpdateFlowOutput' {maxLatency} -> maxLatency) (\s@UpdateFlowOutput' {} a -> s {maxLatency = a} :: UpdateFlowOutput)++-- | The media streams that are associated with the output, and the+-- parameters for those associations.+updateFlowOutput_mediaStreamOutputConfigurations :: Lens.Lens' UpdateFlowOutput (Prelude.Maybe [MediaStreamOutputConfigurationRequest])+updateFlowOutput_mediaStreamOutputConfigurations = Lens.lens (\UpdateFlowOutput' {mediaStreamOutputConfigurations} -> mediaStreamOutputConfigurations) (\s@UpdateFlowOutput' {} a -> s {mediaStreamOutputConfigurations = a} :: UpdateFlowOutput) Prelude.. Lens.mapping Lens.coerced++-- | The minimum latency in milliseconds for SRT-based streams. In streams+-- that use the SRT protocol, this value that you set on your MediaConnect+-- source or output represents the minimal potential latency of that+-- connection. The latency of the stream is set to the highest number+-- between the sender’s minimum latency and the receiver’s minimum latency.+updateFlowOutput_minLatency :: Lens.Lens' UpdateFlowOutput (Prelude.Maybe Prelude.Int)+updateFlowOutput_minLatency = Lens.lens (\UpdateFlowOutput' {minLatency} -> minLatency) (\s@UpdateFlowOutput' {} a -> s {minLatency = a} :: UpdateFlowOutput)++-- | The port to use when content is distributed to this output.+updateFlowOutput_port :: Lens.Lens' UpdateFlowOutput (Prelude.Maybe Prelude.Int)+updateFlowOutput_port = Lens.lens (\UpdateFlowOutput' {port} -> port) (\s@UpdateFlowOutput' {} a -> s {port = a} :: UpdateFlowOutput)++-- | The protocol to use for the output.+updateFlowOutput_protocol :: Lens.Lens' UpdateFlowOutput (Prelude.Maybe Protocol)+updateFlowOutput_protocol = Lens.lens (\UpdateFlowOutput' {protocol} -> protocol) (\s@UpdateFlowOutput' {} a -> s {protocol = a} :: UpdateFlowOutput)++-- | The remote ID for the Zixi-pull stream.+updateFlowOutput_remoteId :: Lens.Lens' UpdateFlowOutput (Prelude.Maybe Prelude.Text)+updateFlowOutput_remoteId = Lens.lens (\UpdateFlowOutput' {remoteId} -> remoteId) (\s@UpdateFlowOutput' {} a -> s {remoteId = a} :: UpdateFlowOutput)++-- | The port that the flow uses to send outbound requests to initiate+-- connection with the sender.+updateFlowOutput_senderControlPort :: Lens.Lens' UpdateFlowOutput (Prelude.Maybe Prelude.Int)+updateFlowOutput_senderControlPort = Lens.lens (\UpdateFlowOutput' {senderControlPort} -> senderControlPort) (\s@UpdateFlowOutput' {} a -> s {senderControlPort = a} :: UpdateFlowOutput)++-- | The IP address that the flow communicates with to initiate connection+-- with the sender.+updateFlowOutput_senderIpAddress :: Lens.Lens' UpdateFlowOutput (Prelude.Maybe Prelude.Text)+updateFlowOutput_senderIpAddress = Lens.lens (\UpdateFlowOutput' {senderIpAddress} -> senderIpAddress) (\s@UpdateFlowOutput' {} a -> s {senderIpAddress = a} :: UpdateFlowOutput)++-- | The smoothing latency in milliseconds for RIST, RTP, and RTP-FEC+-- streams.+updateFlowOutput_smoothingLatency :: Lens.Lens' UpdateFlowOutput (Prelude.Maybe Prelude.Int)+updateFlowOutput_smoothingLatency = Lens.lens (\UpdateFlowOutput' {smoothingLatency} -> smoothingLatency) (\s@UpdateFlowOutput' {} a -> s {smoothingLatency = a} :: UpdateFlowOutput)++-- | The stream ID that you want to use for this transport. This parameter+-- applies only to Zixi-based streams.+updateFlowOutput_streamId :: Lens.Lens' UpdateFlowOutput (Prelude.Maybe Prelude.Text)+updateFlowOutput_streamId = Lens.lens (\UpdateFlowOutput' {streamId} -> streamId) (\s@UpdateFlowOutput' {} a -> s {streamId = a} :: UpdateFlowOutput)++-- | The name of the VPC interface attachment to use for this output.+updateFlowOutput_vpcInterfaceAttachment :: Lens.Lens' UpdateFlowOutput (Prelude.Maybe VpcInterfaceAttachment)+updateFlowOutput_vpcInterfaceAttachment = Lens.lens (\UpdateFlowOutput' {vpcInterfaceAttachment} -> vpcInterfaceAttachment) (\s@UpdateFlowOutput' {} a -> s {vpcInterfaceAttachment = a} :: UpdateFlowOutput)++-- | The flow that is associated with the output that you want to update.+updateFlowOutput_flowArn :: Lens.Lens' UpdateFlowOutput Prelude.Text+updateFlowOutput_flowArn = Lens.lens (\UpdateFlowOutput' {flowArn} -> flowArn) (\s@UpdateFlowOutput' {} a -> s {flowArn = a} :: UpdateFlowOutput)++-- | The ARN of the output that you want to update.+updateFlowOutput_outputArn :: Lens.Lens' UpdateFlowOutput Prelude.Text+updateFlowOutput_outputArn = Lens.lens (\UpdateFlowOutput' {outputArn} -> outputArn) (\s@UpdateFlowOutput' {} a -> s {outputArn = a} :: UpdateFlowOutput)++instance Core.AWSRequest UpdateFlowOutput where+  type+    AWSResponse UpdateFlowOutput =+      UpdateFlowOutputResponse+  request overrides =+    Request.putJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateFlowOutputResponse'+            Prelude.<$> (x Data..?> "flowArn")+            Prelude.<*> (x Data..?> "output")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateFlowOutput where+  hashWithSalt _salt UpdateFlowOutput' {..} =+    _salt+      `Prelude.hashWithSalt` cidrAllowList+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` destination+      `Prelude.hashWithSalt` encryption+      `Prelude.hashWithSalt` maxLatency+      `Prelude.hashWithSalt` mediaStreamOutputConfigurations+      `Prelude.hashWithSalt` minLatency+      `Prelude.hashWithSalt` port+      `Prelude.hashWithSalt` protocol+      `Prelude.hashWithSalt` remoteId+      `Prelude.hashWithSalt` senderControlPort+      `Prelude.hashWithSalt` senderIpAddress+      `Prelude.hashWithSalt` smoothingLatency+      `Prelude.hashWithSalt` streamId+      `Prelude.hashWithSalt` vpcInterfaceAttachment+      `Prelude.hashWithSalt` flowArn+      `Prelude.hashWithSalt` outputArn++instance Prelude.NFData UpdateFlowOutput where+  rnf UpdateFlowOutput' {..} =+    Prelude.rnf cidrAllowList+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf destination+      `Prelude.seq` Prelude.rnf encryption+      `Prelude.seq` Prelude.rnf maxLatency+      `Prelude.seq` Prelude.rnf mediaStreamOutputConfigurations+      `Prelude.seq` Prelude.rnf minLatency+      `Prelude.seq` Prelude.rnf port+      `Prelude.seq` Prelude.rnf protocol+      `Prelude.seq` Prelude.rnf remoteId+      `Prelude.seq` Prelude.rnf senderControlPort+      `Prelude.seq` Prelude.rnf senderIpAddress+      `Prelude.seq` Prelude.rnf smoothingLatency+      `Prelude.seq` Prelude.rnf streamId+      `Prelude.seq` Prelude.rnf vpcInterfaceAttachment+      `Prelude.seq` Prelude.rnf flowArn+      `Prelude.seq` Prelude.rnf outputArn++instance Data.ToHeaders UpdateFlowOutput where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateFlowOutput where+  toJSON UpdateFlowOutput' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("cidrAllowList" Data..=) Prelude.<$> cidrAllowList,+            ("description" Data..=) Prelude.<$> description,+            ("destination" Data..=) Prelude.<$> destination,+            ("encryption" Data..=) Prelude.<$> encryption,+            ("maxLatency" Data..=) Prelude.<$> maxLatency,+            ("mediaStreamOutputConfigurations" Data..=)+              Prelude.<$> mediaStreamOutputConfigurations,+            ("minLatency" Data..=) Prelude.<$> minLatency,+            ("port" Data..=) Prelude.<$> port,+            ("protocol" Data..=) Prelude.<$> protocol,+            ("remoteId" Data..=) Prelude.<$> remoteId,+            ("senderControlPort" Data..=)+              Prelude.<$> senderControlPort,+            ("senderIpAddress" Data..=)+              Prelude.<$> senderIpAddress,+            ("smoothingLatency" Data..=)+              Prelude.<$> smoothingLatency,+            ("streamId" Data..=) Prelude.<$> streamId,+            ("vpcInterfaceAttachment" Data..=)+              Prelude.<$> vpcInterfaceAttachment+          ]+      )++instance Data.ToPath UpdateFlowOutput where+  toPath UpdateFlowOutput' {..} =+    Prelude.mconcat+      [ "/v1/flows/",+        Data.toBS flowArn,+        "/outputs/",+        Data.toBS outputArn+      ]++instance Data.ToQuery UpdateFlowOutput where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateFlowOutputResponse' smart constructor.+data UpdateFlowOutputResponse = UpdateFlowOutputResponse'+  { -- | The ARN of the flow that is associated with the updated output.+    flowArn :: Prelude.Maybe Prelude.Text,+    -- | The new settings of the output that you updated.+    output :: Prelude.Maybe Output,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateFlowOutputResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'flowArn', 'updateFlowOutputResponse_flowArn' - The ARN of the flow that is associated with the updated output.+--+-- 'output', 'updateFlowOutputResponse_output' - The new settings of the output that you updated.+--+-- 'httpStatus', 'updateFlowOutputResponse_httpStatus' - The response's http status code.+newUpdateFlowOutputResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateFlowOutputResponse+newUpdateFlowOutputResponse pHttpStatus_ =+  UpdateFlowOutputResponse'+    { flowArn =+        Prelude.Nothing,+      output = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The ARN of the flow that is associated with the updated output.+updateFlowOutputResponse_flowArn :: Lens.Lens' UpdateFlowOutputResponse (Prelude.Maybe Prelude.Text)+updateFlowOutputResponse_flowArn = Lens.lens (\UpdateFlowOutputResponse' {flowArn} -> flowArn) (\s@UpdateFlowOutputResponse' {} a -> s {flowArn = a} :: UpdateFlowOutputResponse)++-- | The new settings of the output that you updated.+updateFlowOutputResponse_output :: Lens.Lens' UpdateFlowOutputResponse (Prelude.Maybe Output)+updateFlowOutputResponse_output = Lens.lens (\UpdateFlowOutputResponse' {output} -> output) (\s@UpdateFlowOutputResponse' {} a -> s {output = a} :: UpdateFlowOutputResponse)++-- | The response's http status code.+updateFlowOutputResponse_httpStatus :: Lens.Lens' UpdateFlowOutputResponse Prelude.Int+updateFlowOutputResponse_httpStatus = Lens.lens (\UpdateFlowOutputResponse' {httpStatus} -> httpStatus) (\s@UpdateFlowOutputResponse' {} a -> s {httpStatus = a} :: UpdateFlowOutputResponse)++instance Prelude.NFData UpdateFlowOutputResponse where+  rnf UpdateFlowOutputResponse' {..} =+    Prelude.rnf flowArn+      `Prelude.seq` Prelude.rnf output+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MediaConnect/UpdateFlowSource.hs view
@@ -0,0 +1,475 @@+{-# 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.MediaConnect.UpdateFlowSource+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates the source of a flow.+module Amazonka.MediaConnect.UpdateFlowSource+  ( -- * Creating a Request+    UpdateFlowSource (..),+    newUpdateFlowSource,++    -- * Request Lenses+    updateFlowSource_decryption,+    updateFlowSource_description,+    updateFlowSource_entitlementArn,+    updateFlowSource_ingestPort,+    updateFlowSource_maxBitrate,+    updateFlowSource_maxLatency,+    updateFlowSource_maxSyncBuffer,+    updateFlowSource_mediaStreamSourceConfigurations,+    updateFlowSource_minLatency,+    updateFlowSource_protocol,+    updateFlowSource_senderControlPort,+    updateFlowSource_senderIpAddress,+    updateFlowSource_sourceListenerAddress,+    updateFlowSource_sourceListenerPort,+    updateFlowSource_streamId,+    updateFlowSource_vpcInterfaceName,+    updateFlowSource_whitelistCidr,+    updateFlowSource_flowArn,+    updateFlowSource_sourceArn,++    -- * Destructuring the Response+    UpdateFlowSourceResponse (..),+    newUpdateFlowSourceResponse,++    -- * Response Lenses+    updateFlowSourceResponse_flowArn,+    updateFlowSourceResponse_source,+    updateFlowSourceResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaConnect.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | A request to update the source of a flow.+--+-- /See:/ 'newUpdateFlowSource' smart constructor.+data UpdateFlowSource = UpdateFlowSource'+  { -- | The type of encryption used on the content ingested from this source.+    decryption :: Prelude.Maybe UpdateEncryption,+    -- | A description for the source. This value is not used or seen outside of+    -- the current AWS Elemental MediaConnect account.+    description :: Prelude.Maybe Prelude.Text,+    -- | The ARN of the entitlement that allows you to subscribe to this flow.+    -- The entitlement is set by the flow originator, and the ARN is generated+    -- as part of the originator\'s flow.+    entitlementArn :: Prelude.Maybe Prelude.Text,+    -- | The port that the flow will be listening on for incoming content.+    ingestPort :: Prelude.Maybe Prelude.Int,+    -- | The smoothing max bitrate for RIST, RTP, and RTP-FEC streams.+    maxBitrate :: Prelude.Maybe Prelude.Int,+    -- | The maximum latency in milliseconds. This parameter applies only to+    -- RIST-based, Zixi-based, and Fujitsu-based streams.+    maxLatency :: Prelude.Maybe Prelude.Int,+    -- | The size of the buffer (in milliseconds) to use to sync incoming source+    -- data.+    maxSyncBuffer :: Prelude.Maybe Prelude.Int,+    -- | The media streams that are associated with the source, and the+    -- parameters for those associations.+    mediaStreamSourceConfigurations :: Prelude.Maybe [MediaStreamSourceConfigurationRequest],+    -- | The minimum latency in milliseconds for SRT-based streams. In streams+    -- that use the SRT protocol, this value that you set on your MediaConnect+    -- source or output represents the minimal potential latency of that+    -- connection. The latency of the stream is set to the highest number+    -- between the sender’s minimum latency and the receiver’s minimum latency.+    minLatency :: Prelude.Maybe Prelude.Int,+    -- | The protocol that is used by the source.+    protocol :: Prelude.Maybe Protocol,+    -- | The port that the flow uses to send outbound requests to initiate+    -- connection with the sender.+    senderControlPort :: Prelude.Maybe Prelude.Int,+    -- | The IP address that the flow communicates with to initiate connection+    -- with the sender.+    senderIpAddress :: Prelude.Maybe Prelude.Text,+    -- | Source IP or domain name for SRT-caller protocol.+    sourceListenerAddress :: Prelude.Maybe Prelude.Text,+    -- | Source port for SRT-caller protocol.+    sourceListenerPort :: Prelude.Maybe Prelude.Int,+    -- | The stream ID that you want to use for this transport. This parameter+    -- applies only to Zixi-based streams.+    streamId :: Prelude.Maybe Prelude.Text,+    -- | The name of the VPC interface to use for this source.+    vpcInterfaceName :: Prelude.Maybe Prelude.Text,+    -- | The range of IP addresses that should be allowed to contribute content+    -- to your source. These IP addresses should be in the form of a Classless+    -- Inter-Domain Routing (CIDR) block; for example, 10.0.0.0\/16.+    whitelistCidr :: Prelude.Maybe Prelude.Text,+    -- | The flow that is associated with the source that you want to update.+    flowArn :: Prelude.Text,+    -- | The ARN of the source that you want to update.+    sourceArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateFlowSource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'decryption', 'updateFlowSource_decryption' - The type of encryption used on the content ingested from this source.+--+-- 'description', 'updateFlowSource_description' - A description for the source. This value is not used or seen outside of+-- the current AWS Elemental MediaConnect account.+--+-- 'entitlementArn', 'updateFlowSource_entitlementArn' - The ARN of the entitlement that allows you to subscribe to this flow.+-- The entitlement is set by the flow originator, and the ARN is generated+-- as part of the originator\'s flow.+--+-- 'ingestPort', 'updateFlowSource_ingestPort' - The port that the flow will be listening on for incoming content.+--+-- 'maxBitrate', 'updateFlowSource_maxBitrate' - The smoothing max bitrate for RIST, RTP, and RTP-FEC streams.+--+-- 'maxLatency', 'updateFlowSource_maxLatency' - The maximum latency in milliseconds. This parameter applies only to+-- RIST-based, Zixi-based, and Fujitsu-based streams.+--+-- 'maxSyncBuffer', 'updateFlowSource_maxSyncBuffer' - The size of the buffer (in milliseconds) to use to sync incoming source+-- data.+--+-- 'mediaStreamSourceConfigurations', 'updateFlowSource_mediaStreamSourceConfigurations' - The media streams that are associated with the source, and the+-- parameters for those associations.+--+-- 'minLatency', 'updateFlowSource_minLatency' - The minimum latency in milliseconds for SRT-based streams. In streams+-- that use the SRT protocol, this value that you set on your MediaConnect+-- source or output represents the minimal potential latency of that+-- connection. The latency of the stream is set to the highest number+-- between the sender’s minimum latency and the receiver’s minimum latency.+--+-- 'protocol', 'updateFlowSource_protocol' - The protocol that is used by the source.+--+-- 'senderControlPort', 'updateFlowSource_senderControlPort' - The port that the flow uses to send outbound requests to initiate+-- connection with the sender.+--+-- 'senderIpAddress', 'updateFlowSource_senderIpAddress' - The IP address that the flow communicates with to initiate connection+-- with the sender.+--+-- 'sourceListenerAddress', 'updateFlowSource_sourceListenerAddress' - Source IP or domain name for SRT-caller protocol.+--+-- 'sourceListenerPort', 'updateFlowSource_sourceListenerPort' - Source port for SRT-caller protocol.+--+-- 'streamId', 'updateFlowSource_streamId' - The stream ID that you want to use for this transport. This parameter+-- applies only to Zixi-based streams.+--+-- 'vpcInterfaceName', 'updateFlowSource_vpcInterfaceName' - The name of the VPC interface to use for this source.+--+-- 'whitelistCidr', 'updateFlowSource_whitelistCidr' - The range of IP addresses that should be allowed to contribute content+-- to your source. These IP addresses should be in the form of a Classless+-- Inter-Domain Routing (CIDR) block; for example, 10.0.0.0\/16.+--+-- 'flowArn', 'updateFlowSource_flowArn' - The flow that is associated with the source that you want to update.+--+-- 'sourceArn', 'updateFlowSource_sourceArn' - The ARN of the source that you want to update.+newUpdateFlowSource ::+  -- | 'flowArn'+  Prelude.Text ->+  -- | 'sourceArn'+  Prelude.Text ->+  UpdateFlowSource+newUpdateFlowSource pFlowArn_ pSourceArn_ =+  UpdateFlowSource'+    { decryption = Prelude.Nothing,+      description = Prelude.Nothing,+      entitlementArn = Prelude.Nothing,+      ingestPort = Prelude.Nothing,+      maxBitrate = Prelude.Nothing,+      maxLatency = Prelude.Nothing,+      maxSyncBuffer = Prelude.Nothing,+      mediaStreamSourceConfigurations = Prelude.Nothing,+      minLatency = Prelude.Nothing,+      protocol = Prelude.Nothing,+      senderControlPort = Prelude.Nothing,+      senderIpAddress = Prelude.Nothing,+      sourceListenerAddress = Prelude.Nothing,+      sourceListenerPort = Prelude.Nothing,+      streamId = Prelude.Nothing,+      vpcInterfaceName = Prelude.Nothing,+      whitelistCidr = Prelude.Nothing,+      flowArn = pFlowArn_,+      sourceArn = pSourceArn_+    }++-- | The type of encryption used on the content ingested from this source.+updateFlowSource_decryption :: Lens.Lens' UpdateFlowSource (Prelude.Maybe UpdateEncryption)+updateFlowSource_decryption = Lens.lens (\UpdateFlowSource' {decryption} -> decryption) (\s@UpdateFlowSource' {} a -> s {decryption = a} :: UpdateFlowSource)++-- | A description for the source. This value is not used or seen outside of+-- the current AWS Elemental MediaConnect account.+updateFlowSource_description :: Lens.Lens' UpdateFlowSource (Prelude.Maybe Prelude.Text)+updateFlowSource_description = Lens.lens (\UpdateFlowSource' {description} -> description) (\s@UpdateFlowSource' {} a -> s {description = a} :: UpdateFlowSource)++-- | The ARN of the entitlement that allows you to subscribe to this flow.+-- The entitlement is set by the flow originator, and the ARN is generated+-- as part of the originator\'s flow.+updateFlowSource_entitlementArn :: Lens.Lens' UpdateFlowSource (Prelude.Maybe Prelude.Text)+updateFlowSource_entitlementArn = Lens.lens (\UpdateFlowSource' {entitlementArn} -> entitlementArn) (\s@UpdateFlowSource' {} a -> s {entitlementArn = a} :: UpdateFlowSource)++-- | The port that the flow will be listening on for incoming content.+updateFlowSource_ingestPort :: Lens.Lens' UpdateFlowSource (Prelude.Maybe Prelude.Int)+updateFlowSource_ingestPort = Lens.lens (\UpdateFlowSource' {ingestPort} -> ingestPort) (\s@UpdateFlowSource' {} a -> s {ingestPort = a} :: UpdateFlowSource)++-- | The smoothing max bitrate for RIST, RTP, and RTP-FEC streams.+updateFlowSource_maxBitrate :: Lens.Lens' UpdateFlowSource (Prelude.Maybe Prelude.Int)+updateFlowSource_maxBitrate = Lens.lens (\UpdateFlowSource' {maxBitrate} -> maxBitrate) (\s@UpdateFlowSource' {} a -> s {maxBitrate = a} :: UpdateFlowSource)++-- | The maximum latency in milliseconds. This parameter applies only to+-- RIST-based, Zixi-based, and Fujitsu-based streams.+updateFlowSource_maxLatency :: Lens.Lens' UpdateFlowSource (Prelude.Maybe Prelude.Int)+updateFlowSource_maxLatency = Lens.lens (\UpdateFlowSource' {maxLatency} -> maxLatency) (\s@UpdateFlowSource' {} a -> s {maxLatency = a} :: UpdateFlowSource)++-- | The size of the buffer (in milliseconds) to use to sync incoming source+-- data.+updateFlowSource_maxSyncBuffer :: Lens.Lens' UpdateFlowSource (Prelude.Maybe Prelude.Int)+updateFlowSource_maxSyncBuffer = Lens.lens (\UpdateFlowSource' {maxSyncBuffer} -> maxSyncBuffer) (\s@UpdateFlowSource' {} a -> s {maxSyncBuffer = a} :: UpdateFlowSource)++-- | The media streams that are associated with the source, and the+-- parameters for those associations.+updateFlowSource_mediaStreamSourceConfigurations :: Lens.Lens' UpdateFlowSource (Prelude.Maybe [MediaStreamSourceConfigurationRequest])+updateFlowSource_mediaStreamSourceConfigurations = Lens.lens (\UpdateFlowSource' {mediaStreamSourceConfigurations} -> mediaStreamSourceConfigurations) (\s@UpdateFlowSource' {} a -> s {mediaStreamSourceConfigurations = a} :: UpdateFlowSource) Prelude.. Lens.mapping Lens.coerced++-- | The minimum latency in milliseconds for SRT-based streams. In streams+-- that use the SRT protocol, this value that you set on your MediaConnect+-- source or output represents the minimal potential latency of that+-- connection. The latency of the stream is set to the highest number+-- between the sender’s minimum latency and the receiver’s minimum latency.+updateFlowSource_minLatency :: Lens.Lens' UpdateFlowSource (Prelude.Maybe Prelude.Int)+updateFlowSource_minLatency = Lens.lens (\UpdateFlowSource' {minLatency} -> minLatency) (\s@UpdateFlowSource' {} a -> s {minLatency = a} :: UpdateFlowSource)++-- | The protocol that is used by the source.+updateFlowSource_protocol :: Lens.Lens' UpdateFlowSource (Prelude.Maybe Protocol)+updateFlowSource_protocol = Lens.lens (\UpdateFlowSource' {protocol} -> protocol) (\s@UpdateFlowSource' {} a -> s {protocol = a} :: UpdateFlowSource)++-- | The port that the flow uses to send outbound requests to initiate+-- connection with the sender.+updateFlowSource_senderControlPort :: Lens.Lens' UpdateFlowSource (Prelude.Maybe Prelude.Int)+updateFlowSource_senderControlPort = Lens.lens (\UpdateFlowSource' {senderControlPort} -> senderControlPort) (\s@UpdateFlowSource' {} a -> s {senderControlPort = a} :: UpdateFlowSource)++-- | The IP address that the flow communicates with to initiate connection+-- with the sender.+updateFlowSource_senderIpAddress :: Lens.Lens' UpdateFlowSource (Prelude.Maybe Prelude.Text)+updateFlowSource_senderIpAddress = Lens.lens (\UpdateFlowSource' {senderIpAddress} -> senderIpAddress) (\s@UpdateFlowSource' {} a -> s {senderIpAddress = a} :: UpdateFlowSource)++-- | Source IP or domain name for SRT-caller protocol.+updateFlowSource_sourceListenerAddress :: Lens.Lens' UpdateFlowSource (Prelude.Maybe Prelude.Text)+updateFlowSource_sourceListenerAddress = Lens.lens (\UpdateFlowSource' {sourceListenerAddress} -> sourceListenerAddress) (\s@UpdateFlowSource' {} a -> s {sourceListenerAddress = a} :: UpdateFlowSource)++-- | Source port for SRT-caller protocol.+updateFlowSource_sourceListenerPort :: Lens.Lens' UpdateFlowSource (Prelude.Maybe Prelude.Int)+updateFlowSource_sourceListenerPort = Lens.lens (\UpdateFlowSource' {sourceListenerPort} -> sourceListenerPort) (\s@UpdateFlowSource' {} a -> s {sourceListenerPort = a} :: UpdateFlowSource)++-- | The stream ID that you want to use for this transport. This parameter+-- applies only to Zixi-based streams.+updateFlowSource_streamId :: Lens.Lens' UpdateFlowSource (Prelude.Maybe Prelude.Text)+updateFlowSource_streamId = Lens.lens (\UpdateFlowSource' {streamId} -> streamId) (\s@UpdateFlowSource' {} a -> s {streamId = a} :: UpdateFlowSource)++-- | The name of the VPC interface to use for this source.+updateFlowSource_vpcInterfaceName :: Lens.Lens' UpdateFlowSource (Prelude.Maybe Prelude.Text)+updateFlowSource_vpcInterfaceName = Lens.lens (\UpdateFlowSource' {vpcInterfaceName} -> vpcInterfaceName) (\s@UpdateFlowSource' {} a -> s {vpcInterfaceName = a} :: UpdateFlowSource)++-- | The range of IP addresses that should be allowed to contribute content+-- to your source. These IP addresses should be in the form of a Classless+-- Inter-Domain Routing (CIDR) block; for example, 10.0.0.0\/16.+updateFlowSource_whitelistCidr :: Lens.Lens' UpdateFlowSource (Prelude.Maybe Prelude.Text)+updateFlowSource_whitelistCidr = Lens.lens (\UpdateFlowSource' {whitelistCidr} -> whitelistCidr) (\s@UpdateFlowSource' {} a -> s {whitelistCidr = a} :: UpdateFlowSource)++-- | The flow that is associated with the source that you want to update.+updateFlowSource_flowArn :: Lens.Lens' UpdateFlowSource Prelude.Text+updateFlowSource_flowArn = Lens.lens (\UpdateFlowSource' {flowArn} -> flowArn) (\s@UpdateFlowSource' {} a -> s {flowArn = a} :: UpdateFlowSource)++-- | The ARN of the source that you want to update.+updateFlowSource_sourceArn :: Lens.Lens' UpdateFlowSource Prelude.Text+updateFlowSource_sourceArn = Lens.lens (\UpdateFlowSource' {sourceArn} -> sourceArn) (\s@UpdateFlowSource' {} a -> s {sourceArn = a} :: UpdateFlowSource)++instance Core.AWSRequest UpdateFlowSource where+  type+    AWSResponse UpdateFlowSource =+      UpdateFlowSourceResponse+  request overrides =+    Request.putJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateFlowSourceResponse'+            Prelude.<$> (x Data..?> "flowArn")+            Prelude.<*> (x Data..?> "source")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateFlowSource where+  hashWithSalt _salt UpdateFlowSource' {..} =+    _salt+      `Prelude.hashWithSalt` decryption+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` entitlementArn+      `Prelude.hashWithSalt` ingestPort+      `Prelude.hashWithSalt` maxBitrate+      `Prelude.hashWithSalt` maxLatency+      `Prelude.hashWithSalt` maxSyncBuffer+      `Prelude.hashWithSalt` mediaStreamSourceConfigurations+      `Prelude.hashWithSalt` minLatency+      `Prelude.hashWithSalt` protocol+      `Prelude.hashWithSalt` senderControlPort+      `Prelude.hashWithSalt` senderIpAddress+      `Prelude.hashWithSalt` sourceListenerAddress+      `Prelude.hashWithSalt` sourceListenerPort+      `Prelude.hashWithSalt` streamId+      `Prelude.hashWithSalt` vpcInterfaceName+      `Prelude.hashWithSalt` whitelistCidr+      `Prelude.hashWithSalt` flowArn+      `Prelude.hashWithSalt` sourceArn++instance Prelude.NFData UpdateFlowSource where+  rnf UpdateFlowSource' {..} =+    Prelude.rnf decryption+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf entitlementArn+      `Prelude.seq` Prelude.rnf ingestPort+      `Prelude.seq` Prelude.rnf maxBitrate+      `Prelude.seq` Prelude.rnf maxLatency+      `Prelude.seq` Prelude.rnf maxSyncBuffer+      `Prelude.seq` Prelude.rnf mediaStreamSourceConfigurations+      `Prelude.seq` Prelude.rnf minLatency+      `Prelude.seq` Prelude.rnf protocol+      `Prelude.seq` Prelude.rnf senderControlPort+      `Prelude.seq` Prelude.rnf senderIpAddress+      `Prelude.seq` Prelude.rnf sourceListenerAddress+      `Prelude.seq` Prelude.rnf sourceListenerPort+      `Prelude.seq` Prelude.rnf streamId+      `Prelude.seq` Prelude.rnf vpcInterfaceName+      `Prelude.seq` Prelude.rnf whitelistCidr+      `Prelude.seq` Prelude.rnf flowArn+      `Prelude.seq` Prelude.rnf sourceArn++instance Data.ToHeaders UpdateFlowSource where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateFlowSource where+  toJSON UpdateFlowSource' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("decryption" Data..=) Prelude.<$> decryption,+            ("description" Data..=) Prelude.<$> description,+            ("entitlementArn" Data..=)+              Prelude.<$> entitlementArn,+            ("ingestPort" Data..=) Prelude.<$> ingestPort,+            ("maxBitrate" Data..=) Prelude.<$> maxBitrate,+            ("maxLatency" Data..=) Prelude.<$> maxLatency,+            ("maxSyncBuffer" Data..=) Prelude.<$> maxSyncBuffer,+            ("mediaStreamSourceConfigurations" Data..=)+              Prelude.<$> mediaStreamSourceConfigurations,+            ("minLatency" Data..=) Prelude.<$> minLatency,+            ("protocol" Data..=) Prelude.<$> protocol,+            ("senderControlPort" Data..=)+              Prelude.<$> senderControlPort,+            ("senderIpAddress" Data..=)+              Prelude.<$> senderIpAddress,+            ("sourceListenerAddress" Data..=)+              Prelude.<$> sourceListenerAddress,+            ("sourceListenerPort" Data..=)+              Prelude.<$> sourceListenerPort,+            ("streamId" Data..=) Prelude.<$> streamId,+            ("vpcInterfaceName" Data..=)+              Prelude.<$> vpcInterfaceName,+            ("whitelistCidr" Data..=) Prelude.<$> whitelistCidr+          ]+      )++instance Data.ToPath UpdateFlowSource where+  toPath UpdateFlowSource' {..} =+    Prelude.mconcat+      [ "/v1/flows/",+        Data.toBS flowArn,+        "/source/",+        Data.toBS sourceArn+      ]++instance Data.ToQuery UpdateFlowSource where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateFlowSourceResponse' smart constructor.+data UpdateFlowSourceResponse = UpdateFlowSourceResponse'+  { -- | The ARN of the flow that you want to update.+    flowArn :: Prelude.Maybe Prelude.Text,+    -- | The settings for the source of the flow.+    source :: Prelude.Maybe Source,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateFlowSourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'flowArn', 'updateFlowSourceResponse_flowArn' - The ARN of the flow that you want to update.+--+-- 'source', 'updateFlowSourceResponse_source' - The settings for the source of the flow.+--+-- 'httpStatus', 'updateFlowSourceResponse_httpStatus' - The response's http status code.+newUpdateFlowSourceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateFlowSourceResponse+newUpdateFlowSourceResponse pHttpStatus_ =+  UpdateFlowSourceResponse'+    { flowArn =+        Prelude.Nothing,+      source = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The ARN of the flow that you want to update.+updateFlowSourceResponse_flowArn :: Lens.Lens' UpdateFlowSourceResponse (Prelude.Maybe Prelude.Text)+updateFlowSourceResponse_flowArn = Lens.lens (\UpdateFlowSourceResponse' {flowArn} -> flowArn) (\s@UpdateFlowSourceResponse' {} a -> s {flowArn = a} :: UpdateFlowSourceResponse)++-- | The settings for the source of the flow.+updateFlowSourceResponse_source :: Lens.Lens' UpdateFlowSourceResponse (Prelude.Maybe Source)+updateFlowSourceResponse_source = Lens.lens (\UpdateFlowSourceResponse' {source} -> source) (\s@UpdateFlowSourceResponse' {} a -> s {source = a} :: UpdateFlowSourceResponse)++-- | The response's http status code.+updateFlowSourceResponse_httpStatus :: Lens.Lens' UpdateFlowSourceResponse Prelude.Int+updateFlowSourceResponse_httpStatus = Lens.lens (\UpdateFlowSourceResponse' {httpStatus} -> httpStatus) (\s@UpdateFlowSourceResponse' {} a -> s {httpStatus = a} :: UpdateFlowSourceResponse)++instance Prelude.NFData UpdateFlowSourceResponse where+  rnf UpdateFlowSourceResponse' {..} =+    Prelude.rnf flowArn+      `Prelude.seq` Prelude.rnf source+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/MediaConnect/Waiters.hs view
@@ -0,0 +1,137 @@+{-# 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.MediaConnect.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.MediaConnect.Waiters where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.MediaConnect.DescribeFlow+import Amazonka.MediaConnect.Lens+import Amazonka.MediaConnect.Types+import qualified Amazonka.Prelude as Prelude++-- | Polls 'Amazonka.MediaConnect.DescribeFlow' every 3 seconds until a successful state is reached. An error is returned after 40 failed checks.+newFlowActive :: Core.Wait DescribeFlow+newFlowActive =+  Core.Wait+    { Core.name = "FlowActive",+      Core.attempts = 40,+      Core.delay = 3,+      Core.acceptors =+        [ Core.matchAll+            "ACTIVE"+            Core.AcceptSuccess+            ( describeFlowResponse_flow+                Prelude.. Lens._Just+                Prelude.. flow_status+                Prelude.. Lens.to Data.toTextCI+            ),+          Core.matchAll+            "STARTING"+            Core.AcceptRetry+            ( describeFlowResponse_flow+                Prelude.. Lens._Just+                Prelude.. flow_status+                Prelude.. Lens.to Data.toTextCI+            ),+          Core.matchAll+            "UPDATING"+            Core.AcceptRetry+            ( describeFlowResponse_flow+                Prelude.. Lens._Just+                Prelude.. flow_status+                Prelude.. Lens.to Data.toTextCI+            ),+          Core.matchStatus 500 Core.AcceptRetry,+          Core.matchStatus 503 Core.AcceptRetry,+          Core.matchAll+            "ERROR"+            Core.AcceptFailure+            ( describeFlowResponse_flow+                Prelude.. Lens._Just+                Prelude.. flow_status+                Prelude.. Lens.to Data.toTextCI+            )+        ]+    }++-- | Polls 'Amazonka.MediaConnect.DescribeFlow' every 3 seconds until a successful state is reached. An error is returned after 40 failed checks.+newFlowDeleted :: Core.Wait DescribeFlow+newFlowDeleted =+  Core.Wait+    { Core.name = "FlowDeleted",+      Core.attempts = 40,+      Core.delay = 3,+      Core.acceptors =+        [ Core.matchStatus 404 Core.AcceptSuccess,+          Core.matchAll+            "DELETING"+            Core.AcceptRetry+            ( describeFlowResponse_flow+                Prelude.. Lens._Just+                Prelude.. flow_status+                Prelude.. Lens.to Data.toTextCI+            ),+          Core.matchStatus 500 Core.AcceptRetry,+          Core.matchStatus 503 Core.AcceptRetry,+          Core.matchAll+            "ERROR"+            Core.AcceptFailure+            ( describeFlowResponse_flow+                Prelude.. Lens._Just+                Prelude.. flow_status+                Prelude.. Lens.to Data.toTextCI+            )+        ]+    }++-- | Polls 'Amazonka.MediaConnect.DescribeFlow' every 3 seconds until a successful state is reached. An error is returned after 40 failed checks.+newFlowStandby :: Core.Wait DescribeFlow+newFlowStandby =+  Core.Wait+    { Core.name = "FlowStandby",+      Core.attempts = 40,+      Core.delay = 3,+      Core.acceptors =+        [ Core.matchAll+            "STANDBY"+            Core.AcceptSuccess+            ( describeFlowResponse_flow+                Prelude.. Lens._Just+                Prelude.. flow_status+                Prelude.. Lens.to Data.toTextCI+            ),+          Core.matchAll+            "STOPPING"+            Core.AcceptRetry+            ( describeFlowResponse_flow+                Prelude.. Lens._Just+                Prelude.. flow_status+                Prelude.. Lens.to Data.toTextCI+            ),+          Core.matchStatus 500 Core.AcceptRetry,+          Core.matchStatus 503 Core.AcceptRetry,+          Core.matchAll+            "ERROR"+            Core.AcceptFailure+            ( describeFlowResponse_flow+                Prelude.. Lens._Just+                Prelude.. flow_status+                Prelude.. Lens.to Data.toTextCI+            )+        ]+    }
+ 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.MediaConnect+import Test.Amazonka.MediaConnect.Internal+import Test.Tasty++main :: IO ()+main =+  defaultMain $+    testGroup+      "MediaConnect"+      [ testGroup "tests" tests,+        testGroup "fixtures" fixtures+      ]
+ test/Test/Amazonka/Gen/MediaConnect.hs view
@@ -0,0 +1,638 @@+{-# 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.MediaConnect+-- 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.MediaConnect where++import Amazonka.MediaConnect+import qualified Data.Proxy as Proxy+import Test.Amazonka.Fixture+import Test.Amazonka.MediaConnect.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"+--         [ requestAddFlowMediaStreams $+--             newAddFlowMediaStreams+--+--         , requestAddFlowOutputs $+--             newAddFlowOutputs+--+--         , requestAddFlowSources $+--             newAddFlowSources+--+--         , requestAddFlowVpcInterfaces $+--             newAddFlowVpcInterfaces+--+--         , requestCreateFlow $+--             newCreateFlow+--+--         , requestDeleteFlow $+--             newDeleteFlow+--+--         , requestDescribeFlow $+--             newDescribeFlow+--+--         , requestDescribeOffering $+--             newDescribeOffering+--+--         , requestDescribeReservation $+--             newDescribeReservation+--+--         , requestGrantFlowEntitlements $+--             newGrantFlowEntitlements+--+--         , requestListEntitlements $+--             newListEntitlements+--+--         , requestListFlows $+--             newListFlows+--+--         , requestListOfferings $+--             newListOfferings+--+--         , requestListReservations $+--             newListReservations+--+--         , requestListTagsForResource $+--             newListTagsForResource+--+--         , requestPurchaseOffering $+--             newPurchaseOffering+--+--         , requestRemoveFlowMediaStream $+--             newRemoveFlowMediaStream+--+--         , requestRemoveFlowOutput $+--             newRemoveFlowOutput+--+--         , requestRemoveFlowSource $+--             newRemoveFlowSource+--+--         , requestRemoveFlowVpcInterface $+--             newRemoveFlowVpcInterface+--+--         , requestRevokeFlowEntitlement $+--             newRevokeFlowEntitlement+--+--         , requestStartFlow $+--             newStartFlow+--+--         , requestStopFlow $+--             newStopFlow+--+--         , requestTagResource $+--             newTagResource+--+--         , requestUntagResource $+--             newUntagResource+--+--         , requestUpdateFlow $+--             newUpdateFlow+--+--         , requestUpdateFlowEntitlement $+--             newUpdateFlowEntitlement+--+--         , requestUpdateFlowMediaStream $+--             newUpdateFlowMediaStream+--+--         , requestUpdateFlowOutput $+--             newUpdateFlowOutput+--+--         , requestUpdateFlowSource $+--             newUpdateFlowSource+--+--           ]++--     , testGroup "response"+--         [ responseAddFlowMediaStreams $+--             newAddFlowMediaStreamsResponse+--+--         , responseAddFlowOutputs $+--             newAddFlowOutputsResponse+--+--         , responseAddFlowSources $+--             newAddFlowSourcesResponse+--+--         , responseAddFlowVpcInterfaces $+--             newAddFlowVpcInterfacesResponse+--+--         , responseCreateFlow $+--             newCreateFlowResponse+--+--         , responseDeleteFlow $+--             newDeleteFlowResponse+--+--         , responseDescribeFlow $+--             newDescribeFlowResponse+--+--         , responseDescribeOffering $+--             newDescribeOfferingResponse+--+--         , responseDescribeReservation $+--             newDescribeReservationResponse+--+--         , responseGrantFlowEntitlements $+--             newGrantFlowEntitlementsResponse+--+--         , responseListEntitlements $+--             newListEntitlementsResponse+--+--         , responseListFlows $+--             newListFlowsResponse+--+--         , responseListOfferings $+--             newListOfferingsResponse+--+--         , responseListReservations $+--             newListReservationsResponse+--+--         , responseListTagsForResource $+--             newListTagsForResourceResponse+--+--         , responsePurchaseOffering $+--             newPurchaseOfferingResponse+--+--         , responseRemoveFlowMediaStream $+--             newRemoveFlowMediaStreamResponse+--+--         , responseRemoveFlowOutput $+--             newRemoveFlowOutputResponse+--+--         , responseRemoveFlowSource $+--             newRemoveFlowSourceResponse+--+--         , responseRemoveFlowVpcInterface $+--             newRemoveFlowVpcInterfaceResponse+--+--         , responseRevokeFlowEntitlement $+--             newRevokeFlowEntitlementResponse+--+--         , responseStartFlow $+--             newStartFlowResponse+--+--         , responseStopFlow $+--             newStopFlowResponse+--+--         , responseTagResource $+--             newTagResourceResponse+--+--         , responseUntagResource $+--             newUntagResourceResponse+--+--         , responseUpdateFlow $+--             newUpdateFlowResponse+--+--         , responseUpdateFlowEntitlement $+--             newUpdateFlowEntitlementResponse+--+--         , responseUpdateFlowMediaStream $+--             newUpdateFlowMediaStreamResponse+--+--         , responseUpdateFlowOutput $+--             newUpdateFlowOutputResponse+--+--         , responseUpdateFlowSource $+--             newUpdateFlowSourceResponse+--+--           ]+--     ]++-- Requests++requestAddFlowMediaStreams :: AddFlowMediaStreams -> TestTree+requestAddFlowMediaStreams =+  req+    "AddFlowMediaStreams"+    "fixture/AddFlowMediaStreams.yaml"++requestAddFlowOutputs :: AddFlowOutputs -> TestTree+requestAddFlowOutputs =+  req+    "AddFlowOutputs"+    "fixture/AddFlowOutputs.yaml"++requestAddFlowSources :: AddFlowSources -> TestTree+requestAddFlowSources =+  req+    "AddFlowSources"+    "fixture/AddFlowSources.yaml"++requestAddFlowVpcInterfaces :: AddFlowVpcInterfaces -> TestTree+requestAddFlowVpcInterfaces =+  req+    "AddFlowVpcInterfaces"+    "fixture/AddFlowVpcInterfaces.yaml"++requestCreateFlow :: CreateFlow -> TestTree+requestCreateFlow =+  req+    "CreateFlow"+    "fixture/CreateFlow.yaml"++requestDeleteFlow :: DeleteFlow -> TestTree+requestDeleteFlow =+  req+    "DeleteFlow"+    "fixture/DeleteFlow.yaml"++requestDescribeFlow :: DescribeFlow -> TestTree+requestDescribeFlow =+  req+    "DescribeFlow"+    "fixture/DescribeFlow.yaml"++requestDescribeOffering :: DescribeOffering -> TestTree+requestDescribeOffering =+  req+    "DescribeOffering"+    "fixture/DescribeOffering.yaml"++requestDescribeReservation :: DescribeReservation -> TestTree+requestDescribeReservation =+  req+    "DescribeReservation"+    "fixture/DescribeReservation.yaml"++requestGrantFlowEntitlements :: GrantFlowEntitlements -> TestTree+requestGrantFlowEntitlements =+  req+    "GrantFlowEntitlements"+    "fixture/GrantFlowEntitlements.yaml"++requestListEntitlements :: ListEntitlements -> TestTree+requestListEntitlements =+  req+    "ListEntitlements"+    "fixture/ListEntitlements.yaml"++requestListFlows :: ListFlows -> TestTree+requestListFlows =+  req+    "ListFlows"+    "fixture/ListFlows.yaml"++requestListOfferings :: ListOfferings -> TestTree+requestListOfferings =+  req+    "ListOfferings"+    "fixture/ListOfferings.yaml"++requestListReservations :: ListReservations -> TestTree+requestListReservations =+  req+    "ListReservations"+    "fixture/ListReservations.yaml"++requestListTagsForResource :: ListTagsForResource -> TestTree+requestListTagsForResource =+  req+    "ListTagsForResource"+    "fixture/ListTagsForResource.yaml"++requestPurchaseOffering :: PurchaseOffering -> TestTree+requestPurchaseOffering =+  req+    "PurchaseOffering"+    "fixture/PurchaseOffering.yaml"++requestRemoveFlowMediaStream :: RemoveFlowMediaStream -> TestTree+requestRemoveFlowMediaStream =+  req+    "RemoveFlowMediaStream"+    "fixture/RemoveFlowMediaStream.yaml"++requestRemoveFlowOutput :: RemoveFlowOutput -> TestTree+requestRemoveFlowOutput =+  req+    "RemoveFlowOutput"+    "fixture/RemoveFlowOutput.yaml"++requestRemoveFlowSource :: RemoveFlowSource -> TestTree+requestRemoveFlowSource =+  req+    "RemoveFlowSource"+    "fixture/RemoveFlowSource.yaml"++requestRemoveFlowVpcInterface :: RemoveFlowVpcInterface -> TestTree+requestRemoveFlowVpcInterface =+  req+    "RemoveFlowVpcInterface"+    "fixture/RemoveFlowVpcInterface.yaml"++requestRevokeFlowEntitlement :: RevokeFlowEntitlement -> TestTree+requestRevokeFlowEntitlement =+  req+    "RevokeFlowEntitlement"+    "fixture/RevokeFlowEntitlement.yaml"++requestStartFlow :: StartFlow -> TestTree+requestStartFlow =+  req+    "StartFlow"+    "fixture/StartFlow.yaml"++requestStopFlow :: StopFlow -> TestTree+requestStopFlow =+  req+    "StopFlow"+    "fixture/StopFlow.yaml"++requestTagResource :: TagResource -> TestTree+requestTagResource =+  req+    "TagResource"+    "fixture/TagResource.yaml"++requestUntagResource :: UntagResource -> TestTree+requestUntagResource =+  req+    "UntagResource"+    "fixture/UntagResource.yaml"++requestUpdateFlow :: UpdateFlow -> TestTree+requestUpdateFlow =+  req+    "UpdateFlow"+    "fixture/UpdateFlow.yaml"++requestUpdateFlowEntitlement :: UpdateFlowEntitlement -> TestTree+requestUpdateFlowEntitlement =+  req+    "UpdateFlowEntitlement"+    "fixture/UpdateFlowEntitlement.yaml"++requestUpdateFlowMediaStream :: UpdateFlowMediaStream -> TestTree+requestUpdateFlowMediaStream =+  req+    "UpdateFlowMediaStream"+    "fixture/UpdateFlowMediaStream.yaml"++requestUpdateFlowOutput :: UpdateFlowOutput -> TestTree+requestUpdateFlowOutput =+  req+    "UpdateFlowOutput"+    "fixture/UpdateFlowOutput.yaml"++requestUpdateFlowSource :: UpdateFlowSource -> TestTree+requestUpdateFlowSource =+  req+    "UpdateFlowSource"+    "fixture/UpdateFlowSource.yaml"++-- Responses++responseAddFlowMediaStreams :: AddFlowMediaStreamsResponse -> TestTree+responseAddFlowMediaStreams =+  res+    "AddFlowMediaStreamsResponse"+    "fixture/AddFlowMediaStreamsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy AddFlowMediaStreams)++responseAddFlowOutputs :: AddFlowOutputsResponse -> TestTree+responseAddFlowOutputs =+  res+    "AddFlowOutputsResponse"+    "fixture/AddFlowOutputsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy AddFlowOutputs)++responseAddFlowSources :: AddFlowSourcesResponse -> TestTree+responseAddFlowSources =+  res+    "AddFlowSourcesResponse"+    "fixture/AddFlowSourcesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy AddFlowSources)++responseAddFlowVpcInterfaces :: AddFlowVpcInterfacesResponse -> TestTree+responseAddFlowVpcInterfaces =+  res+    "AddFlowVpcInterfacesResponse"+    "fixture/AddFlowVpcInterfacesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy AddFlowVpcInterfaces)++responseCreateFlow :: CreateFlowResponse -> TestTree+responseCreateFlow =+  res+    "CreateFlowResponse"+    "fixture/CreateFlowResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateFlow)++responseDeleteFlow :: DeleteFlowResponse -> TestTree+responseDeleteFlow =+  res+    "DeleteFlowResponse"+    "fixture/DeleteFlowResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteFlow)++responseDescribeFlow :: DescribeFlowResponse -> TestTree+responseDescribeFlow =+  res+    "DescribeFlowResponse"+    "fixture/DescribeFlowResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeFlow)++responseDescribeOffering :: DescribeOfferingResponse -> TestTree+responseDescribeOffering =+  res+    "DescribeOfferingResponse"+    "fixture/DescribeOfferingResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeOffering)++responseDescribeReservation :: DescribeReservationResponse -> TestTree+responseDescribeReservation =+  res+    "DescribeReservationResponse"+    "fixture/DescribeReservationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeReservation)++responseGrantFlowEntitlements :: GrantFlowEntitlementsResponse -> TestTree+responseGrantFlowEntitlements =+  res+    "GrantFlowEntitlementsResponse"+    "fixture/GrantFlowEntitlementsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GrantFlowEntitlements)++responseListEntitlements :: ListEntitlementsResponse -> TestTree+responseListEntitlements =+  res+    "ListEntitlementsResponse"+    "fixture/ListEntitlementsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListEntitlements)++responseListFlows :: ListFlowsResponse -> TestTree+responseListFlows =+  res+    "ListFlowsResponse"+    "fixture/ListFlowsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListFlows)++responseListOfferings :: ListOfferingsResponse -> TestTree+responseListOfferings =+  res+    "ListOfferingsResponse"+    "fixture/ListOfferingsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListOfferings)++responseListReservations :: ListReservationsResponse -> TestTree+responseListReservations =+  res+    "ListReservationsResponse"+    "fixture/ListReservationsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListReservations)++responseListTagsForResource :: ListTagsForResourceResponse -> TestTree+responseListTagsForResource =+  res+    "ListTagsForResourceResponse"+    "fixture/ListTagsForResourceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListTagsForResource)++responsePurchaseOffering :: PurchaseOfferingResponse -> TestTree+responsePurchaseOffering =+  res+    "PurchaseOfferingResponse"+    "fixture/PurchaseOfferingResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy PurchaseOffering)++responseRemoveFlowMediaStream :: RemoveFlowMediaStreamResponse -> TestTree+responseRemoveFlowMediaStream =+  res+    "RemoveFlowMediaStreamResponse"+    "fixture/RemoveFlowMediaStreamResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy RemoveFlowMediaStream)++responseRemoveFlowOutput :: RemoveFlowOutputResponse -> TestTree+responseRemoveFlowOutput =+  res+    "RemoveFlowOutputResponse"+    "fixture/RemoveFlowOutputResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy RemoveFlowOutput)++responseRemoveFlowSource :: RemoveFlowSourceResponse -> TestTree+responseRemoveFlowSource =+  res+    "RemoveFlowSourceResponse"+    "fixture/RemoveFlowSourceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy RemoveFlowSource)++responseRemoveFlowVpcInterface :: RemoveFlowVpcInterfaceResponse -> TestTree+responseRemoveFlowVpcInterface =+  res+    "RemoveFlowVpcInterfaceResponse"+    "fixture/RemoveFlowVpcInterfaceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy RemoveFlowVpcInterface)++responseRevokeFlowEntitlement :: RevokeFlowEntitlementResponse -> TestTree+responseRevokeFlowEntitlement =+  res+    "RevokeFlowEntitlementResponse"+    "fixture/RevokeFlowEntitlementResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy RevokeFlowEntitlement)++responseStartFlow :: StartFlowResponse -> TestTree+responseStartFlow =+  res+    "StartFlowResponse"+    "fixture/StartFlowResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy StartFlow)++responseStopFlow :: StopFlowResponse -> TestTree+responseStopFlow =+  res+    "StopFlowResponse"+    "fixture/StopFlowResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy StopFlow)++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)++responseUpdateFlow :: UpdateFlowResponse -> TestTree+responseUpdateFlow =+  res+    "UpdateFlowResponse"+    "fixture/UpdateFlowResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateFlow)++responseUpdateFlowEntitlement :: UpdateFlowEntitlementResponse -> TestTree+responseUpdateFlowEntitlement =+  res+    "UpdateFlowEntitlementResponse"+    "fixture/UpdateFlowEntitlementResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateFlowEntitlement)++responseUpdateFlowMediaStream :: UpdateFlowMediaStreamResponse -> TestTree+responseUpdateFlowMediaStream =+  res+    "UpdateFlowMediaStreamResponse"+    "fixture/UpdateFlowMediaStreamResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateFlowMediaStream)++responseUpdateFlowOutput :: UpdateFlowOutputResponse -> TestTree+responseUpdateFlowOutput =+  res+    "UpdateFlowOutputResponse"+    "fixture/UpdateFlowOutputResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateFlowOutput)++responseUpdateFlowSource :: UpdateFlowSourceResponse -> TestTree+responseUpdateFlowSource =+  res+    "UpdateFlowSourceResponse"+    "fixture/UpdateFlowSourceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateFlowSource)
+ test/Test/Amazonka/MediaConnect.hs view
@@ -0,0 +1,20 @@+-- |+-- Module      : Test.Amazonka.MediaConnect+-- 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.MediaConnect+  ( tests,+    fixtures,+  )+where++import Test.Tasty (TestTree)++tests :: [TestTree]+tests = []++fixtures :: [TestTree]+fixtures = []
+ test/Test/Amazonka/MediaConnect/Internal.hs view
@@ -0,0 +1,8 @@+-- |+-- Module      : Test.Amazonka.MediaConnect.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.MediaConnect.Internal where