packages feed

amazonka-groundstation (empty) → 2.0

raw patch · 161 files changed

+15355/−0 lines, 161 filesdep +amazonka-coredep +amazonka-groundstationdep +amazonka-test

Dependencies added: amazonka-core, amazonka-groundstation, 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 Ground Station SDK++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version+ +`2.0` - Derived from API version @2019-05-23@ of the AWS service descriptions, licensed under Apache 2.0.++## Description++Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-groundstation)+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.GroundStation](http://hackage.haskell.org/package/amazonka-groundstation/docs/Amazonka-GroundStation.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-groundstation` 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-groundstation.cabal view
@@ -0,0 +1,172 @@+cabal-version:      2.2+name:               amazonka-groundstation+version:            2.0+synopsis:           Amazon Ground Station 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 @2019-05-23@ 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.GroundStation.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.GroundStation" 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-groundstation++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.GroundStation+    Amazonka.GroundStation.CancelContact+    Amazonka.GroundStation.CreateConfig+    Amazonka.GroundStation.CreateDataflowEndpointGroup+    Amazonka.GroundStation.CreateEphemeris+    Amazonka.GroundStation.CreateMissionProfile+    Amazonka.GroundStation.DeleteConfig+    Amazonka.GroundStation.DeleteDataflowEndpointGroup+    Amazonka.GroundStation.DeleteEphemeris+    Amazonka.GroundStation.DeleteMissionProfile+    Amazonka.GroundStation.DescribeContact+    Amazonka.GroundStation.DescribeEphemeris+    Amazonka.GroundStation.GetConfig+    Amazonka.GroundStation.GetDataflowEndpointGroup+    Amazonka.GroundStation.GetMinuteUsage+    Amazonka.GroundStation.GetMissionProfile+    Amazonka.GroundStation.GetSatellite+    Amazonka.GroundStation.Lens+    Amazonka.GroundStation.ListConfigs+    Amazonka.GroundStation.ListContacts+    Amazonka.GroundStation.ListDataflowEndpointGroups+    Amazonka.GroundStation.ListEphemerides+    Amazonka.GroundStation.ListGroundStations+    Amazonka.GroundStation.ListMissionProfiles+    Amazonka.GroundStation.ListSatellites+    Amazonka.GroundStation.ListTagsForResource+    Amazonka.GroundStation.ReserveContact+    Amazonka.GroundStation.TagResource+    Amazonka.GroundStation.Types+    Amazonka.GroundStation.Types.AngleUnits+    Amazonka.GroundStation.Types.AntennaDemodDecodeDetails+    Amazonka.GroundStation.Types.AntennaDownlinkConfig+    Amazonka.GroundStation.Types.AntennaDownlinkDemodDecodeConfig+    Amazonka.GroundStation.Types.AntennaUplinkConfig+    Amazonka.GroundStation.Types.BandwidthUnits+    Amazonka.GroundStation.Types.ConfigCapabilityType+    Amazonka.GroundStation.Types.ConfigDetails+    Amazonka.GroundStation.Types.ConfigIdResponse+    Amazonka.GroundStation.Types.ConfigListItem+    Amazonka.GroundStation.Types.ConfigTypeData+    Amazonka.GroundStation.Types.ContactData+    Amazonka.GroundStation.Types.ContactIdResponse+    Amazonka.GroundStation.Types.ContactStatus+    Amazonka.GroundStation.Types.Criticality+    Amazonka.GroundStation.Types.DataflowDetail+    Amazonka.GroundStation.Types.DataflowEndpoint+    Amazonka.GroundStation.Types.DataflowEndpointConfig+    Amazonka.GroundStation.Types.DataflowEndpointGroupIdResponse+    Amazonka.GroundStation.Types.DataflowEndpointListItem+    Amazonka.GroundStation.Types.DecodeConfig+    Amazonka.GroundStation.Types.DemodulationConfig+    Amazonka.GroundStation.Types.Destination+    Amazonka.GroundStation.Types.Eirp+    Amazonka.GroundStation.Types.EirpUnits+    Amazonka.GroundStation.Types.Elevation+    Amazonka.GroundStation.Types.EndpointDetails+    Amazonka.GroundStation.Types.EndpointStatus+    Amazonka.GroundStation.Types.EphemerisData+    Amazonka.GroundStation.Types.EphemerisDescription+    Amazonka.GroundStation.Types.EphemerisIdResponse+    Amazonka.GroundStation.Types.EphemerisInvalidReason+    Amazonka.GroundStation.Types.EphemerisItem+    Amazonka.GroundStation.Types.EphemerisMetaData+    Amazonka.GroundStation.Types.EphemerisSource+    Amazonka.GroundStation.Types.EphemerisStatus+    Amazonka.GroundStation.Types.EphemerisTypeDescription+    Amazonka.GroundStation.Types.Frequency+    Amazonka.GroundStation.Types.FrequencyBandwidth+    Amazonka.GroundStation.Types.FrequencyUnits+    Amazonka.GroundStation.Types.GroundStationData+    Amazonka.GroundStation.Types.MissionProfileIdResponse+    Amazonka.GroundStation.Types.MissionProfileListItem+    Amazonka.GroundStation.Types.OEMEphemeris+    Amazonka.GroundStation.Types.Polarization+    Amazonka.GroundStation.Types.S3Object+    Amazonka.GroundStation.Types.S3RecordingConfig+    Amazonka.GroundStation.Types.S3RecordingDetails+    Amazonka.GroundStation.Types.SatelliteListItem+    Amazonka.GroundStation.Types.SecurityDetails+    Amazonka.GroundStation.Types.SocketAddress+    Amazonka.GroundStation.Types.Source+    Amazonka.GroundStation.Types.SpectrumConfig+    Amazonka.GroundStation.Types.TimeRange+    Amazonka.GroundStation.Types.TLEData+    Amazonka.GroundStation.Types.TLEEphemeris+    Amazonka.GroundStation.Types.TrackingConfig+    Amazonka.GroundStation.Types.UplinkEchoConfig+    Amazonka.GroundStation.Types.UplinkSpectrumConfig+    Amazonka.GroundStation.UntagResource+    Amazonka.GroundStation.UpdateConfig+    Amazonka.GroundStation.UpdateEphemeris+    Amazonka.GroundStation.UpdateMissionProfile+    Amazonka.GroundStation.Waiters++  build-depends:+    , amazonka-core  >=2.0  && <2.1+    , base           >=4.12 && <5++test-suite amazonka-groundstation-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.GroundStation+    Test.Amazonka.GroundStation+    Test.Amazonka.GroundStation.Internal++  build-depends:+    , amazonka-core           >=2.0 && <2.1+    , amazonka-groundstation+    , amazonka-test           >=2.0 && <2.1+    , base+    , bytestring+    , case-insensitive+    , tasty+    , tasty-hunit+    , text+    , time+    , unordered-containers
+ fixture/CancelContact.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/groundstation/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  groundstation.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/CancelContactResponse.proto view
+ fixture/CreateConfig.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/groundstation/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  groundstation.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/CreateConfigResponse.proto view
+ fixture/CreateDataflowEndpointGroup.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/groundstation/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  groundstation.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/CreateDataflowEndpointGroupResponse.proto view
+ fixture/CreateEphemeris.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/groundstation/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  groundstation.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/CreateEphemerisResponse.proto view
+ fixture/CreateMissionProfile.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/groundstation/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  groundstation.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/CreateMissionProfileResponse.proto view
+ fixture/DeleteConfig.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/groundstation/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  groundstation.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/DeleteConfigResponse.proto view
+ fixture/DeleteDataflowEndpointGroup.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/groundstation/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  groundstation.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/DeleteDataflowEndpointGroupResponse.proto view
+ fixture/DeleteEphemeris.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/groundstation/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  groundstation.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/DeleteEphemerisResponse.proto view
+ fixture/DeleteMissionProfile.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/groundstation/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  groundstation.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/DeleteMissionProfileResponse.proto view
+ fixture/DescribeContact.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/groundstation/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  groundstation.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/DescribeContactResponse.proto view
+ fixture/DescribeEphemeris.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/groundstation/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  groundstation.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/DescribeEphemerisResponse.proto view
+ fixture/GetConfig.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/groundstation/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  groundstation.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/GetConfigResponse.proto view
+ fixture/GetDataflowEndpointGroup.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/groundstation/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  groundstation.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/GetDataflowEndpointGroupResponse.proto view
+ fixture/GetMinuteUsage.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/groundstation/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  groundstation.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/GetMinuteUsageResponse.proto view
+ fixture/GetMissionProfile.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/groundstation/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  groundstation.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/GetMissionProfileResponse.proto view
+ fixture/GetSatellite.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/groundstation/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  groundstation.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/GetSatelliteResponse.proto view
+ fixture/ListConfigs.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/groundstation/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  groundstation.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/ListConfigsResponse.proto view
+ fixture/ListContacts.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/groundstation/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  groundstation.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/ListContactsResponse.proto view
+ fixture/ListDataflowEndpointGroups.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/groundstation/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  groundstation.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/ListDataflowEndpointGroupsResponse.proto view
+ fixture/ListEphemerides.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/groundstation/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  groundstation.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/ListEphemeridesResponse.proto view
+ fixture/ListGroundStations.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/groundstation/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  groundstation.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/ListGroundStationsResponse.proto view
+ fixture/ListMissionProfiles.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/groundstation/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  groundstation.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/ListMissionProfilesResponse.proto view
+ fixture/ListSatellites.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/groundstation/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  groundstation.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/ListSatellitesResponse.proto view
+ fixture/ListTagsForResource.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/groundstation/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  groundstation.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/ReserveContact.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/groundstation/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  groundstation.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/ReserveContactResponse.proto view
+ fixture/TagResource.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/groundstation/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  groundstation.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/groundstation/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  groundstation.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/UpdateConfig.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/groundstation/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  groundstation.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/UpdateConfigResponse.proto view
+ fixture/UpdateEphemeris.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/groundstation/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  groundstation.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/UpdateEphemerisResponse.proto view
+ fixture/UpdateMissionProfile.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/groundstation/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  groundstation.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/UpdateMissionProfileResponse.proto view
+ gen/Amazonka/GroundStation.hs view
@@ -0,0 +1,511 @@+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Amazonka.GroundStation+-- 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 @2019-05-23@ of the AWS service descriptions, licensed under Apache 2.0.+--+-- Welcome to the AWS Ground Station API Reference. AWS Ground Station is a+-- fully managed service that enables you to control satellite+-- communications, downlink and process satellite data, and scale your+-- satellite operations efficiently and cost-effectively without having to+-- build or manage your own ground station infrastructure.+module Amazonka.GroundStation+  ( -- * Service Configuration+    defaultService,++    -- * Errors+    -- $errors++    -- ** DependencyException+    _DependencyException,++    -- ** InvalidParameterException+    _InvalidParameterException,++    -- ** ResourceLimitExceededException+    _ResourceLimitExceededException,++    -- ** ResourceNotFoundException+    _ResourceNotFoundException,++    -- * Waiters+    -- $waiters++    -- * Operations+    -- $operations++    -- ** CancelContact+    CancelContact (CancelContact'),+    newCancelContact,+    ContactIdResponse (ContactIdResponse'),+    newContactIdResponse,++    -- ** CreateConfig+    CreateConfig (CreateConfig'),+    newCreateConfig,+    ConfigIdResponse (ConfigIdResponse'),+    newConfigIdResponse,++    -- ** CreateDataflowEndpointGroup+    CreateDataflowEndpointGroup (CreateDataflowEndpointGroup'),+    newCreateDataflowEndpointGroup,+    DataflowEndpointGroupIdResponse (DataflowEndpointGroupIdResponse'),+    newDataflowEndpointGroupIdResponse,++    -- ** CreateEphemeris+    CreateEphemeris (CreateEphemeris'),+    newCreateEphemeris,+    EphemerisIdResponse (EphemerisIdResponse'),+    newEphemerisIdResponse,++    -- ** CreateMissionProfile+    CreateMissionProfile (CreateMissionProfile'),+    newCreateMissionProfile,+    MissionProfileIdResponse (MissionProfileIdResponse'),+    newMissionProfileIdResponse,++    -- ** DeleteConfig+    DeleteConfig (DeleteConfig'),+    newDeleteConfig,+    ConfigIdResponse (ConfigIdResponse'),+    newConfigIdResponse,++    -- ** DeleteDataflowEndpointGroup+    DeleteDataflowEndpointGroup (DeleteDataflowEndpointGroup'),+    newDeleteDataflowEndpointGroup,+    DataflowEndpointGroupIdResponse (DataflowEndpointGroupIdResponse'),+    newDataflowEndpointGroupIdResponse,++    -- ** DeleteEphemeris+    DeleteEphemeris (DeleteEphemeris'),+    newDeleteEphemeris,+    EphemerisIdResponse (EphemerisIdResponse'),+    newEphemerisIdResponse,++    -- ** DeleteMissionProfile+    DeleteMissionProfile (DeleteMissionProfile'),+    newDeleteMissionProfile,+    MissionProfileIdResponse (MissionProfileIdResponse'),+    newMissionProfileIdResponse,++    -- ** DescribeContact+    DescribeContact (DescribeContact'),+    newDescribeContact,+    DescribeContactResponse (DescribeContactResponse'),+    newDescribeContactResponse,++    -- ** DescribeEphemeris+    DescribeEphemeris (DescribeEphemeris'),+    newDescribeEphemeris,+    DescribeEphemerisResponse (DescribeEphemerisResponse'),+    newDescribeEphemerisResponse,++    -- ** GetConfig+    GetConfig (GetConfig'),+    newGetConfig,+    GetConfigResponse (GetConfigResponse'),+    newGetConfigResponse,++    -- ** GetDataflowEndpointGroup+    GetDataflowEndpointGroup (GetDataflowEndpointGroup'),+    newGetDataflowEndpointGroup,+    GetDataflowEndpointGroupResponse (GetDataflowEndpointGroupResponse'),+    newGetDataflowEndpointGroupResponse,++    -- ** GetMinuteUsage+    GetMinuteUsage (GetMinuteUsage'),+    newGetMinuteUsage,+    GetMinuteUsageResponse (GetMinuteUsageResponse'),+    newGetMinuteUsageResponse,++    -- ** GetMissionProfile+    GetMissionProfile (GetMissionProfile'),+    newGetMissionProfile,+    GetMissionProfileResponse (GetMissionProfileResponse'),+    newGetMissionProfileResponse,++    -- ** GetSatellite+    GetSatellite (GetSatellite'),+    newGetSatellite,+    GetSatelliteResponse (GetSatelliteResponse'),+    newGetSatelliteResponse,++    -- ** ListConfigs (Paginated)+    ListConfigs (ListConfigs'),+    newListConfigs,+    ListConfigsResponse (ListConfigsResponse'),+    newListConfigsResponse,++    -- ** ListContacts (Paginated)+    ListContacts (ListContacts'),+    newListContacts,+    ListContactsResponse (ListContactsResponse'),+    newListContactsResponse,++    -- ** ListDataflowEndpointGroups (Paginated)+    ListDataflowEndpointGroups (ListDataflowEndpointGroups'),+    newListDataflowEndpointGroups,+    ListDataflowEndpointGroupsResponse (ListDataflowEndpointGroupsResponse'),+    newListDataflowEndpointGroupsResponse,++    -- ** ListEphemerides (Paginated)+    ListEphemerides (ListEphemerides'),+    newListEphemerides,+    ListEphemeridesResponse (ListEphemeridesResponse'),+    newListEphemeridesResponse,++    -- ** ListGroundStations (Paginated)+    ListGroundStations (ListGroundStations'),+    newListGroundStations,+    ListGroundStationsResponse (ListGroundStationsResponse'),+    newListGroundStationsResponse,++    -- ** ListMissionProfiles (Paginated)+    ListMissionProfiles (ListMissionProfiles'),+    newListMissionProfiles,+    ListMissionProfilesResponse (ListMissionProfilesResponse'),+    newListMissionProfilesResponse,++    -- ** ListSatellites (Paginated)+    ListSatellites (ListSatellites'),+    newListSatellites,+    ListSatellitesResponse (ListSatellitesResponse'),+    newListSatellitesResponse,++    -- ** ListTagsForResource+    ListTagsForResource (ListTagsForResource'),+    newListTagsForResource,+    ListTagsForResourceResponse (ListTagsForResourceResponse'),+    newListTagsForResourceResponse,++    -- ** ReserveContact+    ReserveContact (ReserveContact'),+    newReserveContact,+    ContactIdResponse (ContactIdResponse'),+    newContactIdResponse,++    -- ** TagResource+    TagResource (TagResource'),+    newTagResource,+    TagResourceResponse (TagResourceResponse'),+    newTagResourceResponse,++    -- ** UntagResource+    UntagResource (UntagResource'),+    newUntagResource,+    UntagResourceResponse (UntagResourceResponse'),+    newUntagResourceResponse,++    -- ** UpdateConfig+    UpdateConfig (UpdateConfig'),+    newUpdateConfig,+    ConfigIdResponse (ConfigIdResponse'),+    newConfigIdResponse,++    -- ** UpdateEphemeris+    UpdateEphemeris (UpdateEphemeris'),+    newUpdateEphemeris,+    EphemerisIdResponse (EphemerisIdResponse'),+    newEphemerisIdResponse,++    -- ** UpdateMissionProfile+    UpdateMissionProfile (UpdateMissionProfile'),+    newUpdateMissionProfile,+    MissionProfileIdResponse (MissionProfileIdResponse'),+    newMissionProfileIdResponse,++    -- * Types++    -- ** AngleUnits+    AngleUnits (..),++    -- ** BandwidthUnits+    BandwidthUnits (..),++    -- ** ConfigCapabilityType+    ConfigCapabilityType (..),++    -- ** ContactStatus+    ContactStatus (..),++    -- ** Criticality+    Criticality (..),++    -- ** EirpUnits+    EirpUnits (..),++    -- ** EndpointStatus+    EndpointStatus (..),++    -- ** EphemerisInvalidReason+    EphemerisInvalidReason (..),++    -- ** EphemerisSource+    EphemerisSource (..),++    -- ** EphemerisStatus+    EphemerisStatus (..),++    -- ** FrequencyUnits+    FrequencyUnits (..),++    -- ** Polarization+    Polarization (..),++    -- ** AntennaDemodDecodeDetails+    AntennaDemodDecodeDetails (AntennaDemodDecodeDetails'),+    newAntennaDemodDecodeDetails,++    -- ** AntennaDownlinkConfig+    AntennaDownlinkConfig (AntennaDownlinkConfig'),+    newAntennaDownlinkConfig,++    -- ** AntennaDownlinkDemodDecodeConfig+    AntennaDownlinkDemodDecodeConfig (AntennaDownlinkDemodDecodeConfig'),+    newAntennaDownlinkDemodDecodeConfig,++    -- ** AntennaUplinkConfig+    AntennaUplinkConfig (AntennaUplinkConfig'),+    newAntennaUplinkConfig,++    -- ** ConfigDetails+    ConfigDetails (ConfigDetails'),+    newConfigDetails,++    -- ** ConfigIdResponse+    ConfigIdResponse (ConfigIdResponse'),+    newConfigIdResponse,++    -- ** ConfigListItem+    ConfigListItem (ConfigListItem'),+    newConfigListItem,++    -- ** ConfigTypeData+    ConfigTypeData (ConfigTypeData'),+    newConfigTypeData,++    -- ** ContactData+    ContactData (ContactData'),+    newContactData,++    -- ** ContactIdResponse+    ContactIdResponse (ContactIdResponse'),+    newContactIdResponse,++    -- ** DataflowDetail+    DataflowDetail (DataflowDetail'),+    newDataflowDetail,++    -- ** DataflowEndpoint+    DataflowEndpoint (DataflowEndpoint'),+    newDataflowEndpoint,++    -- ** DataflowEndpointConfig+    DataflowEndpointConfig (DataflowEndpointConfig'),+    newDataflowEndpointConfig,++    -- ** DataflowEndpointGroupIdResponse+    DataflowEndpointGroupIdResponse (DataflowEndpointGroupIdResponse'),+    newDataflowEndpointGroupIdResponse,++    -- ** DataflowEndpointListItem+    DataflowEndpointListItem (DataflowEndpointListItem'),+    newDataflowEndpointListItem,++    -- ** DecodeConfig+    DecodeConfig (DecodeConfig'),+    newDecodeConfig,++    -- ** DemodulationConfig+    DemodulationConfig (DemodulationConfig'),+    newDemodulationConfig,++    -- ** Destination+    Destination (Destination'),+    newDestination,++    -- ** Eirp+    Eirp (Eirp'),+    newEirp,++    -- ** Elevation+    Elevation (Elevation'),+    newElevation,++    -- ** EndpointDetails+    EndpointDetails (EndpointDetails'),+    newEndpointDetails,++    -- ** EphemerisData+    EphemerisData (EphemerisData'),+    newEphemerisData,++    -- ** EphemerisDescription+    EphemerisDescription (EphemerisDescription'),+    newEphemerisDescription,++    -- ** EphemerisIdResponse+    EphemerisIdResponse (EphemerisIdResponse'),+    newEphemerisIdResponse,++    -- ** EphemerisItem+    EphemerisItem (EphemerisItem'),+    newEphemerisItem,++    -- ** EphemerisMetaData+    EphemerisMetaData (EphemerisMetaData'),+    newEphemerisMetaData,++    -- ** EphemerisTypeDescription+    EphemerisTypeDescription (EphemerisTypeDescription'),+    newEphemerisTypeDescription,++    -- ** Frequency+    Frequency (Frequency'),+    newFrequency,++    -- ** FrequencyBandwidth+    FrequencyBandwidth (FrequencyBandwidth'),+    newFrequencyBandwidth,++    -- ** GroundStationData+    GroundStationData (GroundStationData'),+    newGroundStationData,++    -- ** MissionProfileIdResponse+    MissionProfileIdResponse (MissionProfileIdResponse'),+    newMissionProfileIdResponse,++    -- ** MissionProfileListItem+    MissionProfileListItem (MissionProfileListItem'),+    newMissionProfileListItem,++    -- ** OEMEphemeris+    OEMEphemeris (OEMEphemeris'),+    newOEMEphemeris,++    -- ** S3Object+    S3Object (S3Object'),+    newS3Object,++    -- ** S3RecordingConfig+    S3RecordingConfig (S3RecordingConfig'),+    newS3RecordingConfig,++    -- ** S3RecordingDetails+    S3RecordingDetails (S3RecordingDetails'),+    newS3RecordingDetails,++    -- ** SatelliteListItem+    SatelliteListItem (SatelliteListItem'),+    newSatelliteListItem,++    -- ** SecurityDetails+    SecurityDetails (SecurityDetails'),+    newSecurityDetails,++    -- ** SocketAddress+    SocketAddress (SocketAddress'),+    newSocketAddress,++    -- ** Source+    Source (Source'),+    newSource,++    -- ** SpectrumConfig+    SpectrumConfig (SpectrumConfig'),+    newSpectrumConfig,++    -- ** TLEData+    TLEData (TLEData'),+    newTLEData,++    -- ** TLEEphemeris+    TLEEphemeris (TLEEphemeris'),+    newTLEEphemeris,++    -- ** TimeRange+    TimeRange (TimeRange'),+    newTimeRange,++    -- ** TrackingConfig+    TrackingConfig (TrackingConfig'),+    newTrackingConfig,++    -- ** UplinkEchoConfig+    UplinkEchoConfig (UplinkEchoConfig'),+    newUplinkEchoConfig,++    -- ** UplinkSpectrumConfig+    UplinkSpectrumConfig (UplinkSpectrumConfig'),+    newUplinkSpectrumConfig,+  )+where++import Amazonka.GroundStation.CancelContact+import Amazonka.GroundStation.CreateConfig+import Amazonka.GroundStation.CreateDataflowEndpointGroup+import Amazonka.GroundStation.CreateEphemeris+import Amazonka.GroundStation.CreateMissionProfile+import Amazonka.GroundStation.DeleteConfig+import Amazonka.GroundStation.DeleteDataflowEndpointGroup+import Amazonka.GroundStation.DeleteEphemeris+import Amazonka.GroundStation.DeleteMissionProfile+import Amazonka.GroundStation.DescribeContact+import Amazonka.GroundStation.DescribeEphemeris+import Amazonka.GroundStation.GetConfig+import Amazonka.GroundStation.GetDataflowEndpointGroup+import Amazonka.GroundStation.GetMinuteUsage+import Amazonka.GroundStation.GetMissionProfile+import Amazonka.GroundStation.GetSatellite+import Amazonka.GroundStation.Lens+import Amazonka.GroundStation.ListConfigs+import Amazonka.GroundStation.ListContacts+import Amazonka.GroundStation.ListDataflowEndpointGroups+import Amazonka.GroundStation.ListEphemerides+import Amazonka.GroundStation.ListGroundStations+import Amazonka.GroundStation.ListMissionProfiles+import Amazonka.GroundStation.ListSatellites+import Amazonka.GroundStation.ListTagsForResource+import Amazonka.GroundStation.ReserveContact+import Amazonka.GroundStation.TagResource+import Amazonka.GroundStation.Types+import Amazonka.GroundStation.UntagResource+import Amazonka.GroundStation.UpdateConfig+import Amazonka.GroundStation.UpdateEphemeris+import Amazonka.GroundStation.UpdateMissionProfile+import Amazonka.GroundStation.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 'GroundStation'.++-- $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/GroundStation/CancelContact.hs view
@@ -0,0 +1,109 @@+{-# 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.GroundStation.CancelContact+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Cancels a contact with a specified contact ID.+module Amazonka.GroundStation.CancelContact+  ( -- * Creating a Request+    CancelContact (..),+    newCancelContact,++    -- * Request Lenses+    cancelContact_contactId,++    -- * Destructuring the Response+    ContactIdResponse (..),+    newContactIdResponse,++    -- * Response Lenses+    contactIdResponse_contactId,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GroundStation.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- |+--+-- /See:/ 'newCancelContact' smart constructor.+data CancelContact = CancelContact'+  { -- | UUID of a contact.+    contactId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CancelContact' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'contactId', 'cancelContact_contactId' - UUID of a contact.+newCancelContact ::+  -- | 'contactId'+  Prelude.Text ->+  CancelContact+newCancelContact pContactId_ =+  CancelContact' {contactId = pContactId_}++-- | UUID of a contact.+cancelContact_contactId :: Lens.Lens' CancelContact Prelude.Text+cancelContact_contactId = Lens.lens (\CancelContact' {contactId} -> contactId) (\s@CancelContact' {} a -> s {contactId = a} :: CancelContact)++instance Core.AWSRequest CancelContact where+  type AWSResponse CancelContact = ContactIdResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveJSON+      (\s h x -> Data.eitherParseJSON x)++instance Prelude.Hashable CancelContact where+  hashWithSalt _salt CancelContact' {..} =+    _salt `Prelude.hashWithSalt` contactId++instance Prelude.NFData CancelContact where+  rnf CancelContact' {..} = Prelude.rnf contactId++instance Data.ToHeaders CancelContact where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath CancelContact where+  toPath CancelContact' {..} =+    Prelude.mconcat ["/contact/", Data.toBS contactId]++instance Data.ToQuery CancelContact where+  toQuery = Prelude.const Prelude.mempty
+ gen/Amazonka/GroundStation/CreateConfig.hs view
@@ -0,0 +1,152 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.GroundStation.CreateConfig+-- 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 @Config@ with the specified @configData@ parameters.+--+-- Only one type of @configData@ can be specified.+module Amazonka.GroundStation.CreateConfig+  ( -- * Creating a Request+    CreateConfig (..),+    newCreateConfig,++    -- * Request Lenses+    createConfig_tags,+    createConfig_configData,+    createConfig_name,++    -- * Destructuring the Response+    ConfigIdResponse (..),+    newConfigIdResponse,++    -- * Response Lenses+    configIdResponse_configArn,+    configIdResponse_configId,+    configIdResponse_configType,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GroundStation.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- |+--+-- /See:/ 'newCreateConfig' smart constructor.+data CreateConfig = CreateConfig'+  { -- | Tags assigned to a @Config@.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | Parameters of a @Config@.+    configData :: ConfigTypeData,+    -- | Name of a @Config@.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'createConfig_tags' - Tags assigned to a @Config@.+--+-- 'configData', 'createConfig_configData' - Parameters of a @Config@.+--+-- 'name', 'createConfig_name' - Name of a @Config@.+newCreateConfig ::+  -- | 'configData'+  ConfigTypeData ->+  -- | 'name'+  Prelude.Text ->+  CreateConfig+newCreateConfig pConfigData_ pName_ =+  CreateConfig'+    { tags = Prelude.Nothing,+      configData = pConfigData_,+      name = pName_+    }++-- | Tags assigned to a @Config@.+createConfig_tags :: Lens.Lens' CreateConfig (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createConfig_tags = Lens.lens (\CreateConfig' {tags} -> tags) (\s@CreateConfig' {} a -> s {tags = a} :: CreateConfig) Prelude.. Lens.mapping Lens.coerced++-- | Parameters of a @Config@.+createConfig_configData :: Lens.Lens' CreateConfig ConfigTypeData+createConfig_configData = Lens.lens (\CreateConfig' {configData} -> configData) (\s@CreateConfig' {} a -> s {configData = a} :: CreateConfig)++-- | Name of a @Config@.+createConfig_name :: Lens.Lens' CreateConfig Prelude.Text+createConfig_name = Lens.lens (\CreateConfig' {name} -> name) (\s@CreateConfig' {} a -> s {name = a} :: CreateConfig)++instance Core.AWSRequest CreateConfig where+  type AWSResponse CreateConfig = ConfigIdResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      (\s h x -> Data.eitherParseJSON x)++instance Prelude.Hashable CreateConfig where+  hashWithSalt _salt CreateConfig' {..} =+    _salt+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` configData+      `Prelude.hashWithSalt` name++instance Prelude.NFData CreateConfig where+  rnf CreateConfig' {..} =+    Prelude.rnf tags+      `Prelude.seq` Prelude.rnf configData+      `Prelude.seq` Prelude.rnf name++instance Data.ToHeaders CreateConfig where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateConfig where+  toJSON CreateConfig' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("configData" Data..= configData),+            Prelude.Just ("name" Data..= name)+          ]+      )++instance Data.ToPath CreateConfig where+  toPath = Prelude.const "/config"++instance Data.ToQuery CreateConfig where+  toQuery = Prelude.const Prelude.mempty
+ gen/Amazonka/GroundStation/CreateDataflowEndpointGroup.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.GroundStation.CreateDataflowEndpointGroup+-- 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 @DataflowEndpoint@ group containing the specified list of+-- @DataflowEndpoint@ objects.+--+-- The @name@ field in each endpoint is used in your mission profile+-- @DataflowEndpointConfig@ to specify which endpoints to use during a+-- contact.+--+-- When a contact uses multiple @DataflowEndpointConfig@ objects, each+-- @Config@ must match a @DataflowEndpoint@ in the same group.+module Amazonka.GroundStation.CreateDataflowEndpointGroup+  ( -- * Creating a Request+    CreateDataflowEndpointGroup (..),+    newCreateDataflowEndpointGroup,++    -- * Request Lenses+    createDataflowEndpointGroup_tags,+    createDataflowEndpointGroup_endpointDetails,++    -- * Destructuring the Response+    DataflowEndpointGroupIdResponse (..),+    newDataflowEndpointGroupIdResponse,++    -- * Response Lenses+    dataflowEndpointGroupIdResponse_dataflowEndpointGroupId,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GroundStation.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- |+--+-- /See:/ 'newCreateDataflowEndpointGroup' smart constructor.+data CreateDataflowEndpointGroup = CreateDataflowEndpointGroup'+  { -- | Tags of a dataflow endpoint group.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | Endpoint details of each endpoint in the dataflow endpoint group.+    endpointDetails :: [EndpointDetails]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateDataflowEndpointGroup' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'createDataflowEndpointGroup_tags' - Tags of a dataflow endpoint group.+--+-- 'endpointDetails', 'createDataflowEndpointGroup_endpointDetails' - Endpoint details of each endpoint in the dataflow endpoint group.+newCreateDataflowEndpointGroup ::+  CreateDataflowEndpointGroup+newCreateDataflowEndpointGroup =+  CreateDataflowEndpointGroup'+    { tags =+        Prelude.Nothing,+      endpointDetails = Prelude.mempty+    }++-- | Tags of a dataflow endpoint group.+createDataflowEndpointGroup_tags :: Lens.Lens' CreateDataflowEndpointGroup (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createDataflowEndpointGroup_tags = Lens.lens (\CreateDataflowEndpointGroup' {tags} -> tags) (\s@CreateDataflowEndpointGroup' {} a -> s {tags = a} :: CreateDataflowEndpointGroup) Prelude.. Lens.mapping Lens.coerced++-- | Endpoint details of each endpoint in the dataflow endpoint group.+createDataflowEndpointGroup_endpointDetails :: Lens.Lens' CreateDataflowEndpointGroup [EndpointDetails]+createDataflowEndpointGroup_endpointDetails = Lens.lens (\CreateDataflowEndpointGroup' {endpointDetails} -> endpointDetails) (\s@CreateDataflowEndpointGroup' {} a -> s {endpointDetails = a} :: CreateDataflowEndpointGroup) Prelude.. Lens.coerced++instance Core.AWSRequest CreateDataflowEndpointGroup where+  type+    AWSResponse CreateDataflowEndpointGroup =+      DataflowEndpointGroupIdResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      (\s h x -> Data.eitherParseJSON x)++instance Prelude.Hashable CreateDataflowEndpointGroup where+  hashWithSalt _salt CreateDataflowEndpointGroup' {..} =+    _salt+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` endpointDetails++instance Prelude.NFData CreateDataflowEndpointGroup where+  rnf CreateDataflowEndpointGroup' {..} =+    Prelude.rnf tags+      `Prelude.seq` Prelude.rnf endpointDetails++instance Data.ToHeaders CreateDataflowEndpointGroup where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateDataflowEndpointGroup where+  toJSON CreateDataflowEndpointGroup' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("tags" Data..=) Prelude.<$> tags,+            Prelude.Just+              ("endpointDetails" Data..= endpointDetails)+          ]+      )++instance Data.ToPath CreateDataflowEndpointGroup where+  toPath = Prelude.const "/dataflowEndpointGroup"++instance Data.ToQuery CreateDataflowEndpointGroup where+  toQuery = Prelude.const Prelude.mempty
+ gen/Amazonka/GroundStation/CreateEphemeris.hs view
@@ -0,0 +1,247 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.GroundStation.CreateEphemeris+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates an Ephemeris with the specified @EphemerisData@.+module Amazonka.GroundStation.CreateEphemeris+  ( -- * Creating a Request+    CreateEphemeris (..),+    newCreateEphemeris,++    -- * Request Lenses+    createEphemeris_enabled,+    createEphemeris_ephemeris,+    createEphemeris_expirationTime,+    createEphemeris_kmsKeyArn,+    createEphemeris_priority,+    createEphemeris_tags,+    createEphemeris_name,+    createEphemeris_satelliteId,++    -- * Destructuring the Response+    EphemerisIdResponse (..),+    newEphemerisIdResponse,++    -- * Response Lenses+    ephemerisIdResponse_ephemerisId,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GroundStation.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateEphemeris' smart constructor.+data CreateEphemeris = CreateEphemeris'+  { -- | Whether to set the ephemeris status to @ENABLED@ after validation.+    --+    -- Setting this to false will set the ephemeris status to @DISABLED@ after+    -- validation.+    enabled :: Prelude.Maybe Prelude.Bool,+    -- | Ephemeris data.+    ephemeris :: Prelude.Maybe EphemerisData,+    -- | An overall expiration time for the ephemeris in UTC, after which it will+    -- become @EXPIRED@.+    expirationTime :: Prelude.Maybe Data.POSIX,+    -- | The ARN of a KMS key used to encrypt the ephemeris in Ground Station.+    kmsKeyArn :: Prelude.Maybe Prelude.Text,+    -- | Customer-provided priority score to establish the order in which+    -- overlapping ephemerides should be used.+    --+    -- The default for customer-provided ephemeris priority is 1, and higher+    -- numbers take precedence.+    --+    -- Priority must be 1 or greater+    priority :: Prelude.Maybe Prelude.Natural,+    -- | Tags assigned to an ephemeris.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | A name string associated with the ephemeris. Used as a human-readable+    -- identifier for the ephemeris.+    name :: Prelude.Text,+    -- | AWS Ground Station satellite ID for this ephemeris.+    satelliteId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateEphemeris' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'enabled', 'createEphemeris_enabled' - Whether to set the ephemeris status to @ENABLED@ after validation.+--+-- Setting this to false will set the ephemeris status to @DISABLED@ after+-- validation.+--+-- 'ephemeris', 'createEphemeris_ephemeris' - Ephemeris data.+--+-- 'expirationTime', 'createEphemeris_expirationTime' - An overall expiration time for the ephemeris in UTC, after which it will+-- become @EXPIRED@.+--+-- 'kmsKeyArn', 'createEphemeris_kmsKeyArn' - The ARN of a KMS key used to encrypt the ephemeris in Ground Station.+--+-- 'priority', 'createEphemeris_priority' - Customer-provided priority score to establish the order in which+-- overlapping ephemerides should be used.+--+-- The default for customer-provided ephemeris priority is 1, and higher+-- numbers take precedence.+--+-- Priority must be 1 or greater+--+-- 'tags', 'createEphemeris_tags' - Tags assigned to an ephemeris.+--+-- 'name', 'createEphemeris_name' - A name string associated with the ephemeris. Used as a human-readable+-- identifier for the ephemeris.+--+-- 'satelliteId', 'createEphemeris_satelliteId' - AWS Ground Station satellite ID for this ephemeris.+newCreateEphemeris ::+  -- | 'name'+  Prelude.Text ->+  -- | 'satelliteId'+  Prelude.Text ->+  CreateEphemeris+newCreateEphemeris pName_ pSatelliteId_ =+  CreateEphemeris'+    { enabled = Prelude.Nothing,+      ephemeris = Prelude.Nothing,+      expirationTime = Prelude.Nothing,+      kmsKeyArn = Prelude.Nothing,+      priority = Prelude.Nothing,+      tags = Prelude.Nothing,+      name = pName_,+      satelliteId = pSatelliteId_+    }++-- | Whether to set the ephemeris status to @ENABLED@ after validation.+--+-- Setting this to false will set the ephemeris status to @DISABLED@ after+-- validation.+createEphemeris_enabled :: Lens.Lens' CreateEphemeris (Prelude.Maybe Prelude.Bool)+createEphemeris_enabled = Lens.lens (\CreateEphemeris' {enabled} -> enabled) (\s@CreateEphemeris' {} a -> s {enabled = a} :: CreateEphemeris)++-- | Ephemeris data.+createEphemeris_ephemeris :: Lens.Lens' CreateEphemeris (Prelude.Maybe EphemerisData)+createEphemeris_ephemeris = Lens.lens (\CreateEphemeris' {ephemeris} -> ephemeris) (\s@CreateEphemeris' {} a -> s {ephemeris = a} :: CreateEphemeris)++-- | An overall expiration time for the ephemeris in UTC, after which it will+-- become @EXPIRED@.+createEphemeris_expirationTime :: Lens.Lens' CreateEphemeris (Prelude.Maybe Prelude.UTCTime)+createEphemeris_expirationTime = Lens.lens (\CreateEphemeris' {expirationTime} -> expirationTime) (\s@CreateEphemeris' {} a -> s {expirationTime = a} :: CreateEphemeris) Prelude.. Lens.mapping Data._Time++-- | The ARN of a KMS key used to encrypt the ephemeris in Ground Station.+createEphemeris_kmsKeyArn :: Lens.Lens' CreateEphemeris (Prelude.Maybe Prelude.Text)+createEphemeris_kmsKeyArn = Lens.lens (\CreateEphemeris' {kmsKeyArn} -> kmsKeyArn) (\s@CreateEphemeris' {} a -> s {kmsKeyArn = a} :: CreateEphemeris)++-- | Customer-provided priority score to establish the order in which+-- overlapping ephemerides should be used.+--+-- The default for customer-provided ephemeris priority is 1, and higher+-- numbers take precedence.+--+-- Priority must be 1 or greater+createEphemeris_priority :: Lens.Lens' CreateEphemeris (Prelude.Maybe Prelude.Natural)+createEphemeris_priority = Lens.lens (\CreateEphemeris' {priority} -> priority) (\s@CreateEphemeris' {} a -> s {priority = a} :: CreateEphemeris)++-- | Tags assigned to an ephemeris.+createEphemeris_tags :: Lens.Lens' CreateEphemeris (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createEphemeris_tags = Lens.lens (\CreateEphemeris' {tags} -> tags) (\s@CreateEphemeris' {} a -> s {tags = a} :: CreateEphemeris) Prelude.. Lens.mapping Lens.coerced++-- | A name string associated with the ephemeris. Used as a human-readable+-- identifier for the ephemeris.+createEphemeris_name :: Lens.Lens' CreateEphemeris Prelude.Text+createEphemeris_name = Lens.lens (\CreateEphemeris' {name} -> name) (\s@CreateEphemeris' {} a -> s {name = a} :: CreateEphemeris)++-- | AWS Ground Station satellite ID for this ephemeris.+createEphemeris_satelliteId :: Lens.Lens' CreateEphemeris Prelude.Text+createEphemeris_satelliteId = Lens.lens (\CreateEphemeris' {satelliteId} -> satelliteId) (\s@CreateEphemeris' {} a -> s {satelliteId = a} :: CreateEphemeris)++instance Core.AWSRequest CreateEphemeris where+  type+    AWSResponse CreateEphemeris =+      EphemerisIdResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      (\s h x -> Data.eitherParseJSON x)++instance Prelude.Hashable CreateEphemeris where+  hashWithSalt _salt CreateEphemeris' {..} =+    _salt+      `Prelude.hashWithSalt` enabled+      `Prelude.hashWithSalt` ephemeris+      `Prelude.hashWithSalt` expirationTime+      `Prelude.hashWithSalt` kmsKeyArn+      `Prelude.hashWithSalt` priority+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` satelliteId++instance Prelude.NFData CreateEphemeris where+  rnf CreateEphemeris' {..} =+    Prelude.rnf enabled+      `Prelude.seq` Prelude.rnf ephemeris+      `Prelude.seq` Prelude.rnf expirationTime+      `Prelude.seq` Prelude.rnf kmsKeyArn+      `Prelude.seq` Prelude.rnf priority+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf satelliteId++instance Data.ToHeaders CreateEphemeris where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateEphemeris where+  toJSON CreateEphemeris' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("enabled" Data..=) Prelude.<$> enabled,+            ("ephemeris" Data..=) Prelude.<$> ephemeris,+            ("expirationTime" Data..=)+              Prelude.<$> expirationTime,+            ("kmsKeyArn" Data..=) Prelude.<$> kmsKeyArn,+            ("priority" Data..=) Prelude.<$> priority,+            ("tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("name" Data..= name),+            Prelude.Just ("satelliteId" Data..= satelliteId)+          ]+      )++instance Data.ToPath CreateEphemeris where+  toPath = Prelude.const "/ephemeris"++instance Data.ToQuery CreateEphemeris where+  toQuery = Prelude.const Prelude.mempty
+ gen/Amazonka/GroundStation/CreateMissionProfile.hs view
@@ -0,0 +1,233 @@+{-# 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.GroundStation.CreateMissionProfile+-- 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 mission profile.+--+-- @dataflowEdges@ is a list of lists of strings. Each lower level list of+-- strings has two elements: a /from/ ARN and a /to/ ARN.+module Amazonka.GroundStation.CreateMissionProfile+  ( -- * Creating a Request+    CreateMissionProfile (..),+    newCreateMissionProfile,++    -- * Request Lenses+    createMissionProfile_contactPostPassDurationSeconds,+    createMissionProfile_contactPrePassDurationSeconds,+    createMissionProfile_tags,+    createMissionProfile_dataflowEdges,+    createMissionProfile_minimumViableContactDurationSeconds,+    createMissionProfile_name,+    createMissionProfile_trackingConfigArn,++    -- * Destructuring the Response+    MissionProfileIdResponse (..),+    newMissionProfileIdResponse,++    -- * Response Lenses+    missionProfileIdResponse_missionProfileId,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GroundStation.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- |+--+-- /See:/ 'newCreateMissionProfile' smart constructor.+data CreateMissionProfile = CreateMissionProfile'+  { -- | Amount of time after a contact ends that you’d like to receive a+    -- CloudWatch event indicating the pass has finished.+    contactPostPassDurationSeconds :: Prelude.Maybe Prelude.Natural,+    -- | Amount of time prior to contact start you’d like to receive a CloudWatch+    -- event indicating an upcoming pass.+    contactPrePassDurationSeconds :: Prelude.Maybe Prelude.Natural,+    -- | Tags assigned to a mission profile.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | A list of lists of ARNs. Each list of ARNs is an edge, with a /from/+    -- @Config@ and a /to/ @Config@.+    dataflowEdges :: [Prelude.NonEmpty Prelude.Text],+    -- | Smallest amount of time in seconds that you’d like to see for an+    -- available contact. AWS Ground Station will not present you with contacts+    -- shorter than this duration.+    minimumViableContactDurationSeconds :: Prelude.Natural,+    -- | Name of a mission profile.+    name :: Prelude.Text,+    -- | ARN of a tracking @Config@.+    trackingConfigArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateMissionProfile' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'contactPostPassDurationSeconds', 'createMissionProfile_contactPostPassDurationSeconds' - Amount of time after a contact ends that you’d like to receive a+-- CloudWatch event indicating the pass has finished.+--+-- 'contactPrePassDurationSeconds', 'createMissionProfile_contactPrePassDurationSeconds' - Amount of time prior to contact start you’d like to receive a CloudWatch+-- event indicating an upcoming pass.+--+-- 'tags', 'createMissionProfile_tags' - Tags assigned to a mission profile.+--+-- 'dataflowEdges', 'createMissionProfile_dataflowEdges' - A list of lists of ARNs. Each list of ARNs is an edge, with a /from/+-- @Config@ and a /to/ @Config@.+--+-- 'minimumViableContactDurationSeconds', 'createMissionProfile_minimumViableContactDurationSeconds' - Smallest amount of time in seconds that you’d like to see for an+-- available contact. AWS Ground Station will not present you with contacts+-- shorter than this duration.+--+-- 'name', 'createMissionProfile_name' - Name of a mission profile.+--+-- 'trackingConfigArn', 'createMissionProfile_trackingConfigArn' - ARN of a tracking @Config@.+newCreateMissionProfile ::+  -- | 'minimumViableContactDurationSeconds'+  Prelude.Natural ->+  -- | 'name'+  Prelude.Text ->+  -- | 'trackingConfigArn'+  Prelude.Text ->+  CreateMissionProfile+newCreateMissionProfile+  pMinimumViableContactDurationSeconds_+  pName_+  pTrackingConfigArn_ =+    CreateMissionProfile'+      { contactPostPassDurationSeconds =+          Prelude.Nothing,+        contactPrePassDurationSeconds = Prelude.Nothing,+        tags = Prelude.Nothing,+        dataflowEdges = Prelude.mempty,+        minimumViableContactDurationSeconds =+          pMinimumViableContactDurationSeconds_,+        name = pName_,+        trackingConfigArn = pTrackingConfigArn_+      }++-- | Amount of time after a contact ends that you’d like to receive a+-- CloudWatch event indicating the pass has finished.+createMissionProfile_contactPostPassDurationSeconds :: Lens.Lens' CreateMissionProfile (Prelude.Maybe Prelude.Natural)+createMissionProfile_contactPostPassDurationSeconds = Lens.lens (\CreateMissionProfile' {contactPostPassDurationSeconds} -> contactPostPassDurationSeconds) (\s@CreateMissionProfile' {} a -> s {contactPostPassDurationSeconds = a} :: CreateMissionProfile)++-- | Amount of time prior to contact start you’d like to receive a CloudWatch+-- event indicating an upcoming pass.+createMissionProfile_contactPrePassDurationSeconds :: Lens.Lens' CreateMissionProfile (Prelude.Maybe Prelude.Natural)+createMissionProfile_contactPrePassDurationSeconds = Lens.lens (\CreateMissionProfile' {contactPrePassDurationSeconds} -> contactPrePassDurationSeconds) (\s@CreateMissionProfile' {} a -> s {contactPrePassDurationSeconds = a} :: CreateMissionProfile)++-- | Tags assigned to a mission profile.+createMissionProfile_tags :: Lens.Lens' CreateMissionProfile (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createMissionProfile_tags = Lens.lens (\CreateMissionProfile' {tags} -> tags) (\s@CreateMissionProfile' {} a -> s {tags = a} :: CreateMissionProfile) Prelude.. Lens.mapping Lens.coerced++-- | A list of lists of ARNs. Each list of ARNs is an edge, with a /from/+-- @Config@ and a /to/ @Config@.+createMissionProfile_dataflowEdges :: Lens.Lens' CreateMissionProfile [Prelude.NonEmpty Prelude.Text]+createMissionProfile_dataflowEdges = Lens.lens (\CreateMissionProfile' {dataflowEdges} -> dataflowEdges) (\s@CreateMissionProfile' {} a -> s {dataflowEdges = a} :: CreateMissionProfile) Prelude.. Lens.coerced++-- | Smallest amount of time in seconds that you’d like to see for an+-- available contact. AWS Ground Station will not present you with contacts+-- shorter than this duration.+createMissionProfile_minimumViableContactDurationSeconds :: Lens.Lens' CreateMissionProfile Prelude.Natural+createMissionProfile_minimumViableContactDurationSeconds = Lens.lens (\CreateMissionProfile' {minimumViableContactDurationSeconds} -> minimumViableContactDurationSeconds) (\s@CreateMissionProfile' {} a -> s {minimumViableContactDurationSeconds = a} :: CreateMissionProfile)++-- | Name of a mission profile.+createMissionProfile_name :: Lens.Lens' CreateMissionProfile Prelude.Text+createMissionProfile_name = Lens.lens (\CreateMissionProfile' {name} -> name) (\s@CreateMissionProfile' {} a -> s {name = a} :: CreateMissionProfile)++-- | ARN of a tracking @Config@.+createMissionProfile_trackingConfigArn :: Lens.Lens' CreateMissionProfile Prelude.Text+createMissionProfile_trackingConfigArn = Lens.lens (\CreateMissionProfile' {trackingConfigArn} -> trackingConfigArn) (\s@CreateMissionProfile' {} a -> s {trackingConfigArn = a} :: CreateMissionProfile)++instance Core.AWSRequest CreateMissionProfile where+  type+    AWSResponse CreateMissionProfile =+      MissionProfileIdResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      (\s h x -> Data.eitherParseJSON x)++instance Prelude.Hashable CreateMissionProfile where+  hashWithSalt _salt CreateMissionProfile' {..} =+    _salt+      `Prelude.hashWithSalt` contactPostPassDurationSeconds+      `Prelude.hashWithSalt` contactPrePassDurationSeconds+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` dataflowEdges+      `Prelude.hashWithSalt` minimumViableContactDurationSeconds+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` trackingConfigArn++instance Prelude.NFData CreateMissionProfile where+  rnf CreateMissionProfile' {..} =+    Prelude.rnf contactPostPassDurationSeconds+      `Prelude.seq` Prelude.rnf contactPrePassDurationSeconds+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf dataflowEdges+      `Prelude.seq` Prelude.rnf minimumViableContactDurationSeconds+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf trackingConfigArn++instance Data.ToHeaders CreateMissionProfile where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateMissionProfile where+  toJSON CreateMissionProfile' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("contactPostPassDurationSeconds" Data..=)+              Prelude.<$> contactPostPassDurationSeconds,+            ("contactPrePassDurationSeconds" Data..=)+              Prelude.<$> contactPrePassDurationSeconds,+            ("tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("dataflowEdges" Data..= dataflowEdges),+            Prelude.Just+              ( "minimumViableContactDurationSeconds"+                  Data..= minimumViableContactDurationSeconds+              ),+            Prelude.Just ("name" Data..= name),+            Prelude.Just+              ("trackingConfigArn" Data..= trackingConfigArn)+          ]+      )++instance Data.ToPath CreateMissionProfile where+  toPath = Prelude.const "/missionprofile"++instance Data.ToQuery CreateMissionProfile where+  toQuery = Prelude.const Prelude.mempty
+ gen/Amazonka/GroundStation/DeleteConfig.hs view
@@ -0,0 +1,134 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.GroundStation.DeleteConfig+-- 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 @Config@.+module Amazonka.GroundStation.DeleteConfig+  ( -- * Creating a Request+    DeleteConfig (..),+    newDeleteConfig,++    -- * Request Lenses+    deleteConfig_configId,+    deleteConfig_configType,++    -- * Destructuring the Response+    ConfigIdResponse (..),+    newConfigIdResponse,++    -- * Response Lenses+    configIdResponse_configArn,+    configIdResponse_configId,+    configIdResponse_configType,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GroundStation.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- |+--+-- /See:/ 'newDeleteConfig' smart constructor.+data DeleteConfig = DeleteConfig'+  { -- | UUID of a @Config@.+    configId :: Prelude.Text,+    -- | Type of a @Config@.+    configType :: ConfigCapabilityType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'configId', 'deleteConfig_configId' - UUID of a @Config@.+--+-- 'configType', 'deleteConfig_configType' - Type of a @Config@.+newDeleteConfig ::+  -- | 'configId'+  Prelude.Text ->+  -- | 'configType'+  ConfigCapabilityType ->+  DeleteConfig+newDeleteConfig pConfigId_ pConfigType_ =+  DeleteConfig'+    { configId = pConfigId_,+      configType = pConfigType_+    }++-- | UUID of a @Config@.+deleteConfig_configId :: Lens.Lens' DeleteConfig Prelude.Text+deleteConfig_configId = Lens.lens (\DeleteConfig' {configId} -> configId) (\s@DeleteConfig' {} a -> s {configId = a} :: DeleteConfig)++-- | Type of a @Config@.+deleteConfig_configType :: Lens.Lens' DeleteConfig ConfigCapabilityType+deleteConfig_configType = Lens.lens (\DeleteConfig' {configType} -> configType) (\s@DeleteConfig' {} a -> s {configType = a} :: DeleteConfig)++instance Core.AWSRequest DeleteConfig where+  type AWSResponse DeleteConfig = ConfigIdResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveJSON+      (\s h x -> Data.eitherParseJSON x)++instance Prelude.Hashable DeleteConfig where+  hashWithSalt _salt DeleteConfig' {..} =+    _salt+      `Prelude.hashWithSalt` configId+      `Prelude.hashWithSalt` configType++instance Prelude.NFData DeleteConfig where+  rnf DeleteConfig' {..} =+    Prelude.rnf configId+      `Prelude.seq` Prelude.rnf configType++instance Data.ToHeaders DeleteConfig where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DeleteConfig where+  toPath DeleteConfig' {..} =+    Prelude.mconcat+      [ "/config/",+        Data.toBS configType,+        "/",+        Data.toBS configId+      ]++instance Data.ToQuery DeleteConfig where+  toQuery = Prelude.const Prelude.mempty
+ gen/Amazonka/GroundStation/DeleteDataflowEndpointGroup.hs view
@@ -0,0 +1,120 @@+{-# 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.GroundStation.DeleteDataflowEndpointGroup+-- 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 dataflow endpoint group.+module Amazonka.GroundStation.DeleteDataflowEndpointGroup+  ( -- * Creating a Request+    DeleteDataflowEndpointGroup (..),+    newDeleteDataflowEndpointGroup,++    -- * Request Lenses+    deleteDataflowEndpointGroup_dataflowEndpointGroupId,++    -- * Destructuring the Response+    DataflowEndpointGroupIdResponse (..),+    newDataflowEndpointGroupIdResponse,++    -- * Response Lenses+    dataflowEndpointGroupIdResponse_dataflowEndpointGroupId,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GroundStation.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- |+--+-- /See:/ 'newDeleteDataflowEndpointGroup' smart constructor.+data DeleteDataflowEndpointGroup = DeleteDataflowEndpointGroup'+  { -- | UUID of a dataflow endpoint group.+    dataflowEndpointGroupId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteDataflowEndpointGroup' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dataflowEndpointGroupId', 'deleteDataflowEndpointGroup_dataflowEndpointGroupId' - UUID of a dataflow endpoint group.+newDeleteDataflowEndpointGroup ::+  -- | 'dataflowEndpointGroupId'+  Prelude.Text ->+  DeleteDataflowEndpointGroup+newDeleteDataflowEndpointGroup+  pDataflowEndpointGroupId_ =+    DeleteDataflowEndpointGroup'+      { dataflowEndpointGroupId =+          pDataflowEndpointGroupId_+      }++-- | UUID of a dataflow endpoint group.+deleteDataflowEndpointGroup_dataflowEndpointGroupId :: Lens.Lens' DeleteDataflowEndpointGroup Prelude.Text+deleteDataflowEndpointGroup_dataflowEndpointGroupId = Lens.lens (\DeleteDataflowEndpointGroup' {dataflowEndpointGroupId} -> dataflowEndpointGroupId) (\s@DeleteDataflowEndpointGroup' {} a -> s {dataflowEndpointGroupId = a} :: DeleteDataflowEndpointGroup)++instance Core.AWSRequest DeleteDataflowEndpointGroup where+  type+    AWSResponse DeleteDataflowEndpointGroup =+      DataflowEndpointGroupIdResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveJSON+      (\s h x -> Data.eitherParseJSON x)++instance Prelude.Hashable DeleteDataflowEndpointGroup where+  hashWithSalt _salt DeleteDataflowEndpointGroup' {..} =+    _salt+      `Prelude.hashWithSalt` dataflowEndpointGroupId++instance Prelude.NFData DeleteDataflowEndpointGroup where+  rnf DeleteDataflowEndpointGroup' {..} =+    Prelude.rnf dataflowEndpointGroupId++instance Data.ToHeaders DeleteDataflowEndpointGroup where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DeleteDataflowEndpointGroup where+  toPath DeleteDataflowEndpointGroup' {..} =+    Prelude.mconcat+      [ "/dataflowEndpointGroup/",+        Data.toBS dataflowEndpointGroupId+      ]++instance Data.ToQuery DeleteDataflowEndpointGroup where+  toQuery = Prelude.const Prelude.mempty
+ gen/Amazonka/GroundStation/DeleteEphemeris.hs view
@@ -0,0 +1,110 @@+{-# 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.GroundStation.DeleteEphemeris+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes an ephemeris+module Amazonka.GroundStation.DeleteEphemeris+  ( -- * Creating a Request+    DeleteEphemeris (..),+    newDeleteEphemeris,++    -- * Request Lenses+    deleteEphemeris_ephemerisId,++    -- * Destructuring the Response+    EphemerisIdResponse (..),+    newEphemerisIdResponse,++    -- * Response Lenses+    ephemerisIdResponse_ephemerisId,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GroundStation.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteEphemeris' smart constructor.+data DeleteEphemeris = DeleteEphemeris'+  { -- | The AWS Ground Station ephemeris ID.+    ephemerisId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteEphemeris' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'ephemerisId', 'deleteEphemeris_ephemerisId' - The AWS Ground Station ephemeris ID.+newDeleteEphemeris ::+  -- | 'ephemerisId'+  Prelude.Text ->+  DeleteEphemeris+newDeleteEphemeris pEphemerisId_ =+  DeleteEphemeris' {ephemerisId = pEphemerisId_}++-- | The AWS Ground Station ephemeris ID.+deleteEphemeris_ephemerisId :: Lens.Lens' DeleteEphemeris Prelude.Text+deleteEphemeris_ephemerisId = Lens.lens (\DeleteEphemeris' {ephemerisId} -> ephemerisId) (\s@DeleteEphemeris' {} a -> s {ephemerisId = a} :: DeleteEphemeris)++instance Core.AWSRequest DeleteEphemeris where+  type+    AWSResponse DeleteEphemeris =+      EphemerisIdResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveJSON+      (\s h x -> Data.eitherParseJSON x)++instance Prelude.Hashable DeleteEphemeris where+  hashWithSalt _salt DeleteEphemeris' {..} =+    _salt `Prelude.hashWithSalt` ephemerisId++instance Prelude.NFData DeleteEphemeris where+  rnf DeleteEphemeris' {..} = Prelude.rnf ephemerisId++instance Data.ToHeaders DeleteEphemeris where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DeleteEphemeris where+  toPath DeleteEphemeris' {..} =+    Prelude.mconcat+      ["/ephemeris/", Data.toBS ephemerisId]++instance Data.ToQuery DeleteEphemeris where+  toQuery = Prelude.const Prelude.mempty
+ gen/Amazonka/GroundStation/DeleteMissionProfile.hs view
@@ -0,0 +1,116 @@+{-# 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.GroundStation.DeleteMissionProfile+-- 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 mission profile.+module Amazonka.GroundStation.DeleteMissionProfile+  ( -- * Creating a Request+    DeleteMissionProfile (..),+    newDeleteMissionProfile,++    -- * Request Lenses+    deleteMissionProfile_missionProfileId,++    -- * Destructuring the Response+    MissionProfileIdResponse (..),+    newMissionProfileIdResponse,++    -- * Response Lenses+    missionProfileIdResponse_missionProfileId,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GroundStation.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- |+--+-- /See:/ 'newDeleteMissionProfile' smart constructor.+data DeleteMissionProfile = DeleteMissionProfile'+  { -- | UUID of a mission profile.+    missionProfileId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteMissionProfile' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'missionProfileId', 'deleteMissionProfile_missionProfileId' - UUID of a mission profile.+newDeleteMissionProfile ::+  -- | 'missionProfileId'+  Prelude.Text ->+  DeleteMissionProfile+newDeleteMissionProfile pMissionProfileId_ =+  DeleteMissionProfile'+    { missionProfileId =+        pMissionProfileId_+    }++-- | UUID of a mission profile.+deleteMissionProfile_missionProfileId :: Lens.Lens' DeleteMissionProfile Prelude.Text+deleteMissionProfile_missionProfileId = Lens.lens (\DeleteMissionProfile' {missionProfileId} -> missionProfileId) (\s@DeleteMissionProfile' {} a -> s {missionProfileId = a} :: DeleteMissionProfile)++instance Core.AWSRequest DeleteMissionProfile where+  type+    AWSResponse DeleteMissionProfile =+      MissionProfileIdResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveJSON+      (\s h x -> Data.eitherParseJSON x)++instance Prelude.Hashable DeleteMissionProfile where+  hashWithSalt _salt DeleteMissionProfile' {..} =+    _salt `Prelude.hashWithSalt` missionProfileId++instance Prelude.NFData DeleteMissionProfile where+  rnf DeleteMissionProfile' {..} =+    Prelude.rnf missionProfileId++instance Data.ToHeaders DeleteMissionProfile where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DeleteMissionProfile where+  toPath DeleteMissionProfile' {..} =+    Prelude.mconcat+      ["/missionprofile/", Data.toBS missionProfileId]++instance Data.ToQuery DeleteMissionProfile where+  toQuery = Prelude.const Prelude.mempty
+ gen/Amazonka/GroundStation/DescribeContact.hs view
@@ -0,0 +1,324 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.GroundStation.DescribeContact+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Describes an existing contact.+module Amazonka.GroundStation.DescribeContact+  ( -- * Creating a Request+    DescribeContact (..),+    newDescribeContact,++    -- * Request Lenses+    describeContact_contactId,++    -- * Destructuring the Response+    DescribeContactResponse (..),+    newDescribeContactResponse,++    -- * Response Lenses+    describeContactResponse_contactId,+    describeContactResponse_contactStatus,+    describeContactResponse_dataflowList,+    describeContactResponse_endTime,+    describeContactResponse_errorMessage,+    describeContactResponse_groundStation,+    describeContactResponse_maximumElevation,+    describeContactResponse_missionProfileArn,+    describeContactResponse_postPassEndTime,+    describeContactResponse_prePassStartTime,+    describeContactResponse_region,+    describeContactResponse_satelliteArn,+    describeContactResponse_startTime,+    describeContactResponse_tags,+    describeContactResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GroundStation.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- |+--+-- /See:/ 'newDescribeContact' smart constructor.+data DescribeContact = DescribeContact'+  { -- | UUID of a contact.+    contactId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeContact' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'contactId', 'describeContact_contactId' - UUID of a contact.+newDescribeContact ::+  -- | 'contactId'+  Prelude.Text ->+  DescribeContact+newDescribeContact pContactId_ =+  DescribeContact' {contactId = pContactId_}++-- | UUID of a contact.+describeContact_contactId :: Lens.Lens' DescribeContact Prelude.Text+describeContact_contactId = Lens.lens (\DescribeContact' {contactId} -> contactId) (\s@DescribeContact' {} a -> s {contactId = a} :: DescribeContact)++instance Core.AWSRequest DescribeContact where+  type+    AWSResponse DescribeContact =+      DescribeContactResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeContactResponse'+            Prelude.<$> (x Data..?> "contactId")+            Prelude.<*> (x Data..?> "contactStatus")+            Prelude.<*> (x Data..?> "dataflowList" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "endTime")+            Prelude.<*> (x Data..?> "errorMessage")+            Prelude.<*> (x Data..?> "groundStation")+            Prelude.<*> (x Data..?> "maximumElevation")+            Prelude.<*> (x Data..?> "missionProfileArn")+            Prelude.<*> (x Data..?> "postPassEndTime")+            Prelude.<*> (x Data..?> "prePassStartTime")+            Prelude.<*> (x Data..?> "region")+            Prelude.<*> (x Data..?> "satelliteArn")+            Prelude.<*> (x Data..?> "startTime")+            Prelude.<*> (x Data..?> "tags" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeContact where+  hashWithSalt _salt DescribeContact' {..} =+    _salt `Prelude.hashWithSalt` contactId++instance Prelude.NFData DescribeContact where+  rnf DescribeContact' {..} = Prelude.rnf contactId++instance Data.ToHeaders DescribeContact where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DescribeContact where+  toPath DescribeContact' {..} =+    Prelude.mconcat ["/contact/", Data.toBS contactId]++instance Data.ToQuery DescribeContact where+  toQuery = Prelude.const Prelude.mempty++-- |+--+-- /See:/ 'newDescribeContactResponse' smart constructor.+data DescribeContactResponse = DescribeContactResponse'+  { -- | UUID of a contact.+    contactId :: Prelude.Maybe Prelude.Text,+    -- | Status of a contact.+    contactStatus :: Prelude.Maybe ContactStatus,+    -- | List describing source and destination details for each dataflow edge.+    dataflowList :: Prelude.Maybe [DataflowDetail],+    -- | End time of a contact in UTC.+    endTime :: Prelude.Maybe Data.POSIX,+    -- | Error message for a contact.+    errorMessage :: Prelude.Maybe Prelude.Text,+    -- | Ground station for a contact.+    groundStation :: Prelude.Maybe Prelude.Text,+    -- | Maximum elevation angle of a contact.+    maximumElevation :: Prelude.Maybe Elevation,+    -- | ARN of a mission profile.+    missionProfileArn :: Prelude.Maybe Prelude.Text,+    -- | Amount of time after a contact ends that you’d like to receive a+    -- CloudWatch event indicating the pass has finished.+    postPassEndTime :: Prelude.Maybe Data.POSIX,+    -- | Amount of time prior to contact start you’d like to receive a CloudWatch+    -- event indicating an upcoming pass.+    prePassStartTime :: Prelude.Maybe Data.POSIX,+    -- | Region of a contact.+    region :: Prelude.Maybe Prelude.Text,+    -- | ARN of a satellite.+    satelliteArn :: Prelude.Maybe Prelude.Text,+    -- | Start time of a contact in UTC.+    startTime :: Prelude.Maybe Data.POSIX,+    -- | Tags assigned to a contact.+    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 'DescribeContactResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'contactId', 'describeContactResponse_contactId' - UUID of a contact.+--+-- 'contactStatus', 'describeContactResponse_contactStatus' - Status of a contact.+--+-- 'dataflowList', 'describeContactResponse_dataflowList' - List describing source and destination details for each dataflow edge.+--+-- 'endTime', 'describeContactResponse_endTime' - End time of a contact in UTC.+--+-- 'errorMessage', 'describeContactResponse_errorMessage' - Error message for a contact.+--+-- 'groundStation', 'describeContactResponse_groundStation' - Ground station for a contact.+--+-- 'maximumElevation', 'describeContactResponse_maximumElevation' - Maximum elevation angle of a contact.+--+-- 'missionProfileArn', 'describeContactResponse_missionProfileArn' - ARN of a mission profile.+--+-- 'postPassEndTime', 'describeContactResponse_postPassEndTime' - Amount of time after a contact ends that you’d like to receive a+-- CloudWatch event indicating the pass has finished.+--+-- 'prePassStartTime', 'describeContactResponse_prePassStartTime' - Amount of time prior to contact start you’d like to receive a CloudWatch+-- event indicating an upcoming pass.+--+-- 'region', 'describeContactResponse_region' - Region of a contact.+--+-- 'satelliteArn', 'describeContactResponse_satelliteArn' - ARN of a satellite.+--+-- 'startTime', 'describeContactResponse_startTime' - Start time of a contact in UTC.+--+-- 'tags', 'describeContactResponse_tags' - Tags assigned to a contact.+--+-- 'httpStatus', 'describeContactResponse_httpStatus' - The response's http status code.+newDescribeContactResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeContactResponse+newDescribeContactResponse pHttpStatus_ =+  DescribeContactResponse'+    { contactId =+        Prelude.Nothing,+      contactStatus = Prelude.Nothing,+      dataflowList = Prelude.Nothing,+      endTime = Prelude.Nothing,+      errorMessage = Prelude.Nothing,+      groundStation = Prelude.Nothing,+      maximumElevation = Prelude.Nothing,+      missionProfileArn = Prelude.Nothing,+      postPassEndTime = Prelude.Nothing,+      prePassStartTime = Prelude.Nothing,+      region = Prelude.Nothing,+      satelliteArn = Prelude.Nothing,+      startTime = Prelude.Nothing,+      tags = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | UUID of a contact.+describeContactResponse_contactId :: Lens.Lens' DescribeContactResponse (Prelude.Maybe Prelude.Text)+describeContactResponse_contactId = Lens.lens (\DescribeContactResponse' {contactId} -> contactId) (\s@DescribeContactResponse' {} a -> s {contactId = a} :: DescribeContactResponse)++-- | Status of a contact.+describeContactResponse_contactStatus :: Lens.Lens' DescribeContactResponse (Prelude.Maybe ContactStatus)+describeContactResponse_contactStatus = Lens.lens (\DescribeContactResponse' {contactStatus} -> contactStatus) (\s@DescribeContactResponse' {} a -> s {contactStatus = a} :: DescribeContactResponse)++-- | List describing source and destination details for each dataflow edge.+describeContactResponse_dataflowList :: Lens.Lens' DescribeContactResponse (Prelude.Maybe [DataflowDetail])+describeContactResponse_dataflowList = Lens.lens (\DescribeContactResponse' {dataflowList} -> dataflowList) (\s@DescribeContactResponse' {} a -> s {dataflowList = a} :: DescribeContactResponse) Prelude.. Lens.mapping Lens.coerced++-- | End time of a contact in UTC.+describeContactResponse_endTime :: Lens.Lens' DescribeContactResponse (Prelude.Maybe Prelude.UTCTime)+describeContactResponse_endTime = Lens.lens (\DescribeContactResponse' {endTime} -> endTime) (\s@DescribeContactResponse' {} a -> s {endTime = a} :: DescribeContactResponse) Prelude.. Lens.mapping Data._Time++-- | Error message for a contact.+describeContactResponse_errorMessage :: Lens.Lens' DescribeContactResponse (Prelude.Maybe Prelude.Text)+describeContactResponse_errorMessage = Lens.lens (\DescribeContactResponse' {errorMessage} -> errorMessage) (\s@DescribeContactResponse' {} a -> s {errorMessage = a} :: DescribeContactResponse)++-- | Ground station for a contact.+describeContactResponse_groundStation :: Lens.Lens' DescribeContactResponse (Prelude.Maybe Prelude.Text)+describeContactResponse_groundStation = Lens.lens (\DescribeContactResponse' {groundStation} -> groundStation) (\s@DescribeContactResponse' {} a -> s {groundStation = a} :: DescribeContactResponse)++-- | Maximum elevation angle of a contact.+describeContactResponse_maximumElevation :: Lens.Lens' DescribeContactResponse (Prelude.Maybe Elevation)+describeContactResponse_maximumElevation = Lens.lens (\DescribeContactResponse' {maximumElevation} -> maximumElevation) (\s@DescribeContactResponse' {} a -> s {maximumElevation = a} :: DescribeContactResponse)++-- | ARN of a mission profile.+describeContactResponse_missionProfileArn :: Lens.Lens' DescribeContactResponse (Prelude.Maybe Prelude.Text)+describeContactResponse_missionProfileArn = Lens.lens (\DescribeContactResponse' {missionProfileArn} -> missionProfileArn) (\s@DescribeContactResponse' {} a -> s {missionProfileArn = a} :: DescribeContactResponse)++-- | Amount of time after a contact ends that you’d like to receive a+-- CloudWatch event indicating the pass has finished.+describeContactResponse_postPassEndTime :: Lens.Lens' DescribeContactResponse (Prelude.Maybe Prelude.UTCTime)+describeContactResponse_postPassEndTime = Lens.lens (\DescribeContactResponse' {postPassEndTime} -> postPassEndTime) (\s@DescribeContactResponse' {} a -> s {postPassEndTime = a} :: DescribeContactResponse) Prelude.. Lens.mapping Data._Time++-- | Amount of time prior to contact start you’d like to receive a CloudWatch+-- event indicating an upcoming pass.+describeContactResponse_prePassStartTime :: Lens.Lens' DescribeContactResponse (Prelude.Maybe Prelude.UTCTime)+describeContactResponse_prePassStartTime = Lens.lens (\DescribeContactResponse' {prePassStartTime} -> prePassStartTime) (\s@DescribeContactResponse' {} a -> s {prePassStartTime = a} :: DescribeContactResponse) Prelude.. Lens.mapping Data._Time++-- | Region of a contact.+describeContactResponse_region :: Lens.Lens' DescribeContactResponse (Prelude.Maybe Prelude.Text)+describeContactResponse_region = Lens.lens (\DescribeContactResponse' {region} -> region) (\s@DescribeContactResponse' {} a -> s {region = a} :: DescribeContactResponse)++-- | ARN of a satellite.+describeContactResponse_satelliteArn :: Lens.Lens' DescribeContactResponse (Prelude.Maybe Prelude.Text)+describeContactResponse_satelliteArn = Lens.lens (\DescribeContactResponse' {satelliteArn} -> satelliteArn) (\s@DescribeContactResponse' {} a -> s {satelliteArn = a} :: DescribeContactResponse)++-- | Start time of a contact in UTC.+describeContactResponse_startTime :: Lens.Lens' DescribeContactResponse (Prelude.Maybe Prelude.UTCTime)+describeContactResponse_startTime = Lens.lens (\DescribeContactResponse' {startTime} -> startTime) (\s@DescribeContactResponse' {} a -> s {startTime = a} :: DescribeContactResponse) Prelude.. Lens.mapping Data._Time++-- | Tags assigned to a contact.+describeContactResponse_tags :: Lens.Lens' DescribeContactResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+describeContactResponse_tags = Lens.lens (\DescribeContactResponse' {tags} -> tags) (\s@DescribeContactResponse' {} a -> s {tags = a} :: DescribeContactResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+describeContactResponse_httpStatus :: Lens.Lens' DescribeContactResponse Prelude.Int+describeContactResponse_httpStatus = Lens.lens (\DescribeContactResponse' {httpStatus} -> httpStatus) (\s@DescribeContactResponse' {} a -> s {httpStatus = a} :: DescribeContactResponse)++instance Prelude.NFData DescribeContactResponse where+  rnf DescribeContactResponse' {..} =+    Prelude.rnf contactId+      `Prelude.seq` Prelude.rnf contactStatus+      `Prelude.seq` Prelude.rnf dataflowList+      `Prelude.seq` Prelude.rnf endTime+      `Prelude.seq` Prelude.rnf errorMessage+      `Prelude.seq` Prelude.rnf groundStation+      `Prelude.seq` Prelude.rnf maximumElevation+      `Prelude.seq` Prelude.rnf missionProfileArn+      `Prelude.seq` Prelude.rnf postPassEndTime+      `Prelude.seq` Prelude.rnf prePassStartTime+      `Prelude.seq` Prelude.rnf region+      `Prelude.seq` Prelude.rnf satelliteArn+      `Prelude.seq` Prelude.rnf startTime+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/GroundStation/DescribeEphemeris.hs view
@@ -0,0 +1,291 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.GroundStation.DescribeEphemeris+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Describes an existing ephemeris.+module Amazonka.GroundStation.DescribeEphemeris+  ( -- * Creating a Request+    DescribeEphemeris (..),+    newDescribeEphemeris,++    -- * Request Lenses+    describeEphemeris_ephemerisId,++    -- * Destructuring the Response+    DescribeEphemerisResponse (..),+    newDescribeEphemerisResponse,++    -- * Response Lenses+    describeEphemerisResponse_creationTime,+    describeEphemerisResponse_enabled,+    describeEphemerisResponse_ephemerisId,+    describeEphemerisResponse_invalidReason,+    describeEphemerisResponse_name,+    describeEphemerisResponse_priority,+    describeEphemerisResponse_satelliteId,+    describeEphemerisResponse_status,+    describeEphemerisResponse_suppliedData,+    describeEphemerisResponse_tags,+    describeEphemerisResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GroundStation.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeEphemeris' smart constructor.+data DescribeEphemeris = DescribeEphemeris'+  { -- | The AWS Ground Station ephemeris ID.+    ephemerisId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeEphemeris' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'ephemerisId', 'describeEphemeris_ephemerisId' - The AWS Ground Station ephemeris ID.+newDescribeEphemeris ::+  -- | 'ephemerisId'+  Prelude.Text ->+  DescribeEphemeris+newDescribeEphemeris pEphemerisId_ =+  DescribeEphemeris' {ephemerisId = pEphemerisId_}++-- | The AWS Ground Station ephemeris ID.+describeEphemeris_ephemerisId :: Lens.Lens' DescribeEphemeris Prelude.Text+describeEphemeris_ephemerisId = Lens.lens (\DescribeEphemeris' {ephemerisId} -> ephemerisId) (\s@DescribeEphemeris' {} a -> s {ephemerisId = a} :: DescribeEphemeris)++instance Core.AWSRequest DescribeEphemeris where+  type+    AWSResponse DescribeEphemeris =+      DescribeEphemerisResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeEphemerisResponse'+            Prelude.<$> (x Data..?> "creationTime")+            Prelude.<*> (x Data..?> "enabled")+            Prelude.<*> (x Data..?> "ephemerisId")+            Prelude.<*> (x Data..?> "invalidReason")+            Prelude.<*> (x Data..?> "name")+            Prelude.<*> (x Data..?> "priority")+            Prelude.<*> (x Data..?> "satelliteId")+            Prelude.<*> (x Data..?> "status")+            Prelude.<*> (x Data..?> "suppliedData")+            Prelude.<*> (x Data..?> "tags" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeEphemeris where+  hashWithSalt _salt DescribeEphemeris' {..} =+    _salt `Prelude.hashWithSalt` ephemerisId++instance Prelude.NFData DescribeEphemeris where+  rnf DescribeEphemeris' {..} = Prelude.rnf ephemerisId++instance Data.ToHeaders DescribeEphemeris where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DescribeEphemeris where+  toPath DescribeEphemeris' {..} =+    Prelude.mconcat+      ["/ephemeris/", Data.toBS ephemerisId]++instance Data.ToQuery DescribeEphemeris where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeEphemerisResponse' smart constructor.+data DescribeEphemerisResponse = DescribeEphemerisResponse'+  { -- | The time the ephemeris was uploaded in UTC.+    creationTime :: Prelude.Maybe Data.POSIX,+    -- | Whether or not the ephemeris is enabled.+    enabled :: Prelude.Maybe Prelude.Bool,+    -- | The AWS Ground Station ephemeris ID.+    ephemerisId :: Prelude.Maybe Prelude.Text,+    -- | Reason that an ephemeris failed validation. Only provided for+    -- ephemerides with @INVALID@ status.+    invalidReason :: Prelude.Maybe EphemerisInvalidReason,+    -- | A name string associated with the ephemeris. Used as a human-readable+    -- identifier for the ephemeris.+    name :: Prelude.Maybe Prelude.Text,+    -- | Customer-provided priority score to establish the order in which+    -- overlapping ephemerides should be used.+    --+    -- The default for customer-provided ephemeris priority is 1, and higher+    -- numbers take precedence.+    --+    -- Priority must be 1 or greater+    priority :: Prelude.Maybe Prelude.Natural,+    -- | The AWS Ground Station satellite ID associated with ephemeris.+    satelliteId :: Prelude.Maybe Prelude.Text,+    -- | The status of the ephemeris.+    status :: Prelude.Maybe EphemerisStatus,+    -- | Supplied ephemeris data.+    suppliedData :: Prelude.Maybe EphemerisTypeDescription,+    -- | Tags assigned to an ephemeris.+    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 'DescribeEphemerisResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'creationTime', 'describeEphemerisResponse_creationTime' - The time the ephemeris was uploaded in UTC.+--+-- 'enabled', 'describeEphemerisResponse_enabled' - Whether or not the ephemeris is enabled.+--+-- 'ephemerisId', 'describeEphemerisResponse_ephemerisId' - The AWS Ground Station ephemeris ID.+--+-- 'invalidReason', 'describeEphemerisResponse_invalidReason' - Reason that an ephemeris failed validation. Only provided for+-- ephemerides with @INVALID@ status.+--+-- 'name', 'describeEphemerisResponse_name' - A name string associated with the ephemeris. Used as a human-readable+-- identifier for the ephemeris.+--+-- 'priority', 'describeEphemerisResponse_priority' - Customer-provided priority score to establish the order in which+-- overlapping ephemerides should be used.+--+-- The default for customer-provided ephemeris priority is 1, and higher+-- numbers take precedence.+--+-- Priority must be 1 or greater+--+-- 'satelliteId', 'describeEphemerisResponse_satelliteId' - The AWS Ground Station satellite ID associated with ephemeris.+--+-- 'status', 'describeEphemerisResponse_status' - The status of the ephemeris.+--+-- 'suppliedData', 'describeEphemerisResponse_suppliedData' - Supplied ephemeris data.+--+-- 'tags', 'describeEphemerisResponse_tags' - Tags assigned to an ephemeris.+--+-- 'httpStatus', 'describeEphemerisResponse_httpStatus' - The response's http status code.+newDescribeEphemerisResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeEphemerisResponse+newDescribeEphemerisResponse pHttpStatus_ =+  DescribeEphemerisResponse'+    { creationTime =+        Prelude.Nothing,+      enabled = Prelude.Nothing,+      ephemerisId = Prelude.Nothing,+      invalidReason = Prelude.Nothing,+      name = Prelude.Nothing,+      priority = Prelude.Nothing,+      satelliteId = Prelude.Nothing,+      status = Prelude.Nothing,+      suppliedData = Prelude.Nothing,+      tags = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The time the ephemeris was uploaded in UTC.+describeEphemerisResponse_creationTime :: Lens.Lens' DescribeEphemerisResponse (Prelude.Maybe Prelude.UTCTime)+describeEphemerisResponse_creationTime = Lens.lens (\DescribeEphemerisResponse' {creationTime} -> creationTime) (\s@DescribeEphemerisResponse' {} a -> s {creationTime = a} :: DescribeEphemerisResponse) Prelude.. Lens.mapping Data._Time++-- | Whether or not the ephemeris is enabled.+describeEphemerisResponse_enabled :: Lens.Lens' DescribeEphemerisResponse (Prelude.Maybe Prelude.Bool)+describeEphemerisResponse_enabled = Lens.lens (\DescribeEphemerisResponse' {enabled} -> enabled) (\s@DescribeEphemerisResponse' {} a -> s {enabled = a} :: DescribeEphemerisResponse)++-- | The AWS Ground Station ephemeris ID.+describeEphemerisResponse_ephemerisId :: Lens.Lens' DescribeEphemerisResponse (Prelude.Maybe Prelude.Text)+describeEphemerisResponse_ephemerisId = Lens.lens (\DescribeEphemerisResponse' {ephemerisId} -> ephemerisId) (\s@DescribeEphemerisResponse' {} a -> s {ephemerisId = a} :: DescribeEphemerisResponse)++-- | Reason that an ephemeris failed validation. Only provided for+-- ephemerides with @INVALID@ status.+describeEphemerisResponse_invalidReason :: Lens.Lens' DescribeEphemerisResponse (Prelude.Maybe EphemerisInvalidReason)+describeEphemerisResponse_invalidReason = Lens.lens (\DescribeEphemerisResponse' {invalidReason} -> invalidReason) (\s@DescribeEphemerisResponse' {} a -> s {invalidReason = a} :: DescribeEphemerisResponse)++-- | A name string associated with the ephemeris. Used as a human-readable+-- identifier for the ephemeris.+describeEphemerisResponse_name :: Lens.Lens' DescribeEphemerisResponse (Prelude.Maybe Prelude.Text)+describeEphemerisResponse_name = Lens.lens (\DescribeEphemerisResponse' {name} -> name) (\s@DescribeEphemerisResponse' {} a -> s {name = a} :: DescribeEphemerisResponse)++-- | Customer-provided priority score to establish the order in which+-- overlapping ephemerides should be used.+--+-- The default for customer-provided ephemeris priority is 1, and higher+-- numbers take precedence.+--+-- Priority must be 1 or greater+describeEphemerisResponse_priority :: Lens.Lens' DescribeEphemerisResponse (Prelude.Maybe Prelude.Natural)+describeEphemerisResponse_priority = Lens.lens (\DescribeEphemerisResponse' {priority} -> priority) (\s@DescribeEphemerisResponse' {} a -> s {priority = a} :: DescribeEphemerisResponse)++-- | The AWS Ground Station satellite ID associated with ephemeris.+describeEphemerisResponse_satelliteId :: Lens.Lens' DescribeEphemerisResponse (Prelude.Maybe Prelude.Text)+describeEphemerisResponse_satelliteId = Lens.lens (\DescribeEphemerisResponse' {satelliteId} -> satelliteId) (\s@DescribeEphemerisResponse' {} a -> s {satelliteId = a} :: DescribeEphemerisResponse)++-- | The status of the ephemeris.+describeEphemerisResponse_status :: Lens.Lens' DescribeEphemerisResponse (Prelude.Maybe EphemerisStatus)+describeEphemerisResponse_status = Lens.lens (\DescribeEphemerisResponse' {status} -> status) (\s@DescribeEphemerisResponse' {} a -> s {status = a} :: DescribeEphemerisResponse)++-- | Supplied ephemeris data.+describeEphemerisResponse_suppliedData :: Lens.Lens' DescribeEphemerisResponse (Prelude.Maybe EphemerisTypeDescription)+describeEphemerisResponse_suppliedData = Lens.lens (\DescribeEphemerisResponse' {suppliedData} -> suppliedData) (\s@DescribeEphemerisResponse' {} a -> s {suppliedData = a} :: DescribeEphemerisResponse)++-- | Tags assigned to an ephemeris.+describeEphemerisResponse_tags :: Lens.Lens' DescribeEphemerisResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+describeEphemerisResponse_tags = Lens.lens (\DescribeEphemerisResponse' {tags} -> tags) (\s@DescribeEphemerisResponse' {} a -> s {tags = a} :: DescribeEphemerisResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+describeEphemerisResponse_httpStatus :: Lens.Lens' DescribeEphemerisResponse Prelude.Int+describeEphemerisResponse_httpStatus = Lens.lens (\DescribeEphemerisResponse' {httpStatus} -> httpStatus) (\s@DescribeEphemerisResponse' {} a -> s {httpStatus = a} :: DescribeEphemerisResponse)++instance Prelude.NFData DescribeEphemerisResponse where+  rnf DescribeEphemerisResponse' {..} =+    Prelude.rnf creationTime+      `Prelude.seq` Prelude.rnf enabled+      `Prelude.seq` Prelude.rnf ephemerisId+      `Prelude.seq` Prelude.rnf invalidReason+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf priority+      `Prelude.seq` Prelude.rnf satelliteId+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf suppliedData+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/GroundStation/GetConfig.hs view
@@ -0,0 +1,257 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.GroundStation.GetConfig+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns @Config@ information.+--+-- Only one @Config@ response can be returned.+module Amazonka.GroundStation.GetConfig+  ( -- * Creating a Request+    GetConfig (..),+    newGetConfig,++    -- * Request Lenses+    getConfig_configId,+    getConfig_configType,++    -- * Destructuring the Response+    GetConfigResponse (..),+    newGetConfigResponse,++    -- * Response Lenses+    getConfigResponse_configType,+    getConfigResponse_tags,+    getConfigResponse_httpStatus,+    getConfigResponse_configArn,+    getConfigResponse_configData,+    getConfigResponse_configId,+    getConfigResponse_name,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GroundStation.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- |+--+-- /See:/ 'newGetConfig' smart constructor.+data GetConfig = GetConfig'+  { -- | UUID of a @Config@.+    configId :: Prelude.Text,+    -- | Type of a @Config@.+    configType :: ConfigCapabilityType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'configId', 'getConfig_configId' - UUID of a @Config@.+--+-- 'configType', 'getConfig_configType' - Type of a @Config@.+newGetConfig ::+  -- | 'configId'+  Prelude.Text ->+  -- | 'configType'+  ConfigCapabilityType ->+  GetConfig+newGetConfig pConfigId_ pConfigType_ =+  GetConfig'+    { configId = pConfigId_,+      configType = pConfigType_+    }++-- | UUID of a @Config@.+getConfig_configId :: Lens.Lens' GetConfig Prelude.Text+getConfig_configId = Lens.lens (\GetConfig' {configId} -> configId) (\s@GetConfig' {} a -> s {configId = a} :: GetConfig)++-- | Type of a @Config@.+getConfig_configType :: Lens.Lens' GetConfig ConfigCapabilityType+getConfig_configType = Lens.lens (\GetConfig' {configType} -> configType) (\s@GetConfig' {} a -> s {configType = a} :: GetConfig)++instance Core.AWSRequest GetConfig where+  type AWSResponse GetConfig = GetConfigResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetConfigResponse'+            Prelude.<$> (x Data..?> "configType")+            Prelude.<*> (x Data..?> "tags" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "configArn")+            Prelude.<*> (x Data..:> "configData")+            Prelude.<*> (x Data..:> "configId")+            Prelude.<*> (x Data..:> "name")+      )++instance Prelude.Hashable GetConfig where+  hashWithSalt _salt GetConfig' {..} =+    _salt+      `Prelude.hashWithSalt` configId+      `Prelude.hashWithSalt` configType++instance Prelude.NFData GetConfig where+  rnf GetConfig' {..} =+    Prelude.rnf configId+      `Prelude.seq` Prelude.rnf configType++instance Data.ToHeaders GetConfig where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetConfig where+  toPath GetConfig' {..} =+    Prelude.mconcat+      [ "/config/",+        Data.toBS configType,+        "/",+        Data.toBS configId+      ]++instance Data.ToQuery GetConfig where+  toQuery = Prelude.const Prelude.mempty++-- |+--+-- /See:/ 'newGetConfigResponse' smart constructor.+data GetConfigResponse = GetConfigResponse'+  { -- | Type of a @Config@.+    configType :: Prelude.Maybe ConfigCapabilityType,+    -- | Tags assigned to a @Config@.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | ARN of a @Config@+    configArn :: Prelude.Text,+    -- | Data elements in a @Config@.+    configData :: ConfigTypeData,+    -- | UUID of a @Config@.+    configId :: Prelude.Text,+    -- | Name of a @Config@.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetConfigResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'configType', 'getConfigResponse_configType' - Type of a @Config@.+--+-- 'tags', 'getConfigResponse_tags' - Tags assigned to a @Config@.+--+-- 'httpStatus', 'getConfigResponse_httpStatus' - The response's http status code.+--+-- 'configArn', 'getConfigResponse_configArn' - ARN of a @Config@+--+-- 'configData', 'getConfigResponse_configData' - Data elements in a @Config@.+--+-- 'configId', 'getConfigResponse_configId' - UUID of a @Config@.+--+-- 'name', 'getConfigResponse_name' - Name of a @Config@.+newGetConfigResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'configArn'+  Prelude.Text ->+  -- | 'configData'+  ConfigTypeData ->+  -- | 'configId'+  Prelude.Text ->+  -- | 'name'+  Prelude.Text ->+  GetConfigResponse+newGetConfigResponse+  pHttpStatus_+  pConfigArn_+  pConfigData_+  pConfigId_+  pName_ =+    GetConfigResponse'+      { configType = Prelude.Nothing,+        tags = Prelude.Nothing,+        httpStatus = pHttpStatus_,+        configArn = pConfigArn_,+        configData = pConfigData_,+        configId = pConfigId_,+        name = pName_+      }++-- | Type of a @Config@.+getConfigResponse_configType :: Lens.Lens' GetConfigResponse (Prelude.Maybe ConfigCapabilityType)+getConfigResponse_configType = Lens.lens (\GetConfigResponse' {configType} -> configType) (\s@GetConfigResponse' {} a -> s {configType = a} :: GetConfigResponse)++-- | Tags assigned to a @Config@.+getConfigResponse_tags :: Lens.Lens' GetConfigResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+getConfigResponse_tags = Lens.lens (\GetConfigResponse' {tags} -> tags) (\s@GetConfigResponse' {} a -> s {tags = a} :: GetConfigResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+getConfigResponse_httpStatus :: Lens.Lens' GetConfigResponse Prelude.Int+getConfigResponse_httpStatus = Lens.lens (\GetConfigResponse' {httpStatus} -> httpStatus) (\s@GetConfigResponse' {} a -> s {httpStatus = a} :: GetConfigResponse)++-- | ARN of a @Config@+getConfigResponse_configArn :: Lens.Lens' GetConfigResponse Prelude.Text+getConfigResponse_configArn = Lens.lens (\GetConfigResponse' {configArn} -> configArn) (\s@GetConfigResponse' {} a -> s {configArn = a} :: GetConfigResponse)++-- | Data elements in a @Config@.+getConfigResponse_configData :: Lens.Lens' GetConfigResponse ConfigTypeData+getConfigResponse_configData = Lens.lens (\GetConfigResponse' {configData} -> configData) (\s@GetConfigResponse' {} a -> s {configData = a} :: GetConfigResponse)++-- | UUID of a @Config@.+getConfigResponse_configId :: Lens.Lens' GetConfigResponse Prelude.Text+getConfigResponse_configId = Lens.lens (\GetConfigResponse' {configId} -> configId) (\s@GetConfigResponse' {} a -> s {configId = a} :: GetConfigResponse)++-- | Name of a @Config@.+getConfigResponse_name :: Lens.Lens' GetConfigResponse Prelude.Text+getConfigResponse_name = Lens.lens (\GetConfigResponse' {name} -> name) (\s@GetConfigResponse' {} a -> s {name = a} :: GetConfigResponse)++instance Prelude.NFData GetConfigResponse where+  rnf GetConfigResponse' {..} =+    Prelude.rnf configType+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf configArn+      `Prelude.seq` Prelude.rnf configData+      `Prelude.seq` Prelude.rnf configId+      `Prelude.seq` Prelude.rnf name
+ gen/Amazonka/GroundStation/GetDataflowEndpointGroup.hs view
@@ -0,0 +1,212 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.GroundStation.GetDataflowEndpointGroup+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns the dataflow endpoint group.+module Amazonka.GroundStation.GetDataflowEndpointGroup+  ( -- * Creating a Request+    GetDataflowEndpointGroup (..),+    newGetDataflowEndpointGroup,++    -- * Request Lenses+    getDataflowEndpointGroup_dataflowEndpointGroupId,++    -- * Destructuring the Response+    GetDataflowEndpointGroupResponse (..),+    newGetDataflowEndpointGroupResponse,++    -- * Response Lenses+    getDataflowEndpointGroupResponse_dataflowEndpointGroupArn,+    getDataflowEndpointGroupResponse_dataflowEndpointGroupId,+    getDataflowEndpointGroupResponse_endpointsDetails,+    getDataflowEndpointGroupResponse_tags,+    getDataflowEndpointGroupResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GroundStation.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- |+--+-- /See:/ 'newGetDataflowEndpointGroup' smart constructor.+data GetDataflowEndpointGroup = GetDataflowEndpointGroup'+  { -- | UUID of a dataflow endpoint group.+    dataflowEndpointGroupId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetDataflowEndpointGroup' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dataflowEndpointGroupId', 'getDataflowEndpointGroup_dataflowEndpointGroupId' - UUID of a dataflow endpoint group.+newGetDataflowEndpointGroup ::+  -- | 'dataflowEndpointGroupId'+  Prelude.Text ->+  GetDataflowEndpointGroup+newGetDataflowEndpointGroup pDataflowEndpointGroupId_ =+  GetDataflowEndpointGroup'+    { dataflowEndpointGroupId =+        pDataflowEndpointGroupId_+    }++-- | UUID of a dataflow endpoint group.+getDataflowEndpointGroup_dataflowEndpointGroupId :: Lens.Lens' GetDataflowEndpointGroup Prelude.Text+getDataflowEndpointGroup_dataflowEndpointGroupId = Lens.lens (\GetDataflowEndpointGroup' {dataflowEndpointGroupId} -> dataflowEndpointGroupId) (\s@GetDataflowEndpointGroup' {} a -> s {dataflowEndpointGroupId = a} :: GetDataflowEndpointGroup)++instance Core.AWSRequest GetDataflowEndpointGroup where+  type+    AWSResponse GetDataflowEndpointGroup =+      GetDataflowEndpointGroupResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetDataflowEndpointGroupResponse'+            Prelude.<$> (x Data..?> "dataflowEndpointGroupArn")+            Prelude.<*> (x Data..?> "dataflowEndpointGroupId")+            Prelude.<*> ( x+                            Data..?> "endpointsDetails"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "tags" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetDataflowEndpointGroup where+  hashWithSalt _salt GetDataflowEndpointGroup' {..} =+    _salt+      `Prelude.hashWithSalt` dataflowEndpointGroupId++instance Prelude.NFData GetDataflowEndpointGroup where+  rnf GetDataflowEndpointGroup' {..} =+    Prelude.rnf dataflowEndpointGroupId++instance Data.ToHeaders GetDataflowEndpointGroup where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetDataflowEndpointGroup where+  toPath GetDataflowEndpointGroup' {..} =+    Prelude.mconcat+      [ "/dataflowEndpointGroup/",+        Data.toBS dataflowEndpointGroupId+      ]++instance Data.ToQuery GetDataflowEndpointGroup where+  toQuery = Prelude.const Prelude.mempty++-- |+--+-- /See:/ 'newGetDataflowEndpointGroupResponse' smart constructor.+data GetDataflowEndpointGroupResponse = GetDataflowEndpointGroupResponse'+  { -- | ARN of a dataflow endpoint group.+    dataflowEndpointGroupArn :: Prelude.Maybe Prelude.Text,+    -- | UUID of a dataflow endpoint group.+    dataflowEndpointGroupId :: Prelude.Maybe Prelude.Text,+    -- | Details of a dataflow endpoint.+    endpointsDetails :: Prelude.Maybe [EndpointDetails],+    -- | Tags assigned to a dataflow endpoint group.+    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 'GetDataflowEndpointGroupResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dataflowEndpointGroupArn', 'getDataflowEndpointGroupResponse_dataflowEndpointGroupArn' - ARN of a dataflow endpoint group.+--+-- 'dataflowEndpointGroupId', 'getDataflowEndpointGroupResponse_dataflowEndpointGroupId' - UUID of a dataflow endpoint group.+--+-- 'endpointsDetails', 'getDataflowEndpointGroupResponse_endpointsDetails' - Details of a dataflow endpoint.+--+-- 'tags', 'getDataflowEndpointGroupResponse_tags' - Tags assigned to a dataflow endpoint group.+--+-- 'httpStatus', 'getDataflowEndpointGroupResponse_httpStatus' - The response's http status code.+newGetDataflowEndpointGroupResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetDataflowEndpointGroupResponse+newGetDataflowEndpointGroupResponse pHttpStatus_ =+  GetDataflowEndpointGroupResponse'+    { dataflowEndpointGroupArn =+        Prelude.Nothing,+      dataflowEndpointGroupId = Prelude.Nothing,+      endpointsDetails = Prelude.Nothing,+      tags = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | ARN of a dataflow endpoint group.+getDataflowEndpointGroupResponse_dataflowEndpointGroupArn :: Lens.Lens' GetDataflowEndpointGroupResponse (Prelude.Maybe Prelude.Text)+getDataflowEndpointGroupResponse_dataflowEndpointGroupArn = Lens.lens (\GetDataflowEndpointGroupResponse' {dataflowEndpointGroupArn} -> dataflowEndpointGroupArn) (\s@GetDataflowEndpointGroupResponse' {} a -> s {dataflowEndpointGroupArn = a} :: GetDataflowEndpointGroupResponse)++-- | UUID of a dataflow endpoint group.+getDataflowEndpointGroupResponse_dataflowEndpointGroupId :: Lens.Lens' GetDataflowEndpointGroupResponse (Prelude.Maybe Prelude.Text)+getDataflowEndpointGroupResponse_dataflowEndpointGroupId = Lens.lens (\GetDataflowEndpointGroupResponse' {dataflowEndpointGroupId} -> dataflowEndpointGroupId) (\s@GetDataflowEndpointGroupResponse' {} a -> s {dataflowEndpointGroupId = a} :: GetDataflowEndpointGroupResponse)++-- | Details of a dataflow endpoint.+getDataflowEndpointGroupResponse_endpointsDetails :: Lens.Lens' GetDataflowEndpointGroupResponse (Prelude.Maybe [EndpointDetails])+getDataflowEndpointGroupResponse_endpointsDetails = Lens.lens (\GetDataflowEndpointGroupResponse' {endpointsDetails} -> endpointsDetails) (\s@GetDataflowEndpointGroupResponse' {} a -> s {endpointsDetails = a} :: GetDataflowEndpointGroupResponse) Prelude.. Lens.mapping Lens.coerced++-- | Tags assigned to a dataflow endpoint group.+getDataflowEndpointGroupResponse_tags :: Lens.Lens' GetDataflowEndpointGroupResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+getDataflowEndpointGroupResponse_tags = Lens.lens (\GetDataflowEndpointGroupResponse' {tags} -> tags) (\s@GetDataflowEndpointGroupResponse' {} a -> s {tags = a} :: GetDataflowEndpointGroupResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+getDataflowEndpointGroupResponse_httpStatus :: Lens.Lens' GetDataflowEndpointGroupResponse Prelude.Int+getDataflowEndpointGroupResponse_httpStatus = Lens.lens (\GetDataflowEndpointGroupResponse' {httpStatus} -> httpStatus) (\s@GetDataflowEndpointGroupResponse' {} a -> s {httpStatus = a} :: GetDataflowEndpointGroupResponse)++instance+  Prelude.NFData+    GetDataflowEndpointGroupResponse+  where+  rnf GetDataflowEndpointGroupResponse' {..} =+    Prelude.rnf dataflowEndpointGroupArn+      `Prelude.seq` Prelude.rnf dataflowEndpointGroupId+      `Prelude.seq` Prelude.rnf endpointsDetails+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/GroundStation/GetMinuteUsage.hs view
@@ -0,0 +1,247 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.GroundStation.GetMinuteUsage+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns the number of minutes used by account.+module Amazonka.GroundStation.GetMinuteUsage+  ( -- * Creating a Request+    GetMinuteUsage (..),+    newGetMinuteUsage,++    -- * Request Lenses+    getMinuteUsage_month,+    getMinuteUsage_year,++    -- * Destructuring the Response+    GetMinuteUsageResponse (..),+    newGetMinuteUsageResponse,++    -- * Response Lenses+    getMinuteUsageResponse_estimatedMinutesRemaining,+    getMinuteUsageResponse_isReservedMinutesCustomer,+    getMinuteUsageResponse_totalReservedMinuteAllocation,+    getMinuteUsageResponse_totalScheduledMinutes,+    getMinuteUsageResponse_upcomingMinutesScheduled,+    getMinuteUsageResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GroundStation.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- |+--+-- /See:/ 'newGetMinuteUsage' smart constructor.+data GetMinuteUsage = GetMinuteUsage'+  { -- | The month being requested, with a value of 1-12.+    month :: Prelude.Natural,+    -- | The year being requested, in the format of YYYY.+    year :: Prelude.Natural+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetMinuteUsage' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'month', 'getMinuteUsage_month' - The month being requested, with a value of 1-12.+--+-- 'year', 'getMinuteUsage_year' - The year being requested, in the format of YYYY.+newGetMinuteUsage ::+  -- | 'month'+  Prelude.Natural ->+  -- | 'year'+  Prelude.Natural ->+  GetMinuteUsage+newGetMinuteUsage pMonth_ pYear_ =+  GetMinuteUsage' {month = pMonth_, year = pYear_}++-- | The month being requested, with a value of 1-12.+getMinuteUsage_month :: Lens.Lens' GetMinuteUsage Prelude.Natural+getMinuteUsage_month = Lens.lens (\GetMinuteUsage' {month} -> month) (\s@GetMinuteUsage' {} a -> s {month = a} :: GetMinuteUsage)++-- | The year being requested, in the format of YYYY.+getMinuteUsage_year :: Lens.Lens' GetMinuteUsage Prelude.Natural+getMinuteUsage_year = Lens.lens (\GetMinuteUsage' {year} -> year) (\s@GetMinuteUsage' {} a -> s {year = a} :: GetMinuteUsage)++instance Core.AWSRequest GetMinuteUsage where+  type+    AWSResponse GetMinuteUsage =+      GetMinuteUsageResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetMinuteUsageResponse'+            Prelude.<$> (x Data..?> "estimatedMinutesRemaining")+            Prelude.<*> (x Data..?> "isReservedMinutesCustomer")+            Prelude.<*> (x Data..?> "totalReservedMinuteAllocation")+            Prelude.<*> (x Data..?> "totalScheduledMinutes")+            Prelude.<*> (x Data..?> "upcomingMinutesScheduled")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetMinuteUsage where+  hashWithSalt _salt GetMinuteUsage' {..} =+    _salt+      `Prelude.hashWithSalt` month+      `Prelude.hashWithSalt` year++instance Prelude.NFData GetMinuteUsage where+  rnf GetMinuteUsage' {..} =+    Prelude.rnf month `Prelude.seq` Prelude.rnf year++instance Data.ToHeaders GetMinuteUsage where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON GetMinuteUsage where+  toJSON GetMinuteUsage' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("month" Data..= month),+            Prelude.Just ("year" Data..= year)+          ]+      )++instance Data.ToPath GetMinuteUsage where+  toPath = Prelude.const "/minute-usage"++instance Data.ToQuery GetMinuteUsage where+  toQuery = Prelude.const Prelude.mempty++-- |+--+-- /See:/ 'newGetMinuteUsageResponse' smart constructor.+data GetMinuteUsageResponse = GetMinuteUsageResponse'+  { -- | Estimated number of minutes remaining for an account, specific to the+    -- month being requested.+    estimatedMinutesRemaining :: Prelude.Maybe Prelude.Int,+    -- | Returns whether or not an account has signed up for the reserved minutes+    -- pricing plan, specific to the month being requested.+    isReservedMinutesCustomer :: Prelude.Maybe Prelude.Bool,+    -- | Total number of reserved minutes allocated, specific to the month being+    -- requested.+    totalReservedMinuteAllocation :: Prelude.Maybe Prelude.Int,+    -- | Total scheduled minutes for an account, specific to the month being+    -- requested.+    totalScheduledMinutes :: Prelude.Maybe Prelude.Int,+    -- | Upcoming minutes scheduled for an account, specific to the month being+    -- requested.+    upcomingMinutesScheduled :: Prelude.Maybe Prelude.Int,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetMinuteUsageResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'estimatedMinutesRemaining', 'getMinuteUsageResponse_estimatedMinutesRemaining' - Estimated number of minutes remaining for an account, specific to the+-- month being requested.+--+-- 'isReservedMinutesCustomer', 'getMinuteUsageResponse_isReservedMinutesCustomer' - Returns whether or not an account has signed up for the reserved minutes+-- pricing plan, specific to the month being requested.+--+-- 'totalReservedMinuteAllocation', 'getMinuteUsageResponse_totalReservedMinuteAllocation' - Total number of reserved minutes allocated, specific to the month being+-- requested.+--+-- 'totalScheduledMinutes', 'getMinuteUsageResponse_totalScheduledMinutes' - Total scheduled minutes for an account, specific to the month being+-- requested.+--+-- 'upcomingMinutesScheduled', 'getMinuteUsageResponse_upcomingMinutesScheduled' - Upcoming minutes scheduled for an account, specific to the month being+-- requested.+--+-- 'httpStatus', 'getMinuteUsageResponse_httpStatus' - The response's http status code.+newGetMinuteUsageResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetMinuteUsageResponse+newGetMinuteUsageResponse pHttpStatus_ =+  GetMinuteUsageResponse'+    { estimatedMinutesRemaining =+        Prelude.Nothing,+      isReservedMinutesCustomer = Prelude.Nothing,+      totalReservedMinuteAllocation = Prelude.Nothing,+      totalScheduledMinutes = Prelude.Nothing,+      upcomingMinutesScheduled = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Estimated number of minutes remaining for an account, specific to the+-- month being requested.+getMinuteUsageResponse_estimatedMinutesRemaining :: Lens.Lens' GetMinuteUsageResponse (Prelude.Maybe Prelude.Int)+getMinuteUsageResponse_estimatedMinutesRemaining = Lens.lens (\GetMinuteUsageResponse' {estimatedMinutesRemaining} -> estimatedMinutesRemaining) (\s@GetMinuteUsageResponse' {} a -> s {estimatedMinutesRemaining = a} :: GetMinuteUsageResponse)++-- | Returns whether or not an account has signed up for the reserved minutes+-- pricing plan, specific to the month being requested.+getMinuteUsageResponse_isReservedMinutesCustomer :: Lens.Lens' GetMinuteUsageResponse (Prelude.Maybe Prelude.Bool)+getMinuteUsageResponse_isReservedMinutesCustomer = Lens.lens (\GetMinuteUsageResponse' {isReservedMinutesCustomer} -> isReservedMinutesCustomer) (\s@GetMinuteUsageResponse' {} a -> s {isReservedMinutesCustomer = a} :: GetMinuteUsageResponse)++-- | Total number of reserved minutes allocated, specific to the month being+-- requested.+getMinuteUsageResponse_totalReservedMinuteAllocation :: Lens.Lens' GetMinuteUsageResponse (Prelude.Maybe Prelude.Int)+getMinuteUsageResponse_totalReservedMinuteAllocation = Lens.lens (\GetMinuteUsageResponse' {totalReservedMinuteAllocation} -> totalReservedMinuteAllocation) (\s@GetMinuteUsageResponse' {} a -> s {totalReservedMinuteAllocation = a} :: GetMinuteUsageResponse)++-- | Total scheduled minutes for an account, specific to the month being+-- requested.+getMinuteUsageResponse_totalScheduledMinutes :: Lens.Lens' GetMinuteUsageResponse (Prelude.Maybe Prelude.Int)+getMinuteUsageResponse_totalScheduledMinutes = Lens.lens (\GetMinuteUsageResponse' {totalScheduledMinutes} -> totalScheduledMinutes) (\s@GetMinuteUsageResponse' {} a -> s {totalScheduledMinutes = a} :: GetMinuteUsageResponse)++-- | Upcoming minutes scheduled for an account, specific to the month being+-- requested.+getMinuteUsageResponse_upcomingMinutesScheduled :: Lens.Lens' GetMinuteUsageResponse (Prelude.Maybe Prelude.Int)+getMinuteUsageResponse_upcomingMinutesScheduled = Lens.lens (\GetMinuteUsageResponse' {upcomingMinutesScheduled} -> upcomingMinutesScheduled) (\s@GetMinuteUsageResponse' {} a -> s {upcomingMinutesScheduled = a} :: GetMinuteUsageResponse)++-- | The response's http status code.+getMinuteUsageResponse_httpStatus :: Lens.Lens' GetMinuteUsageResponse Prelude.Int+getMinuteUsageResponse_httpStatus = Lens.lens (\GetMinuteUsageResponse' {httpStatus} -> httpStatus) (\s@GetMinuteUsageResponse' {} a -> s {httpStatus = a} :: GetMinuteUsageResponse)++instance Prelude.NFData GetMinuteUsageResponse where+  rnf GetMinuteUsageResponse' {..} =+    Prelude.rnf estimatedMinutesRemaining+      `Prelude.seq` Prelude.rnf isReservedMinutesCustomer+      `Prelude.seq` Prelude.rnf totalReservedMinuteAllocation+      `Prelude.seq` Prelude.rnf totalScheduledMinutes+      `Prelude.seq` Prelude.rnf upcomingMinutesScheduled+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/GroundStation/GetMissionProfile.hs view
@@ -0,0 +1,291 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.GroundStation.GetMissionProfile+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a mission profile.+module Amazonka.GroundStation.GetMissionProfile+  ( -- * Creating a Request+    GetMissionProfile (..),+    newGetMissionProfile,++    -- * Request Lenses+    getMissionProfile_missionProfileId,++    -- * Destructuring the Response+    GetMissionProfileResponse (..),+    newGetMissionProfileResponse,++    -- * Response Lenses+    getMissionProfileResponse_contactPostPassDurationSeconds,+    getMissionProfileResponse_contactPrePassDurationSeconds,+    getMissionProfileResponse_dataflowEdges,+    getMissionProfileResponse_minimumViableContactDurationSeconds,+    getMissionProfileResponse_missionProfileArn,+    getMissionProfileResponse_missionProfileId,+    getMissionProfileResponse_name,+    getMissionProfileResponse_region,+    getMissionProfileResponse_tags,+    getMissionProfileResponse_trackingConfigArn,+    getMissionProfileResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GroundStation.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- |+--+-- /See:/ 'newGetMissionProfile' smart constructor.+data GetMissionProfile = GetMissionProfile'+  { -- | UUID of a mission profile.+    missionProfileId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetMissionProfile' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'missionProfileId', 'getMissionProfile_missionProfileId' - UUID of a mission profile.+newGetMissionProfile ::+  -- | 'missionProfileId'+  Prelude.Text ->+  GetMissionProfile+newGetMissionProfile pMissionProfileId_ =+  GetMissionProfile'+    { missionProfileId =+        pMissionProfileId_+    }++-- | UUID of a mission profile.+getMissionProfile_missionProfileId :: Lens.Lens' GetMissionProfile Prelude.Text+getMissionProfile_missionProfileId = Lens.lens (\GetMissionProfile' {missionProfileId} -> missionProfileId) (\s@GetMissionProfile' {} a -> s {missionProfileId = a} :: GetMissionProfile)++instance Core.AWSRequest GetMissionProfile where+  type+    AWSResponse GetMissionProfile =+      GetMissionProfileResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetMissionProfileResponse'+            Prelude.<$> (x Data..?> "contactPostPassDurationSeconds")+            Prelude.<*> (x Data..?> "contactPrePassDurationSeconds")+            Prelude.<*> (x Data..?> "dataflowEdges" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "minimumViableContactDurationSeconds")+            Prelude.<*> (x Data..?> "missionProfileArn")+            Prelude.<*> (x Data..?> "missionProfileId")+            Prelude.<*> (x Data..?> "name")+            Prelude.<*> (x Data..?> "region")+            Prelude.<*> (x Data..?> "tags" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "trackingConfigArn")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetMissionProfile where+  hashWithSalt _salt GetMissionProfile' {..} =+    _salt `Prelude.hashWithSalt` missionProfileId++instance Prelude.NFData GetMissionProfile where+  rnf GetMissionProfile' {..} =+    Prelude.rnf missionProfileId++instance Data.ToHeaders GetMissionProfile where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetMissionProfile where+  toPath GetMissionProfile' {..} =+    Prelude.mconcat+      ["/missionprofile/", Data.toBS missionProfileId]++instance Data.ToQuery GetMissionProfile where+  toQuery = Prelude.const Prelude.mempty++-- |+--+-- /See:/ 'newGetMissionProfileResponse' smart constructor.+data GetMissionProfileResponse = GetMissionProfileResponse'+  { -- | Amount of time after a contact ends that you’d like to receive a+    -- CloudWatch event indicating the pass has finished.+    contactPostPassDurationSeconds :: Prelude.Maybe Prelude.Natural,+    -- | Amount of time prior to contact start you’d like to receive a CloudWatch+    -- event indicating an upcoming pass.+    contactPrePassDurationSeconds :: Prelude.Maybe Prelude.Natural,+    -- | A list of lists of ARNs. Each list of ARNs is an edge, with a /from/+    -- @Config@ and a /to/ @Config@.+    dataflowEdges :: Prelude.Maybe [Prelude.NonEmpty Prelude.Text],+    -- | Smallest amount of time in seconds that you’d like to see for an+    -- available contact. AWS Ground Station will not present you with contacts+    -- shorter than this duration.+    minimumViableContactDurationSeconds :: Prelude.Maybe Prelude.Natural,+    -- | ARN of a mission profile.+    missionProfileArn :: Prelude.Maybe Prelude.Text,+    -- | UUID of a mission profile.+    missionProfileId :: Prelude.Maybe Prelude.Text,+    -- | Name of a mission profile.+    name :: Prelude.Maybe Prelude.Text,+    -- | Region of a mission profile.+    region :: Prelude.Maybe Prelude.Text,+    -- | Tags assigned to a mission profile.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | ARN of a tracking @Config@.+    trackingConfigArn :: 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 'GetMissionProfileResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'contactPostPassDurationSeconds', 'getMissionProfileResponse_contactPostPassDurationSeconds' - Amount of time after a contact ends that you’d like to receive a+-- CloudWatch event indicating the pass has finished.+--+-- 'contactPrePassDurationSeconds', 'getMissionProfileResponse_contactPrePassDurationSeconds' - Amount of time prior to contact start you’d like to receive a CloudWatch+-- event indicating an upcoming pass.+--+-- 'dataflowEdges', 'getMissionProfileResponse_dataflowEdges' - A list of lists of ARNs. Each list of ARNs is an edge, with a /from/+-- @Config@ and a /to/ @Config@.+--+-- 'minimumViableContactDurationSeconds', 'getMissionProfileResponse_minimumViableContactDurationSeconds' - Smallest amount of time in seconds that you’d like to see for an+-- available contact. AWS Ground Station will not present you with contacts+-- shorter than this duration.+--+-- 'missionProfileArn', 'getMissionProfileResponse_missionProfileArn' - ARN of a mission profile.+--+-- 'missionProfileId', 'getMissionProfileResponse_missionProfileId' - UUID of a mission profile.+--+-- 'name', 'getMissionProfileResponse_name' - Name of a mission profile.+--+-- 'region', 'getMissionProfileResponse_region' - Region of a mission profile.+--+-- 'tags', 'getMissionProfileResponse_tags' - Tags assigned to a mission profile.+--+-- 'trackingConfigArn', 'getMissionProfileResponse_trackingConfigArn' - ARN of a tracking @Config@.+--+-- 'httpStatus', 'getMissionProfileResponse_httpStatus' - The response's http status code.+newGetMissionProfileResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetMissionProfileResponse+newGetMissionProfileResponse pHttpStatus_ =+  GetMissionProfileResponse'+    { contactPostPassDurationSeconds =+        Prelude.Nothing,+      contactPrePassDurationSeconds = Prelude.Nothing,+      dataflowEdges = Prelude.Nothing,+      minimumViableContactDurationSeconds =+        Prelude.Nothing,+      missionProfileArn = Prelude.Nothing,+      missionProfileId = Prelude.Nothing,+      name = Prelude.Nothing,+      region = Prelude.Nothing,+      tags = Prelude.Nothing,+      trackingConfigArn = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Amount of time after a contact ends that you’d like to receive a+-- CloudWatch event indicating the pass has finished.+getMissionProfileResponse_contactPostPassDurationSeconds :: Lens.Lens' GetMissionProfileResponse (Prelude.Maybe Prelude.Natural)+getMissionProfileResponse_contactPostPassDurationSeconds = Lens.lens (\GetMissionProfileResponse' {contactPostPassDurationSeconds} -> contactPostPassDurationSeconds) (\s@GetMissionProfileResponse' {} a -> s {contactPostPassDurationSeconds = a} :: GetMissionProfileResponse)++-- | Amount of time prior to contact start you’d like to receive a CloudWatch+-- event indicating an upcoming pass.+getMissionProfileResponse_contactPrePassDurationSeconds :: Lens.Lens' GetMissionProfileResponse (Prelude.Maybe Prelude.Natural)+getMissionProfileResponse_contactPrePassDurationSeconds = Lens.lens (\GetMissionProfileResponse' {contactPrePassDurationSeconds} -> contactPrePassDurationSeconds) (\s@GetMissionProfileResponse' {} a -> s {contactPrePassDurationSeconds = a} :: GetMissionProfileResponse)++-- | A list of lists of ARNs. Each list of ARNs is an edge, with a /from/+-- @Config@ and a /to/ @Config@.+getMissionProfileResponse_dataflowEdges :: Lens.Lens' GetMissionProfileResponse (Prelude.Maybe [Prelude.NonEmpty Prelude.Text])+getMissionProfileResponse_dataflowEdges = Lens.lens (\GetMissionProfileResponse' {dataflowEdges} -> dataflowEdges) (\s@GetMissionProfileResponse' {} a -> s {dataflowEdges = a} :: GetMissionProfileResponse) Prelude.. Lens.mapping Lens.coerced++-- | Smallest amount of time in seconds that you’d like to see for an+-- available contact. AWS Ground Station will not present you with contacts+-- shorter than this duration.+getMissionProfileResponse_minimumViableContactDurationSeconds :: Lens.Lens' GetMissionProfileResponse (Prelude.Maybe Prelude.Natural)+getMissionProfileResponse_minimumViableContactDurationSeconds = Lens.lens (\GetMissionProfileResponse' {minimumViableContactDurationSeconds} -> minimumViableContactDurationSeconds) (\s@GetMissionProfileResponse' {} a -> s {minimumViableContactDurationSeconds = a} :: GetMissionProfileResponse)++-- | ARN of a mission profile.+getMissionProfileResponse_missionProfileArn :: Lens.Lens' GetMissionProfileResponse (Prelude.Maybe Prelude.Text)+getMissionProfileResponse_missionProfileArn = Lens.lens (\GetMissionProfileResponse' {missionProfileArn} -> missionProfileArn) (\s@GetMissionProfileResponse' {} a -> s {missionProfileArn = a} :: GetMissionProfileResponse)++-- | UUID of a mission profile.+getMissionProfileResponse_missionProfileId :: Lens.Lens' GetMissionProfileResponse (Prelude.Maybe Prelude.Text)+getMissionProfileResponse_missionProfileId = Lens.lens (\GetMissionProfileResponse' {missionProfileId} -> missionProfileId) (\s@GetMissionProfileResponse' {} a -> s {missionProfileId = a} :: GetMissionProfileResponse)++-- | Name of a mission profile.+getMissionProfileResponse_name :: Lens.Lens' GetMissionProfileResponse (Prelude.Maybe Prelude.Text)+getMissionProfileResponse_name = Lens.lens (\GetMissionProfileResponse' {name} -> name) (\s@GetMissionProfileResponse' {} a -> s {name = a} :: GetMissionProfileResponse)++-- | Region of a mission profile.+getMissionProfileResponse_region :: Lens.Lens' GetMissionProfileResponse (Prelude.Maybe Prelude.Text)+getMissionProfileResponse_region = Lens.lens (\GetMissionProfileResponse' {region} -> region) (\s@GetMissionProfileResponse' {} a -> s {region = a} :: GetMissionProfileResponse)++-- | Tags assigned to a mission profile.+getMissionProfileResponse_tags :: Lens.Lens' GetMissionProfileResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+getMissionProfileResponse_tags = Lens.lens (\GetMissionProfileResponse' {tags} -> tags) (\s@GetMissionProfileResponse' {} a -> s {tags = a} :: GetMissionProfileResponse) Prelude.. Lens.mapping Lens.coerced++-- | ARN of a tracking @Config@.+getMissionProfileResponse_trackingConfigArn :: Lens.Lens' GetMissionProfileResponse (Prelude.Maybe Prelude.Text)+getMissionProfileResponse_trackingConfigArn = Lens.lens (\GetMissionProfileResponse' {trackingConfigArn} -> trackingConfigArn) (\s@GetMissionProfileResponse' {} a -> s {trackingConfigArn = a} :: GetMissionProfileResponse)++-- | The response's http status code.+getMissionProfileResponse_httpStatus :: Lens.Lens' GetMissionProfileResponse Prelude.Int+getMissionProfileResponse_httpStatus = Lens.lens (\GetMissionProfileResponse' {httpStatus} -> httpStatus) (\s@GetMissionProfileResponse' {} a -> s {httpStatus = a} :: GetMissionProfileResponse)++instance Prelude.NFData GetMissionProfileResponse where+  rnf GetMissionProfileResponse' {..} =+    Prelude.rnf contactPostPassDurationSeconds+      `Prelude.seq` Prelude.rnf contactPrePassDurationSeconds+      `Prelude.seq` Prelude.rnf dataflowEdges+      `Prelude.seq` Prelude.rnf minimumViableContactDurationSeconds+      `Prelude.seq` Prelude.rnf missionProfileArn+      `Prelude.seq` Prelude.rnf missionProfileId+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf region+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf trackingConfigArn+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/GroundStation/GetSatellite.hs view
@@ -0,0 +1,212 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.GroundStation.GetSatellite+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a satellite.+module Amazonka.GroundStation.GetSatellite+  ( -- * Creating a Request+    GetSatellite (..),+    newGetSatellite,++    -- * Request Lenses+    getSatellite_satelliteId,++    -- * Destructuring the Response+    GetSatelliteResponse (..),+    newGetSatelliteResponse,++    -- * Response Lenses+    getSatelliteResponse_currentEphemeris,+    getSatelliteResponse_groundStations,+    getSatelliteResponse_noradSatelliteID,+    getSatelliteResponse_satelliteArn,+    getSatelliteResponse_satelliteId,+    getSatelliteResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GroundStation.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- |+--+-- /See:/ 'newGetSatellite' smart constructor.+data GetSatellite = GetSatellite'+  { -- | UUID of a satellite.+    satelliteId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetSatellite' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'satelliteId', 'getSatellite_satelliteId' - UUID of a satellite.+newGetSatellite ::+  -- | 'satelliteId'+  Prelude.Text ->+  GetSatellite+newGetSatellite pSatelliteId_ =+  GetSatellite' {satelliteId = pSatelliteId_}++-- | UUID of a satellite.+getSatellite_satelliteId :: Lens.Lens' GetSatellite Prelude.Text+getSatellite_satelliteId = Lens.lens (\GetSatellite' {satelliteId} -> satelliteId) (\s@GetSatellite' {} a -> s {satelliteId = a} :: GetSatellite)++instance Core.AWSRequest GetSatellite where+  type AWSResponse GetSatellite = GetSatelliteResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetSatelliteResponse'+            Prelude.<$> (x Data..?> "currentEphemeris")+            Prelude.<*> (x Data..?> "groundStations" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "noradSatelliteID")+            Prelude.<*> (x Data..?> "satelliteArn")+            Prelude.<*> (x Data..?> "satelliteId")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetSatellite where+  hashWithSalt _salt GetSatellite' {..} =+    _salt `Prelude.hashWithSalt` satelliteId++instance Prelude.NFData GetSatellite where+  rnf GetSatellite' {..} = Prelude.rnf satelliteId++instance Data.ToHeaders GetSatellite where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetSatellite where+  toPath GetSatellite' {..} =+    Prelude.mconcat+      ["/satellite/", Data.toBS satelliteId]++instance Data.ToQuery GetSatellite where+  toQuery = Prelude.const Prelude.mempty++-- |+--+-- /See:/ 'newGetSatelliteResponse' smart constructor.+data GetSatelliteResponse = GetSatelliteResponse'+  { -- | The current ephemeris being used to compute the trajectory of the+    -- satellite.+    currentEphemeris :: Prelude.Maybe EphemerisMetaData,+    -- | A list of ground stations to which the satellite is on-boarded.+    groundStations :: Prelude.Maybe [Prelude.Text],+    -- | NORAD satellite ID number.+    noradSatelliteID :: Prelude.Maybe Prelude.Natural,+    -- | ARN of a satellite.+    satelliteArn :: Prelude.Maybe Prelude.Text,+    -- | UUID of a satellite.+    satelliteId :: 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 'GetSatelliteResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'currentEphemeris', 'getSatelliteResponse_currentEphemeris' - The current ephemeris being used to compute the trajectory of the+-- satellite.+--+-- 'groundStations', 'getSatelliteResponse_groundStations' - A list of ground stations to which the satellite is on-boarded.+--+-- 'noradSatelliteID', 'getSatelliteResponse_noradSatelliteID' - NORAD satellite ID number.+--+-- 'satelliteArn', 'getSatelliteResponse_satelliteArn' - ARN of a satellite.+--+-- 'satelliteId', 'getSatelliteResponse_satelliteId' - UUID of a satellite.+--+-- 'httpStatus', 'getSatelliteResponse_httpStatus' - The response's http status code.+newGetSatelliteResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetSatelliteResponse+newGetSatelliteResponse pHttpStatus_ =+  GetSatelliteResponse'+    { currentEphemeris =+        Prelude.Nothing,+      groundStations = Prelude.Nothing,+      noradSatelliteID = Prelude.Nothing,+      satelliteArn = Prelude.Nothing,+      satelliteId = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The current ephemeris being used to compute the trajectory of the+-- satellite.+getSatelliteResponse_currentEphemeris :: Lens.Lens' GetSatelliteResponse (Prelude.Maybe EphemerisMetaData)+getSatelliteResponse_currentEphemeris = Lens.lens (\GetSatelliteResponse' {currentEphemeris} -> currentEphemeris) (\s@GetSatelliteResponse' {} a -> s {currentEphemeris = a} :: GetSatelliteResponse)++-- | A list of ground stations to which the satellite is on-boarded.+getSatelliteResponse_groundStations :: Lens.Lens' GetSatelliteResponse (Prelude.Maybe [Prelude.Text])+getSatelliteResponse_groundStations = Lens.lens (\GetSatelliteResponse' {groundStations} -> groundStations) (\s@GetSatelliteResponse' {} a -> s {groundStations = a} :: GetSatelliteResponse) Prelude.. Lens.mapping Lens.coerced++-- | NORAD satellite ID number.+getSatelliteResponse_noradSatelliteID :: Lens.Lens' GetSatelliteResponse (Prelude.Maybe Prelude.Natural)+getSatelliteResponse_noradSatelliteID = Lens.lens (\GetSatelliteResponse' {noradSatelliteID} -> noradSatelliteID) (\s@GetSatelliteResponse' {} a -> s {noradSatelliteID = a} :: GetSatelliteResponse)++-- | ARN of a satellite.+getSatelliteResponse_satelliteArn :: Lens.Lens' GetSatelliteResponse (Prelude.Maybe Prelude.Text)+getSatelliteResponse_satelliteArn = Lens.lens (\GetSatelliteResponse' {satelliteArn} -> satelliteArn) (\s@GetSatelliteResponse' {} a -> s {satelliteArn = a} :: GetSatelliteResponse)++-- | UUID of a satellite.+getSatelliteResponse_satelliteId :: Lens.Lens' GetSatelliteResponse (Prelude.Maybe Prelude.Text)+getSatelliteResponse_satelliteId = Lens.lens (\GetSatelliteResponse' {satelliteId} -> satelliteId) (\s@GetSatelliteResponse' {} a -> s {satelliteId = a} :: GetSatelliteResponse)++-- | The response's http status code.+getSatelliteResponse_httpStatus :: Lens.Lens' GetSatelliteResponse Prelude.Int+getSatelliteResponse_httpStatus = Lens.lens (\GetSatelliteResponse' {httpStatus} -> httpStatus) (\s@GetSatelliteResponse' {} a -> s {httpStatus = a} :: GetSatelliteResponse)++instance Prelude.NFData GetSatelliteResponse where+  rnf GetSatelliteResponse' {..} =+    Prelude.rnf currentEphemeris+      `Prelude.seq` Prelude.rnf groundStations+      `Prelude.seq` Prelude.rnf noradSatelliteID+      `Prelude.seq` Prelude.rnf satelliteArn+      `Prelude.seq` Prelude.rnf satelliteId+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/GroundStation/Lens.hs view
@@ -0,0 +1,574 @@+{-# 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.GroundStation.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.GroundStation.Lens+  ( -- * Operations++    -- ** CancelContact+    cancelContact_contactId,+    contactIdResponse_contactId,++    -- ** CreateConfig+    createConfig_tags,+    createConfig_configData,+    createConfig_name,+    configIdResponse_configArn,+    configIdResponse_configId,+    configIdResponse_configType,++    -- ** CreateDataflowEndpointGroup+    createDataflowEndpointGroup_tags,+    createDataflowEndpointGroup_endpointDetails,+    dataflowEndpointGroupIdResponse_dataflowEndpointGroupId,++    -- ** CreateEphemeris+    createEphemeris_enabled,+    createEphemeris_ephemeris,+    createEphemeris_expirationTime,+    createEphemeris_kmsKeyArn,+    createEphemeris_priority,+    createEphemeris_tags,+    createEphemeris_name,+    createEphemeris_satelliteId,+    ephemerisIdResponse_ephemerisId,++    -- ** CreateMissionProfile+    createMissionProfile_contactPostPassDurationSeconds,+    createMissionProfile_contactPrePassDurationSeconds,+    createMissionProfile_tags,+    createMissionProfile_dataflowEdges,+    createMissionProfile_minimumViableContactDurationSeconds,+    createMissionProfile_name,+    createMissionProfile_trackingConfigArn,+    missionProfileIdResponse_missionProfileId,++    -- ** DeleteConfig+    deleteConfig_configId,+    deleteConfig_configType,+    configIdResponse_configArn,+    configIdResponse_configId,+    configIdResponse_configType,++    -- ** DeleteDataflowEndpointGroup+    deleteDataflowEndpointGroup_dataflowEndpointGroupId,+    dataflowEndpointGroupIdResponse_dataflowEndpointGroupId,++    -- ** DeleteEphemeris+    deleteEphemeris_ephemerisId,+    ephemerisIdResponse_ephemerisId,++    -- ** DeleteMissionProfile+    deleteMissionProfile_missionProfileId,+    missionProfileIdResponse_missionProfileId,++    -- ** DescribeContact+    describeContact_contactId,+    describeContactResponse_contactId,+    describeContactResponse_contactStatus,+    describeContactResponse_dataflowList,+    describeContactResponse_endTime,+    describeContactResponse_errorMessage,+    describeContactResponse_groundStation,+    describeContactResponse_maximumElevation,+    describeContactResponse_missionProfileArn,+    describeContactResponse_postPassEndTime,+    describeContactResponse_prePassStartTime,+    describeContactResponse_region,+    describeContactResponse_satelliteArn,+    describeContactResponse_startTime,+    describeContactResponse_tags,+    describeContactResponse_httpStatus,++    -- ** DescribeEphemeris+    describeEphemeris_ephemerisId,+    describeEphemerisResponse_creationTime,+    describeEphemerisResponse_enabled,+    describeEphemerisResponse_ephemerisId,+    describeEphemerisResponse_invalidReason,+    describeEphemerisResponse_name,+    describeEphemerisResponse_priority,+    describeEphemerisResponse_satelliteId,+    describeEphemerisResponse_status,+    describeEphemerisResponse_suppliedData,+    describeEphemerisResponse_tags,+    describeEphemerisResponse_httpStatus,++    -- ** GetConfig+    getConfig_configId,+    getConfig_configType,+    getConfigResponse_configType,+    getConfigResponse_tags,+    getConfigResponse_httpStatus,+    getConfigResponse_configArn,+    getConfigResponse_configData,+    getConfigResponse_configId,+    getConfigResponse_name,++    -- ** GetDataflowEndpointGroup+    getDataflowEndpointGroup_dataflowEndpointGroupId,+    getDataflowEndpointGroupResponse_dataflowEndpointGroupArn,+    getDataflowEndpointGroupResponse_dataflowEndpointGroupId,+    getDataflowEndpointGroupResponse_endpointsDetails,+    getDataflowEndpointGroupResponse_tags,+    getDataflowEndpointGroupResponse_httpStatus,++    -- ** GetMinuteUsage+    getMinuteUsage_month,+    getMinuteUsage_year,+    getMinuteUsageResponse_estimatedMinutesRemaining,+    getMinuteUsageResponse_isReservedMinutesCustomer,+    getMinuteUsageResponse_totalReservedMinuteAllocation,+    getMinuteUsageResponse_totalScheduledMinutes,+    getMinuteUsageResponse_upcomingMinutesScheduled,+    getMinuteUsageResponse_httpStatus,++    -- ** GetMissionProfile+    getMissionProfile_missionProfileId,+    getMissionProfileResponse_contactPostPassDurationSeconds,+    getMissionProfileResponse_contactPrePassDurationSeconds,+    getMissionProfileResponse_dataflowEdges,+    getMissionProfileResponse_minimumViableContactDurationSeconds,+    getMissionProfileResponse_missionProfileArn,+    getMissionProfileResponse_missionProfileId,+    getMissionProfileResponse_name,+    getMissionProfileResponse_region,+    getMissionProfileResponse_tags,+    getMissionProfileResponse_trackingConfigArn,+    getMissionProfileResponse_httpStatus,++    -- ** GetSatellite+    getSatellite_satelliteId,+    getSatelliteResponse_currentEphemeris,+    getSatelliteResponse_groundStations,+    getSatelliteResponse_noradSatelliteID,+    getSatelliteResponse_satelliteArn,+    getSatelliteResponse_satelliteId,+    getSatelliteResponse_httpStatus,++    -- ** ListConfigs+    listConfigs_maxResults,+    listConfigs_nextToken,+    listConfigsResponse_configList,+    listConfigsResponse_nextToken,+    listConfigsResponse_httpStatus,++    -- ** ListContacts+    listContacts_groundStation,+    listContacts_maxResults,+    listContacts_missionProfileArn,+    listContacts_nextToken,+    listContacts_satelliteArn,+    listContacts_endTime,+    listContacts_startTime,+    listContacts_statusList,+    listContactsResponse_contactList,+    listContactsResponse_nextToken,+    listContactsResponse_httpStatus,++    -- ** ListDataflowEndpointGroups+    listDataflowEndpointGroups_maxResults,+    listDataflowEndpointGroups_nextToken,+    listDataflowEndpointGroupsResponse_dataflowEndpointGroupList,+    listDataflowEndpointGroupsResponse_nextToken,+    listDataflowEndpointGroupsResponse_httpStatus,++    -- ** ListEphemerides+    listEphemerides_maxResults,+    listEphemerides_nextToken,+    listEphemerides_statusList,+    listEphemerides_endTime,+    listEphemerides_satelliteId,+    listEphemerides_startTime,+    listEphemeridesResponse_ephemerides,+    listEphemeridesResponse_nextToken,+    listEphemeridesResponse_httpStatus,++    -- ** ListGroundStations+    listGroundStations_maxResults,+    listGroundStations_nextToken,+    listGroundStations_satelliteId,+    listGroundStationsResponse_groundStationList,+    listGroundStationsResponse_nextToken,+    listGroundStationsResponse_httpStatus,++    -- ** ListMissionProfiles+    listMissionProfiles_maxResults,+    listMissionProfiles_nextToken,+    listMissionProfilesResponse_missionProfileList,+    listMissionProfilesResponse_nextToken,+    listMissionProfilesResponse_httpStatus,++    -- ** ListSatellites+    listSatellites_maxResults,+    listSatellites_nextToken,+    listSatellitesResponse_nextToken,+    listSatellitesResponse_satellites,+    listSatellitesResponse_httpStatus,++    -- ** ListTagsForResource+    listTagsForResource_resourceArn,+    listTagsForResourceResponse_tags,+    listTagsForResourceResponse_httpStatus,++    -- ** ReserveContact+    reserveContact_tags,+    reserveContact_endTime,+    reserveContact_groundStation,+    reserveContact_missionProfileArn,+    reserveContact_satelliteArn,+    reserveContact_startTime,+    contactIdResponse_contactId,++    -- ** TagResource+    tagResource_resourceArn,+    tagResource_tags,+    tagResourceResponse_httpStatus,++    -- ** UntagResource+    untagResource_resourceArn,+    untagResource_tagKeys,+    untagResourceResponse_httpStatus,++    -- ** UpdateConfig+    updateConfig_configData,+    updateConfig_configId,+    updateConfig_configType,+    updateConfig_name,+    configIdResponse_configArn,+    configIdResponse_configId,+    configIdResponse_configType,++    -- ** UpdateEphemeris+    updateEphemeris_name,+    updateEphemeris_priority,+    updateEphemeris_enabled,+    updateEphemeris_ephemerisId,+    ephemerisIdResponse_ephemerisId,++    -- ** UpdateMissionProfile+    updateMissionProfile_contactPostPassDurationSeconds,+    updateMissionProfile_contactPrePassDurationSeconds,+    updateMissionProfile_dataflowEdges,+    updateMissionProfile_minimumViableContactDurationSeconds,+    updateMissionProfile_name,+    updateMissionProfile_trackingConfigArn,+    updateMissionProfile_missionProfileId,+    missionProfileIdResponse_missionProfileId,++    -- * Types++    -- ** AntennaDemodDecodeDetails+    antennaDemodDecodeDetails_outputNode,++    -- ** AntennaDownlinkConfig+    antennaDownlinkConfig_spectrumConfig,++    -- ** AntennaDownlinkDemodDecodeConfig+    antennaDownlinkDemodDecodeConfig_decodeConfig,+    antennaDownlinkDemodDecodeConfig_demodulationConfig,+    antennaDownlinkDemodDecodeConfig_spectrumConfig,++    -- ** AntennaUplinkConfig+    antennaUplinkConfig_transmitDisabled,+    antennaUplinkConfig_spectrumConfig,+    antennaUplinkConfig_targetEirp,++    -- ** ConfigDetails+    configDetails_antennaDemodDecodeDetails,+    configDetails_endpointDetails,+    configDetails_s3RecordingDetails,++    -- ** ConfigIdResponse+    configIdResponse_configArn,+    configIdResponse_configId,+    configIdResponse_configType,++    -- ** ConfigListItem+    configListItem_configArn,+    configListItem_configId,+    configListItem_configType,+    configListItem_name,++    -- ** ConfigTypeData+    configTypeData_antennaDownlinkConfig,+    configTypeData_antennaDownlinkDemodDecodeConfig,+    configTypeData_antennaUplinkConfig,+    configTypeData_dataflowEndpointConfig,+    configTypeData_s3RecordingConfig,+    configTypeData_trackingConfig,+    configTypeData_uplinkEchoConfig,++    -- ** ContactData+    contactData_contactId,+    contactData_contactStatus,+    contactData_endTime,+    contactData_errorMessage,+    contactData_groundStation,+    contactData_maximumElevation,+    contactData_missionProfileArn,+    contactData_postPassEndTime,+    contactData_prePassStartTime,+    contactData_region,+    contactData_satelliteArn,+    contactData_startTime,+    contactData_tags,++    -- ** ContactIdResponse+    contactIdResponse_contactId,++    -- ** DataflowDetail+    dataflowDetail_destination,+    dataflowDetail_errorMessage,+    dataflowDetail_source,++    -- ** DataflowEndpoint+    dataflowEndpoint_address,+    dataflowEndpoint_mtu,+    dataflowEndpoint_name,+    dataflowEndpoint_status,++    -- ** DataflowEndpointConfig+    dataflowEndpointConfig_dataflowEndpointRegion,+    dataflowEndpointConfig_dataflowEndpointName,++    -- ** DataflowEndpointGroupIdResponse+    dataflowEndpointGroupIdResponse_dataflowEndpointGroupId,++    -- ** DataflowEndpointListItem+    dataflowEndpointListItem_dataflowEndpointGroupArn,+    dataflowEndpointListItem_dataflowEndpointGroupId,++    -- ** DecodeConfig+    decodeConfig_unvalidatedJSON,++    -- ** DemodulationConfig+    demodulationConfig_unvalidatedJSON,++    -- ** Destination+    destination_configDetails,+    destination_configId,+    destination_configType,+    destination_dataflowDestinationRegion,++    -- ** Eirp+    eirp_units,+    eirp_value,++    -- ** Elevation+    elevation_unit,+    elevation_value,++    -- ** EndpointDetails+    endpointDetails_endpoint,+    endpointDetails_securityDetails,++    -- ** EphemerisData+    ephemerisData_oem,+    ephemerisData_tle,++    -- ** EphemerisDescription+    ephemerisDescription_ephemerisData,+    ephemerisDescription_sourceS3Object,++    -- ** EphemerisIdResponse+    ephemerisIdResponse_ephemerisId,++    -- ** EphemerisItem+    ephemerisItem_creationTime,+    ephemerisItem_enabled,+    ephemerisItem_ephemerisId,+    ephemerisItem_name,+    ephemerisItem_priority,+    ephemerisItem_sourceS3Object,+    ephemerisItem_status,++    -- ** EphemerisMetaData+    ephemerisMetaData_ephemerisId,+    ephemerisMetaData_epoch,+    ephemerisMetaData_name,+    ephemerisMetaData_source,++    -- ** EphemerisTypeDescription+    ephemerisTypeDescription_oem,+    ephemerisTypeDescription_tle,++    -- ** Frequency+    frequency_units,+    frequency_value,++    -- ** FrequencyBandwidth+    frequencyBandwidth_units,+    frequencyBandwidth_value,++    -- ** GroundStationData+    groundStationData_groundStationId,+    groundStationData_groundStationName,+    groundStationData_region,++    -- ** MissionProfileIdResponse+    missionProfileIdResponse_missionProfileId,++    -- ** MissionProfileListItem+    missionProfileListItem_missionProfileArn,+    missionProfileListItem_missionProfileId,+    missionProfileListItem_name,+    missionProfileListItem_region,++    -- ** OEMEphemeris+    oEMEphemeris_oemData,+    oEMEphemeris_s3Object,++    -- ** S3Object+    s3Object_bucket,+    s3Object_key,+    s3Object_version,++    -- ** S3RecordingConfig+    s3RecordingConfig_prefix,+    s3RecordingConfig_bucketArn,+    s3RecordingConfig_roleArn,++    -- ** S3RecordingDetails+    s3RecordingDetails_bucketArn,+    s3RecordingDetails_keyTemplate,++    -- ** SatelliteListItem+    satelliteListItem_currentEphemeris,+    satelliteListItem_groundStations,+    satelliteListItem_noradSatelliteID,+    satelliteListItem_satelliteArn,+    satelliteListItem_satelliteId,++    -- ** SecurityDetails+    securityDetails_roleArn,+    securityDetails_securityGroupIds,+    securityDetails_subnetIds,++    -- ** SocketAddress+    socketAddress_name,+    socketAddress_port,++    -- ** Source+    source_configDetails,+    source_configId,+    source_configType,+    source_dataflowSourceRegion,++    -- ** SpectrumConfig+    spectrumConfig_polarization,+    spectrumConfig_bandwidth,+    spectrumConfig_centerFrequency,++    -- ** TLEData+    tLEData_tleLine1,+    tLEData_tleLine2,+    tLEData_validTimeRange,++    -- ** TLEEphemeris+    tLEEphemeris_s3Object,+    tLEEphemeris_tleData,++    -- ** TimeRange+    timeRange_endTime,+    timeRange_startTime,++    -- ** TrackingConfig+    trackingConfig_autotrack,++    -- ** UplinkEchoConfig+    uplinkEchoConfig_antennaUplinkConfigArn,+    uplinkEchoConfig_enabled,++    -- ** UplinkSpectrumConfig+    uplinkSpectrumConfig_polarization,+    uplinkSpectrumConfig_centerFrequency,+  )+where++import Amazonka.GroundStation.CancelContact+import Amazonka.GroundStation.CreateConfig+import Amazonka.GroundStation.CreateDataflowEndpointGroup+import Amazonka.GroundStation.CreateEphemeris+import Amazonka.GroundStation.CreateMissionProfile+import Amazonka.GroundStation.DeleteConfig+import Amazonka.GroundStation.DeleteDataflowEndpointGroup+import Amazonka.GroundStation.DeleteEphemeris+import Amazonka.GroundStation.DeleteMissionProfile+import Amazonka.GroundStation.DescribeContact+import Amazonka.GroundStation.DescribeEphemeris+import Amazonka.GroundStation.GetConfig+import Amazonka.GroundStation.GetDataflowEndpointGroup+import Amazonka.GroundStation.GetMinuteUsage+import Amazonka.GroundStation.GetMissionProfile+import Amazonka.GroundStation.GetSatellite+import Amazonka.GroundStation.ListConfigs+import Amazonka.GroundStation.ListContacts+import Amazonka.GroundStation.ListDataflowEndpointGroups+import Amazonka.GroundStation.ListEphemerides+import Amazonka.GroundStation.ListGroundStations+import Amazonka.GroundStation.ListMissionProfiles+import Amazonka.GroundStation.ListSatellites+import Amazonka.GroundStation.ListTagsForResource+import Amazonka.GroundStation.ReserveContact+import Amazonka.GroundStation.TagResource+import Amazonka.GroundStation.Types.AntennaDemodDecodeDetails+import Amazonka.GroundStation.Types.AntennaDownlinkConfig+import Amazonka.GroundStation.Types.AntennaDownlinkDemodDecodeConfig+import Amazonka.GroundStation.Types.AntennaUplinkConfig+import Amazonka.GroundStation.Types.ConfigDetails+import Amazonka.GroundStation.Types.ConfigIdResponse+import Amazonka.GroundStation.Types.ConfigListItem+import Amazonka.GroundStation.Types.ConfigTypeData+import Amazonka.GroundStation.Types.ContactData+import Amazonka.GroundStation.Types.ContactIdResponse+import Amazonka.GroundStation.Types.DataflowDetail+import Amazonka.GroundStation.Types.DataflowEndpoint+import Amazonka.GroundStation.Types.DataflowEndpointConfig+import Amazonka.GroundStation.Types.DataflowEndpointGroupIdResponse+import Amazonka.GroundStation.Types.DataflowEndpointListItem+import Amazonka.GroundStation.Types.DecodeConfig+import Amazonka.GroundStation.Types.DemodulationConfig+import Amazonka.GroundStation.Types.Destination+import Amazonka.GroundStation.Types.Eirp+import Amazonka.GroundStation.Types.Elevation+import Amazonka.GroundStation.Types.EndpointDetails+import Amazonka.GroundStation.Types.EphemerisData+import Amazonka.GroundStation.Types.EphemerisDescription+import Amazonka.GroundStation.Types.EphemerisIdResponse+import Amazonka.GroundStation.Types.EphemerisItem+import Amazonka.GroundStation.Types.EphemerisMetaData+import Amazonka.GroundStation.Types.EphemerisTypeDescription+import Amazonka.GroundStation.Types.Frequency+import Amazonka.GroundStation.Types.FrequencyBandwidth+import Amazonka.GroundStation.Types.GroundStationData+import Amazonka.GroundStation.Types.MissionProfileIdResponse+import Amazonka.GroundStation.Types.MissionProfileListItem+import Amazonka.GroundStation.Types.OEMEphemeris+import Amazonka.GroundStation.Types.S3Object+import Amazonka.GroundStation.Types.S3RecordingConfig+import Amazonka.GroundStation.Types.S3RecordingDetails+import Amazonka.GroundStation.Types.SatelliteListItem+import Amazonka.GroundStation.Types.SecurityDetails+import Amazonka.GroundStation.Types.SocketAddress+import Amazonka.GroundStation.Types.Source+import Amazonka.GroundStation.Types.SpectrumConfig+import Amazonka.GroundStation.Types.TLEData+import Amazonka.GroundStation.Types.TLEEphemeris+import Amazonka.GroundStation.Types.TimeRange+import Amazonka.GroundStation.Types.TrackingConfig+import Amazonka.GroundStation.Types.UplinkEchoConfig+import Amazonka.GroundStation.Types.UplinkSpectrumConfig+import Amazonka.GroundStation.UntagResource+import Amazonka.GroundStation.UpdateConfig+import Amazonka.GroundStation.UpdateEphemeris+import Amazonka.GroundStation.UpdateMissionProfile
+ gen/Amazonka/GroundStation/ListConfigs.hs view
@@ -0,0 +1,218 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.GroundStation.ListConfigs+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a list of @Config@ objects.+--+-- This operation returns paginated results.+module Amazonka.GroundStation.ListConfigs+  ( -- * Creating a Request+    ListConfigs (..),+    newListConfigs,++    -- * Request Lenses+    listConfigs_maxResults,+    listConfigs_nextToken,++    -- * Destructuring the Response+    ListConfigsResponse (..),+    newListConfigsResponse,++    -- * Response Lenses+    listConfigsResponse_configList,+    listConfigsResponse_nextToken,+    listConfigsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GroundStation.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- |+--+-- /See:/ 'newListConfigs' smart constructor.+data ListConfigs = ListConfigs'+  { -- | Maximum number of @Configs@ returned.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | Next token returned in the request of a previous @ListConfigs@ call.+    -- Used to get the next page of results.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListConfigs' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listConfigs_maxResults' - Maximum number of @Configs@ returned.+--+-- 'nextToken', 'listConfigs_nextToken' - Next token returned in the request of a previous @ListConfigs@ call.+-- Used to get the next page of results.+newListConfigs ::+  ListConfigs+newListConfigs =+  ListConfigs'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | Maximum number of @Configs@ returned.+listConfigs_maxResults :: Lens.Lens' ListConfigs (Prelude.Maybe Prelude.Natural)+listConfigs_maxResults = Lens.lens (\ListConfigs' {maxResults} -> maxResults) (\s@ListConfigs' {} a -> s {maxResults = a} :: ListConfigs)++-- | Next token returned in the request of a previous @ListConfigs@ call.+-- Used to get the next page of results.+listConfigs_nextToken :: Lens.Lens' ListConfigs (Prelude.Maybe Prelude.Text)+listConfigs_nextToken = Lens.lens (\ListConfigs' {nextToken} -> nextToken) (\s@ListConfigs' {} a -> s {nextToken = a} :: ListConfigs)++instance Core.AWSPager ListConfigs where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listConfigsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listConfigsResponse_configList+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listConfigs_nextToken+          Lens..~ rs+          Lens.^? listConfigsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListConfigs where+  type AWSResponse ListConfigs = ListConfigsResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListConfigsResponse'+            Prelude.<$> (x Data..?> "configList" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListConfigs where+  hashWithSalt _salt ListConfigs' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListConfigs where+  rnf ListConfigs' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListConfigs where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListConfigs where+  toPath = Prelude.const "/config"++instance Data.ToQuery ListConfigs where+  toQuery ListConfigs' {..} =+    Prelude.mconcat+      [ "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken+      ]++-- |+--+-- /See:/ 'newListConfigsResponse' smart constructor.+data ListConfigsResponse = ListConfigsResponse'+  { -- | List of @Config@ items.+    configList :: Prelude.Maybe [ConfigListItem],+    -- | Next token returned in the response of a previous @ListConfigs@ call.+    -- Used to get the next page of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListConfigsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'configList', 'listConfigsResponse_configList' - List of @Config@ items.+--+-- 'nextToken', 'listConfigsResponse_nextToken' - Next token returned in the response of a previous @ListConfigs@ call.+-- Used to get the next page of results.+--+-- 'httpStatus', 'listConfigsResponse_httpStatus' - The response's http status code.+newListConfigsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListConfigsResponse+newListConfigsResponse pHttpStatus_ =+  ListConfigsResponse'+    { configList = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | List of @Config@ items.+listConfigsResponse_configList :: Lens.Lens' ListConfigsResponse (Prelude.Maybe [ConfigListItem])+listConfigsResponse_configList = Lens.lens (\ListConfigsResponse' {configList} -> configList) (\s@ListConfigsResponse' {} a -> s {configList = a} :: ListConfigsResponse) Prelude.. Lens.mapping Lens.coerced++-- | Next token returned in the response of a previous @ListConfigs@ call.+-- Used to get the next page of results.+listConfigsResponse_nextToken :: Lens.Lens' ListConfigsResponse (Prelude.Maybe Prelude.Text)+listConfigsResponse_nextToken = Lens.lens (\ListConfigsResponse' {nextToken} -> nextToken) (\s@ListConfigsResponse' {} a -> s {nextToken = a} :: ListConfigsResponse)++-- | The response's http status code.+listConfigsResponse_httpStatus :: Lens.Lens' ListConfigsResponse Prelude.Int+listConfigsResponse_httpStatus = Lens.lens (\ListConfigsResponse' {httpStatus} -> httpStatus) (\s@ListConfigsResponse' {} a -> s {httpStatus = a} :: ListConfigsResponse)++instance Prelude.NFData ListConfigsResponse where+  rnf ListConfigsResponse' {..} =+    Prelude.rnf configList+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/GroundStation/ListContacts.hs view
@@ -0,0 +1,310 @@+{-# 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.GroundStation.ListContacts+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a list of contacts.+--+-- If @statusList@ contains AVAILABLE, the request must include+-- @groundStation@, @missionprofileArn@, and @satelliteArn@.+--+-- This operation returns paginated results.+module Amazonka.GroundStation.ListContacts+  ( -- * Creating a Request+    ListContacts (..),+    newListContacts,++    -- * Request Lenses+    listContacts_groundStation,+    listContacts_maxResults,+    listContacts_missionProfileArn,+    listContacts_nextToken,+    listContacts_satelliteArn,+    listContacts_endTime,+    listContacts_startTime,+    listContacts_statusList,++    -- * Destructuring the Response+    ListContactsResponse (..),+    newListContactsResponse,++    -- * Response Lenses+    listContactsResponse_contactList,+    listContactsResponse_nextToken,+    listContactsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GroundStation.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- |+--+-- /See:/ 'newListContacts' smart constructor.+data ListContacts = ListContacts'+  { -- | Name of a ground station.+    groundStation :: Prelude.Maybe Prelude.Text,+    -- | Maximum number of contacts returned.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | ARN of a mission profile.+    missionProfileArn :: Prelude.Maybe Prelude.Text,+    -- | Next token returned in the request of a previous @ListContacts@ call.+    -- Used to get the next page of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | ARN of a satellite.+    satelliteArn :: Prelude.Maybe Prelude.Text,+    -- | End time of a contact in UTC.+    endTime :: Data.POSIX,+    -- | Start time of a contact in UTC.+    startTime :: Data.POSIX,+    -- | Status of a contact reservation.+    statusList :: [ContactStatus]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListContacts' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'groundStation', 'listContacts_groundStation' - Name of a ground station.+--+-- 'maxResults', 'listContacts_maxResults' - Maximum number of contacts returned.+--+-- 'missionProfileArn', 'listContacts_missionProfileArn' - ARN of a mission profile.+--+-- 'nextToken', 'listContacts_nextToken' - Next token returned in the request of a previous @ListContacts@ call.+-- Used to get the next page of results.+--+-- 'satelliteArn', 'listContacts_satelliteArn' - ARN of a satellite.+--+-- 'endTime', 'listContacts_endTime' - End time of a contact in UTC.+--+-- 'startTime', 'listContacts_startTime' - Start time of a contact in UTC.+--+-- 'statusList', 'listContacts_statusList' - Status of a contact reservation.+newListContacts ::+  -- | 'endTime'+  Prelude.UTCTime ->+  -- | 'startTime'+  Prelude.UTCTime ->+  ListContacts+newListContacts pEndTime_ pStartTime_ =+  ListContacts'+    { groundStation = Prelude.Nothing,+      maxResults = Prelude.Nothing,+      missionProfileArn = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      satelliteArn = Prelude.Nothing,+      endTime = Data._Time Lens.# pEndTime_,+      startTime = Data._Time Lens.# pStartTime_,+      statusList = Prelude.mempty+    }++-- | Name of a ground station.+listContacts_groundStation :: Lens.Lens' ListContacts (Prelude.Maybe Prelude.Text)+listContacts_groundStation = Lens.lens (\ListContacts' {groundStation} -> groundStation) (\s@ListContacts' {} a -> s {groundStation = a} :: ListContacts)++-- | Maximum number of contacts returned.+listContacts_maxResults :: Lens.Lens' ListContacts (Prelude.Maybe Prelude.Natural)+listContacts_maxResults = Lens.lens (\ListContacts' {maxResults} -> maxResults) (\s@ListContacts' {} a -> s {maxResults = a} :: ListContacts)++-- | ARN of a mission profile.+listContacts_missionProfileArn :: Lens.Lens' ListContacts (Prelude.Maybe Prelude.Text)+listContacts_missionProfileArn = Lens.lens (\ListContacts' {missionProfileArn} -> missionProfileArn) (\s@ListContacts' {} a -> s {missionProfileArn = a} :: ListContacts)++-- | Next token returned in the request of a previous @ListContacts@ call.+-- Used to get the next page of results.+listContacts_nextToken :: Lens.Lens' ListContacts (Prelude.Maybe Prelude.Text)+listContacts_nextToken = Lens.lens (\ListContacts' {nextToken} -> nextToken) (\s@ListContacts' {} a -> s {nextToken = a} :: ListContacts)++-- | ARN of a satellite.+listContacts_satelliteArn :: Lens.Lens' ListContacts (Prelude.Maybe Prelude.Text)+listContacts_satelliteArn = Lens.lens (\ListContacts' {satelliteArn} -> satelliteArn) (\s@ListContacts' {} a -> s {satelliteArn = a} :: ListContacts)++-- | End time of a contact in UTC.+listContacts_endTime :: Lens.Lens' ListContacts Prelude.UTCTime+listContacts_endTime = Lens.lens (\ListContacts' {endTime} -> endTime) (\s@ListContacts' {} a -> s {endTime = a} :: ListContacts) Prelude.. Data._Time++-- | Start time of a contact in UTC.+listContacts_startTime :: Lens.Lens' ListContacts Prelude.UTCTime+listContacts_startTime = Lens.lens (\ListContacts' {startTime} -> startTime) (\s@ListContacts' {} a -> s {startTime = a} :: ListContacts) Prelude.. Data._Time++-- | Status of a contact reservation.+listContacts_statusList :: Lens.Lens' ListContacts [ContactStatus]+listContacts_statusList = Lens.lens (\ListContacts' {statusList} -> statusList) (\s@ListContacts' {} a -> s {statusList = a} :: ListContacts) Prelude.. Lens.coerced++instance Core.AWSPager ListContacts where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listContactsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listContactsResponse_contactList+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listContacts_nextToken+          Lens..~ rs+          Lens.^? listContactsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListContacts where+  type AWSResponse ListContacts = ListContactsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListContactsResponse'+            Prelude.<$> (x Data..?> "contactList" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListContacts where+  hashWithSalt _salt ListContacts' {..} =+    _salt+      `Prelude.hashWithSalt` groundStation+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` missionProfileArn+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` satelliteArn+      `Prelude.hashWithSalt` endTime+      `Prelude.hashWithSalt` startTime+      `Prelude.hashWithSalt` statusList++instance Prelude.NFData ListContacts where+  rnf ListContacts' {..} =+    Prelude.rnf groundStation+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf missionProfileArn+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf satelliteArn+      `Prelude.seq` Prelude.rnf endTime+      `Prelude.seq` Prelude.rnf startTime+      `Prelude.seq` Prelude.rnf statusList++instance Data.ToHeaders ListContacts where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListContacts where+  toJSON ListContacts' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("groundStation" Data..=) Prelude.<$> groundStation,+            ("maxResults" Data..=) Prelude.<$> maxResults,+            ("missionProfileArn" Data..=)+              Prelude.<$> missionProfileArn,+            ("nextToken" Data..=) Prelude.<$> nextToken,+            ("satelliteArn" Data..=) Prelude.<$> satelliteArn,+            Prelude.Just ("endTime" Data..= endTime),+            Prelude.Just ("startTime" Data..= startTime),+            Prelude.Just ("statusList" Data..= statusList)+          ]+      )++instance Data.ToPath ListContacts where+  toPath = Prelude.const "/contacts"++instance Data.ToQuery ListContacts where+  toQuery = Prelude.const Prelude.mempty++-- |+--+-- /See:/ 'newListContactsResponse' smart constructor.+data ListContactsResponse = ListContactsResponse'+  { -- | List of contacts.+    contactList :: Prelude.Maybe [ContactData],+    -- | Next token returned in the response of a previous @ListContacts@ call.+    -- Used to get the next page of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListContactsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'contactList', 'listContactsResponse_contactList' - List of contacts.+--+-- 'nextToken', 'listContactsResponse_nextToken' - Next token returned in the response of a previous @ListContacts@ call.+-- Used to get the next page of results.+--+-- 'httpStatus', 'listContactsResponse_httpStatus' - The response's http status code.+newListContactsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListContactsResponse+newListContactsResponse pHttpStatus_ =+  ListContactsResponse'+    { contactList =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | List of contacts.+listContactsResponse_contactList :: Lens.Lens' ListContactsResponse (Prelude.Maybe [ContactData])+listContactsResponse_contactList = Lens.lens (\ListContactsResponse' {contactList} -> contactList) (\s@ListContactsResponse' {} a -> s {contactList = a} :: ListContactsResponse) Prelude.. Lens.mapping Lens.coerced++-- | Next token returned in the response of a previous @ListContacts@ call.+-- Used to get the next page of results.+listContactsResponse_nextToken :: Lens.Lens' ListContactsResponse (Prelude.Maybe Prelude.Text)+listContactsResponse_nextToken = Lens.lens (\ListContactsResponse' {nextToken} -> nextToken) (\s@ListContactsResponse' {} a -> s {nextToken = a} :: ListContactsResponse)++-- | The response's http status code.+listContactsResponse_httpStatus :: Lens.Lens' ListContactsResponse Prelude.Int+listContactsResponse_httpStatus = Lens.lens (\ListContactsResponse' {httpStatus} -> httpStatus) (\s@ListContactsResponse' {} a -> s {httpStatus = a} :: ListContactsResponse)++instance Prelude.NFData ListContactsResponse where+  rnf ListContactsResponse' {..} =+    Prelude.rnf contactList+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/GroundStation/ListDataflowEndpointGroups.hs view
@@ -0,0 +1,228 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.GroundStation.ListDataflowEndpointGroups+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a list of @DataflowEndpoint@ groups.+--+-- This operation returns paginated results.+module Amazonka.GroundStation.ListDataflowEndpointGroups+  ( -- * Creating a Request+    ListDataflowEndpointGroups (..),+    newListDataflowEndpointGroups,++    -- * Request Lenses+    listDataflowEndpointGroups_maxResults,+    listDataflowEndpointGroups_nextToken,++    -- * Destructuring the Response+    ListDataflowEndpointGroupsResponse (..),+    newListDataflowEndpointGroupsResponse,++    -- * Response Lenses+    listDataflowEndpointGroupsResponse_dataflowEndpointGroupList,+    listDataflowEndpointGroupsResponse_nextToken,+    listDataflowEndpointGroupsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GroundStation.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- |+--+-- /See:/ 'newListDataflowEndpointGroups' smart constructor.+data ListDataflowEndpointGroups = ListDataflowEndpointGroups'+  { -- | Maximum number of dataflow endpoint groups returned.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | Next token returned in the request of a previous+    -- @ListDataflowEndpointGroups@ call. Used to get the next page of results.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListDataflowEndpointGroups' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listDataflowEndpointGroups_maxResults' - Maximum number of dataflow endpoint groups returned.+--+-- 'nextToken', 'listDataflowEndpointGroups_nextToken' - Next token returned in the request of a previous+-- @ListDataflowEndpointGroups@ call. Used to get the next page of results.+newListDataflowEndpointGroups ::+  ListDataflowEndpointGroups+newListDataflowEndpointGroups =+  ListDataflowEndpointGroups'+    { maxResults =+        Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | Maximum number of dataflow endpoint groups returned.+listDataflowEndpointGroups_maxResults :: Lens.Lens' ListDataflowEndpointGroups (Prelude.Maybe Prelude.Natural)+listDataflowEndpointGroups_maxResults = Lens.lens (\ListDataflowEndpointGroups' {maxResults} -> maxResults) (\s@ListDataflowEndpointGroups' {} a -> s {maxResults = a} :: ListDataflowEndpointGroups)++-- | Next token returned in the request of a previous+-- @ListDataflowEndpointGroups@ call. Used to get the next page of results.+listDataflowEndpointGroups_nextToken :: Lens.Lens' ListDataflowEndpointGroups (Prelude.Maybe Prelude.Text)+listDataflowEndpointGroups_nextToken = Lens.lens (\ListDataflowEndpointGroups' {nextToken} -> nextToken) (\s@ListDataflowEndpointGroups' {} a -> s {nextToken = a} :: ListDataflowEndpointGroups)++instance Core.AWSPager ListDataflowEndpointGroups where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listDataflowEndpointGroupsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listDataflowEndpointGroupsResponse_dataflowEndpointGroupList+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listDataflowEndpointGroups_nextToken+          Lens..~ rs+          Lens.^? listDataflowEndpointGroupsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListDataflowEndpointGroups where+  type+    AWSResponse ListDataflowEndpointGroups =+      ListDataflowEndpointGroupsResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListDataflowEndpointGroupsResponse'+            Prelude.<$> ( x+                            Data..?> "dataflowEndpointGroupList"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListDataflowEndpointGroups where+  hashWithSalt _salt ListDataflowEndpointGroups' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListDataflowEndpointGroups where+  rnf ListDataflowEndpointGroups' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListDataflowEndpointGroups where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListDataflowEndpointGroups where+  toPath = Prelude.const "/dataflowEndpointGroup"++instance Data.ToQuery ListDataflowEndpointGroups where+  toQuery ListDataflowEndpointGroups' {..} =+    Prelude.mconcat+      [ "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken+      ]++-- |+--+-- /See:/ 'newListDataflowEndpointGroupsResponse' smart constructor.+data ListDataflowEndpointGroupsResponse = ListDataflowEndpointGroupsResponse'+  { -- | A list of dataflow endpoint groups.+    dataflowEndpointGroupList :: Prelude.Maybe [DataflowEndpointListItem],+    -- | Next token returned in the response of a previous+    -- @ListDataflowEndpointGroups@ call. Used to get the next page of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListDataflowEndpointGroupsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dataflowEndpointGroupList', 'listDataflowEndpointGroupsResponse_dataflowEndpointGroupList' - A list of dataflow endpoint groups.+--+-- 'nextToken', 'listDataflowEndpointGroupsResponse_nextToken' - Next token returned in the response of a previous+-- @ListDataflowEndpointGroups@ call. Used to get the next page of results.+--+-- 'httpStatus', 'listDataflowEndpointGroupsResponse_httpStatus' - The response's http status code.+newListDataflowEndpointGroupsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListDataflowEndpointGroupsResponse+newListDataflowEndpointGroupsResponse pHttpStatus_ =+  ListDataflowEndpointGroupsResponse'+    { dataflowEndpointGroupList =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A list of dataflow endpoint groups.+listDataflowEndpointGroupsResponse_dataflowEndpointGroupList :: Lens.Lens' ListDataflowEndpointGroupsResponse (Prelude.Maybe [DataflowEndpointListItem])+listDataflowEndpointGroupsResponse_dataflowEndpointGroupList = Lens.lens (\ListDataflowEndpointGroupsResponse' {dataflowEndpointGroupList} -> dataflowEndpointGroupList) (\s@ListDataflowEndpointGroupsResponse' {} a -> s {dataflowEndpointGroupList = a} :: ListDataflowEndpointGroupsResponse) Prelude.. Lens.mapping Lens.coerced++-- | Next token returned in the response of a previous+-- @ListDataflowEndpointGroups@ call. Used to get the next page of results.+listDataflowEndpointGroupsResponse_nextToken :: Lens.Lens' ListDataflowEndpointGroupsResponse (Prelude.Maybe Prelude.Text)+listDataflowEndpointGroupsResponse_nextToken = Lens.lens (\ListDataflowEndpointGroupsResponse' {nextToken} -> nextToken) (\s@ListDataflowEndpointGroupsResponse' {} a -> s {nextToken = a} :: ListDataflowEndpointGroupsResponse)++-- | The response's http status code.+listDataflowEndpointGroupsResponse_httpStatus :: Lens.Lens' ListDataflowEndpointGroupsResponse Prelude.Int+listDataflowEndpointGroupsResponse_httpStatus = Lens.lens (\ListDataflowEndpointGroupsResponse' {httpStatus} -> httpStatus) (\s@ListDataflowEndpointGroupsResponse' {} a -> s {httpStatus = a} :: ListDataflowEndpointGroupsResponse)++instance+  Prelude.NFData+    ListDataflowEndpointGroupsResponse+  where+  rnf ListDataflowEndpointGroupsResponse' {..} =+    Prelude.rnf dataflowEndpointGroupList+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/GroundStation/ListEphemerides.hs view
@@ -0,0 +1,292 @@+{-# 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.GroundStation.ListEphemerides+-- 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 existing ephemerides.+--+-- This operation returns paginated results.+module Amazonka.GroundStation.ListEphemerides+  ( -- * Creating a Request+    ListEphemerides (..),+    newListEphemerides,++    -- * Request Lenses+    listEphemerides_maxResults,+    listEphemerides_nextToken,+    listEphemerides_statusList,+    listEphemerides_endTime,+    listEphemerides_satelliteId,+    listEphemerides_startTime,++    -- * Destructuring the Response+    ListEphemeridesResponse (..),+    newListEphemeridesResponse,++    -- * Response Lenses+    listEphemeridesResponse_ephemerides,+    listEphemeridesResponse_nextToken,+    listEphemeridesResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GroundStation.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListEphemerides' smart constructor.+data ListEphemerides = ListEphemerides'+  { -- | Maximum number of ephemerides to return.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | Pagination token.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The list of ephemeris status to return.+    statusList :: Prelude.Maybe [EphemerisStatus],+    -- | The end time to list in UTC. The operation will return an ephemeris if+    -- its expiration time is within the time range defined by the @startTime@+    -- and @endTime@.+    endTime :: Data.POSIX,+    -- | The AWS Ground Station satellite ID to list ephemeris for.+    satelliteId :: Prelude.Text,+    -- | The start time to list in UTC. The operation will return an ephemeris if+    -- its expiration time is within the time range defined by the @startTime@+    -- and @endTime@.+    startTime :: Data.POSIX+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListEphemerides' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listEphemerides_maxResults' - Maximum number of ephemerides to return.+--+-- 'nextToken', 'listEphemerides_nextToken' - Pagination token.+--+-- 'statusList', 'listEphemerides_statusList' - The list of ephemeris status to return.+--+-- 'endTime', 'listEphemerides_endTime' - The end time to list in UTC. The operation will return an ephemeris if+-- its expiration time is within the time range defined by the @startTime@+-- and @endTime@.+--+-- 'satelliteId', 'listEphemerides_satelliteId' - The AWS Ground Station satellite ID to list ephemeris for.+--+-- 'startTime', 'listEphemerides_startTime' - The start time to list in UTC. The operation will return an ephemeris if+-- its expiration time is within the time range defined by the @startTime@+-- and @endTime@.+newListEphemerides ::+  -- | 'endTime'+  Prelude.UTCTime ->+  -- | 'satelliteId'+  Prelude.Text ->+  -- | 'startTime'+  Prelude.UTCTime ->+  ListEphemerides+newListEphemerides+  pEndTime_+  pSatelliteId_+  pStartTime_ =+    ListEphemerides'+      { maxResults = Prelude.Nothing,+        nextToken = Prelude.Nothing,+        statusList = Prelude.Nothing,+        endTime = Data._Time Lens.# pEndTime_,+        satelliteId = pSatelliteId_,+        startTime = Data._Time Lens.# pStartTime_+      }++-- | Maximum number of ephemerides to return.+listEphemerides_maxResults :: Lens.Lens' ListEphemerides (Prelude.Maybe Prelude.Natural)+listEphemerides_maxResults = Lens.lens (\ListEphemerides' {maxResults} -> maxResults) (\s@ListEphemerides' {} a -> s {maxResults = a} :: ListEphemerides)++-- | Pagination token.+listEphemerides_nextToken :: Lens.Lens' ListEphemerides (Prelude.Maybe Prelude.Text)+listEphemerides_nextToken = Lens.lens (\ListEphemerides' {nextToken} -> nextToken) (\s@ListEphemerides' {} a -> s {nextToken = a} :: ListEphemerides)++-- | The list of ephemeris status to return.+listEphemerides_statusList :: Lens.Lens' ListEphemerides (Prelude.Maybe [EphemerisStatus])+listEphemerides_statusList = Lens.lens (\ListEphemerides' {statusList} -> statusList) (\s@ListEphemerides' {} a -> s {statusList = a} :: ListEphemerides) Prelude.. Lens.mapping Lens.coerced++-- | The end time to list in UTC. The operation will return an ephemeris if+-- its expiration time is within the time range defined by the @startTime@+-- and @endTime@.+listEphemerides_endTime :: Lens.Lens' ListEphemerides Prelude.UTCTime+listEphemerides_endTime = Lens.lens (\ListEphemerides' {endTime} -> endTime) (\s@ListEphemerides' {} a -> s {endTime = a} :: ListEphemerides) Prelude.. Data._Time++-- | The AWS Ground Station satellite ID to list ephemeris for.+listEphemerides_satelliteId :: Lens.Lens' ListEphemerides Prelude.Text+listEphemerides_satelliteId = Lens.lens (\ListEphemerides' {satelliteId} -> satelliteId) (\s@ListEphemerides' {} a -> s {satelliteId = a} :: ListEphemerides)++-- | The start time to list in UTC. The operation will return an ephemeris if+-- its expiration time is within the time range defined by the @startTime@+-- and @endTime@.+listEphemerides_startTime :: Lens.Lens' ListEphemerides Prelude.UTCTime+listEphemerides_startTime = Lens.lens (\ListEphemerides' {startTime} -> startTime) (\s@ListEphemerides' {} a -> s {startTime = a} :: ListEphemerides) Prelude.. Data._Time++instance Core.AWSPager ListEphemerides where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listEphemeridesResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listEphemeridesResponse_ephemerides+            Prelude.. Lens._Just+            Prelude.. Lens.to Prelude.toList+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listEphemerides_nextToken+          Lens..~ rs+          Lens.^? listEphemeridesResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListEphemerides where+  type+    AWSResponse ListEphemerides =+      ListEphemeridesResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListEphemeridesResponse'+            Prelude.<$> (x Data..?> "ephemerides")+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListEphemerides where+  hashWithSalt _salt ListEphemerides' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` statusList+      `Prelude.hashWithSalt` endTime+      `Prelude.hashWithSalt` satelliteId+      `Prelude.hashWithSalt` startTime++instance Prelude.NFData ListEphemerides where+  rnf ListEphemerides' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf statusList+      `Prelude.seq` Prelude.rnf endTime+      `Prelude.seq` Prelude.rnf satelliteId+      `Prelude.seq` Prelude.rnf startTime++instance Data.ToHeaders ListEphemerides where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListEphemerides where+  toJSON ListEphemerides' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("statusList" Data..=) Prelude.<$> statusList,+            Prelude.Just ("endTime" Data..= endTime),+            Prelude.Just ("satelliteId" Data..= satelliteId),+            Prelude.Just ("startTime" Data..= startTime)+          ]+      )++instance Data.ToPath ListEphemerides where+  toPath = Prelude.const "/ephemerides"++instance Data.ToQuery ListEphemerides where+  toQuery ListEphemerides' {..} =+    Prelude.mconcat+      [ "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken+      ]++-- | /See:/ 'newListEphemeridesResponse' smart constructor.+data ListEphemeridesResponse = ListEphemeridesResponse'+  { -- | List of ephemerides.+    ephemerides :: Prelude.Maybe (Prelude.NonEmpty EphemerisItem),+    -- | Pagination token.+    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 'ListEphemeridesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'ephemerides', 'listEphemeridesResponse_ephemerides' - List of ephemerides.+--+-- 'nextToken', 'listEphemeridesResponse_nextToken' - Pagination token.+--+-- 'httpStatus', 'listEphemeridesResponse_httpStatus' - The response's http status code.+newListEphemeridesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListEphemeridesResponse+newListEphemeridesResponse pHttpStatus_ =+  ListEphemeridesResponse'+    { ephemerides =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | List of ephemerides.+listEphemeridesResponse_ephemerides :: Lens.Lens' ListEphemeridesResponse (Prelude.Maybe (Prelude.NonEmpty EphemerisItem))+listEphemeridesResponse_ephemerides = Lens.lens (\ListEphemeridesResponse' {ephemerides} -> ephemerides) (\s@ListEphemeridesResponse' {} a -> s {ephemerides = a} :: ListEphemeridesResponse) Prelude.. Lens.mapping Lens.coerced++-- | Pagination token.+listEphemeridesResponse_nextToken :: Lens.Lens' ListEphemeridesResponse (Prelude.Maybe Prelude.Text)+listEphemeridesResponse_nextToken = Lens.lens (\ListEphemeridesResponse' {nextToken} -> nextToken) (\s@ListEphemeridesResponse' {} a -> s {nextToken = a} :: ListEphemeridesResponse)++-- | The response's http status code.+listEphemeridesResponse_httpStatus :: Lens.Lens' ListEphemeridesResponse Prelude.Int+listEphemeridesResponse_httpStatus = Lens.lens (\ListEphemeridesResponse' {httpStatus} -> httpStatus) (\s@ListEphemeridesResponse' {} a -> s {httpStatus = a} :: ListEphemeridesResponse)++instance Prelude.NFData ListEphemeridesResponse where+  rnf ListEphemeridesResponse' {..} =+    Prelude.rnf ephemerides+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/GroundStation/ListGroundStations.hs view
@@ -0,0 +1,237 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.GroundStation.ListGroundStations+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a list of ground stations.+--+-- This operation returns paginated results.+module Amazonka.GroundStation.ListGroundStations+  ( -- * Creating a Request+    ListGroundStations (..),+    newListGroundStations,++    -- * Request Lenses+    listGroundStations_maxResults,+    listGroundStations_nextToken,+    listGroundStations_satelliteId,++    -- * Destructuring the Response+    ListGroundStationsResponse (..),+    newListGroundStationsResponse,++    -- * Response Lenses+    listGroundStationsResponse_groundStationList,+    listGroundStationsResponse_nextToken,+    listGroundStationsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GroundStation.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- |+--+-- /See:/ 'newListGroundStations' smart constructor.+data ListGroundStations = ListGroundStations'+  { -- | Maximum number of ground stations returned.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | Next token that can be supplied in the next call to get the next page of+    -- ground stations.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | Satellite ID to retrieve on-boarded ground stations.+    satelliteId :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListGroundStations' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listGroundStations_maxResults' - Maximum number of ground stations returned.+--+-- 'nextToken', 'listGroundStations_nextToken' - Next token that can be supplied in the next call to get the next page of+-- ground stations.+--+-- 'satelliteId', 'listGroundStations_satelliteId' - Satellite ID to retrieve on-boarded ground stations.+newListGroundStations ::+  ListGroundStations+newListGroundStations =+  ListGroundStations'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      satelliteId = Prelude.Nothing+    }++-- | Maximum number of ground stations returned.+listGroundStations_maxResults :: Lens.Lens' ListGroundStations (Prelude.Maybe Prelude.Natural)+listGroundStations_maxResults = Lens.lens (\ListGroundStations' {maxResults} -> maxResults) (\s@ListGroundStations' {} a -> s {maxResults = a} :: ListGroundStations)++-- | Next token that can be supplied in the next call to get the next page of+-- ground stations.+listGroundStations_nextToken :: Lens.Lens' ListGroundStations (Prelude.Maybe Prelude.Text)+listGroundStations_nextToken = Lens.lens (\ListGroundStations' {nextToken} -> nextToken) (\s@ListGroundStations' {} a -> s {nextToken = a} :: ListGroundStations)++-- | Satellite ID to retrieve on-boarded ground stations.+listGroundStations_satelliteId :: Lens.Lens' ListGroundStations (Prelude.Maybe Prelude.Text)+listGroundStations_satelliteId = Lens.lens (\ListGroundStations' {satelliteId} -> satelliteId) (\s@ListGroundStations' {} a -> s {satelliteId = a} :: ListGroundStations)++instance Core.AWSPager ListGroundStations where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listGroundStationsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listGroundStationsResponse_groundStationList+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listGroundStations_nextToken+          Lens..~ rs+          Lens.^? listGroundStationsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListGroundStations where+  type+    AWSResponse ListGroundStations =+      ListGroundStationsResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListGroundStationsResponse'+            Prelude.<$> ( x+                            Data..?> "groundStationList"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListGroundStations where+  hashWithSalt _salt ListGroundStations' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` satelliteId++instance Prelude.NFData ListGroundStations where+  rnf ListGroundStations' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf satelliteId++instance Data.ToHeaders ListGroundStations where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListGroundStations where+  toPath = Prelude.const "/groundstation"++instance Data.ToQuery ListGroundStations where+  toQuery ListGroundStations' {..} =+    Prelude.mconcat+      [ "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken,+        "satelliteId" Data.=: satelliteId+      ]++-- |+--+-- /See:/ 'newListGroundStationsResponse' smart constructor.+data ListGroundStationsResponse = ListGroundStationsResponse'+  { -- | List of ground stations.+    groundStationList :: Prelude.Maybe [GroundStationData],+    -- | Next token that can be supplied in the next call to get the next page of+    -- ground stations.+    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 'ListGroundStationsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'groundStationList', 'listGroundStationsResponse_groundStationList' - List of ground stations.+--+-- 'nextToken', 'listGroundStationsResponse_nextToken' - Next token that can be supplied in the next call to get the next page of+-- ground stations.+--+-- 'httpStatus', 'listGroundStationsResponse_httpStatus' - The response's http status code.+newListGroundStationsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListGroundStationsResponse+newListGroundStationsResponse pHttpStatus_ =+  ListGroundStationsResponse'+    { groundStationList =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | List of ground stations.+listGroundStationsResponse_groundStationList :: Lens.Lens' ListGroundStationsResponse (Prelude.Maybe [GroundStationData])+listGroundStationsResponse_groundStationList = Lens.lens (\ListGroundStationsResponse' {groundStationList} -> groundStationList) (\s@ListGroundStationsResponse' {} a -> s {groundStationList = a} :: ListGroundStationsResponse) Prelude.. Lens.mapping Lens.coerced++-- | Next token that can be supplied in the next call to get the next page of+-- ground stations.+listGroundStationsResponse_nextToken :: Lens.Lens' ListGroundStationsResponse (Prelude.Maybe Prelude.Text)+listGroundStationsResponse_nextToken = Lens.lens (\ListGroundStationsResponse' {nextToken} -> nextToken) (\s@ListGroundStationsResponse' {} a -> s {nextToken = a} :: ListGroundStationsResponse)++-- | The response's http status code.+listGroundStationsResponse_httpStatus :: Lens.Lens' ListGroundStationsResponse Prelude.Int+listGroundStationsResponse_httpStatus = Lens.lens (\ListGroundStationsResponse' {httpStatus} -> httpStatus) (\s@ListGroundStationsResponse' {} a -> s {httpStatus = a} :: ListGroundStationsResponse)++instance Prelude.NFData ListGroundStationsResponse where+  rnf ListGroundStationsResponse' {..} =+    Prelude.rnf groundStationList+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/GroundStation/ListMissionProfiles.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.GroundStation.ListMissionProfiles+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a list of mission profiles.+--+-- This operation returns paginated results.+module Amazonka.GroundStation.ListMissionProfiles+  ( -- * Creating a Request+    ListMissionProfiles (..),+    newListMissionProfiles,++    -- * Request Lenses+    listMissionProfiles_maxResults,+    listMissionProfiles_nextToken,++    -- * Destructuring the Response+    ListMissionProfilesResponse (..),+    newListMissionProfilesResponse,++    -- * Response Lenses+    listMissionProfilesResponse_missionProfileList,+    listMissionProfilesResponse_nextToken,+    listMissionProfilesResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GroundStation.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- |+--+-- /See:/ 'newListMissionProfiles' smart constructor.+data ListMissionProfiles = ListMissionProfiles'+  { -- | Maximum number of mission profiles returned.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | Next token returned in the request of a previous @ListMissionProfiles@+    -- call. Used to get the next page of results.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListMissionProfiles' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listMissionProfiles_maxResults' - Maximum number of mission profiles returned.+--+-- 'nextToken', 'listMissionProfiles_nextToken' - Next token returned in the request of a previous @ListMissionProfiles@+-- call. Used to get the next page of results.+newListMissionProfiles ::+  ListMissionProfiles+newListMissionProfiles =+  ListMissionProfiles'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | Maximum number of mission profiles returned.+listMissionProfiles_maxResults :: Lens.Lens' ListMissionProfiles (Prelude.Maybe Prelude.Natural)+listMissionProfiles_maxResults = Lens.lens (\ListMissionProfiles' {maxResults} -> maxResults) (\s@ListMissionProfiles' {} a -> s {maxResults = a} :: ListMissionProfiles)++-- | Next token returned in the request of a previous @ListMissionProfiles@+-- call. Used to get the next page of results.+listMissionProfiles_nextToken :: Lens.Lens' ListMissionProfiles (Prelude.Maybe Prelude.Text)+listMissionProfiles_nextToken = Lens.lens (\ListMissionProfiles' {nextToken} -> nextToken) (\s@ListMissionProfiles' {} a -> s {nextToken = a} :: ListMissionProfiles)++instance Core.AWSPager ListMissionProfiles where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listMissionProfilesResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listMissionProfilesResponse_missionProfileList+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listMissionProfiles_nextToken+          Lens..~ rs+          Lens.^? listMissionProfilesResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListMissionProfiles where+  type+    AWSResponse ListMissionProfiles =+      ListMissionProfilesResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListMissionProfilesResponse'+            Prelude.<$> ( x+                            Data..?> "missionProfileList"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListMissionProfiles where+  hashWithSalt _salt ListMissionProfiles' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListMissionProfiles where+  rnf ListMissionProfiles' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListMissionProfiles where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListMissionProfiles where+  toPath = Prelude.const "/missionprofile"++instance Data.ToQuery ListMissionProfiles where+  toQuery ListMissionProfiles' {..} =+    Prelude.mconcat+      [ "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken+      ]++-- |+--+-- /See:/ 'newListMissionProfilesResponse' smart constructor.+data ListMissionProfilesResponse = ListMissionProfilesResponse'+  { -- | List of mission profiles.+    missionProfileList :: Prelude.Maybe [MissionProfileListItem],+    -- | Next token returned in the response of a previous @ListMissionProfiles@+    -- call. Used to get the next page of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListMissionProfilesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'missionProfileList', 'listMissionProfilesResponse_missionProfileList' - List of mission profiles.+--+-- 'nextToken', 'listMissionProfilesResponse_nextToken' - Next token returned in the response of a previous @ListMissionProfiles@+-- call. Used to get the next page of results.+--+-- 'httpStatus', 'listMissionProfilesResponse_httpStatus' - The response's http status code.+newListMissionProfilesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListMissionProfilesResponse+newListMissionProfilesResponse pHttpStatus_ =+  ListMissionProfilesResponse'+    { missionProfileList =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | List of mission profiles.+listMissionProfilesResponse_missionProfileList :: Lens.Lens' ListMissionProfilesResponse (Prelude.Maybe [MissionProfileListItem])+listMissionProfilesResponse_missionProfileList = Lens.lens (\ListMissionProfilesResponse' {missionProfileList} -> missionProfileList) (\s@ListMissionProfilesResponse' {} a -> s {missionProfileList = a} :: ListMissionProfilesResponse) Prelude.. Lens.mapping Lens.coerced++-- | Next token returned in the response of a previous @ListMissionProfiles@+-- call. Used to get the next page of results.+listMissionProfilesResponse_nextToken :: Lens.Lens' ListMissionProfilesResponse (Prelude.Maybe Prelude.Text)+listMissionProfilesResponse_nextToken = Lens.lens (\ListMissionProfilesResponse' {nextToken} -> nextToken) (\s@ListMissionProfilesResponse' {} a -> s {nextToken = a} :: ListMissionProfilesResponse)++-- | The response's http status code.+listMissionProfilesResponse_httpStatus :: Lens.Lens' ListMissionProfilesResponse Prelude.Int+listMissionProfilesResponse_httpStatus = Lens.lens (\ListMissionProfilesResponse' {httpStatus} -> httpStatus) (\s@ListMissionProfilesResponse' {} a -> s {httpStatus = a} :: ListMissionProfilesResponse)++instance Prelude.NFData ListMissionProfilesResponse where+  rnf ListMissionProfilesResponse' {..} =+    Prelude.rnf missionProfileList+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/GroundStation/ListSatellites.hs view
@@ -0,0 +1,221 @@+{-# 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.GroundStation.ListSatellites+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a list of satellites.+--+-- This operation returns paginated results.+module Amazonka.GroundStation.ListSatellites+  ( -- * Creating a Request+    ListSatellites (..),+    newListSatellites,++    -- * Request Lenses+    listSatellites_maxResults,+    listSatellites_nextToken,++    -- * Destructuring the Response+    ListSatellitesResponse (..),+    newListSatellitesResponse,++    -- * Response Lenses+    listSatellitesResponse_nextToken,+    listSatellitesResponse_satellites,+    listSatellitesResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GroundStation.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- |+--+-- /See:/ 'newListSatellites' smart constructor.+data ListSatellites = ListSatellites'+  { -- | Maximum number of satellites returned.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | Next token that can be supplied in the next call to get the next page of+    -- satellites.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListSatellites' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listSatellites_maxResults' - Maximum number of satellites returned.+--+-- 'nextToken', 'listSatellites_nextToken' - Next token that can be supplied in the next call to get the next page of+-- satellites.+newListSatellites ::+  ListSatellites+newListSatellites =+  ListSatellites'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | Maximum number of satellites returned.+listSatellites_maxResults :: Lens.Lens' ListSatellites (Prelude.Maybe Prelude.Natural)+listSatellites_maxResults = Lens.lens (\ListSatellites' {maxResults} -> maxResults) (\s@ListSatellites' {} a -> s {maxResults = a} :: ListSatellites)++-- | Next token that can be supplied in the next call to get the next page of+-- satellites.+listSatellites_nextToken :: Lens.Lens' ListSatellites (Prelude.Maybe Prelude.Text)+listSatellites_nextToken = Lens.lens (\ListSatellites' {nextToken} -> nextToken) (\s@ListSatellites' {} a -> s {nextToken = a} :: ListSatellites)++instance Core.AWSPager ListSatellites where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listSatellitesResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listSatellitesResponse_satellites+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listSatellites_nextToken+          Lens..~ rs+          Lens.^? listSatellitesResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListSatellites where+  type+    AWSResponse ListSatellites =+      ListSatellitesResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListSatellitesResponse'+            Prelude.<$> (x Data..?> "nextToken")+            Prelude.<*> (x Data..?> "satellites" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListSatellites where+  hashWithSalt _salt ListSatellites' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListSatellites where+  rnf ListSatellites' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListSatellites where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListSatellites where+  toPath = Prelude.const "/satellite"++instance Data.ToQuery ListSatellites where+  toQuery ListSatellites' {..} =+    Prelude.mconcat+      [ "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken+      ]++-- |+--+-- /See:/ 'newListSatellitesResponse' smart constructor.+data ListSatellitesResponse = ListSatellitesResponse'+  { -- | Next token that can be supplied in the next call to get the next page of+    -- satellites.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | List of satellites.+    satellites :: Prelude.Maybe [SatelliteListItem],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListSatellitesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listSatellitesResponse_nextToken' - Next token that can be supplied in the next call to get the next page of+-- satellites.+--+-- 'satellites', 'listSatellitesResponse_satellites' - List of satellites.+--+-- 'httpStatus', 'listSatellitesResponse_httpStatus' - The response's http status code.+newListSatellitesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListSatellitesResponse+newListSatellitesResponse pHttpStatus_ =+  ListSatellitesResponse'+    { nextToken =+        Prelude.Nothing,+      satellites = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Next token that can be supplied in the next call to get the next page of+-- satellites.+listSatellitesResponse_nextToken :: Lens.Lens' ListSatellitesResponse (Prelude.Maybe Prelude.Text)+listSatellitesResponse_nextToken = Lens.lens (\ListSatellitesResponse' {nextToken} -> nextToken) (\s@ListSatellitesResponse' {} a -> s {nextToken = a} :: ListSatellitesResponse)++-- | List of satellites.+listSatellitesResponse_satellites :: Lens.Lens' ListSatellitesResponse (Prelude.Maybe [SatelliteListItem])+listSatellitesResponse_satellites = Lens.lens (\ListSatellitesResponse' {satellites} -> satellites) (\s@ListSatellitesResponse' {} a -> s {satellites = a} :: ListSatellitesResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listSatellitesResponse_httpStatus :: Lens.Lens' ListSatellitesResponse Prelude.Int+listSatellitesResponse_httpStatus = Lens.lens (\ListSatellitesResponse' {httpStatus} -> httpStatus) (\s@ListSatellitesResponse' {} a -> s {httpStatus = a} :: ListSatellitesResponse)++instance Prelude.NFData ListSatellitesResponse where+  rnf ListSatellitesResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf satellites+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/GroundStation/ListTagsForResource.hs view
@@ -0,0 +1,163 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.GroundStation.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)+--+-- Returns a list of tags for a specified resource.+module Amazonka.GroundStation.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.GroundStation.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'+  { -- | ARN of a resource.+    resourceArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListTagsForResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceArn', 'listTagsForResource_resourceArn' - ARN of a resource.+newListTagsForResource ::+  -- | 'resourceArn'+  Prelude.Text ->+  ListTagsForResource+newListTagsForResource pResourceArn_ =+  ListTagsForResource' {resourceArn = pResourceArn_}++-- | ARN of a resource.+listTagsForResource_resourceArn :: Lens.Lens' ListTagsForResource Prelude.Text+listTagsForResource_resourceArn = Lens.lens (\ListTagsForResource' {resourceArn} -> resourceArn) (\s@ListTagsForResource' {} a -> s {resourceArn = a} :: ListTagsForResource)++instance Core.AWSRequest ListTagsForResource where+  type+    AWSResponse ListTagsForResource =+      ListTagsForResourceResponse+  request overrides =+    Request.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'+  { -- | Tags assigned to a resource.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListTagsForResourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'tags', 'listTagsForResourceResponse_tags' - Tags assigned to a resource.+--+-- 'httpStatus', 'listTagsForResourceResponse_httpStatus' - The response's http status code.+newListTagsForResourceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListTagsForResourceResponse+newListTagsForResourceResponse pHttpStatus_ =+  ListTagsForResourceResponse'+    { tags =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Tags assigned to a resource.+listTagsForResourceResponse_tags :: Lens.Lens' ListTagsForResourceResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+listTagsForResourceResponse_tags = Lens.lens (\ListTagsForResourceResponse' {tags} -> tags) (\s@ListTagsForResourceResponse' {} a -> s {tags = a} :: ListTagsForResourceResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listTagsForResourceResponse_httpStatus :: Lens.Lens' ListTagsForResourceResponse Prelude.Int+listTagsForResourceResponse_httpStatus = Lens.lens (\ListTagsForResourceResponse' {httpStatus} -> httpStatus) (\s@ListTagsForResourceResponse' {} a -> s {httpStatus = a} :: ListTagsForResourceResponse)++instance Prelude.NFData ListTagsForResourceResponse where+  rnf ListTagsForResourceResponse' {..} =+    Prelude.rnf tags+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/GroundStation/ReserveContact.hs view
@@ -0,0 +1,199 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.GroundStation.ReserveContact+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Reserves a contact using specified parameters.+module Amazonka.GroundStation.ReserveContact+  ( -- * Creating a Request+    ReserveContact (..),+    newReserveContact,++    -- * Request Lenses+    reserveContact_tags,+    reserveContact_endTime,+    reserveContact_groundStation,+    reserveContact_missionProfileArn,+    reserveContact_satelliteArn,+    reserveContact_startTime,++    -- * Destructuring the Response+    ContactIdResponse (..),+    newContactIdResponse,++    -- * Response Lenses+    contactIdResponse_contactId,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GroundStation.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- |+--+-- /See:/ 'newReserveContact' smart constructor.+data ReserveContact = ReserveContact'+  { -- | Tags assigned to a contact.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | End time of a contact in UTC.+    endTime :: Data.POSIX,+    -- | Name of a ground station.+    groundStation :: Prelude.Text,+    -- | ARN of a mission profile.+    missionProfileArn :: Prelude.Text,+    -- | ARN of a satellite+    satelliteArn :: Prelude.Text,+    -- | Start time of a contact in UTC.+    startTime :: Data.POSIX+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ReserveContact' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'reserveContact_tags' - Tags assigned to a contact.+--+-- 'endTime', 'reserveContact_endTime' - End time of a contact in UTC.+--+-- 'groundStation', 'reserveContact_groundStation' - Name of a ground station.+--+-- 'missionProfileArn', 'reserveContact_missionProfileArn' - ARN of a mission profile.+--+-- 'satelliteArn', 'reserveContact_satelliteArn' - ARN of a satellite+--+-- 'startTime', 'reserveContact_startTime' - Start time of a contact in UTC.+newReserveContact ::+  -- | 'endTime'+  Prelude.UTCTime ->+  -- | 'groundStation'+  Prelude.Text ->+  -- | 'missionProfileArn'+  Prelude.Text ->+  -- | 'satelliteArn'+  Prelude.Text ->+  -- | 'startTime'+  Prelude.UTCTime ->+  ReserveContact+newReserveContact+  pEndTime_+  pGroundStation_+  pMissionProfileArn_+  pSatelliteArn_+  pStartTime_ =+    ReserveContact'+      { tags = Prelude.Nothing,+        endTime = Data._Time Lens.# pEndTime_,+        groundStation = pGroundStation_,+        missionProfileArn = pMissionProfileArn_,+        satelliteArn = pSatelliteArn_,+        startTime = Data._Time Lens.# pStartTime_+      }++-- | Tags assigned to a contact.+reserveContact_tags :: Lens.Lens' ReserveContact (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+reserveContact_tags = Lens.lens (\ReserveContact' {tags} -> tags) (\s@ReserveContact' {} a -> s {tags = a} :: ReserveContact) Prelude.. Lens.mapping Lens.coerced++-- | End time of a contact in UTC.+reserveContact_endTime :: Lens.Lens' ReserveContact Prelude.UTCTime+reserveContact_endTime = Lens.lens (\ReserveContact' {endTime} -> endTime) (\s@ReserveContact' {} a -> s {endTime = a} :: ReserveContact) Prelude.. Data._Time++-- | Name of a ground station.+reserveContact_groundStation :: Lens.Lens' ReserveContact Prelude.Text+reserveContact_groundStation = Lens.lens (\ReserveContact' {groundStation} -> groundStation) (\s@ReserveContact' {} a -> s {groundStation = a} :: ReserveContact)++-- | ARN of a mission profile.+reserveContact_missionProfileArn :: Lens.Lens' ReserveContact Prelude.Text+reserveContact_missionProfileArn = Lens.lens (\ReserveContact' {missionProfileArn} -> missionProfileArn) (\s@ReserveContact' {} a -> s {missionProfileArn = a} :: ReserveContact)++-- | ARN of a satellite+reserveContact_satelliteArn :: Lens.Lens' ReserveContact Prelude.Text+reserveContact_satelliteArn = Lens.lens (\ReserveContact' {satelliteArn} -> satelliteArn) (\s@ReserveContact' {} a -> s {satelliteArn = a} :: ReserveContact)++-- | Start time of a contact in UTC.+reserveContact_startTime :: Lens.Lens' ReserveContact Prelude.UTCTime+reserveContact_startTime = Lens.lens (\ReserveContact' {startTime} -> startTime) (\s@ReserveContact' {} a -> s {startTime = a} :: ReserveContact) Prelude.. Data._Time++instance Core.AWSRequest ReserveContact where+  type AWSResponse ReserveContact = ContactIdResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      (\s h x -> Data.eitherParseJSON x)++instance Prelude.Hashable ReserveContact where+  hashWithSalt _salt ReserveContact' {..} =+    _salt+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` endTime+      `Prelude.hashWithSalt` groundStation+      `Prelude.hashWithSalt` missionProfileArn+      `Prelude.hashWithSalt` satelliteArn+      `Prelude.hashWithSalt` startTime++instance Prelude.NFData ReserveContact where+  rnf ReserveContact' {..} =+    Prelude.rnf tags+      `Prelude.seq` Prelude.rnf endTime+      `Prelude.seq` Prelude.rnf groundStation+      `Prelude.seq` Prelude.rnf missionProfileArn+      `Prelude.seq` Prelude.rnf satelliteArn+      `Prelude.seq` Prelude.rnf startTime++instance Data.ToHeaders ReserveContact where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ReserveContact where+  toJSON ReserveContact' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("endTime" Data..= endTime),+            Prelude.Just ("groundStation" Data..= groundStation),+            Prelude.Just+              ("missionProfileArn" Data..= missionProfileArn),+            Prelude.Just ("satelliteArn" Data..= satelliteArn),+            Prelude.Just ("startTime" Data..= startTime)+          ]+      )++instance Data.ToPath ReserveContact where+  toPath = Prelude.const "/contact"++instance Data.ToQuery ReserveContact where+  toQuery = Prelude.const Prelude.mempty
+ gen/Amazonka/GroundStation/TagResource.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.GroundStation.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)+--+-- Assigns a tag to a resource.+module Amazonka.GroundStation.TagResource+  ( -- * Creating a Request+    TagResource (..),+    newTagResource,++    -- * Request Lenses+    tagResource_resourceArn,+    tagResource_tags,++    -- * Destructuring the Response+    TagResourceResponse (..),+    newTagResourceResponse,++    -- * Response Lenses+    tagResourceResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GroundStation.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- |+--+-- /See:/ 'newTagResource' smart constructor.+data TagResource = TagResource'+  { -- | ARN of a resource tag.+    resourceArn :: Prelude.Text,+    -- | Tags assigned to a resource.+    tags :: Prelude.HashMap Prelude.Text Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TagResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceArn', 'tagResource_resourceArn' - ARN of a resource tag.+--+-- 'tags', 'tagResource_tags' - Tags assigned to a resource.+newTagResource ::+  -- | 'resourceArn'+  Prelude.Text ->+  TagResource+newTagResource pResourceArn_ =+  TagResource'+    { resourceArn = pResourceArn_,+      tags = Prelude.mempty+    }++-- | ARN of a resource tag.+tagResource_resourceArn :: Lens.Lens' TagResource Prelude.Text+tagResource_resourceArn = Lens.lens (\TagResource' {resourceArn} -> resourceArn) (\s@TagResource' {} a -> s {resourceArn = a} :: TagResource)++-- | Tags assigned to a resource.+tagResource_tags :: Lens.Lens' TagResource (Prelude.HashMap Prelude.Text Prelude.Text)+tagResource_tags = Lens.lens (\TagResource' {tags} -> tags) (\s@TagResource' {} a -> s {tags = a} :: TagResource) Prelude.. Lens.coerced++instance Core.AWSRequest TagResource where+  type AWSResponse TagResource = TagResourceResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          TagResourceResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable TagResource where+  hashWithSalt _salt TagResource' {..} =+    _salt+      `Prelude.hashWithSalt` resourceArn+      `Prelude.hashWithSalt` tags++instance Prelude.NFData TagResource where+  rnf TagResource' {..} =+    Prelude.rnf resourceArn+      `Prelude.seq` Prelude.rnf tags++instance Data.ToHeaders TagResource where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON TagResource where+  toJSON TagResource' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("tags" Data..= tags)]+      )++instance Data.ToPath TagResource where+  toPath TagResource' {..} =+    Prelude.mconcat ["/tags/", Data.toBS resourceArn]++instance Data.ToQuery TagResource where+  toQuery = Prelude.const Prelude.mempty++-- |+--+-- /See:/ 'newTagResourceResponse' smart constructor.+data TagResourceResponse = TagResourceResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TagResourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'tagResourceResponse_httpStatus' - The response's http status code.+newTagResourceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  TagResourceResponse+newTagResourceResponse pHttpStatus_ =+  TagResourceResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+tagResourceResponse_httpStatus :: Lens.Lens' TagResourceResponse Prelude.Int+tagResourceResponse_httpStatus = Lens.lens (\TagResourceResponse' {httpStatus} -> httpStatus) (\s@TagResourceResponse' {} a -> s {httpStatus = a} :: TagResourceResponse)++instance Prelude.NFData TagResourceResponse where+  rnf TagResourceResponse' {..} = Prelude.rnf httpStatus
+ gen/Amazonka/GroundStation/Types.hs view
@@ -0,0 +1,548 @@+{-# 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.GroundStation.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.GroundStation.Types+  ( -- * Service Configuration+    defaultService,++    -- * Errors+    _DependencyException,+    _InvalidParameterException,+    _ResourceLimitExceededException,+    _ResourceNotFoundException,++    -- * AngleUnits+    AngleUnits (..),++    -- * BandwidthUnits+    BandwidthUnits (..),++    -- * ConfigCapabilityType+    ConfigCapabilityType (..),++    -- * ContactStatus+    ContactStatus (..),++    -- * Criticality+    Criticality (..),++    -- * EirpUnits+    EirpUnits (..),++    -- * EndpointStatus+    EndpointStatus (..),++    -- * EphemerisInvalidReason+    EphemerisInvalidReason (..),++    -- * EphemerisSource+    EphemerisSource (..),++    -- * EphemerisStatus+    EphemerisStatus (..),++    -- * FrequencyUnits+    FrequencyUnits (..),++    -- * Polarization+    Polarization (..),++    -- * AntennaDemodDecodeDetails+    AntennaDemodDecodeDetails (..),+    newAntennaDemodDecodeDetails,+    antennaDemodDecodeDetails_outputNode,++    -- * AntennaDownlinkConfig+    AntennaDownlinkConfig (..),+    newAntennaDownlinkConfig,+    antennaDownlinkConfig_spectrumConfig,++    -- * AntennaDownlinkDemodDecodeConfig+    AntennaDownlinkDemodDecodeConfig (..),+    newAntennaDownlinkDemodDecodeConfig,+    antennaDownlinkDemodDecodeConfig_decodeConfig,+    antennaDownlinkDemodDecodeConfig_demodulationConfig,+    antennaDownlinkDemodDecodeConfig_spectrumConfig,++    -- * AntennaUplinkConfig+    AntennaUplinkConfig (..),+    newAntennaUplinkConfig,+    antennaUplinkConfig_transmitDisabled,+    antennaUplinkConfig_spectrumConfig,+    antennaUplinkConfig_targetEirp,++    -- * ConfigDetails+    ConfigDetails (..),+    newConfigDetails,+    configDetails_antennaDemodDecodeDetails,+    configDetails_endpointDetails,+    configDetails_s3RecordingDetails,++    -- * ConfigIdResponse+    ConfigIdResponse (..),+    newConfigIdResponse,+    configIdResponse_configArn,+    configIdResponse_configId,+    configIdResponse_configType,++    -- * ConfigListItem+    ConfigListItem (..),+    newConfigListItem,+    configListItem_configArn,+    configListItem_configId,+    configListItem_configType,+    configListItem_name,++    -- * ConfigTypeData+    ConfigTypeData (..),+    newConfigTypeData,+    configTypeData_antennaDownlinkConfig,+    configTypeData_antennaDownlinkDemodDecodeConfig,+    configTypeData_antennaUplinkConfig,+    configTypeData_dataflowEndpointConfig,+    configTypeData_s3RecordingConfig,+    configTypeData_trackingConfig,+    configTypeData_uplinkEchoConfig,++    -- * ContactData+    ContactData (..),+    newContactData,+    contactData_contactId,+    contactData_contactStatus,+    contactData_endTime,+    contactData_errorMessage,+    contactData_groundStation,+    contactData_maximumElevation,+    contactData_missionProfileArn,+    contactData_postPassEndTime,+    contactData_prePassStartTime,+    contactData_region,+    contactData_satelliteArn,+    contactData_startTime,+    contactData_tags,++    -- * ContactIdResponse+    ContactIdResponse (..),+    newContactIdResponse,+    contactIdResponse_contactId,++    -- * DataflowDetail+    DataflowDetail (..),+    newDataflowDetail,+    dataflowDetail_destination,+    dataflowDetail_errorMessage,+    dataflowDetail_source,++    -- * DataflowEndpoint+    DataflowEndpoint (..),+    newDataflowEndpoint,+    dataflowEndpoint_address,+    dataflowEndpoint_mtu,+    dataflowEndpoint_name,+    dataflowEndpoint_status,++    -- * DataflowEndpointConfig+    DataflowEndpointConfig (..),+    newDataflowEndpointConfig,+    dataflowEndpointConfig_dataflowEndpointRegion,+    dataflowEndpointConfig_dataflowEndpointName,++    -- * DataflowEndpointGroupIdResponse+    DataflowEndpointGroupIdResponse (..),+    newDataflowEndpointGroupIdResponse,+    dataflowEndpointGroupIdResponse_dataflowEndpointGroupId,++    -- * DataflowEndpointListItem+    DataflowEndpointListItem (..),+    newDataflowEndpointListItem,+    dataflowEndpointListItem_dataflowEndpointGroupArn,+    dataflowEndpointListItem_dataflowEndpointGroupId,++    -- * DecodeConfig+    DecodeConfig (..),+    newDecodeConfig,+    decodeConfig_unvalidatedJSON,++    -- * DemodulationConfig+    DemodulationConfig (..),+    newDemodulationConfig,+    demodulationConfig_unvalidatedJSON,++    -- * Destination+    Destination (..),+    newDestination,+    destination_configDetails,+    destination_configId,+    destination_configType,+    destination_dataflowDestinationRegion,++    -- * Eirp+    Eirp (..),+    newEirp,+    eirp_units,+    eirp_value,++    -- * Elevation+    Elevation (..),+    newElevation,+    elevation_unit,+    elevation_value,++    -- * EndpointDetails+    EndpointDetails (..),+    newEndpointDetails,+    endpointDetails_endpoint,+    endpointDetails_securityDetails,++    -- * EphemerisData+    EphemerisData (..),+    newEphemerisData,+    ephemerisData_oem,+    ephemerisData_tle,++    -- * EphemerisDescription+    EphemerisDescription (..),+    newEphemerisDescription,+    ephemerisDescription_ephemerisData,+    ephemerisDescription_sourceS3Object,++    -- * EphemerisIdResponse+    EphemerisIdResponse (..),+    newEphemerisIdResponse,+    ephemerisIdResponse_ephemerisId,++    -- * EphemerisItem+    EphemerisItem (..),+    newEphemerisItem,+    ephemerisItem_creationTime,+    ephemerisItem_enabled,+    ephemerisItem_ephemerisId,+    ephemerisItem_name,+    ephemerisItem_priority,+    ephemerisItem_sourceS3Object,+    ephemerisItem_status,++    -- * EphemerisMetaData+    EphemerisMetaData (..),+    newEphemerisMetaData,+    ephemerisMetaData_ephemerisId,+    ephemerisMetaData_epoch,+    ephemerisMetaData_name,+    ephemerisMetaData_source,++    -- * EphemerisTypeDescription+    EphemerisTypeDescription (..),+    newEphemerisTypeDescription,+    ephemerisTypeDescription_oem,+    ephemerisTypeDescription_tle,++    -- * Frequency+    Frequency (..),+    newFrequency,+    frequency_units,+    frequency_value,++    -- * FrequencyBandwidth+    FrequencyBandwidth (..),+    newFrequencyBandwidth,+    frequencyBandwidth_units,+    frequencyBandwidth_value,++    -- * GroundStationData+    GroundStationData (..),+    newGroundStationData,+    groundStationData_groundStationId,+    groundStationData_groundStationName,+    groundStationData_region,++    -- * MissionProfileIdResponse+    MissionProfileIdResponse (..),+    newMissionProfileIdResponse,+    missionProfileIdResponse_missionProfileId,++    -- * MissionProfileListItem+    MissionProfileListItem (..),+    newMissionProfileListItem,+    missionProfileListItem_missionProfileArn,+    missionProfileListItem_missionProfileId,+    missionProfileListItem_name,+    missionProfileListItem_region,++    -- * OEMEphemeris+    OEMEphemeris (..),+    newOEMEphemeris,+    oEMEphemeris_oemData,+    oEMEphemeris_s3Object,++    -- * S3Object+    S3Object (..),+    newS3Object,+    s3Object_bucket,+    s3Object_key,+    s3Object_version,++    -- * S3RecordingConfig+    S3RecordingConfig (..),+    newS3RecordingConfig,+    s3RecordingConfig_prefix,+    s3RecordingConfig_bucketArn,+    s3RecordingConfig_roleArn,++    -- * S3RecordingDetails+    S3RecordingDetails (..),+    newS3RecordingDetails,+    s3RecordingDetails_bucketArn,+    s3RecordingDetails_keyTemplate,++    -- * SatelliteListItem+    SatelliteListItem (..),+    newSatelliteListItem,+    satelliteListItem_currentEphemeris,+    satelliteListItem_groundStations,+    satelliteListItem_noradSatelliteID,+    satelliteListItem_satelliteArn,+    satelliteListItem_satelliteId,++    -- * SecurityDetails+    SecurityDetails (..),+    newSecurityDetails,+    securityDetails_roleArn,+    securityDetails_securityGroupIds,+    securityDetails_subnetIds,++    -- * SocketAddress+    SocketAddress (..),+    newSocketAddress,+    socketAddress_name,+    socketAddress_port,++    -- * Source+    Source (..),+    newSource,+    source_configDetails,+    source_configId,+    source_configType,+    source_dataflowSourceRegion,++    -- * SpectrumConfig+    SpectrumConfig (..),+    newSpectrumConfig,+    spectrumConfig_polarization,+    spectrumConfig_bandwidth,+    spectrumConfig_centerFrequency,++    -- * TLEData+    TLEData (..),+    newTLEData,+    tLEData_tleLine1,+    tLEData_tleLine2,+    tLEData_validTimeRange,++    -- * TLEEphemeris+    TLEEphemeris (..),+    newTLEEphemeris,+    tLEEphemeris_s3Object,+    tLEEphemeris_tleData,++    -- * TimeRange+    TimeRange (..),+    newTimeRange,+    timeRange_endTime,+    timeRange_startTime,++    -- * TrackingConfig+    TrackingConfig (..),+    newTrackingConfig,+    trackingConfig_autotrack,++    -- * UplinkEchoConfig+    UplinkEchoConfig (..),+    newUplinkEchoConfig,+    uplinkEchoConfig_antennaUplinkConfigArn,+    uplinkEchoConfig_enabled,++    -- * UplinkSpectrumConfig+    UplinkSpectrumConfig (..),+    newUplinkSpectrumConfig,+    uplinkSpectrumConfig_polarization,+    uplinkSpectrumConfig_centerFrequency,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.GroundStation.Types.AngleUnits+import Amazonka.GroundStation.Types.AntennaDemodDecodeDetails+import Amazonka.GroundStation.Types.AntennaDownlinkConfig+import Amazonka.GroundStation.Types.AntennaDownlinkDemodDecodeConfig+import Amazonka.GroundStation.Types.AntennaUplinkConfig+import Amazonka.GroundStation.Types.BandwidthUnits+import Amazonka.GroundStation.Types.ConfigCapabilityType+import Amazonka.GroundStation.Types.ConfigDetails+import Amazonka.GroundStation.Types.ConfigIdResponse+import Amazonka.GroundStation.Types.ConfigListItem+import Amazonka.GroundStation.Types.ConfigTypeData+import Amazonka.GroundStation.Types.ContactData+import Amazonka.GroundStation.Types.ContactIdResponse+import Amazonka.GroundStation.Types.ContactStatus+import Amazonka.GroundStation.Types.Criticality+import Amazonka.GroundStation.Types.DataflowDetail+import Amazonka.GroundStation.Types.DataflowEndpoint+import Amazonka.GroundStation.Types.DataflowEndpointConfig+import Amazonka.GroundStation.Types.DataflowEndpointGroupIdResponse+import Amazonka.GroundStation.Types.DataflowEndpointListItem+import Amazonka.GroundStation.Types.DecodeConfig+import Amazonka.GroundStation.Types.DemodulationConfig+import Amazonka.GroundStation.Types.Destination+import Amazonka.GroundStation.Types.Eirp+import Amazonka.GroundStation.Types.EirpUnits+import Amazonka.GroundStation.Types.Elevation+import Amazonka.GroundStation.Types.EndpointDetails+import Amazonka.GroundStation.Types.EndpointStatus+import Amazonka.GroundStation.Types.EphemerisData+import Amazonka.GroundStation.Types.EphemerisDescription+import Amazonka.GroundStation.Types.EphemerisIdResponse+import Amazonka.GroundStation.Types.EphemerisInvalidReason+import Amazonka.GroundStation.Types.EphemerisItem+import Amazonka.GroundStation.Types.EphemerisMetaData+import Amazonka.GroundStation.Types.EphemerisSource+import Amazonka.GroundStation.Types.EphemerisStatus+import Amazonka.GroundStation.Types.EphemerisTypeDescription+import Amazonka.GroundStation.Types.Frequency+import Amazonka.GroundStation.Types.FrequencyBandwidth+import Amazonka.GroundStation.Types.FrequencyUnits+import Amazonka.GroundStation.Types.GroundStationData+import Amazonka.GroundStation.Types.MissionProfileIdResponse+import Amazonka.GroundStation.Types.MissionProfileListItem+import Amazonka.GroundStation.Types.OEMEphemeris+import Amazonka.GroundStation.Types.Polarization+import Amazonka.GroundStation.Types.S3Object+import Amazonka.GroundStation.Types.S3RecordingConfig+import Amazonka.GroundStation.Types.S3RecordingDetails+import Amazonka.GroundStation.Types.SatelliteListItem+import Amazonka.GroundStation.Types.SecurityDetails+import Amazonka.GroundStation.Types.SocketAddress+import Amazonka.GroundStation.Types.Source+import Amazonka.GroundStation.Types.SpectrumConfig+import Amazonka.GroundStation.Types.TLEData+import Amazonka.GroundStation.Types.TLEEphemeris+import Amazonka.GroundStation.Types.TimeRange+import Amazonka.GroundStation.Types.TrackingConfig+import Amazonka.GroundStation.Types.UplinkEchoConfig+import Amazonka.GroundStation.Types.UplinkSpectrumConfig+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Sign.V4 as Sign++-- | API version @2019-05-23@ of the Amazon Ground Station SDK configuration.+defaultService :: Core.Service+defaultService =+  Core.Service+    { Core.abbrev = "GroundStation",+      Core.signer = Sign.v4,+      Core.endpointPrefix = "groundstation",+      Core.signingName = "groundstation",+      Core.version = "2019-05-23",+      Core.s3AddressingStyle = Core.S3AddressingStyleAuto,+      Core.endpoint = Core.defaultEndpoint defaultService,+      Core.timeout = Prelude.Just 70,+      Core.check = Core.statusSuccess,+      Core.error = Core.parseJSONError "GroundStation",+      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++-- | Dependency encountered an error.+_DependencyException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_DependencyException =+  Core._MatchServiceError+    defaultService+    "DependencyException"+    Prelude.. Core.hasStatus 531++-- | One or more parameters are not valid.+_InvalidParameterException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InvalidParameterException =+  Core._MatchServiceError+    defaultService+    "InvalidParameterException"+    Prelude.. Core.hasStatus 431++-- | Account limits for this resource have been exceeded.+_ResourceLimitExceededException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ResourceLimitExceededException =+  Core._MatchServiceError+    defaultService+    "ResourceLimitExceededException"+    Prelude.. Core.hasStatus 429++-- | Resource was not found.+_ResourceNotFoundException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ResourceNotFoundException =+  Core._MatchServiceError+    defaultService+    "ResourceNotFoundException"+    Prelude.. Core.hasStatus 434
+ gen/Amazonka/GroundStation/Types/AngleUnits.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.GroundStation.Types.AngleUnits+-- Copyright   : (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.GroundStation.Types.AngleUnits+  ( AngleUnits+      ( ..,+        AngleUnits_DEGREE_ANGLE,+        AngleUnits_RADIAN+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype AngleUnits = AngleUnits'+  { fromAngleUnits ::+      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 AngleUnits_DEGREE_ANGLE :: AngleUnits+pattern AngleUnits_DEGREE_ANGLE = AngleUnits' "DEGREE_ANGLE"++pattern AngleUnits_RADIAN :: AngleUnits+pattern AngleUnits_RADIAN = AngleUnits' "RADIAN"++{-# COMPLETE+  AngleUnits_DEGREE_ANGLE,+  AngleUnits_RADIAN,+  AngleUnits'+  #-}
+ gen/Amazonka/GroundStation/Types/AntennaDemodDecodeDetails.hs view
@@ -0,0 +1,72 @@+{-# 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.GroundStation.Types.AntennaDemodDecodeDetails+-- Copyright   : (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.GroundStation.Types.AntennaDemodDecodeDetails 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++-- | Details about an antenna demod decode @Config@ used in a contact.+--+-- /See:/ 'newAntennaDemodDecodeDetails' smart constructor.+data AntennaDemodDecodeDetails = AntennaDemodDecodeDetails'+  { -- | Name of an antenna demod decode output node used in a contact.+    outputNode :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AntennaDemodDecodeDetails' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'outputNode', 'antennaDemodDecodeDetails_outputNode' - Name of an antenna demod decode output node used in a contact.+newAntennaDemodDecodeDetails ::+  AntennaDemodDecodeDetails+newAntennaDemodDecodeDetails =+  AntennaDemodDecodeDetails'+    { outputNode =+        Prelude.Nothing+    }++-- | Name of an antenna demod decode output node used in a contact.+antennaDemodDecodeDetails_outputNode :: Lens.Lens' AntennaDemodDecodeDetails (Prelude.Maybe Prelude.Text)+antennaDemodDecodeDetails_outputNode = Lens.lens (\AntennaDemodDecodeDetails' {outputNode} -> outputNode) (\s@AntennaDemodDecodeDetails' {} a -> s {outputNode = a} :: AntennaDemodDecodeDetails)++instance Data.FromJSON AntennaDemodDecodeDetails where+  parseJSON =+    Data.withObject+      "AntennaDemodDecodeDetails"+      ( \x ->+          AntennaDemodDecodeDetails'+            Prelude.<$> (x Data..:? "outputNode")+      )++instance Prelude.Hashable AntennaDemodDecodeDetails where+  hashWithSalt _salt AntennaDemodDecodeDetails' {..} =+    _salt `Prelude.hashWithSalt` outputNode++instance Prelude.NFData AntennaDemodDecodeDetails where+  rnf AntennaDemodDecodeDetails' {..} =+    Prelude.rnf outputNode
+ gen/Amazonka/GroundStation/Types/AntennaDownlinkConfig.hs view
@@ -0,0 +1,85 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.GroundStation.Types.AntennaDownlinkConfig+-- Copyright   : (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.GroundStation.Types.AntennaDownlinkConfig where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GroundStation.Types.SpectrumConfig+import qualified Amazonka.Prelude as Prelude++-- | Information about how AWS Ground Station should configure an antenna for+-- downlink during a contact.+--+-- /See:/ 'newAntennaDownlinkConfig' smart constructor.+data AntennaDownlinkConfig = AntennaDownlinkConfig'+  { -- | Object that describes a spectral @Config@.+    spectrumConfig :: SpectrumConfig+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AntennaDownlinkConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'spectrumConfig', 'antennaDownlinkConfig_spectrumConfig' - Object that describes a spectral @Config@.+newAntennaDownlinkConfig ::+  -- | 'spectrumConfig'+  SpectrumConfig ->+  AntennaDownlinkConfig+newAntennaDownlinkConfig pSpectrumConfig_ =+  AntennaDownlinkConfig'+    { spectrumConfig =+        pSpectrumConfig_+    }++-- | Object that describes a spectral @Config@.+antennaDownlinkConfig_spectrumConfig :: Lens.Lens' AntennaDownlinkConfig SpectrumConfig+antennaDownlinkConfig_spectrumConfig = Lens.lens (\AntennaDownlinkConfig' {spectrumConfig} -> spectrumConfig) (\s@AntennaDownlinkConfig' {} a -> s {spectrumConfig = a} :: AntennaDownlinkConfig)++instance Data.FromJSON AntennaDownlinkConfig where+  parseJSON =+    Data.withObject+      "AntennaDownlinkConfig"+      ( \x ->+          AntennaDownlinkConfig'+            Prelude.<$> (x Data..: "spectrumConfig")+      )++instance Prelude.Hashable AntennaDownlinkConfig where+  hashWithSalt _salt AntennaDownlinkConfig' {..} =+    _salt `Prelude.hashWithSalt` spectrumConfig++instance Prelude.NFData AntennaDownlinkConfig where+  rnf AntennaDownlinkConfig' {..} =+    Prelude.rnf spectrumConfig++instance Data.ToJSON AntennaDownlinkConfig where+  toJSON AntennaDownlinkConfig' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("spectrumConfig" Data..= spectrumConfig)+          ]+      )
+ gen/Amazonka/GroundStation/Types/AntennaDownlinkDemodDecodeConfig.hs view
@@ -0,0 +1,133 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.GroundStation.Types.AntennaDownlinkDemodDecodeConfig+-- Copyright   : (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.GroundStation.Types.AntennaDownlinkDemodDecodeConfig where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GroundStation.Types.DecodeConfig+import Amazonka.GroundStation.Types.DemodulationConfig+import Amazonka.GroundStation.Types.SpectrumConfig+import qualified Amazonka.Prelude as Prelude++-- | Information about how AWS Ground Station should configure an antenna for+-- downlink demod decode during a contact.+--+-- /See:/ 'newAntennaDownlinkDemodDecodeConfig' smart constructor.+data AntennaDownlinkDemodDecodeConfig = AntennaDownlinkDemodDecodeConfig'+  { -- | Information about the decode @Config@.+    decodeConfig :: DecodeConfig,+    -- | Information about the demodulation @Config@.+    demodulationConfig :: DemodulationConfig,+    -- | Information about the spectral @Config@.+    spectrumConfig :: SpectrumConfig+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AntennaDownlinkDemodDecodeConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'decodeConfig', 'antennaDownlinkDemodDecodeConfig_decodeConfig' - Information about the decode @Config@.+--+-- 'demodulationConfig', 'antennaDownlinkDemodDecodeConfig_demodulationConfig' - Information about the demodulation @Config@.+--+-- 'spectrumConfig', 'antennaDownlinkDemodDecodeConfig_spectrumConfig' - Information about the spectral @Config@.+newAntennaDownlinkDemodDecodeConfig ::+  -- | 'decodeConfig'+  DecodeConfig ->+  -- | 'demodulationConfig'+  DemodulationConfig ->+  -- | 'spectrumConfig'+  SpectrumConfig ->+  AntennaDownlinkDemodDecodeConfig+newAntennaDownlinkDemodDecodeConfig+  pDecodeConfig_+  pDemodulationConfig_+  pSpectrumConfig_ =+    AntennaDownlinkDemodDecodeConfig'+      { decodeConfig =+          pDecodeConfig_,+        demodulationConfig = pDemodulationConfig_,+        spectrumConfig = pSpectrumConfig_+      }++-- | Information about the decode @Config@.+antennaDownlinkDemodDecodeConfig_decodeConfig :: Lens.Lens' AntennaDownlinkDemodDecodeConfig DecodeConfig+antennaDownlinkDemodDecodeConfig_decodeConfig = Lens.lens (\AntennaDownlinkDemodDecodeConfig' {decodeConfig} -> decodeConfig) (\s@AntennaDownlinkDemodDecodeConfig' {} a -> s {decodeConfig = a} :: AntennaDownlinkDemodDecodeConfig)++-- | Information about the demodulation @Config@.+antennaDownlinkDemodDecodeConfig_demodulationConfig :: Lens.Lens' AntennaDownlinkDemodDecodeConfig DemodulationConfig+antennaDownlinkDemodDecodeConfig_demodulationConfig = Lens.lens (\AntennaDownlinkDemodDecodeConfig' {demodulationConfig} -> demodulationConfig) (\s@AntennaDownlinkDemodDecodeConfig' {} a -> s {demodulationConfig = a} :: AntennaDownlinkDemodDecodeConfig)++-- | Information about the spectral @Config@.+antennaDownlinkDemodDecodeConfig_spectrumConfig :: Lens.Lens' AntennaDownlinkDemodDecodeConfig SpectrumConfig+antennaDownlinkDemodDecodeConfig_spectrumConfig = Lens.lens (\AntennaDownlinkDemodDecodeConfig' {spectrumConfig} -> spectrumConfig) (\s@AntennaDownlinkDemodDecodeConfig' {} a -> s {spectrumConfig = a} :: AntennaDownlinkDemodDecodeConfig)++instance+  Data.FromJSON+    AntennaDownlinkDemodDecodeConfig+  where+  parseJSON =+    Data.withObject+      "AntennaDownlinkDemodDecodeConfig"+      ( \x ->+          AntennaDownlinkDemodDecodeConfig'+            Prelude.<$> (x Data..: "decodeConfig")+            Prelude.<*> (x Data..: "demodulationConfig")+            Prelude.<*> (x Data..: "spectrumConfig")+      )++instance+  Prelude.Hashable+    AntennaDownlinkDemodDecodeConfig+  where+  hashWithSalt+    _salt+    AntennaDownlinkDemodDecodeConfig' {..} =+      _salt+        `Prelude.hashWithSalt` decodeConfig+        `Prelude.hashWithSalt` demodulationConfig+        `Prelude.hashWithSalt` spectrumConfig++instance+  Prelude.NFData+    AntennaDownlinkDemodDecodeConfig+  where+  rnf AntennaDownlinkDemodDecodeConfig' {..} =+    Prelude.rnf decodeConfig+      `Prelude.seq` Prelude.rnf demodulationConfig+      `Prelude.seq` Prelude.rnf spectrumConfig++instance Data.ToJSON AntennaDownlinkDemodDecodeConfig where+  toJSON AntennaDownlinkDemodDecodeConfig' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("decodeConfig" Data..= decodeConfig),+            Prelude.Just+              ("demodulationConfig" Data..= demodulationConfig),+            Prelude.Just+              ("spectrumConfig" Data..= spectrumConfig)+          ]+      )
+ gen/Amazonka/GroundStation/Types/AntennaUplinkConfig.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.GroundStation.Types.AntennaUplinkConfig+-- Copyright   : (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.GroundStation.Types.AntennaUplinkConfig where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GroundStation.Types.Eirp+import Amazonka.GroundStation.Types.UplinkSpectrumConfig+import qualified Amazonka.Prelude as Prelude++-- | Information about the uplink @Config@ of an antenna.+--+-- /See:/ 'newAntennaUplinkConfig' smart constructor.+data AntennaUplinkConfig = AntennaUplinkConfig'+  { -- | Whether or not uplink transmit is disabled.+    transmitDisabled :: Prelude.Maybe Prelude.Bool,+    -- | Information about the uplink spectral @Config@.+    spectrumConfig :: UplinkSpectrumConfig,+    -- | EIRP of the target.+    targetEirp :: Eirp+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AntennaUplinkConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'transmitDisabled', 'antennaUplinkConfig_transmitDisabled' - Whether or not uplink transmit is disabled.+--+-- 'spectrumConfig', 'antennaUplinkConfig_spectrumConfig' - Information about the uplink spectral @Config@.+--+-- 'targetEirp', 'antennaUplinkConfig_targetEirp' - EIRP of the target.+newAntennaUplinkConfig ::+  -- | 'spectrumConfig'+  UplinkSpectrumConfig ->+  -- | 'targetEirp'+  Eirp ->+  AntennaUplinkConfig+newAntennaUplinkConfig pSpectrumConfig_ pTargetEirp_ =+  AntennaUplinkConfig'+    { transmitDisabled =+        Prelude.Nothing,+      spectrumConfig = pSpectrumConfig_,+      targetEirp = pTargetEirp_+    }++-- | Whether or not uplink transmit is disabled.+antennaUplinkConfig_transmitDisabled :: Lens.Lens' AntennaUplinkConfig (Prelude.Maybe Prelude.Bool)+antennaUplinkConfig_transmitDisabled = Lens.lens (\AntennaUplinkConfig' {transmitDisabled} -> transmitDisabled) (\s@AntennaUplinkConfig' {} a -> s {transmitDisabled = a} :: AntennaUplinkConfig)++-- | Information about the uplink spectral @Config@.+antennaUplinkConfig_spectrumConfig :: Lens.Lens' AntennaUplinkConfig UplinkSpectrumConfig+antennaUplinkConfig_spectrumConfig = Lens.lens (\AntennaUplinkConfig' {spectrumConfig} -> spectrumConfig) (\s@AntennaUplinkConfig' {} a -> s {spectrumConfig = a} :: AntennaUplinkConfig)++-- | EIRP of the target.+antennaUplinkConfig_targetEirp :: Lens.Lens' AntennaUplinkConfig Eirp+antennaUplinkConfig_targetEirp = Lens.lens (\AntennaUplinkConfig' {targetEirp} -> targetEirp) (\s@AntennaUplinkConfig' {} a -> s {targetEirp = a} :: AntennaUplinkConfig)++instance Data.FromJSON AntennaUplinkConfig where+  parseJSON =+    Data.withObject+      "AntennaUplinkConfig"+      ( \x ->+          AntennaUplinkConfig'+            Prelude.<$> (x Data..:? "transmitDisabled")+            Prelude.<*> (x Data..: "spectrumConfig")+            Prelude.<*> (x Data..: "targetEirp")+      )++instance Prelude.Hashable AntennaUplinkConfig where+  hashWithSalt _salt AntennaUplinkConfig' {..} =+    _salt+      `Prelude.hashWithSalt` transmitDisabled+      `Prelude.hashWithSalt` spectrumConfig+      `Prelude.hashWithSalt` targetEirp++instance Prelude.NFData AntennaUplinkConfig where+  rnf AntennaUplinkConfig' {..} =+    Prelude.rnf transmitDisabled+      `Prelude.seq` Prelude.rnf spectrumConfig+      `Prelude.seq` Prelude.rnf targetEirp++instance Data.ToJSON AntennaUplinkConfig where+  toJSON AntennaUplinkConfig' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("transmitDisabled" Data..=)+              Prelude.<$> transmitDisabled,+            Prelude.Just+              ("spectrumConfig" Data..= spectrumConfig),+            Prelude.Just ("targetEirp" Data..= targetEirp)+          ]+      )
+ gen/Amazonka/GroundStation/Types/BandwidthUnits.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.GroundStation.Types.BandwidthUnits+-- Copyright   : (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.GroundStation.Types.BandwidthUnits+  ( BandwidthUnits+      ( ..,+        BandwidthUnits_GHz,+        BandwidthUnits_KHz,+        BandwidthUnits_MHz+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype BandwidthUnits = BandwidthUnits'+  { fromBandwidthUnits ::+      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 BandwidthUnits_GHz :: BandwidthUnits+pattern BandwidthUnits_GHz = BandwidthUnits' "GHz"++pattern BandwidthUnits_KHz :: BandwidthUnits+pattern BandwidthUnits_KHz = BandwidthUnits' "kHz"++pattern BandwidthUnits_MHz :: BandwidthUnits+pattern BandwidthUnits_MHz = BandwidthUnits' "MHz"++{-# COMPLETE+  BandwidthUnits_GHz,+  BandwidthUnits_KHz,+  BandwidthUnits_MHz,+  BandwidthUnits'+  #-}
+ gen/Amazonka/GroundStation/Types/ConfigCapabilityType.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.GroundStation.Types.ConfigCapabilityType+-- Copyright   : (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.GroundStation.Types.ConfigCapabilityType+  ( ConfigCapabilityType+      ( ..,+        ConfigCapabilityType_Antenna_downlink,+        ConfigCapabilityType_Antenna_downlink_demod_decode,+        ConfigCapabilityType_Antenna_uplink,+        ConfigCapabilityType_Dataflow_endpoint,+        ConfigCapabilityType_S3_recording,+        ConfigCapabilityType_Tracking,+        ConfigCapabilityType_Uplink_echo+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ConfigCapabilityType = ConfigCapabilityType'+  { fromConfigCapabilityType ::+      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 ConfigCapabilityType_Antenna_downlink :: ConfigCapabilityType+pattern ConfigCapabilityType_Antenna_downlink = ConfigCapabilityType' "antenna-downlink"++pattern ConfigCapabilityType_Antenna_downlink_demod_decode :: ConfigCapabilityType+pattern ConfigCapabilityType_Antenna_downlink_demod_decode = ConfigCapabilityType' "antenna-downlink-demod-decode"++pattern ConfigCapabilityType_Antenna_uplink :: ConfigCapabilityType+pattern ConfigCapabilityType_Antenna_uplink = ConfigCapabilityType' "antenna-uplink"++pattern ConfigCapabilityType_Dataflow_endpoint :: ConfigCapabilityType+pattern ConfigCapabilityType_Dataflow_endpoint = ConfigCapabilityType' "dataflow-endpoint"++pattern ConfigCapabilityType_S3_recording :: ConfigCapabilityType+pattern ConfigCapabilityType_S3_recording = ConfigCapabilityType' "s3-recording"++pattern ConfigCapabilityType_Tracking :: ConfigCapabilityType+pattern ConfigCapabilityType_Tracking = ConfigCapabilityType' "tracking"++pattern ConfigCapabilityType_Uplink_echo :: ConfigCapabilityType+pattern ConfigCapabilityType_Uplink_echo = ConfigCapabilityType' "uplink-echo"++{-# COMPLETE+  ConfigCapabilityType_Antenna_downlink,+  ConfigCapabilityType_Antenna_downlink_demod_decode,+  ConfigCapabilityType_Antenna_uplink,+  ConfigCapabilityType_Dataflow_endpoint,+  ConfigCapabilityType_S3_recording,+  ConfigCapabilityType_Tracking,+  ConfigCapabilityType_Uplink_echo,+  ConfigCapabilityType'+  #-}
+ gen/Amazonka/GroundStation/Types/ConfigDetails.hs view
@@ -0,0 +1,99 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.GroundStation.Types.ConfigDetails+-- Copyright   : (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.GroundStation.Types.ConfigDetails where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GroundStation.Types.AntennaDemodDecodeDetails+import Amazonka.GroundStation.Types.EndpointDetails+import Amazonka.GroundStation.Types.S3RecordingDetails+import qualified Amazonka.Prelude as Prelude++-- | Details for certain @Config@ object types in a contact.+--+-- /See:/ 'newConfigDetails' smart constructor.+data ConfigDetails = ConfigDetails'+  { -- | Details for antenna demod decode @Config@ in a contact.+    antennaDemodDecodeDetails :: Prelude.Maybe AntennaDemodDecodeDetails,+    endpointDetails :: Prelude.Maybe EndpointDetails,+    -- | Details for an S3 recording @Config@ in a contact.+    s3RecordingDetails :: Prelude.Maybe S3RecordingDetails+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ConfigDetails' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'antennaDemodDecodeDetails', 'configDetails_antennaDemodDecodeDetails' - Details for antenna demod decode @Config@ in a contact.+--+-- 'endpointDetails', 'configDetails_endpointDetails' - Undocumented member.+--+-- 's3RecordingDetails', 'configDetails_s3RecordingDetails' - Details for an S3 recording @Config@ in a contact.+newConfigDetails ::+  ConfigDetails+newConfigDetails =+  ConfigDetails'+    { antennaDemodDecodeDetails =+        Prelude.Nothing,+      endpointDetails = Prelude.Nothing,+      s3RecordingDetails = Prelude.Nothing+    }++-- | Details for antenna demod decode @Config@ in a contact.+configDetails_antennaDemodDecodeDetails :: Lens.Lens' ConfigDetails (Prelude.Maybe AntennaDemodDecodeDetails)+configDetails_antennaDemodDecodeDetails = Lens.lens (\ConfigDetails' {antennaDemodDecodeDetails} -> antennaDemodDecodeDetails) (\s@ConfigDetails' {} a -> s {antennaDemodDecodeDetails = a} :: ConfigDetails)++-- | Undocumented member.+configDetails_endpointDetails :: Lens.Lens' ConfigDetails (Prelude.Maybe EndpointDetails)+configDetails_endpointDetails = Lens.lens (\ConfigDetails' {endpointDetails} -> endpointDetails) (\s@ConfigDetails' {} a -> s {endpointDetails = a} :: ConfigDetails)++-- | Details for an S3 recording @Config@ in a contact.+configDetails_s3RecordingDetails :: Lens.Lens' ConfigDetails (Prelude.Maybe S3RecordingDetails)+configDetails_s3RecordingDetails = Lens.lens (\ConfigDetails' {s3RecordingDetails} -> s3RecordingDetails) (\s@ConfigDetails' {} a -> s {s3RecordingDetails = a} :: ConfigDetails)++instance Data.FromJSON ConfigDetails where+  parseJSON =+    Data.withObject+      "ConfigDetails"+      ( \x ->+          ConfigDetails'+            Prelude.<$> (x Data..:? "antennaDemodDecodeDetails")+            Prelude.<*> (x Data..:? "endpointDetails")+            Prelude.<*> (x Data..:? "s3RecordingDetails")+      )++instance Prelude.Hashable ConfigDetails where+  hashWithSalt _salt ConfigDetails' {..} =+    _salt+      `Prelude.hashWithSalt` antennaDemodDecodeDetails+      `Prelude.hashWithSalt` endpointDetails+      `Prelude.hashWithSalt` s3RecordingDetails++instance Prelude.NFData ConfigDetails where+  rnf ConfigDetails' {..} =+    Prelude.rnf antennaDemodDecodeDetails+      `Prelude.seq` Prelude.rnf endpointDetails+      `Prelude.seq` Prelude.rnf s3RecordingDetails
+ gen/Amazonka/GroundStation/Types/ConfigIdResponse.hs view
@@ -0,0 +1,97 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.GroundStation.Types.ConfigIdResponse+-- Copyright   : (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.GroundStation.Types.ConfigIdResponse where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GroundStation.Types.ConfigCapabilityType+import qualified Amazonka.Prelude as Prelude++-- |+--+-- /See:/ 'newConfigIdResponse' smart constructor.+data ConfigIdResponse = ConfigIdResponse'+  { -- | ARN of a @Config@.+    configArn :: Prelude.Maybe Prelude.Text,+    -- | UUID of a @Config@.+    configId :: Prelude.Maybe Prelude.Text,+    -- | Type of a @Config@.+    configType :: Prelude.Maybe ConfigCapabilityType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ConfigIdResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'configArn', 'configIdResponse_configArn' - ARN of a @Config@.+--+-- 'configId', 'configIdResponse_configId' - UUID of a @Config@.+--+-- 'configType', 'configIdResponse_configType' - Type of a @Config@.+newConfigIdResponse ::+  ConfigIdResponse+newConfigIdResponse =+  ConfigIdResponse'+    { configArn = Prelude.Nothing,+      configId = Prelude.Nothing,+      configType = Prelude.Nothing+    }++-- | ARN of a @Config@.+configIdResponse_configArn :: Lens.Lens' ConfigIdResponse (Prelude.Maybe Prelude.Text)+configIdResponse_configArn = Lens.lens (\ConfigIdResponse' {configArn} -> configArn) (\s@ConfigIdResponse' {} a -> s {configArn = a} :: ConfigIdResponse)++-- | UUID of a @Config@.+configIdResponse_configId :: Lens.Lens' ConfigIdResponse (Prelude.Maybe Prelude.Text)+configIdResponse_configId = Lens.lens (\ConfigIdResponse' {configId} -> configId) (\s@ConfigIdResponse' {} a -> s {configId = a} :: ConfigIdResponse)++-- | Type of a @Config@.+configIdResponse_configType :: Lens.Lens' ConfigIdResponse (Prelude.Maybe ConfigCapabilityType)+configIdResponse_configType = Lens.lens (\ConfigIdResponse' {configType} -> configType) (\s@ConfigIdResponse' {} a -> s {configType = a} :: ConfigIdResponse)++instance Data.FromJSON ConfigIdResponse where+  parseJSON =+    Data.withObject+      "ConfigIdResponse"+      ( \x ->+          ConfigIdResponse'+            Prelude.<$> (x Data..:? "configArn")+            Prelude.<*> (x Data..:? "configId")+            Prelude.<*> (x Data..:? "configType")+      )++instance Prelude.Hashable ConfigIdResponse where+  hashWithSalt _salt ConfigIdResponse' {..} =+    _salt+      `Prelude.hashWithSalt` configArn+      `Prelude.hashWithSalt` configId+      `Prelude.hashWithSalt` configType++instance Prelude.NFData ConfigIdResponse where+  rnf ConfigIdResponse' {..} =+    Prelude.rnf configArn+      `Prelude.seq` Prelude.rnf configId+      `Prelude.seq` Prelude.rnf configType
+ gen/Amazonka/GroundStation/Types/ConfigListItem.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.GroundStation.Types.ConfigListItem+-- Copyright   : (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.GroundStation.Types.ConfigListItem where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GroundStation.Types.ConfigCapabilityType+import qualified Amazonka.Prelude as Prelude++-- | An item in a list of @Config@ objects.+--+-- /See:/ 'newConfigListItem' smart constructor.+data ConfigListItem = ConfigListItem'+  { -- | ARN of a @Config@.+    configArn :: Prelude.Maybe Prelude.Text,+    -- | UUID of a @Config@.+    configId :: Prelude.Maybe Prelude.Text,+    -- | Type of a @Config@.+    configType :: Prelude.Maybe ConfigCapabilityType,+    -- | Name of a @Config@.+    name :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ConfigListItem' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'configArn', 'configListItem_configArn' - ARN of a @Config@.+--+-- 'configId', 'configListItem_configId' - UUID of a @Config@.+--+-- 'configType', 'configListItem_configType' - Type of a @Config@.+--+-- 'name', 'configListItem_name' - Name of a @Config@.+newConfigListItem ::+  ConfigListItem+newConfigListItem =+  ConfigListItem'+    { configArn = Prelude.Nothing,+      configId = Prelude.Nothing,+      configType = Prelude.Nothing,+      name = Prelude.Nothing+    }++-- | ARN of a @Config@.+configListItem_configArn :: Lens.Lens' ConfigListItem (Prelude.Maybe Prelude.Text)+configListItem_configArn = Lens.lens (\ConfigListItem' {configArn} -> configArn) (\s@ConfigListItem' {} a -> s {configArn = a} :: ConfigListItem)++-- | UUID of a @Config@.+configListItem_configId :: Lens.Lens' ConfigListItem (Prelude.Maybe Prelude.Text)+configListItem_configId = Lens.lens (\ConfigListItem' {configId} -> configId) (\s@ConfigListItem' {} a -> s {configId = a} :: ConfigListItem)++-- | Type of a @Config@.+configListItem_configType :: Lens.Lens' ConfigListItem (Prelude.Maybe ConfigCapabilityType)+configListItem_configType = Lens.lens (\ConfigListItem' {configType} -> configType) (\s@ConfigListItem' {} a -> s {configType = a} :: ConfigListItem)++-- | Name of a @Config@.+configListItem_name :: Lens.Lens' ConfigListItem (Prelude.Maybe Prelude.Text)+configListItem_name = Lens.lens (\ConfigListItem' {name} -> name) (\s@ConfigListItem' {} a -> s {name = a} :: ConfigListItem)++instance Data.FromJSON ConfigListItem where+  parseJSON =+    Data.withObject+      "ConfigListItem"+      ( \x ->+          ConfigListItem'+            Prelude.<$> (x Data..:? "configArn")+            Prelude.<*> (x Data..:? "configId")+            Prelude.<*> (x Data..:? "configType")+            Prelude.<*> (x Data..:? "name")+      )++instance Prelude.Hashable ConfigListItem where+  hashWithSalt _salt ConfigListItem' {..} =+    _salt+      `Prelude.hashWithSalt` configArn+      `Prelude.hashWithSalt` configId+      `Prelude.hashWithSalt` configType+      `Prelude.hashWithSalt` name++instance Prelude.NFData ConfigListItem where+  rnf ConfigListItem' {..} =+    Prelude.rnf configArn+      `Prelude.seq` Prelude.rnf configId+      `Prelude.seq` Prelude.rnf configType+      `Prelude.seq` Prelude.rnf name
+ gen/Amazonka/GroundStation/Types/ConfigTypeData.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.GroundStation.Types.ConfigTypeData+-- Copyright   : (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.GroundStation.Types.ConfigTypeData where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GroundStation.Types.AntennaDownlinkConfig+import Amazonka.GroundStation.Types.AntennaDownlinkDemodDecodeConfig+import Amazonka.GroundStation.Types.AntennaUplinkConfig+import Amazonka.GroundStation.Types.DataflowEndpointConfig+import Amazonka.GroundStation.Types.S3RecordingConfig+import Amazonka.GroundStation.Types.TrackingConfig+import Amazonka.GroundStation.Types.UplinkEchoConfig+import qualified Amazonka.Prelude as Prelude++-- | Object containing the parameters of a @Config@.+--+-- See the subtype definitions for what each type of @Config@ contains.+--+-- /See:/ 'newConfigTypeData' smart constructor.+data ConfigTypeData = ConfigTypeData'+  { -- | Information about how AWS Ground Station should configure an antenna for+    -- downlink during a contact.+    antennaDownlinkConfig :: Prelude.Maybe AntennaDownlinkConfig,+    -- | Information about how AWS Ground Station should configure an antenna for+    -- downlink demod decode during a contact.+    antennaDownlinkDemodDecodeConfig :: Prelude.Maybe AntennaDownlinkDemodDecodeConfig,+    -- | Information about how AWS Ground Station should configure an antenna for+    -- uplink during a contact.+    antennaUplinkConfig :: Prelude.Maybe AntennaUplinkConfig,+    -- | Information about the dataflow endpoint @Config@.+    dataflowEndpointConfig :: Prelude.Maybe DataflowEndpointConfig,+    -- | Information about an S3 recording @Config@.+    s3RecordingConfig :: Prelude.Maybe S3RecordingConfig,+    -- | Object that determines whether tracking should be used during a contact+    -- executed with this @Config@ in the mission profile.+    trackingConfig :: Prelude.Maybe TrackingConfig,+    -- | Information about an uplink echo @Config@.+    --+    -- Parameters from the @AntennaUplinkConfig@, corresponding to the+    -- specified @AntennaUplinkConfigArn@, are used when this+    -- @UplinkEchoConfig@ is used in a contact.+    uplinkEchoConfig :: Prelude.Maybe UplinkEchoConfig+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ConfigTypeData' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'antennaDownlinkConfig', 'configTypeData_antennaDownlinkConfig' - Information about how AWS Ground Station should configure an antenna for+-- downlink during a contact.+--+-- 'antennaDownlinkDemodDecodeConfig', 'configTypeData_antennaDownlinkDemodDecodeConfig' - Information about how AWS Ground Station should configure an antenna for+-- downlink demod decode during a contact.+--+-- 'antennaUplinkConfig', 'configTypeData_antennaUplinkConfig' - Information about how AWS Ground Station should configure an antenna for+-- uplink during a contact.+--+-- 'dataflowEndpointConfig', 'configTypeData_dataflowEndpointConfig' - Information about the dataflow endpoint @Config@.+--+-- 's3RecordingConfig', 'configTypeData_s3RecordingConfig' - Information about an S3 recording @Config@.+--+-- 'trackingConfig', 'configTypeData_trackingConfig' - Object that determines whether tracking should be used during a contact+-- executed with this @Config@ in the mission profile.+--+-- 'uplinkEchoConfig', 'configTypeData_uplinkEchoConfig' - Information about an uplink echo @Config@.+--+-- Parameters from the @AntennaUplinkConfig@, corresponding to the+-- specified @AntennaUplinkConfigArn@, are used when this+-- @UplinkEchoConfig@ is used in a contact.+newConfigTypeData ::+  ConfigTypeData+newConfigTypeData =+  ConfigTypeData'+    { antennaDownlinkConfig =+        Prelude.Nothing,+      antennaDownlinkDemodDecodeConfig = Prelude.Nothing,+      antennaUplinkConfig = Prelude.Nothing,+      dataflowEndpointConfig = Prelude.Nothing,+      s3RecordingConfig = Prelude.Nothing,+      trackingConfig = Prelude.Nothing,+      uplinkEchoConfig = Prelude.Nothing+    }++-- | Information about how AWS Ground Station should configure an antenna for+-- downlink during a contact.+configTypeData_antennaDownlinkConfig :: Lens.Lens' ConfigTypeData (Prelude.Maybe AntennaDownlinkConfig)+configTypeData_antennaDownlinkConfig = Lens.lens (\ConfigTypeData' {antennaDownlinkConfig} -> antennaDownlinkConfig) (\s@ConfigTypeData' {} a -> s {antennaDownlinkConfig = a} :: ConfigTypeData)++-- | Information about how AWS Ground Station should configure an antenna for+-- downlink demod decode during a contact.+configTypeData_antennaDownlinkDemodDecodeConfig :: Lens.Lens' ConfigTypeData (Prelude.Maybe AntennaDownlinkDemodDecodeConfig)+configTypeData_antennaDownlinkDemodDecodeConfig = Lens.lens (\ConfigTypeData' {antennaDownlinkDemodDecodeConfig} -> antennaDownlinkDemodDecodeConfig) (\s@ConfigTypeData' {} a -> s {antennaDownlinkDemodDecodeConfig = a} :: ConfigTypeData)++-- | Information about how AWS Ground Station should configure an antenna for+-- uplink during a contact.+configTypeData_antennaUplinkConfig :: Lens.Lens' ConfigTypeData (Prelude.Maybe AntennaUplinkConfig)+configTypeData_antennaUplinkConfig = Lens.lens (\ConfigTypeData' {antennaUplinkConfig} -> antennaUplinkConfig) (\s@ConfigTypeData' {} a -> s {antennaUplinkConfig = a} :: ConfigTypeData)++-- | Information about the dataflow endpoint @Config@.+configTypeData_dataflowEndpointConfig :: Lens.Lens' ConfigTypeData (Prelude.Maybe DataflowEndpointConfig)+configTypeData_dataflowEndpointConfig = Lens.lens (\ConfigTypeData' {dataflowEndpointConfig} -> dataflowEndpointConfig) (\s@ConfigTypeData' {} a -> s {dataflowEndpointConfig = a} :: ConfigTypeData)++-- | Information about an S3 recording @Config@.+configTypeData_s3RecordingConfig :: Lens.Lens' ConfigTypeData (Prelude.Maybe S3RecordingConfig)+configTypeData_s3RecordingConfig = Lens.lens (\ConfigTypeData' {s3RecordingConfig} -> s3RecordingConfig) (\s@ConfigTypeData' {} a -> s {s3RecordingConfig = a} :: ConfigTypeData)++-- | Object that determines whether tracking should be used during a contact+-- executed with this @Config@ in the mission profile.+configTypeData_trackingConfig :: Lens.Lens' ConfigTypeData (Prelude.Maybe TrackingConfig)+configTypeData_trackingConfig = Lens.lens (\ConfigTypeData' {trackingConfig} -> trackingConfig) (\s@ConfigTypeData' {} a -> s {trackingConfig = a} :: ConfigTypeData)++-- | Information about an uplink echo @Config@.+--+-- Parameters from the @AntennaUplinkConfig@, corresponding to the+-- specified @AntennaUplinkConfigArn@, are used when this+-- @UplinkEchoConfig@ is used in a contact.+configTypeData_uplinkEchoConfig :: Lens.Lens' ConfigTypeData (Prelude.Maybe UplinkEchoConfig)+configTypeData_uplinkEchoConfig = Lens.lens (\ConfigTypeData' {uplinkEchoConfig} -> uplinkEchoConfig) (\s@ConfigTypeData' {} a -> s {uplinkEchoConfig = a} :: ConfigTypeData)++instance Data.FromJSON ConfigTypeData where+  parseJSON =+    Data.withObject+      "ConfigTypeData"+      ( \x ->+          ConfigTypeData'+            Prelude.<$> (x Data..:? "antennaDownlinkConfig")+            Prelude.<*> (x Data..:? "antennaDownlinkDemodDecodeConfig")+            Prelude.<*> (x Data..:? "antennaUplinkConfig")+            Prelude.<*> (x Data..:? "dataflowEndpointConfig")+            Prelude.<*> (x Data..:? "s3RecordingConfig")+            Prelude.<*> (x Data..:? "trackingConfig")+            Prelude.<*> (x Data..:? "uplinkEchoConfig")+      )++instance Prelude.Hashable ConfigTypeData where+  hashWithSalt _salt ConfigTypeData' {..} =+    _salt+      `Prelude.hashWithSalt` antennaDownlinkConfig+      `Prelude.hashWithSalt` antennaDownlinkDemodDecodeConfig+      `Prelude.hashWithSalt` antennaUplinkConfig+      `Prelude.hashWithSalt` dataflowEndpointConfig+      `Prelude.hashWithSalt` s3RecordingConfig+      `Prelude.hashWithSalt` trackingConfig+      `Prelude.hashWithSalt` uplinkEchoConfig++instance Prelude.NFData ConfigTypeData where+  rnf ConfigTypeData' {..} =+    Prelude.rnf antennaDownlinkConfig+      `Prelude.seq` Prelude.rnf antennaDownlinkDemodDecodeConfig+      `Prelude.seq` Prelude.rnf antennaUplinkConfig+      `Prelude.seq` Prelude.rnf dataflowEndpointConfig+      `Prelude.seq` Prelude.rnf s3RecordingConfig+      `Prelude.seq` Prelude.rnf trackingConfig+      `Prelude.seq` Prelude.rnf uplinkEchoConfig++instance Data.ToJSON ConfigTypeData where+  toJSON ConfigTypeData' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("antennaDownlinkConfig" Data..=)+              Prelude.<$> antennaDownlinkConfig,+            ("antennaDownlinkDemodDecodeConfig" Data..=)+              Prelude.<$> antennaDownlinkDemodDecodeConfig,+            ("antennaUplinkConfig" Data..=)+              Prelude.<$> antennaUplinkConfig,+            ("dataflowEndpointConfig" Data..=)+              Prelude.<$> dataflowEndpointConfig,+            ("s3RecordingConfig" Data..=)+              Prelude.<$> s3RecordingConfig,+            ("trackingConfig" Data..=)+              Prelude.<$> trackingConfig,+            ("uplinkEchoConfig" Data..=)+              Prelude.<$> uplinkEchoConfig+          ]+      )
+ gen/Amazonka/GroundStation/Types/ContactData.hs view
@@ -0,0 +1,224 @@+{-# 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.GroundStation.Types.ContactData+-- Copyright   : (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.GroundStation.Types.ContactData where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GroundStation.Types.ContactStatus+import Amazonka.GroundStation.Types.Elevation+import qualified Amazonka.Prelude as Prelude++-- | Data describing a contact.+--+-- /See:/ 'newContactData' smart constructor.+data ContactData = ContactData'+  { -- | UUID of a contact.+    contactId :: Prelude.Maybe Prelude.Text,+    -- | Status of a contact.+    contactStatus :: Prelude.Maybe ContactStatus,+    -- | End time of a contact in UTC.+    endTime :: Prelude.Maybe Data.POSIX,+    -- | Error message of a contact.+    errorMessage :: Prelude.Maybe Prelude.Text,+    -- | Name of a ground station.+    groundStation :: Prelude.Maybe Prelude.Text,+    -- | Maximum elevation angle of a contact.+    maximumElevation :: Prelude.Maybe Elevation,+    -- | ARN of a mission profile.+    missionProfileArn :: Prelude.Maybe Prelude.Text,+    -- | Amount of time after a contact ends that you’d like to receive a+    -- CloudWatch event indicating the pass has finished.+    postPassEndTime :: Prelude.Maybe Data.POSIX,+    -- | Amount of time prior to contact start you’d like to receive a CloudWatch+    -- event indicating an upcoming pass.+    prePassStartTime :: Prelude.Maybe Data.POSIX,+    -- | Region of a contact.+    region :: Prelude.Maybe Prelude.Text,+    -- | ARN of a satellite.+    satelliteArn :: Prelude.Maybe Prelude.Text,+    -- | Start time of a contact in UTC.+    startTime :: Prelude.Maybe Data.POSIX,+    -- | Tags assigned to a contact.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text)+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ContactData' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'contactId', 'contactData_contactId' - UUID of a contact.+--+-- 'contactStatus', 'contactData_contactStatus' - Status of a contact.+--+-- 'endTime', 'contactData_endTime' - End time of a contact in UTC.+--+-- 'errorMessage', 'contactData_errorMessage' - Error message of a contact.+--+-- 'groundStation', 'contactData_groundStation' - Name of a ground station.+--+-- 'maximumElevation', 'contactData_maximumElevation' - Maximum elevation angle of a contact.+--+-- 'missionProfileArn', 'contactData_missionProfileArn' - ARN of a mission profile.+--+-- 'postPassEndTime', 'contactData_postPassEndTime' - Amount of time after a contact ends that you’d like to receive a+-- CloudWatch event indicating the pass has finished.+--+-- 'prePassStartTime', 'contactData_prePassStartTime' - Amount of time prior to contact start you’d like to receive a CloudWatch+-- event indicating an upcoming pass.+--+-- 'region', 'contactData_region' - Region of a contact.+--+-- 'satelliteArn', 'contactData_satelliteArn' - ARN of a satellite.+--+-- 'startTime', 'contactData_startTime' - Start time of a contact in UTC.+--+-- 'tags', 'contactData_tags' - Tags assigned to a contact.+newContactData ::+  ContactData+newContactData =+  ContactData'+    { contactId = Prelude.Nothing,+      contactStatus = Prelude.Nothing,+      endTime = Prelude.Nothing,+      errorMessage = Prelude.Nothing,+      groundStation = Prelude.Nothing,+      maximumElevation = Prelude.Nothing,+      missionProfileArn = Prelude.Nothing,+      postPassEndTime = Prelude.Nothing,+      prePassStartTime = Prelude.Nothing,+      region = Prelude.Nothing,+      satelliteArn = Prelude.Nothing,+      startTime = Prelude.Nothing,+      tags = Prelude.Nothing+    }++-- | UUID of a contact.+contactData_contactId :: Lens.Lens' ContactData (Prelude.Maybe Prelude.Text)+contactData_contactId = Lens.lens (\ContactData' {contactId} -> contactId) (\s@ContactData' {} a -> s {contactId = a} :: ContactData)++-- | Status of a contact.+contactData_contactStatus :: Lens.Lens' ContactData (Prelude.Maybe ContactStatus)+contactData_contactStatus = Lens.lens (\ContactData' {contactStatus} -> contactStatus) (\s@ContactData' {} a -> s {contactStatus = a} :: ContactData)++-- | End time of a contact in UTC.+contactData_endTime :: Lens.Lens' ContactData (Prelude.Maybe Prelude.UTCTime)+contactData_endTime = Lens.lens (\ContactData' {endTime} -> endTime) (\s@ContactData' {} a -> s {endTime = a} :: ContactData) Prelude.. Lens.mapping Data._Time++-- | Error message of a contact.+contactData_errorMessage :: Lens.Lens' ContactData (Prelude.Maybe Prelude.Text)+contactData_errorMessage = Lens.lens (\ContactData' {errorMessage} -> errorMessage) (\s@ContactData' {} a -> s {errorMessage = a} :: ContactData)++-- | Name of a ground station.+contactData_groundStation :: Lens.Lens' ContactData (Prelude.Maybe Prelude.Text)+contactData_groundStation = Lens.lens (\ContactData' {groundStation} -> groundStation) (\s@ContactData' {} a -> s {groundStation = a} :: ContactData)++-- | Maximum elevation angle of a contact.+contactData_maximumElevation :: Lens.Lens' ContactData (Prelude.Maybe Elevation)+contactData_maximumElevation = Lens.lens (\ContactData' {maximumElevation} -> maximumElevation) (\s@ContactData' {} a -> s {maximumElevation = a} :: ContactData)++-- | ARN of a mission profile.+contactData_missionProfileArn :: Lens.Lens' ContactData (Prelude.Maybe Prelude.Text)+contactData_missionProfileArn = Lens.lens (\ContactData' {missionProfileArn} -> missionProfileArn) (\s@ContactData' {} a -> s {missionProfileArn = a} :: ContactData)++-- | Amount of time after a contact ends that you’d like to receive a+-- CloudWatch event indicating the pass has finished.+contactData_postPassEndTime :: Lens.Lens' ContactData (Prelude.Maybe Prelude.UTCTime)+contactData_postPassEndTime = Lens.lens (\ContactData' {postPassEndTime} -> postPassEndTime) (\s@ContactData' {} a -> s {postPassEndTime = a} :: ContactData) Prelude.. Lens.mapping Data._Time++-- | Amount of time prior to contact start you’d like to receive a CloudWatch+-- event indicating an upcoming pass.+contactData_prePassStartTime :: Lens.Lens' ContactData (Prelude.Maybe Prelude.UTCTime)+contactData_prePassStartTime = Lens.lens (\ContactData' {prePassStartTime} -> prePassStartTime) (\s@ContactData' {} a -> s {prePassStartTime = a} :: ContactData) Prelude.. Lens.mapping Data._Time++-- | Region of a contact.+contactData_region :: Lens.Lens' ContactData (Prelude.Maybe Prelude.Text)+contactData_region = Lens.lens (\ContactData' {region} -> region) (\s@ContactData' {} a -> s {region = a} :: ContactData)++-- | ARN of a satellite.+contactData_satelliteArn :: Lens.Lens' ContactData (Prelude.Maybe Prelude.Text)+contactData_satelliteArn = Lens.lens (\ContactData' {satelliteArn} -> satelliteArn) (\s@ContactData' {} a -> s {satelliteArn = a} :: ContactData)++-- | Start time of a contact in UTC.+contactData_startTime :: Lens.Lens' ContactData (Prelude.Maybe Prelude.UTCTime)+contactData_startTime = Lens.lens (\ContactData' {startTime} -> startTime) (\s@ContactData' {} a -> s {startTime = a} :: ContactData) Prelude.. Lens.mapping Data._Time++-- | Tags assigned to a contact.+contactData_tags :: Lens.Lens' ContactData (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+contactData_tags = Lens.lens (\ContactData' {tags} -> tags) (\s@ContactData' {} a -> s {tags = a} :: ContactData) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON ContactData where+  parseJSON =+    Data.withObject+      "ContactData"+      ( \x ->+          ContactData'+            Prelude.<$> (x Data..:? "contactId")+            Prelude.<*> (x Data..:? "contactStatus")+            Prelude.<*> (x Data..:? "endTime")+            Prelude.<*> (x Data..:? "errorMessage")+            Prelude.<*> (x Data..:? "groundStation")+            Prelude.<*> (x Data..:? "maximumElevation")+            Prelude.<*> (x Data..:? "missionProfileArn")+            Prelude.<*> (x Data..:? "postPassEndTime")+            Prelude.<*> (x Data..:? "prePassStartTime")+            Prelude.<*> (x Data..:? "region")+            Prelude.<*> (x Data..:? "satelliteArn")+            Prelude.<*> (x Data..:? "startTime")+            Prelude.<*> (x Data..:? "tags" Data..!= Prelude.mempty)+      )++instance Prelude.Hashable ContactData where+  hashWithSalt _salt ContactData' {..} =+    _salt+      `Prelude.hashWithSalt` contactId+      `Prelude.hashWithSalt` contactStatus+      `Prelude.hashWithSalt` endTime+      `Prelude.hashWithSalt` errorMessage+      `Prelude.hashWithSalt` groundStation+      `Prelude.hashWithSalt` maximumElevation+      `Prelude.hashWithSalt` missionProfileArn+      `Prelude.hashWithSalt` postPassEndTime+      `Prelude.hashWithSalt` prePassStartTime+      `Prelude.hashWithSalt` region+      `Prelude.hashWithSalt` satelliteArn+      `Prelude.hashWithSalt` startTime+      `Prelude.hashWithSalt` tags++instance Prelude.NFData ContactData where+  rnf ContactData' {..} =+    Prelude.rnf contactId+      `Prelude.seq` Prelude.rnf contactStatus+      `Prelude.seq` Prelude.rnf endTime+      `Prelude.seq` Prelude.rnf errorMessage+      `Prelude.seq` Prelude.rnf groundStation+      `Prelude.seq` Prelude.rnf maximumElevation+      `Prelude.seq` Prelude.rnf missionProfileArn+      `Prelude.seq` Prelude.rnf postPassEndTime+      `Prelude.seq` Prelude.rnf prePassStartTime+      `Prelude.seq` Prelude.rnf region+      `Prelude.seq` Prelude.rnf satelliteArn+      `Prelude.seq` Prelude.rnf startTime+      `Prelude.seq` Prelude.rnf tags
+ gen/Amazonka/GroundStation/Types/ContactIdResponse.hs view
@@ -0,0 +1,68 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.GroundStation.Types.ContactIdResponse+-- Copyright   : (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.GroundStation.Types.ContactIdResponse where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- |+--+-- /See:/ 'newContactIdResponse' smart constructor.+data ContactIdResponse = ContactIdResponse'+  { -- | UUID of a contact.+    contactId :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ContactIdResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'contactId', 'contactIdResponse_contactId' - UUID of a contact.+newContactIdResponse ::+  ContactIdResponse+newContactIdResponse =+  ContactIdResponse' {contactId = Prelude.Nothing}++-- | UUID of a contact.+contactIdResponse_contactId :: Lens.Lens' ContactIdResponse (Prelude.Maybe Prelude.Text)+contactIdResponse_contactId = Lens.lens (\ContactIdResponse' {contactId} -> contactId) (\s@ContactIdResponse' {} a -> s {contactId = a} :: ContactIdResponse)++instance Data.FromJSON ContactIdResponse where+  parseJSON =+    Data.withObject+      "ContactIdResponse"+      ( \x ->+          ContactIdResponse'+            Prelude.<$> (x Data..:? "contactId")+      )++instance Prelude.Hashable ContactIdResponse where+  hashWithSalt _salt ContactIdResponse' {..} =+    _salt `Prelude.hashWithSalt` contactId++instance Prelude.NFData ContactIdResponse where+  rnf ContactIdResponse' {..} = Prelude.rnf contactId
+ gen/Amazonka/GroundStation/Types/ContactStatus.hs view
@@ -0,0 +1,126 @@+{-# 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.GroundStation.Types.ContactStatus+-- Copyright   : (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.GroundStation.Types.ContactStatus+  ( ContactStatus+      ( ..,+        ContactStatus_AVAILABLE,+        ContactStatus_AWS_CANCELLED,+        ContactStatus_AWS_FAILED,+        ContactStatus_CANCELLED,+        ContactStatus_CANCELLING,+        ContactStatus_COMPLETED,+        ContactStatus_FAILED,+        ContactStatus_FAILED_TO_SCHEDULE,+        ContactStatus_PASS,+        ContactStatus_POSTPASS,+        ContactStatus_PREPASS,+        ContactStatus_SCHEDULED,+        ContactStatus_SCHEDULING+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ContactStatus = ContactStatus'+  { fromContactStatus ::+      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 ContactStatus_AVAILABLE :: ContactStatus+pattern ContactStatus_AVAILABLE = ContactStatus' "AVAILABLE"++pattern ContactStatus_AWS_CANCELLED :: ContactStatus+pattern ContactStatus_AWS_CANCELLED = ContactStatus' "AWS_CANCELLED"++pattern ContactStatus_AWS_FAILED :: ContactStatus+pattern ContactStatus_AWS_FAILED = ContactStatus' "AWS_FAILED"++pattern ContactStatus_CANCELLED :: ContactStatus+pattern ContactStatus_CANCELLED = ContactStatus' "CANCELLED"++pattern ContactStatus_CANCELLING :: ContactStatus+pattern ContactStatus_CANCELLING = ContactStatus' "CANCELLING"++pattern ContactStatus_COMPLETED :: ContactStatus+pattern ContactStatus_COMPLETED = ContactStatus' "COMPLETED"++pattern ContactStatus_FAILED :: ContactStatus+pattern ContactStatus_FAILED = ContactStatus' "FAILED"++pattern ContactStatus_FAILED_TO_SCHEDULE :: ContactStatus+pattern ContactStatus_FAILED_TO_SCHEDULE = ContactStatus' "FAILED_TO_SCHEDULE"++pattern ContactStatus_PASS :: ContactStatus+pattern ContactStatus_PASS = ContactStatus' "PASS"++pattern ContactStatus_POSTPASS :: ContactStatus+pattern ContactStatus_POSTPASS = ContactStatus' "POSTPASS"++pattern ContactStatus_PREPASS :: ContactStatus+pattern ContactStatus_PREPASS = ContactStatus' "PREPASS"++pattern ContactStatus_SCHEDULED :: ContactStatus+pattern ContactStatus_SCHEDULED = ContactStatus' "SCHEDULED"++pattern ContactStatus_SCHEDULING :: ContactStatus+pattern ContactStatus_SCHEDULING = ContactStatus' "SCHEDULING"++{-# COMPLETE+  ContactStatus_AVAILABLE,+  ContactStatus_AWS_CANCELLED,+  ContactStatus_AWS_FAILED,+  ContactStatus_CANCELLED,+  ContactStatus_CANCELLING,+  ContactStatus_COMPLETED,+  ContactStatus_FAILED,+  ContactStatus_FAILED_TO_SCHEDULE,+  ContactStatus_PASS,+  ContactStatus_POSTPASS,+  ContactStatus_PREPASS,+  ContactStatus_SCHEDULED,+  ContactStatus_SCHEDULING,+  ContactStatus'+  #-}
+ gen/Amazonka/GroundStation/Types/Criticality.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.GroundStation.Types.Criticality+-- Copyright   : (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.GroundStation.Types.Criticality+  ( Criticality+      ( ..,+        Criticality_PREFERRED,+        Criticality_REMOVED,+        Criticality_REQUIRED+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype Criticality = Criticality'+  { fromCriticality ::+      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 Criticality_PREFERRED :: Criticality+pattern Criticality_PREFERRED = Criticality' "PREFERRED"++pattern Criticality_REMOVED :: Criticality+pattern Criticality_REMOVED = Criticality' "REMOVED"++pattern Criticality_REQUIRED :: Criticality+pattern Criticality_REQUIRED = Criticality' "REQUIRED"++{-# COMPLETE+  Criticality_PREFERRED,+  Criticality_REMOVED,+  Criticality_REQUIRED,+  Criticality'+  #-}
+ gen/Amazonka/GroundStation/Types/DataflowDetail.hs view
@@ -0,0 +1,96 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.GroundStation.Types.DataflowDetail+-- Copyright   : (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.GroundStation.Types.DataflowDetail where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GroundStation.Types.Destination+import Amazonka.GroundStation.Types.Source+import qualified Amazonka.Prelude as Prelude++-- | Information about a dataflow edge used in a contact.+--+-- /See:/ 'newDataflowDetail' smart constructor.+data DataflowDetail = DataflowDetail'+  { destination :: Prelude.Maybe Destination,+    -- | Error message for a dataflow.+    errorMessage :: Prelude.Maybe Prelude.Text,+    source :: Prelude.Maybe Source+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DataflowDetail' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'destination', 'dataflowDetail_destination' - Undocumented member.+--+-- 'errorMessage', 'dataflowDetail_errorMessage' - Error message for a dataflow.+--+-- 'source', 'dataflowDetail_source' - Undocumented member.+newDataflowDetail ::+  DataflowDetail+newDataflowDetail =+  DataflowDetail'+    { destination = Prelude.Nothing,+      errorMessage = Prelude.Nothing,+      source = Prelude.Nothing+    }++-- | Undocumented member.+dataflowDetail_destination :: Lens.Lens' DataflowDetail (Prelude.Maybe Destination)+dataflowDetail_destination = Lens.lens (\DataflowDetail' {destination} -> destination) (\s@DataflowDetail' {} a -> s {destination = a} :: DataflowDetail)++-- | Error message for a dataflow.+dataflowDetail_errorMessage :: Lens.Lens' DataflowDetail (Prelude.Maybe Prelude.Text)+dataflowDetail_errorMessage = Lens.lens (\DataflowDetail' {errorMessage} -> errorMessage) (\s@DataflowDetail' {} a -> s {errorMessage = a} :: DataflowDetail)++-- | Undocumented member.+dataflowDetail_source :: Lens.Lens' DataflowDetail (Prelude.Maybe Source)+dataflowDetail_source = Lens.lens (\DataflowDetail' {source} -> source) (\s@DataflowDetail' {} a -> s {source = a} :: DataflowDetail)++instance Data.FromJSON DataflowDetail where+  parseJSON =+    Data.withObject+      "DataflowDetail"+      ( \x ->+          DataflowDetail'+            Prelude.<$> (x Data..:? "destination")+            Prelude.<*> (x Data..:? "errorMessage")+            Prelude.<*> (x Data..:? "source")+      )++instance Prelude.Hashable DataflowDetail where+  hashWithSalt _salt DataflowDetail' {..} =+    _salt+      `Prelude.hashWithSalt` destination+      `Prelude.hashWithSalt` errorMessage+      `Prelude.hashWithSalt` source++instance Prelude.NFData DataflowDetail where+  rnf DataflowDetail' {..} =+    Prelude.rnf destination+      `Prelude.seq` Prelude.rnf errorMessage+      `Prelude.seq` Prelude.rnf source
+ gen/Amazonka/GroundStation/Types/DataflowEndpoint.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.GroundStation.Types.DataflowEndpoint+-- Copyright   : (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.GroundStation.Types.DataflowEndpoint where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GroundStation.Types.EndpointStatus+import Amazonka.GroundStation.Types.SocketAddress+import qualified Amazonka.Prelude as Prelude++-- | Information about a dataflow endpoint.+--+-- /See:/ 'newDataflowEndpoint' smart constructor.+data DataflowEndpoint = DataflowEndpoint'+  { -- | Socket address of a dataflow endpoint.+    address :: Prelude.Maybe SocketAddress,+    -- | Maximum transmission unit (MTU) size in bytes of a dataflow endpoint.+    mtu :: Prelude.Maybe Prelude.Natural,+    -- | Name of a dataflow endpoint.+    name :: Prelude.Maybe Prelude.Text,+    -- | Status of a dataflow endpoint.+    status :: Prelude.Maybe EndpointStatus+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DataflowEndpoint' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'address', 'dataflowEndpoint_address' - Socket address of a dataflow endpoint.+--+-- 'mtu', 'dataflowEndpoint_mtu' - Maximum transmission unit (MTU) size in bytes of a dataflow endpoint.+--+-- 'name', 'dataflowEndpoint_name' - Name of a dataflow endpoint.+--+-- 'status', 'dataflowEndpoint_status' - Status of a dataflow endpoint.+newDataflowEndpoint ::+  DataflowEndpoint+newDataflowEndpoint =+  DataflowEndpoint'+    { address = Prelude.Nothing,+      mtu = Prelude.Nothing,+      name = Prelude.Nothing,+      status = Prelude.Nothing+    }++-- | Socket address of a dataflow endpoint.+dataflowEndpoint_address :: Lens.Lens' DataflowEndpoint (Prelude.Maybe SocketAddress)+dataflowEndpoint_address = Lens.lens (\DataflowEndpoint' {address} -> address) (\s@DataflowEndpoint' {} a -> s {address = a} :: DataflowEndpoint)++-- | Maximum transmission unit (MTU) size in bytes of a dataflow endpoint.+dataflowEndpoint_mtu :: Lens.Lens' DataflowEndpoint (Prelude.Maybe Prelude.Natural)+dataflowEndpoint_mtu = Lens.lens (\DataflowEndpoint' {mtu} -> mtu) (\s@DataflowEndpoint' {} a -> s {mtu = a} :: DataflowEndpoint)++-- | Name of a dataflow endpoint.+dataflowEndpoint_name :: Lens.Lens' DataflowEndpoint (Prelude.Maybe Prelude.Text)+dataflowEndpoint_name = Lens.lens (\DataflowEndpoint' {name} -> name) (\s@DataflowEndpoint' {} a -> s {name = a} :: DataflowEndpoint)++-- | Status of a dataflow endpoint.+dataflowEndpoint_status :: Lens.Lens' DataflowEndpoint (Prelude.Maybe EndpointStatus)+dataflowEndpoint_status = Lens.lens (\DataflowEndpoint' {status} -> status) (\s@DataflowEndpoint' {} a -> s {status = a} :: DataflowEndpoint)++instance Data.FromJSON DataflowEndpoint where+  parseJSON =+    Data.withObject+      "DataflowEndpoint"+      ( \x ->+          DataflowEndpoint'+            Prelude.<$> (x Data..:? "address")+            Prelude.<*> (x Data..:? "mtu")+            Prelude.<*> (x Data..:? "name")+            Prelude.<*> (x Data..:? "status")+      )++instance Prelude.Hashable DataflowEndpoint where+  hashWithSalt _salt DataflowEndpoint' {..} =+    _salt+      `Prelude.hashWithSalt` address+      `Prelude.hashWithSalt` mtu+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` status++instance Prelude.NFData DataflowEndpoint where+  rnf DataflowEndpoint' {..} =+    Prelude.rnf address+      `Prelude.seq` Prelude.rnf mtu+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf status++instance Data.ToJSON DataflowEndpoint where+  toJSON DataflowEndpoint' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("address" Data..=) Prelude.<$> address,+            ("mtu" Data..=) Prelude.<$> mtu,+            ("name" Data..=) Prelude.<$> name,+            ("status" Data..=) Prelude.<$> status+          ]+      )
+ gen/Amazonka/GroundStation/Types/DataflowEndpointConfig.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.GroundStation.Types.DataflowEndpointConfig+-- Copyright   : (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.GroundStation.Types.DataflowEndpointConfig where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Information about the dataflow endpoint @Config@.+--+-- /See:/ 'newDataflowEndpointConfig' smart constructor.+data DataflowEndpointConfig = DataflowEndpointConfig'+  { -- | Region of a dataflow endpoint.+    dataflowEndpointRegion :: Prelude.Maybe Prelude.Text,+    -- | Name of a dataflow endpoint.+    dataflowEndpointName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DataflowEndpointConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dataflowEndpointRegion', 'dataflowEndpointConfig_dataflowEndpointRegion' - Region of a dataflow endpoint.+--+-- 'dataflowEndpointName', 'dataflowEndpointConfig_dataflowEndpointName' - Name of a dataflow endpoint.+newDataflowEndpointConfig ::+  -- | 'dataflowEndpointName'+  Prelude.Text ->+  DataflowEndpointConfig+newDataflowEndpointConfig pDataflowEndpointName_ =+  DataflowEndpointConfig'+    { dataflowEndpointRegion =+        Prelude.Nothing,+      dataflowEndpointName = pDataflowEndpointName_+    }++-- | Region of a dataflow endpoint.+dataflowEndpointConfig_dataflowEndpointRegion :: Lens.Lens' DataflowEndpointConfig (Prelude.Maybe Prelude.Text)+dataflowEndpointConfig_dataflowEndpointRegion = Lens.lens (\DataflowEndpointConfig' {dataflowEndpointRegion} -> dataflowEndpointRegion) (\s@DataflowEndpointConfig' {} a -> s {dataflowEndpointRegion = a} :: DataflowEndpointConfig)++-- | Name of a dataflow endpoint.+dataflowEndpointConfig_dataflowEndpointName :: Lens.Lens' DataflowEndpointConfig Prelude.Text+dataflowEndpointConfig_dataflowEndpointName = Lens.lens (\DataflowEndpointConfig' {dataflowEndpointName} -> dataflowEndpointName) (\s@DataflowEndpointConfig' {} a -> s {dataflowEndpointName = a} :: DataflowEndpointConfig)++instance Data.FromJSON DataflowEndpointConfig where+  parseJSON =+    Data.withObject+      "DataflowEndpointConfig"+      ( \x ->+          DataflowEndpointConfig'+            Prelude.<$> (x Data..:? "dataflowEndpointRegion")+            Prelude.<*> (x Data..: "dataflowEndpointName")+      )++instance Prelude.Hashable DataflowEndpointConfig where+  hashWithSalt _salt DataflowEndpointConfig' {..} =+    _salt+      `Prelude.hashWithSalt` dataflowEndpointRegion+      `Prelude.hashWithSalt` dataflowEndpointName++instance Prelude.NFData DataflowEndpointConfig where+  rnf DataflowEndpointConfig' {..} =+    Prelude.rnf dataflowEndpointRegion+      `Prelude.seq` Prelude.rnf dataflowEndpointName++instance Data.ToJSON DataflowEndpointConfig where+  toJSON DataflowEndpointConfig' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("dataflowEndpointRegion" Data..=)+              Prelude.<$> dataflowEndpointRegion,+            Prelude.Just+              ( "dataflowEndpointName"+                  Data..= dataflowEndpointName+              )+          ]+      )
+ gen/Amazonka/GroundStation/Types/DataflowEndpointGroupIdResponse.hs view
@@ -0,0 +1,84 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.GroundStation.Types.DataflowEndpointGroupIdResponse+-- Copyright   : (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.GroundStation.Types.DataflowEndpointGroupIdResponse where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- |+--+-- /See:/ 'newDataflowEndpointGroupIdResponse' smart constructor.+data DataflowEndpointGroupIdResponse = DataflowEndpointGroupIdResponse'+  { -- | UUID of a dataflow endpoint group.+    dataflowEndpointGroupId :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DataflowEndpointGroupIdResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dataflowEndpointGroupId', 'dataflowEndpointGroupIdResponse_dataflowEndpointGroupId' - UUID of a dataflow endpoint group.+newDataflowEndpointGroupIdResponse ::+  DataflowEndpointGroupIdResponse+newDataflowEndpointGroupIdResponse =+  DataflowEndpointGroupIdResponse'+    { dataflowEndpointGroupId =+        Prelude.Nothing+    }++-- | UUID of a dataflow endpoint group.+dataflowEndpointGroupIdResponse_dataflowEndpointGroupId :: Lens.Lens' DataflowEndpointGroupIdResponse (Prelude.Maybe Prelude.Text)+dataflowEndpointGroupIdResponse_dataflowEndpointGroupId = Lens.lens (\DataflowEndpointGroupIdResponse' {dataflowEndpointGroupId} -> dataflowEndpointGroupId) (\s@DataflowEndpointGroupIdResponse' {} a -> s {dataflowEndpointGroupId = a} :: DataflowEndpointGroupIdResponse)++instance+  Data.FromJSON+    DataflowEndpointGroupIdResponse+  where+  parseJSON =+    Data.withObject+      "DataflowEndpointGroupIdResponse"+      ( \x ->+          DataflowEndpointGroupIdResponse'+            Prelude.<$> (x Data..:? "dataflowEndpointGroupId")+      )++instance+  Prelude.Hashable+    DataflowEndpointGroupIdResponse+  where+  hashWithSalt+    _salt+    DataflowEndpointGroupIdResponse' {..} =+      _salt+        `Prelude.hashWithSalt` dataflowEndpointGroupId++instance+  Prelude.NFData+    DataflowEndpointGroupIdResponse+  where+  rnf DataflowEndpointGroupIdResponse' {..} =+    Prelude.rnf dataflowEndpointGroupId
+ gen/Amazonka/GroundStation/Types/DataflowEndpointListItem.hs view
@@ -0,0 +1,85 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.GroundStation.Types.DataflowEndpointListItem+-- Copyright   : (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.GroundStation.Types.DataflowEndpointListItem 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++-- | Item in a list of @DataflowEndpoint@ groups.+--+-- /See:/ 'newDataflowEndpointListItem' smart constructor.+data DataflowEndpointListItem = DataflowEndpointListItem'+  { -- | ARN of a dataflow endpoint group.+    dataflowEndpointGroupArn :: Prelude.Maybe Prelude.Text,+    -- | UUID of a dataflow endpoint group.+    dataflowEndpointGroupId :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DataflowEndpointListItem' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dataflowEndpointGroupArn', 'dataflowEndpointListItem_dataflowEndpointGroupArn' - ARN of a dataflow endpoint group.+--+-- 'dataflowEndpointGroupId', 'dataflowEndpointListItem_dataflowEndpointGroupId' - UUID of a dataflow endpoint group.+newDataflowEndpointListItem ::+  DataflowEndpointListItem+newDataflowEndpointListItem =+  DataflowEndpointListItem'+    { dataflowEndpointGroupArn =+        Prelude.Nothing,+      dataflowEndpointGroupId = Prelude.Nothing+    }++-- | ARN of a dataflow endpoint group.+dataflowEndpointListItem_dataflowEndpointGroupArn :: Lens.Lens' DataflowEndpointListItem (Prelude.Maybe Prelude.Text)+dataflowEndpointListItem_dataflowEndpointGroupArn = Lens.lens (\DataflowEndpointListItem' {dataflowEndpointGroupArn} -> dataflowEndpointGroupArn) (\s@DataflowEndpointListItem' {} a -> s {dataflowEndpointGroupArn = a} :: DataflowEndpointListItem)++-- | UUID of a dataflow endpoint group.+dataflowEndpointListItem_dataflowEndpointGroupId :: Lens.Lens' DataflowEndpointListItem (Prelude.Maybe Prelude.Text)+dataflowEndpointListItem_dataflowEndpointGroupId = Lens.lens (\DataflowEndpointListItem' {dataflowEndpointGroupId} -> dataflowEndpointGroupId) (\s@DataflowEndpointListItem' {} a -> s {dataflowEndpointGroupId = a} :: DataflowEndpointListItem)++instance Data.FromJSON DataflowEndpointListItem where+  parseJSON =+    Data.withObject+      "DataflowEndpointListItem"+      ( \x ->+          DataflowEndpointListItem'+            Prelude.<$> (x Data..:? "dataflowEndpointGroupArn")+            Prelude.<*> (x Data..:? "dataflowEndpointGroupId")+      )++instance Prelude.Hashable DataflowEndpointListItem where+  hashWithSalt _salt DataflowEndpointListItem' {..} =+    _salt+      `Prelude.hashWithSalt` dataflowEndpointGroupArn+      `Prelude.hashWithSalt` dataflowEndpointGroupId++instance Prelude.NFData DataflowEndpointListItem where+  rnf DataflowEndpointListItem' {..} =+    Prelude.rnf dataflowEndpointGroupArn+      `Prelude.seq` Prelude.rnf dataflowEndpointGroupId
+ gen/Amazonka/GroundStation/Types/DecodeConfig.hs view
@@ -0,0 +1,79 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.GroundStation.Types.DecodeConfig+-- Copyright   : (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.GroundStation.Types.DecodeConfig where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Information about the decode @Config@.+--+-- /See:/ 'newDecodeConfig' smart constructor.+data DecodeConfig = DecodeConfig'+  { -- | Unvalidated JSON of a decode @Config@.+    unvalidatedJSON :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DecodeConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'unvalidatedJSON', 'decodeConfig_unvalidatedJSON' - Unvalidated JSON of a decode @Config@.+newDecodeConfig ::+  -- | 'unvalidatedJSON'+  Prelude.Text ->+  DecodeConfig+newDecodeConfig pUnvalidatedJSON_ =+  DecodeConfig' {unvalidatedJSON = pUnvalidatedJSON_}++-- | Unvalidated JSON of a decode @Config@.+decodeConfig_unvalidatedJSON :: Lens.Lens' DecodeConfig Prelude.Text+decodeConfig_unvalidatedJSON = Lens.lens (\DecodeConfig' {unvalidatedJSON} -> unvalidatedJSON) (\s@DecodeConfig' {} a -> s {unvalidatedJSON = a} :: DecodeConfig)++instance Data.FromJSON DecodeConfig where+  parseJSON =+    Data.withObject+      "DecodeConfig"+      ( \x ->+          DecodeConfig'+            Prelude.<$> (x Data..: "unvalidatedJSON")+      )++instance Prelude.Hashable DecodeConfig where+  hashWithSalt _salt DecodeConfig' {..} =+    _salt `Prelude.hashWithSalt` unvalidatedJSON++instance Prelude.NFData DecodeConfig where+  rnf DecodeConfig' {..} = Prelude.rnf unvalidatedJSON++instance Data.ToJSON DecodeConfig where+  toJSON DecodeConfig' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("unvalidatedJSON" Data..= unvalidatedJSON)+          ]+      )
+ gen/Amazonka/GroundStation/Types/DemodulationConfig.hs view
@@ -0,0 +1,83 @@+{-# 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.GroundStation.Types.DemodulationConfig+-- Copyright   : (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.GroundStation.Types.DemodulationConfig where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Information about the demodulation @Config@.+--+-- /See:/ 'newDemodulationConfig' smart constructor.+data DemodulationConfig = DemodulationConfig'+  { -- | Unvalidated JSON of a demodulation @Config@.+    unvalidatedJSON :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DemodulationConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'unvalidatedJSON', 'demodulationConfig_unvalidatedJSON' - Unvalidated JSON of a demodulation @Config@.+newDemodulationConfig ::+  -- | 'unvalidatedJSON'+  Prelude.Text ->+  DemodulationConfig+newDemodulationConfig pUnvalidatedJSON_ =+  DemodulationConfig'+    { unvalidatedJSON =+        pUnvalidatedJSON_+    }++-- | Unvalidated JSON of a demodulation @Config@.+demodulationConfig_unvalidatedJSON :: Lens.Lens' DemodulationConfig Prelude.Text+demodulationConfig_unvalidatedJSON = Lens.lens (\DemodulationConfig' {unvalidatedJSON} -> unvalidatedJSON) (\s@DemodulationConfig' {} a -> s {unvalidatedJSON = a} :: DemodulationConfig)++instance Data.FromJSON DemodulationConfig where+  parseJSON =+    Data.withObject+      "DemodulationConfig"+      ( \x ->+          DemodulationConfig'+            Prelude.<$> (x Data..: "unvalidatedJSON")+      )++instance Prelude.Hashable DemodulationConfig where+  hashWithSalt _salt DemodulationConfig' {..} =+    _salt `Prelude.hashWithSalt` unvalidatedJSON++instance Prelude.NFData DemodulationConfig where+  rnf DemodulationConfig' {..} =+    Prelude.rnf unvalidatedJSON++instance Data.ToJSON DemodulationConfig where+  toJSON DemodulationConfig' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("unvalidatedJSON" Data..= unvalidatedJSON)+          ]+      )
+ gen/Amazonka/GroundStation/Types/Destination.hs view
@@ -0,0 +1,113 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.GroundStation.Types.Destination+-- Copyright   : (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.GroundStation.Types.Destination where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GroundStation.Types.ConfigCapabilityType+import Amazonka.GroundStation.Types.ConfigDetails+import qualified Amazonka.Prelude as Prelude++-- | Dataflow details for the destination side.+--+-- /See:/ 'newDestination' smart constructor.+data Destination = Destination'+  { -- | Additional details for a @Config@, if type is dataflow endpoint or+    -- antenna demod decode.+    configDetails :: Prelude.Maybe ConfigDetails,+    -- | UUID of a @Config@.+    configId :: Prelude.Maybe Prelude.Text,+    -- | Type of a @Config@.+    configType :: Prelude.Maybe ConfigCapabilityType,+    -- | Region of a dataflow destination.+    dataflowDestinationRegion :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Destination' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'configDetails', 'destination_configDetails' - Additional details for a @Config@, if type is dataflow endpoint or+-- antenna demod decode.+--+-- 'configId', 'destination_configId' - UUID of a @Config@.+--+-- 'configType', 'destination_configType' - Type of a @Config@.+--+-- 'dataflowDestinationRegion', 'destination_dataflowDestinationRegion' - Region of a dataflow destination.+newDestination ::+  Destination+newDestination =+  Destination'+    { configDetails = Prelude.Nothing,+      configId = Prelude.Nothing,+      configType = Prelude.Nothing,+      dataflowDestinationRegion = Prelude.Nothing+    }++-- | Additional details for a @Config@, if type is dataflow endpoint or+-- antenna demod decode.+destination_configDetails :: Lens.Lens' Destination (Prelude.Maybe ConfigDetails)+destination_configDetails = Lens.lens (\Destination' {configDetails} -> configDetails) (\s@Destination' {} a -> s {configDetails = a} :: Destination)++-- | UUID of a @Config@.+destination_configId :: Lens.Lens' Destination (Prelude.Maybe Prelude.Text)+destination_configId = Lens.lens (\Destination' {configId} -> configId) (\s@Destination' {} a -> s {configId = a} :: Destination)++-- | Type of a @Config@.+destination_configType :: Lens.Lens' Destination (Prelude.Maybe ConfigCapabilityType)+destination_configType = Lens.lens (\Destination' {configType} -> configType) (\s@Destination' {} a -> s {configType = a} :: Destination)++-- | Region of a dataflow destination.+destination_dataflowDestinationRegion :: Lens.Lens' Destination (Prelude.Maybe Prelude.Text)+destination_dataflowDestinationRegion = Lens.lens (\Destination' {dataflowDestinationRegion} -> dataflowDestinationRegion) (\s@Destination' {} a -> s {dataflowDestinationRegion = a} :: Destination)++instance Data.FromJSON Destination where+  parseJSON =+    Data.withObject+      "Destination"+      ( \x ->+          Destination'+            Prelude.<$> (x Data..:? "configDetails")+            Prelude.<*> (x Data..:? "configId")+            Prelude.<*> (x Data..:? "configType")+            Prelude.<*> (x Data..:? "dataflowDestinationRegion")+      )++instance Prelude.Hashable Destination where+  hashWithSalt _salt Destination' {..} =+    _salt+      `Prelude.hashWithSalt` configDetails+      `Prelude.hashWithSalt` configId+      `Prelude.hashWithSalt` configType+      `Prelude.hashWithSalt` dataflowDestinationRegion++instance Prelude.NFData Destination where+  rnf Destination' {..} =+    Prelude.rnf configDetails+      `Prelude.seq` Prelude.rnf configId+      `Prelude.seq` Prelude.rnf configType+      `Prelude.seq` Prelude.rnf dataflowDestinationRegion
+ gen/Amazonka/GroundStation/Types/Eirp.hs view
@@ -0,0 +1,94 @@+{-# 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.GroundStation.Types.Eirp+-- Copyright   : (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.GroundStation.Types.Eirp where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GroundStation.Types.EirpUnits+import qualified Amazonka.Prelude as Prelude++-- | Object that represents EIRP.+--+-- /See:/ 'newEirp' smart constructor.+data Eirp = Eirp'+  { -- | Units of an EIRP.+    units :: EirpUnits,+    -- | Value of an EIRP. Valid values are between 20.0 to 50.0 dBW.+    value :: Prelude.Double+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Eirp' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'units', 'eirp_units' - Units of an EIRP.+--+-- 'value', 'eirp_value' - Value of an EIRP. Valid values are between 20.0 to 50.0 dBW.+newEirp ::+  -- | 'units'+  EirpUnits ->+  -- | 'value'+  Prelude.Double ->+  Eirp+newEirp pUnits_ pValue_ =+  Eirp' {units = pUnits_, value = pValue_}++-- | Units of an EIRP.+eirp_units :: Lens.Lens' Eirp EirpUnits+eirp_units = Lens.lens (\Eirp' {units} -> units) (\s@Eirp' {} a -> s {units = a} :: Eirp)++-- | Value of an EIRP. Valid values are between 20.0 to 50.0 dBW.+eirp_value :: Lens.Lens' Eirp Prelude.Double+eirp_value = Lens.lens (\Eirp' {value} -> value) (\s@Eirp' {} a -> s {value = a} :: Eirp)++instance Data.FromJSON Eirp where+  parseJSON =+    Data.withObject+      "Eirp"+      ( \x ->+          Eirp'+            Prelude.<$> (x Data..: "units")+            Prelude.<*> (x Data..: "value")+      )++instance Prelude.Hashable Eirp where+  hashWithSalt _salt Eirp' {..} =+    _salt+      `Prelude.hashWithSalt` units+      `Prelude.hashWithSalt` value++instance Prelude.NFData Eirp where+  rnf Eirp' {..} =+    Prelude.rnf units `Prelude.seq` Prelude.rnf value++instance Data.ToJSON Eirp where+  toJSON Eirp' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("units" Data..= units),+            Prelude.Just ("value" Data..= value)+          ]+      )
+ gen/Amazonka/GroundStation/Types/EirpUnits.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.GroundStation.Types.EirpUnits+-- Copyright   : (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.GroundStation.Types.EirpUnits+  ( EirpUnits+      ( ..,+        EirpUnits_DBW+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype EirpUnits = EirpUnits'+  { fromEirpUnits ::+      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 EirpUnits_DBW :: EirpUnits+pattern EirpUnits_DBW = EirpUnits' "dBW"++{-# COMPLETE+  EirpUnits_DBW,+  EirpUnits'+  #-}
+ gen/Amazonka/GroundStation/Types/Elevation.hs view
@@ -0,0 +1,85 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.GroundStation.Types.Elevation+-- Copyright   : (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.GroundStation.Types.Elevation where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GroundStation.Types.AngleUnits+import qualified Amazonka.Prelude as Prelude++-- | Elevation angle of the satellite in the sky during a contact.+--+-- /See:/ 'newElevation' smart constructor.+data Elevation = Elevation'+  { -- | Elevation angle units.+    unit :: AngleUnits,+    -- | Elevation angle value.+    value :: Prelude.Double+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Elevation' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'unit', 'elevation_unit' - Elevation angle units.+--+-- 'value', 'elevation_value' - Elevation angle value.+newElevation ::+  -- | 'unit'+  AngleUnits ->+  -- | 'value'+  Prelude.Double ->+  Elevation+newElevation pUnit_ pValue_ =+  Elevation' {unit = pUnit_, value = pValue_}++-- | Elevation angle units.+elevation_unit :: Lens.Lens' Elevation AngleUnits+elevation_unit = Lens.lens (\Elevation' {unit} -> unit) (\s@Elevation' {} a -> s {unit = a} :: Elevation)++-- | Elevation angle value.+elevation_value :: Lens.Lens' Elevation Prelude.Double+elevation_value = Lens.lens (\Elevation' {value} -> value) (\s@Elevation' {} a -> s {value = a} :: Elevation)++instance Data.FromJSON Elevation where+  parseJSON =+    Data.withObject+      "Elevation"+      ( \x ->+          Elevation'+            Prelude.<$> (x Data..: "unit")+            Prelude.<*> (x Data..: "value")+      )++instance Prelude.Hashable Elevation where+  hashWithSalt _salt Elevation' {..} =+    _salt+      `Prelude.hashWithSalt` unit+      `Prelude.hashWithSalt` value++instance Prelude.NFData Elevation where+  rnf Elevation' {..} =+    Prelude.rnf unit `Prelude.seq` Prelude.rnf value
+ gen/Amazonka/GroundStation/Types/EndpointDetails.hs view
@@ -0,0 +1,99 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.GroundStation.Types.EndpointDetails+-- Copyright   : (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.GroundStation.Types.EndpointDetails where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GroundStation.Types.DataflowEndpoint+import Amazonka.GroundStation.Types.SecurityDetails+import qualified Amazonka.Prelude as Prelude++-- | Information about the endpoint details.+--+-- /See:/ 'newEndpointDetails' smart constructor.+data EndpointDetails = EndpointDetails'+  { -- | A dataflow endpoint.+    endpoint :: Prelude.Maybe DataflowEndpoint,+    -- | Endpoint security details including a list of subnets, a list of+    -- security groups and a role to connect streams to instances.+    securityDetails :: Prelude.Maybe SecurityDetails+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'EndpointDetails' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'endpoint', 'endpointDetails_endpoint' - A dataflow endpoint.+--+-- 'securityDetails', 'endpointDetails_securityDetails' - Endpoint security details including a list of subnets, a list of+-- security groups and a role to connect streams to instances.+newEndpointDetails ::+  EndpointDetails+newEndpointDetails =+  EndpointDetails'+    { endpoint = Prelude.Nothing,+      securityDetails = Prelude.Nothing+    }++-- | A dataflow endpoint.+endpointDetails_endpoint :: Lens.Lens' EndpointDetails (Prelude.Maybe DataflowEndpoint)+endpointDetails_endpoint = Lens.lens (\EndpointDetails' {endpoint} -> endpoint) (\s@EndpointDetails' {} a -> s {endpoint = a} :: EndpointDetails)++-- | Endpoint security details including a list of subnets, a list of+-- security groups and a role to connect streams to instances.+endpointDetails_securityDetails :: Lens.Lens' EndpointDetails (Prelude.Maybe SecurityDetails)+endpointDetails_securityDetails = Lens.lens (\EndpointDetails' {securityDetails} -> securityDetails) (\s@EndpointDetails' {} a -> s {securityDetails = a} :: EndpointDetails)++instance Data.FromJSON EndpointDetails where+  parseJSON =+    Data.withObject+      "EndpointDetails"+      ( \x ->+          EndpointDetails'+            Prelude.<$> (x Data..:? "endpoint")+            Prelude.<*> (x Data..:? "securityDetails")+      )++instance Prelude.Hashable EndpointDetails where+  hashWithSalt _salt EndpointDetails' {..} =+    _salt+      `Prelude.hashWithSalt` endpoint+      `Prelude.hashWithSalt` securityDetails++instance Prelude.NFData EndpointDetails where+  rnf EndpointDetails' {..} =+    Prelude.rnf endpoint+      `Prelude.seq` Prelude.rnf securityDetails++instance Data.ToJSON EndpointDetails where+  toJSON EndpointDetails' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("endpoint" Data..=) Prelude.<$> endpoint,+            ("securityDetails" Data..=)+              Prelude.<$> securityDetails+          ]+      )
+ gen/Amazonka/GroundStation/Types/EndpointStatus.hs view
@@ -0,0 +1,86 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.GroundStation.Types.EndpointStatus+-- Copyright   : (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.GroundStation.Types.EndpointStatus+  ( EndpointStatus+      ( ..,+        EndpointStatus_Created,+        EndpointStatus_Creating,+        EndpointStatus_Deleted,+        EndpointStatus_Deleting,+        EndpointStatus_Failed+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype EndpointStatus = EndpointStatus'+  { fromEndpointStatus ::+      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 EndpointStatus_Created :: EndpointStatus+pattern EndpointStatus_Created = EndpointStatus' "created"++pattern EndpointStatus_Creating :: EndpointStatus+pattern EndpointStatus_Creating = EndpointStatus' "creating"++pattern EndpointStatus_Deleted :: EndpointStatus+pattern EndpointStatus_Deleted = EndpointStatus' "deleted"++pattern EndpointStatus_Deleting :: EndpointStatus+pattern EndpointStatus_Deleting = EndpointStatus' "deleting"++pattern EndpointStatus_Failed :: EndpointStatus+pattern EndpointStatus_Failed = EndpointStatus' "failed"++{-# COMPLETE+  EndpointStatus_Created,+  EndpointStatus_Creating,+  EndpointStatus_Deleted,+  EndpointStatus_Deleting,+  EndpointStatus_Failed,+  EndpointStatus'+  #-}
+ gen/Amazonka/GroundStation/Types/EphemerisData.hs view
@@ -0,0 +1,82 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.GroundStation.Types.EphemerisData+-- Copyright   : (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.GroundStation.Types.EphemerisData where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GroundStation.Types.OEMEphemeris+import Amazonka.GroundStation.Types.TLEEphemeris+import qualified Amazonka.Prelude as Prelude++-- | Ephemeris data.+--+-- /See:/ 'newEphemerisData' smart constructor.+data EphemerisData = EphemerisData'+  { oem :: Prelude.Maybe OEMEphemeris,+    tle :: Prelude.Maybe TLEEphemeris+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'EphemerisData' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'oem', 'ephemerisData_oem' - Undocumented member.+--+-- 'tle', 'ephemerisData_tle' - Undocumented member.+newEphemerisData ::+  EphemerisData+newEphemerisData =+  EphemerisData'+    { oem = Prelude.Nothing,+      tle = Prelude.Nothing+    }++-- | Undocumented member.+ephemerisData_oem :: Lens.Lens' EphemerisData (Prelude.Maybe OEMEphemeris)+ephemerisData_oem = Lens.lens (\EphemerisData' {oem} -> oem) (\s@EphemerisData' {} a -> s {oem = a} :: EphemerisData)++-- | Undocumented member.+ephemerisData_tle :: Lens.Lens' EphemerisData (Prelude.Maybe TLEEphemeris)+ephemerisData_tle = Lens.lens (\EphemerisData' {tle} -> tle) (\s@EphemerisData' {} a -> s {tle = a} :: EphemerisData)++instance Prelude.Hashable EphemerisData where+  hashWithSalt _salt EphemerisData' {..} =+    _salt+      `Prelude.hashWithSalt` oem+      `Prelude.hashWithSalt` tle++instance Prelude.NFData EphemerisData where+  rnf EphemerisData' {..} =+    Prelude.rnf oem `Prelude.seq` Prelude.rnf tle++instance Data.ToJSON EphemerisData where+  toJSON EphemerisData' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("oem" Data..=) Prelude.<$> oem,+            ("tle" Data..=) Prelude.<$> tle+          ]+      )
+ gen/Amazonka/GroundStation/Types/EphemerisDescription.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.GroundStation.Types.EphemerisDescription+-- Copyright   : (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.GroundStation.Types.EphemerisDescription where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GroundStation.Types.S3Object+import qualified Amazonka.Prelude as Prelude++-- | Description of ephemeris.+--+-- /See:/ 'newEphemerisDescription' smart constructor.+data EphemerisDescription = EphemerisDescription'+  { -- | Supplied ephemeris data.+    ephemerisData :: Prelude.Maybe Prelude.Text,+    -- | Source S3 object used for the ephemeris.+    sourceS3Object :: Prelude.Maybe S3Object+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'EphemerisDescription' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'ephemerisData', 'ephemerisDescription_ephemerisData' - Supplied ephemeris data.+--+-- 'sourceS3Object', 'ephemerisDescription_sourceS3Object' - Source S3 object used for the ephemeris.+newEphemerisDescription ::+  EphemerisDescription+newEphemerisDescription =+  EphemerisDescription'+    { ephemerisData =+        Prelude.Nothing,+      sourceS3Object = Prelude.Nothing+    }++-- | Supplied ephemeris data.+ephemerisDescription_ephemerisData :: Lens.Lens' EphemerisDescription (Prelude.Maybe Prelude.Text)+ephemerisDescription_ephemerisData = Lens.lens (\EphemerisDescription' {ephemerisData} -> ephemerisData) (\s@EphemerisDescription' {} a -> s {ephemerisData = a} :: EphemerisDescription)++-- | Source S3 object used for the ephemeris.+ephemerisDescription_sourceS3Object :: Lens.Lens' EphemerisDescription (Prelude.Maybe S3Object)+ephemerisDescription_sourceS3Object = Lens.lens (\EphemerisDescription' {sourceS3Object} -> sourceS3Object) (\s@EphemerisDescription' {} a -> s {sourceS3Object = a} :: EphemerisDescription)++instance Data.FromJSON EphemerisDescription where+  parseJSON =+    Data.withObject+      "EphemerisDescription"+      ( \x ->+          EphemerisDescription'+            Prelude.<$> (x Data..:? "ephemerisData")+            Prelude.<*> (x Data..:? "sourceS3Object")+      )++instance Prelude.Hashable EphemerisDescription where+  hashWithSalt _salt EphemerisDescription' {..} =+    _salt+      `Prelude.hashWithSalt` ephemerisData+      `Prelude.hashWithSalt` sourceS3Object++instance Prelude.NFData EphemerisDescription where+  rnf EphemerisDescription' {..} =+    Prelude.rnf ephemerisData+      `Prelude.seq` Prelude.rnf sourceS3Object
+ gen/Amazonka/GroundStation/Types/EphemerisIdResponse.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.GroundStation.Types.EphemerisIdResponse+-- Copyright   : (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.GroundStation.Types.EphemerisIdResponse where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | /See:/ 'newEphemerisIdResponse' smart constructor.+data EphemerisIdResponse = EphemerisIdResponse'+  { -- | The AWS Ground Station ephemeris ID.+    ephemerisId :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'EphemerisIdResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'ephemerisId', 'ephemerisIdResponse_ephemerisId' - The AWS Ground Station ephemeris ID.+newEphemerisIdResponse ::+  EphemerisIdResponse+newEphemerisIdResponse =+  EphemerisIdResponse' {ephemerisId = Prelude.Nothing}++-- | The AWS Ground Station ephemeris ID.+ephemerisIdResponse_ephemerisId :: Lens.Lens' EphemerisIdResponse (Prelude.Maybe Prelude.Text)+ephemerisIdResponse_ephemerisId = Lens.lens (\EphemerisIdResponse' {ephemerisId} -> ephemerisId) (\s@EphemerisIdResponse' {} a -> s {ephemerisId = a} :: EphemerisIdResponse)++instance Data.FromJSON EphemerisIdResponse where+  parseJSON =+    Data.withObject+      "EphemerisIdResponse"+      ( \x ->+          EphemerisIdResponse'+            Prelude.<$> (x Data..:? "ephemerisId")+      )++instance Prelude.Hashable EphemerisIdResponse where+  hashWithSalt _salt EphemerisIdResponse' {..} =+    _salt `Prelude.hashWithSalt` ephemerisId++instance Prelude.NFData EphemerisIdResponse where+  rnf EphemerisIdResponse' {..} =+    Prelude.rnf ephemerisId
+ gen/Amazonka/GroundStation/Types/EphemerisInvalidReason.hs view
@@ -0,0 +1,86 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.GroundStation.Types.EphemerisInvalidReason+-- Copyright   : (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.GroundStation.Types.EphemerisInvalidReason+  ( EphemerisInvalidReason+      ( ..,+        EphemerisInvalidReason_KMS_KEY_INVALID,+        EphemerisInvalidReason_METADATA_INVALID,+        EphemerisInvalidReason_TIME_RANGE_INVALID,+        EphemerisInvalidReason_TRAJECTORY_INVALID,+        EphemerisInvalidReason_VALIDATION_ERROR+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype EphemerisInvalidReason = EphemerisInvalidReason'+  { fromEphemerisInvalidReason ::+      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 EphemerisInvalidReason_KMS_KEY_INVALID :: EphemerisInvalidReason+pattern EphemerisInvalidReason_KMS_KEY_INVALID = EphemerisInvalidReason' "KMS_KEY_INVALID"++pattern EphemerisInvalidReason_METADATA_INVALID :: EphemerisInvalidReason+pattern EphemerisInvalidReason_METADATA_INVALID = EphemerisInvalidReason' "METADATA_INVALID"++pattern EphemerisInvalidReason_TIME_RANGE_INVALID :: EphemerisInvalidReason+pattern EphemerisInvalidReason_TIME_RANGE_INVALID = EphemerisInvalidReason' "TIME_RANGE_INVALID"++pattern EphemerisInvalidReason_TRAJECTORY_INVALID :: EphemerisInvalidReason+pattern EphemerisInvalidReason_TRAJECTORY_INVALID = EphemerisInvalidReason' "TRAJECTORY_INVALID"++pattern EphemerisInvalidReason_VALIDATION_ERROR :: EphemerisInvalidReason+pattern EphemerisInvalidReason_VALIDATION_ERROR = EphemerisInvalidReason' "VALIDATION_ERROR"++{-# COMPLETE+  EphemerisInvalidReason_KMS_KEY_INVALID,+  EphemerisInvalidReason_METADATA_INVALID,+  EphemerisInvalidReason_TIME_RANGE_INVALID,+  EphemerisInvalidReason_TRAJECTORY_INVALID,+  EphemerisInvalidReason_VALIDATION_ERROR,+  EphemerisInvalidReason'+  #-}
+ gen/Amazonka/GroundStation/Types/EphemerisItem.hs view
@@ -0,0 +1,167 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.GroundStation.Types.EphemerisItem+-- Copyright   : (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.GroundStation.Types.EphemerisItem where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GroundStation.Types.EphemerisStatus+import Amazonka.GroundStation.Types.S3Object+import qualified Amazonka.Prelude as Prelude++-- | Ephemeris item.+--+-- /See:/ 'newEphemerisItem' smart constructor.+data EphemerisItem = EphemerisItem'+  { -- | The time the ephemeris was uploaded in UTC.+    creationTime :: Prelude.Maybe Data.POSIX,+    -- | Whether or not the ephemeris is enabled.+    enabled :: Prelude.Maybe Prelude.Bool,+    -- | The AWS Ground Station ephemeris ID.+    ephemerisId :: Prelude.Maybe Prelude.Text,+    -- | A name string associated with the ephemeris. Used as a human-readable+    -- identifier for the ephemeris.+    name :: Prelude.Maybe Prelude.Text,+    -- | Customer-provided priority score to establish the order in which+    -- overlapping ephemerides should be used.+    --+    -- The default for customer-provided ephemeris priority is 1, and higher+    -- numbers take precedence.+    --+    -- Priority must be 1 or greater+    priority :: Prelude.Maybe Prelude.Natural,+    -- | Source S3 object used for the ephemeris.+    sourceS3Object :: Prelude.Maybe S3Object,+    -- | The status of the ephemeris.+    status :: Prelude.Maybe EphemerisStatus+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'EphemerisItem' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'creationTime', 'ephemerisItem_creationTime' - The time the ephemeris was uploaded in UTC.+--+-- 'enabled', 'ephemerisItem_enabled' - Whether or not the ephemeris is enabled.+--+-- 'ephemerisId', 'ephemerisItem_ephemerisId' - The AWS Ground Station ephemeris ID.+--+-- 'name', 'ephemerisItem_name' - A name string associated with the ephemeris. Used as a human-readable+-- identifier for the ephemeris.+--+-- 'priority', 'ephemerisItem_priority' - Customer-provided priority score to establish the order in which+-- overlapping ephemerides should be used.+--+-- The default for customer-provided ephemeris priority is 1, and higher+-- numbers take precedence.+--+-- Priority must be 1 or greater+--+-- 'sourceS3Object', 'ephemerisItem_sourceS3Object' - Source S3 object used for the ephemeris.+--+-- 'status', 'ephemerisItem_status' - The status of the ephemeris.+newEphemerisItem ::+  EphemerisItem+newEphemerisItem =+  EphemerisItem'+    { creationTime = Prelude.Nothing,+      enabled = Prelude.Nothing,+      ephemerisId = Prelude.Nothing,+      name = Prelude.Nothing,+      priority = Prelude.Nothing,+      sourceS3Object = Prelude.Nothing,+      status = Prelude.Nothing+    }++-- | The time the ephemeris was uploaded in UTC.+ephemerisItem_creationTime :: Lens.Lens' EphemerisItem (Prelude.Maybe Prelude.UTCTime)+ephemerisItem_creationTime = Lens.lens (\EphemerisItem' {creationTime} -> creationTime) (\s@EphemerisItem' {} a -> s {creationTime = a} :: EphemerisItem) Prelude.. Lens.mapping Data._Time++-- | Whether or not the ephemeris is enabled.+ephemerisItem_enabled :: Lens.Lens' EphemerisItem (Prelude.Maybe Prelude.Bool)+ephemerisItem_enabled = Lens.lens (\EphemerisItem' {enabled} -> enabled) (\s@EphemerisItem' {} a -> s {enabled = a} :: EphemerisItem)++-- | The AWS Ground Station ephemeris ID.+ephemerisItem_ephemerisId :: Lens.Lens' EphemerisItem (Prelude.Maybe Prelude.Text)+ephemerisItem_ephemerisId = Lens.lens (\EphemerisItem' {ephemerisId} -> ephemerisId) (\s@EphemerisItem' {} a -> s {ephemerisId = a} :: EphemerisItem)++-- | A name string associated with the ephemeris. Used as a human-readable+-- identifier for the ephemeris.+ephemerisItem_name :: Lens.Lens' EphemerisItem (Prelude.Maybe Prelude.Text)+ephemerisItem_name = Lens.lens (\EphemerisItem' {name} -> name) (\s@EphemerisItem' {} a -> s {name = a} :: EphemerisItem)++-- | Customer-provided priority score to establish the order in which+-- overlapping ephemerides should be used.+--+-- The default for customer-provided ephemeris priority is 1, and higher+-- numbers take precedence.+--+-- Priority must be 1 or greater+ephemerisItem_priority :: Lens.Lens' EphemerisItem (Prelude.Maybe Prelude.Natural)+ephemerisItem_priority = Lens.lens (\EphemerisItem' {priority} -> priority) (\s@EphemerisItem' {} a -> s {priority = a} :: EphemerisItem)++-- | Source S3 object used for the ephemeris.+ephemerisItem_sourceS3Object :: Lens.Lens' EphemerisItem (Prelude.Maybe S3Object)+ephemerisItem_sourceS3Object = Lens.lens (\EphemerisItem' {sourceS3Object} -> sourceS3Object) (\s@EphemerisItem' {} a -> s {sourceS3Object = a} :: EphemerisItem)++-- | The status of the ephemeris.+ephemerisItem_status :: Lens.Lens' EphemerisItem (Prelude.Maybe EphemerisStatus)+ephemerisItem_status = Lens.lens (\EphemerisItem' {status} -> status) (\s@EphemerisItem' {} a -> s {status = a} :: EphemerisItem)++instance Data.FromJSON EphemerisItem where+  parseJSON =+    Data.withObject+      "EphemerisItem"+      ( \x ->+          EphemerisItem'+            Prelude.<$> (x Data..:? "creationTime")+            Prelude.<*> (x Data..:? "enabled")+            Prelude.<*> (x Data..:? "ephemerisId")+            Prelude.<*> (x Data..:? "name")+            Prelude.<*> (x Data..:? "priority")+            Prelude.<*> (x Data..:? "sourceS3Object")+            Prelude.<*> (x Data..:? "status")+      )++instance Prelude.Hashable EphemerisItem where+  hashWithSalt _salt EphemerisItem' {..} =+    _salt+      `Prelude.hashWithSalt` creationTime+      `Prelude.hashWithSalt` enabled+      `Prelude.hashWithSalt` ephemerisId+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` priority+      `Prelude.hashWithSalt` sourceS3Object+      `Prelude.hashWithSalt` status++instance Prelude.NFData EphemerisItem where+  rnf EphemerisItem' {..} =+    Prelude.rnf creationTime+      `Prelude.seq` Prelude.rnf enabled+      `Prelude.seq` Prelude.rnf ephemerisId+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf priority+      `Prelude.seq` Prelude.rnf sourceS3Object+      `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/GroundStation/Types/EphemerisMetaData.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.GroundStation.Types.EphemerisMetaData+-- Copyright   : (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.GroundStation.Types.EphemerisMetaData where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GroundStation.Types.EphemerisSource+import qualified Amazonka.Prelude as Prelude++-- | Metadata describing a particular ephemeris.+--+-- /See:/ 'newEphemerisMetaData' smart constructor.+data EphemerisMetaData = EphemerisMetaData'+  { -- | UUID of a customer-provided ephemeris.+    --+    -- This field is not populated for default ephemerides from Space Track.+    ephemerisId :: Prelude.Maybe Prelude.Text,+    -- | The epoch of a default, ephemeris from Space Track in UTC.+    --+    -- This field is not populated for customer-provided ephemerides.+    epoch :: Prelude.Maybe Data.POSIX,+    -- | A name string associated with the ephemeris. Used as a human-readable+    -- identifier for the ephemeris.+    --+    -- A name is only returned for customer-provider ephemerides that have a+    -- name associated.+    name :: Prelude.Maybe Prelude.Text,+    -- | The @EphemerisSource@ that generated a given ephemeris.+    source :: EphemerisSource+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'EphemerisMetaData' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'ephemerisId', 'ephemerisMetaData_ephemerisId' - UUID of a customer-provided ephemeris.+--+-- This field is not populated for default ephemerides from Space Track.+--+-- 'epoch', 'ephemerisMetaData_epoch' - The epoch of a default, ephemeris from Space Track in UTC.+--+-- This field is not populated for customer-provided ephemerides.+--+-- 'name', 'ephemerisMetaData_name' - A name string associated with the ephemeris. Used as a human-readable+-- identifier for the ephemeris.+--+-- A name is only returned for customer-provider ephemerides that have a+-- name associated.+--+-- 'source', 'ephemerisMetaData_source' - The @EphemerisSource@ that generated a given ephemeris.+newEphemerisMetaData ::+  -- | 'source'+  EphemerisSource ->+  EphemerisMetaData+newEphemerisMetaData pSource_ =+  EphemerisMetaData'+    { ephemerisId = Prelude.Nothing,+      epoch = Prelude.Nothing,+      name = Prelude.Nothing,+      source = pSource_+    }++-- | UUID of a customer-provided ephemeris.+--+-- This field is not populated for default ephemerides from Space Track.+ephemerisMetaData_ephemerisId :: Lens.Lens' EphemerisMetaData (Prelude.Maybe Prelude.Text)+ephemerisMetaData_ephemerisId = Lens.lens (\EphemerisMetaData' {ephemerisId} -> ephemerisId) (\s@EphemerisMetaData' {} a -> s {ephemerisId = a} :: EphemerisMetaData)++-- | The epoch of a default, ephemeris from Space Track in UTC.+--+-- This field is not populated for customer-provided ephemerides.+ephemerisMetaData_epoch :: Lens.Lens' EphemerisMetaData (Prelude.Maybe Prelude.UTCTime)+ephemerisMetaData_epoch = Lens.lens (\EphemerisMetaData' {epoch} -> epoch) (\s@EphemerisMetaData' {} a -> s {epoch = a} :: EphemerisMetaData) Prelude.. Lens.mapping Data._Time++-- | A name string associated with the ephemeris. Used as a human-readable+-- identifier for the ephemeris.+--+-- A name is only returned for customer-provider ephemerides that have a+-- name associated.+ephemerisMetaData_name :: Lens.Lens' EphemerisMetaData (Prelude.Maybe Prelude.Text)+ephemerisMetaData_name = Lens.lens (\EphemerisMetaData' {name} -> name) (\s@EphemerisMetaData' {} a -> s {name = a} :: EphemerisMetaData)++-- | The @EphemerisSource@ that generated a given ephemeris.+ephemerisMetaData_source :: Lens.Lens' EphemerisMetaData EphemerisSource+ephemerisMetaData_source = Lens.lens (\EphemerisMetaData' {source} -> source) (\s@EphemerisMetaData' {} a -> s {source = a} :: EphemerisMetaData)++instance Data.FromJSON EphemerisMetaData where+  parseJSON =+    Data.withObject+      "EphemerisMetaData"+      ( \x ->+          EphemerisMetaData'+            Prelude.<$> (x Data..:? "ephemerisId")+            Prelude.<*> (x Data..:? "epoch")+            Prelude.<*> (x Data..:? "name")+            Prelude.<*> (x Data..: "source")+      )++instance Prelude.Hashable EphemerisMetaData where+  hashWithSalt _salt EphemerisMetaData' {..} =+    _salt+      `Prelude.hashWithSalt` ephemerisId+      `Prelude.hashWithSalt` epoch+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` source++instance Prelude.NFData EphemerisMetaData where+  rnf EphemerisMetaData' {..} =+    Prelude.rnf ephemerisId+      `Prelude.seq` Prelude.rnf epoch+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf source
+ gen/Amazonka/GroundStation/Types/EphemerisSource.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.GroundStation.Types.EphemerisSource+-- Copyright   : (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.GroundStation.Types.EphemerisSource+  ( EphemerisSource+      ( ..,+        EphemerisSource_CUSTOMER_PROVIDED,+        EphemerisSource_SPACE_TRACK+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype EphemerisSource = EphemerisSource'+  { fromEphemerisSource ::+      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 EphemerisSource_CUSTOMER_PROVIDED :: EphemerisSource+pattern EphemerisSource_CUSTOMER_PROVIDED = EphemerisSource' "CUSTOMER_PROVIDED"++pattern EphemerisSource_SPACE_TRACK :: EphemerisSource+pattern EphemerisSource_SPACE_TRACK = EphemerisSource' "SPACE_TRACK"++{-# COMPLETE+  EphemerisSource_CUSTOMER_PROVIDED,+  EphemerisSource_SPACE_TRACK,+  EphemerisSource'+  #-}
+ gen/Amazonka/GroundStation/Types/EphemerisStatus.hs view
@@ -0,0 +1,91 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.GroundStation.Types.EphemerisStatus+-- Copyright   : (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.GroundStation.Types.EphemerisStatus+  ( EphemerisStatus+      ( ..,+        EphemerisStatus_DISABLED,+        EphemerisStatus_ENABLED,+        EphemerisStatus_ERROR,+        EphemerisStatus_EXPIRED,+        EphemerisStatus_INVALID,+        EphemerisStatus_VALIDATING+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype EphemerisStatus = EphemerisStatus'+  { fromEphemerisStatus ::+      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 EphemerisStatus_DISABLED :: EphemerisStatus+pattern EphemerisStatus_DISABLED = EphemerisStatus' "DISABLED"++pattern EphemerisStatus_ENABLED :: EphemerisStatus+pattern EphemerisStatus_ENABLED = EphemerisStatus' "ENABLED"++pattern EphemerisStatus_ERROR :: EphemerisStatus+pattern EphemerisStatus_ERROR = EphemerisStatus' "ERROR"++pattern EphemerisStatus_EXPIRED :: EphemerisStatus+pattern EphemerisStatus_EXPIRED = EphemerisStatus' "EXPIRED"++pattern EphemerisStatus_INVALID :: EphemerisStatus+pattern EphemerisStatus_INVALID = EphemerisStatus' "INVALID"++pattern EphemerisStatus_VALIDATING :: EphemerisStatus+pattern EphemerisStatus_VALIDATING = EphemerisStatus' "VALIDATING"++{-# COMPLETE+  EphemerisStatus_DISABLED,+  EphemerisStatus_ENABLED,+  EphemerisStatus_ERROR,+  EphemerisStatus_EXPIRED,+  EphemerisStatus_INVALID,+  EphemerisStatus_VALIDATING,+  EphemerisStatus'+  #-}
+ gen/Amazonka/GroundStation/Types/EphemerisTypeDescription.hs view
@@ -0,0 +1,82 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.GroundStation.Types.EphemerisTypeDescription+-- Copyright   : (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.GroundStation.Types.EphemerisTypeDescription where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GroundStation.Types.EphemerisDescription+import qualified Amazonka.Prelude as Prelude++-- |+--+-- /See:/ 'newEphemerisTypeDescription' smart constructor.+data EphemerisTypeDescription = EphemerisTypeDescription'+  { oem :: Prelude.Maybe EphemerisDescription,+    tle :: Prelude.Maybe EphemerisDescription+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'EphemerisTypeDescription' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'oem', 'ephemerisTypeDescription_oem' - Undocumented member.+--+-- 'tle', 'ephemerisTypeDescription_tle' - Undocumented member.+newEphemerisTypeDescription ::+  EphemerisTypeDescription+newEphemerisTypeDescription =+  EphemerisTypeDescription'+    { oem = Prelude.Nothing,+      tle = Prelude.Nothing+    }++-- | Undocumented member.+ephemerisTypeDescription_oem :: Lens.Lens' EphemerisTypeDescription (Prelude.Maybe EphemerisDescription)+ephemerisTypeDescription_oem = Lens.lens (\EphemerisTypeDescription' {oem} -> oem) (\s@EphemerisTypeDescription' {} a -> s {oem = a} :: EphemerisTypeDescription)++-- | Undocumented member.+ephemerisTypeDescription_tle :: Lens.Lens' EphemerisTypeDescription (Prelude.Maybe EphemerisDescription)+ephemerisTypeDescription_tle = Lens.lens (\EphemerisTypeDescription' {tle} -> tle) (\s@EphemerisTypeDescription' {} a -> s {tle = a} :: EphemerisTypeDescription)++instance Data.FromJSON EphemerisTypeDescription where+  parseJSON =+    Data.withObject+      "EphemerisTypeDescription"+      ( \x ->+          EphemerisTypeDescription'+            Prelude.<$> (x Data..:? "oem")+            Prelude.<*> (x Data..:? "tle")+      )++instance Prelude.Hashable EphemerisTypeDescription where+  hashWithSalt _salt EphemerisTypeDescription' {..} =+    _salt+      `Prelude.hashWithSalt` oem+      `Prelude.hashWithSalt` tle++instance Prelude.NFData EphemerisTypeDescription where+  rnf EphemerisTypeDescription' {..} =+    Prelude.rnf oem `Prelude.seq` Prelude.rnf tle
+ gen/Amazonka/GroundStation/Types/Frequency.hs view
@@ -0,0 +1,97 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.GroundStation.Types.Frequency+-- Copyright   : (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.GroundStation.Types.Frequency where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GroundStation.Types.FrequencyUnits+import qualified Amazonka.Prelude as Prelude++-- | Object that describes the frequency.+--+-- /See:/ 'newFrequency' smart constructor.+data Frequency = Frequency'+  { -- | Frequency units.+    units :: FrequencyUnits,+    -- | Frequency value. Valid values are between 2200 to 2300 MHz and 7750 to+    -- 8400 MHz for downlink and 2025 to 2120 MHz for uplink.+    value :: Prelude.Double+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Frequency' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'units', 'frequency_units' - Frequency units.+--+-- 'value', 'frequency_value' - Frequency value. Valid values are between 2200 to 2300 MHz and 7750 to+-- 8400 MHz for downlink and 2025 to 2120 MHz for uplink.+newFrequency ::+  -- | 'units'+  FrequencyUnits ->+  -- | 'value'+  Prelude.Double ->+  Frequency+newFrequency pUnits_ pValue_ =+  Frequency' {units = pUnits_, value = pValue_}++-- | Frequency units.+frequency_units :: Lens.Lens' Frequency FrequencyUnits+frequency_units = Lens.lens (\Frequency' {units} -> units) (\s@Frequency' {} a -> s {units = a} :: Frequency)++-- | Frequency value. Valid values are between 2200 to 2300 MHz and 7750 to+-- 8400 MHz for downlink and 2025 to 2120 MHz for uplink.+frequency_value :: Lens.Lens' Frequency Prelude.Double+frequency_value = Lens.lens (\Frequency' {value} -> value) (\s@Frequency' {} a -> s {value = a} :: Frequency)++instance Data.FromJSON Frequency where+  parseJSON =+    Data.withObject+      "Frequency"+      ( \x ->+          Frequency'+            Prelude.<$> (x Data..: "units")+            Prelude.<*> (x Data..: "value")+      )++instance Prelude.Hashable Frequency where+  hashWithSalt _salt Frequency' {..} =+    _salt+      `Prelude.hashWithSalt` units+      `Prelude.hashWithSalt` value++instance Prelude.NFData Frequency where+  rnf Frequency' {..} =+    Prelude.rnf units `Prelude.seq` Prelude.rnf value++instance Data.ToJSON Frequency where+  toJSON Frequency' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("units" Data..= units),+            Prelude.Just ("value" Data..= value)+          ]+      )
+ gen/Amazonka/GroundStation/Types/FrequencyBandwidth.hs view
@@ -0,0 +1,127 @@+{-# 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.GroundStation.Types.FrequencyBandwidth+-- Copyright   : (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.GroundStation.Types.FrequencyBandwidth where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GroundStation.Types.BandwidthUnits+import qualified Amazonka.Prelude as Prelude++-- | Object that describes the frequency bandwidth.+--+-- /See:/ 'newFrequencyBandwidth' smart constructor.+data FrequencyBandwidth = FrequencyBandwidth'+  { -- | Frequency bandwidth units.+    units :: BandwidthUnits,+    -- | Frequency bandwidth value. AWS Ground Station currently has the+    -- following bandwidth limitations:+    --+    -- -   For @AntennaDownlinkDemodDecodeconfig@, valid values are between 125+    --     kHz to 650 MHz.+    --+    -- -   For @AntennaDownlinkconfig@, valid values are between 10 kHz to 54+    --     MHz.+    --+    -- -   For @AntennaUplinkConfig@, valid values are between 10 kHz to 54+    --     MHz.+    value :: Prelude.Double+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'FrequencyBandwidth' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'units', 'frequencyBandwidth_units' - Frequency bandwidth units.+--+-- 'value', 'frequencyBandwidth_value' - Frequency bandwidth value. AWS Ground Station currently has the+-- following bandwidth limitations:+--+-- -   For @AntennaDownlinkDemodDecodeconfig@, valid values are between 125+--     kHz to 650 MHz.+--+-- -   For @AntennaDownlinkconfig@, valid values are between 10 kHz to 54+--     MHz.+--+-- -   For @AntennaUplinkConfig@, valid values are between 10 kHz to 54+--     MHz.+newFrequencyBandwidth ::+  -- | 'units'+  BandwidthUnits ->+  -- | 'value'+  Prelude.Double ->+  FrequencyBandwidth+newFrequencyBandwidth pUnits_ pValue_ =+  FrequencyBandwidth'+    { units = pUnits_,+      value = pValue_+    }++-- | Frequency bandwidth units.+frequencyBandwidth_units :: Lens.Lens' FrequencyBandwidth BandwidthUnits+frequencyBandwidth_units = Lens.lens (\FrequencyBandwidth' {units} -> units) (\s@FrequencyBandwidth' {} a -> s {units = a} :: FrequencyBandwidth)++-- | Frequency bandwidth value. AWS Ground Station currently has the+-- following bandwidth limitations:+--+-- -   For @AntennaDownlinkDemodDecodeconfig@, valid values are between 125+--     kHz to 650 MHz.+--+-- -   For @AntennaDownlinkconfig@, valid values are between 10 kHz to 54+--     MHz.+--+-- -   For @AntennaUplinkConfig@, valid values are between 10 kHz to 54+--     MHz.+frequencyBandwidth_value :: Lens.Lens' FrequencyBandwidth Prelude.Double+frequencyBandwidth_value = Lens.lens (\FrequencyBandwidth' {value} -> value) (\s@FrequencyBandwidth' {} a -> s {value = a} :: FrequencyBandwidth)++instance Data.FromJSON FrequencyBandwidth where+  parseJSON =+    Data.withObject+      "FrequencyBandwidth"+      ( \x ->+          FrequencyBandwidth'+            Prelude.<$> (x Data..: "units")+            Prelude.<*> (x Data..: "value")+      )++instance Prelude.Hashable FrequencyBandwidth where+  hashWithSalt _salt FrequencyBandwidth' {..} =+    _salt+      `Prelude.hashWithSalt` units+      `Prelude.hashWithSalt` value++instance Prelude.NFData FrequencyBandwidth where+  rnf FrequencyBandwidth' {..} =+    Prelude.rnf units `Prelude.seq` Prelude.rnf value++instance Data.ToJSON FrequencyBandwidth where+  toJSON FrequencyBandwidth' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("units" Data..= units),+            Prelude.Just ("value" Data..= value)+          ]+      )
+ gen/Amazonka/GroundStation/Types/FrequencyUnits.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.GroundStation.Types.FrequencyUnits+-- Copyright   : (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.GroundStation.Types.FrequencyUnits+  ( FrequencyUnits+      ( ..,+        FrequencyUnits_GHz,+        FrequencyUnits_KHz,+        FrequencyUnits_MHz+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype FrequencyUnits = FrequencyUnits'+  { fromFrequencyUnits ::+      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 FrequencyUnits_GHz :: FrequencyUnits+pattern FrequencyUnits_GHz = FrequencyUnits' "GHz"++pattern FrequencyUnits_KHz :: FrequencyUnits+pattern FrequencyUnits_KHz = FrequencyUnits' "kHz"++pattern FrequencyUnits_MHz :: FrequencyUnits+pattern FrequencyUnits_MHz = FrequencyUnits' "MHz"++{-# COMPLETE+  FrequencyUnits_GHz,+  FrequencyUnits_KHz,+  FrequencyUnits_MHz,+  FrequencyUnits'+  #-}
+ gen/Amazonka/GroundStation/Types/GroundStationData.hs view
@@ -0,0 +1,97 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.GroundStation.Types.GroundStationData+-- Copyright   : (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.GroundStation.Types.GroundStationData where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Information about the ground station data.+--+-- /See:/ 'newGroundStationData' smart constructor.+data GroundStationData = GroundStationData'+  { -- | UUID of a ground station.+    groundStationId :: Prelude.Maybe Prelude.Text,+    -- | Name of a ground station.+    groundStationName :: Prelude.Maybe Prelude.Text,+    -- | Ground station Region.+    region :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GroundStationData' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'groundStationId', 'groundStationData_groundStationId' - UUID of a ground station.+--+-- 'groundStationName', 'groundStationData_groundStationName' - Name of a ground station.+--+-- 'region', 'groundStationData_region' - Ground station Region.+newGroundStationData ::+  GroundStationData+newGroundStationData =+  GroundStationData'+    { groundStationId =+        Prelude.Nothing,+      groundStationName = Prelude.Nothing,+      region = Prelude.Nothing+    }++-- | UUID of a ground station.+groundStationData_groundStationId :: Lens.Lens' GroundStationData (Prelude.Maybe Prelude.Text)+groundStationData_groundStationId = Lens.lens (\GroundStationData' {groundStationId} -> groundStationId) (\s@GroundStationData' {} a -> s {groundStationId = a} :: GroundStationData)++-- | Name of a ground station.+groundStationData_groundStationName :: Lens.Lens' GroundStationData (Prelude.Maybe Prelude.Text)+groundStationData_groundStationName = Lens.lens (\GroundStationData' {groundStationName} -> groundStationName) (\s@GroundStationData' {} a -> s {groundStationName = a} :: GroundStationData)++-- | Ground station Region.+groundStationData_region :: Lens.Lens' GroundStationData (Prelude.Maybe Prelude.Text)+groundStationData_region = Lens.lens (\GroundStationData' {region} -> region) (\s@GroundStationData' {} a -> s {region = a} :: GroundStationData)++instance Data.FromJSON GroundStationData where+  parseJSON =+    Data.withObject+      "GroundStationData"+      ( \x ->+          GroundStationData'+            Prelude.<$> (x Data..:? "groundStationId")+            Prelude.<*> (x Data..:? "groundStationName")+            Prelude.<*> (x Data..:? "region")+      )++instance Prelude.Hashable GroundStationData where+  hashWithSalt _salt GroundStationData' {..} =+    _salt+      `Prelude.hashWithSalt` groundStationId+      `Prelude.hashWithSalt` groundStationName+      `Prelude.hashWithSalt` region++instance Prelude.NFData GroundStationData where+  rnf GroundStationData' {..} =+    Prelude.rnf groundStationId+      `Prelude.seq` Prelude.rnf groundStationName+      `Prelude.seq` Prelude.rnf region
+ gen/Amazonka/GroundStation/Types/MissionProfileIdResponse.hs view
@@ -0,0 +1,72 @@+{-# 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.GroundStation.Types.MissionProfileIdResponse+-- Copyright   : (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.GroundStation.Types.MissionProfileIdResponse where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- |+--+-- /See:/ 'newMissionProfileIdResponse' smart constructor.+data MissionProfileIdResponse = MissionProfileIdResponse'+  { -- | UUID of a mission profile.+    missionProfileId :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'MissionProfileIdResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'missionProfileId', 'missionProfileIdResponse_missionProfileId' - UUID of a mission profile.+newMissionProfileIdResponse ::+  MissionProfileIdResponse+newMissionProfileIdResponse =+  MissionProfileIdResponse'+    { missionProfileId =+        Prelude.Nothing+    }++-- | UUID of a mission profile.+missionProfileIdResponse_missionProfileId :: Lens.Lens' MissionProfileIdResponse (Prelude.Maybe Prelude.Text)+missionProfileIdResponse_missionProfileId = Lens.lens (\MissionProfileIdResponse' {missionProfileId} -> missionProfileId) (\s@MissionProfileIdResponse' {} a -> s {missionProfileId = a} :: MissionProfileIdResponse)++instance Data.FromJSON MissionProfileIdResponse where+  parseJSON =+    Data.withObject+      "MissionProfileIdResponse"+      ( \x ->+          MissionProfileIdResponse'+            Prelude.<$> (x Data..:? "missionProfileId")+      )++instance Prelude.Hashable MissionProfileIdResponse where+  hashWithSalt _salt MissionProfileIdResponse' {..} =+    _salt `Prelude.hashWithSalt` missionProfileId++instance Prelude.NFData MissionProfileIdResponse where+  rnf MissionProfileIdResponse' {..} =+    Prelude.rnf missionProfileId
+ gen/Amazonka/GroundStation/Types/MissionProfileListItem.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.GroundStation.Types.MissionProfileListItem+-- Copyright   : (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.GroundStation.Types.MissionProfileListItem 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++-- | Item in a list of mission profiles.+--+-- /See:/ 'newMissionProfileListItem' smart constructor.+data MissionProfileListItem = MissionProfileListItem'+  { -- | ARN of a mission profile.+    missionProfileArn :: Prelude.Maybe Prelude.Text,+    -- | UUID of a mission profile.+    missionProfileId :: Prelude.Maybe Prelude.Text,+    -- | Name of a mission profile.+    name :: Prelude.Maybe Prelude.Text,+    -- | Region of a mission profile.+    region :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'MissionProfileListItem' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'missionProfileArn', 'missionProfileListItem_missionProfileArn' - ARN of a mission profile.+--+-- 'missionProfileId', 'missionProfileListItem_missionProfileId' - UUID of a mission profile.+--+-- 'name', 'missionProfileListItem_name' - Name of a mission profile.+--+-- 'region', 'missionProfileListItem_region' - Region of a mission profile.+newMissionProfileListItem ::+  MissionProfileListItem+newMissionProfileListItem =+  MissionProfileListItem'+    { missionProfileArn =+        Prelude.Nothing,+      missionProfileId = Prelude.Nothing,+      name = Prelude.Nothing,+      region = Prelude.Nothing+    }++-- | ARN of a mission profile.+missionProfileListItem_missionProfileArn :: Lens.Lens' MissionProfileListItem (Prelude.Maybe Prelude.Text)+missionProfileListItem_missionProfileArn = Lens.lens (\MissionProfileListItem' {missionProfileArn} -> missionProfileArn) (\s@MissionProfileListItem' {} a -> s {missionProfileArn = a} :: MissionProfileListItem)++-- | UUID of a mission profile.+missionProfileListItem_missionProfileId :: Lens.Lens' MissionProfileListItem (Prelude.Maybe Prelude.Text)+missionProfileListItem_missionProfileId = Lens.lens (\MissionProfileListItem' {missionProfileId} -> missionProfileId) (\s@MissionProfileListItem' {} a -> s {missionProfileId = a} :: MissionProfileListItem)++-- | Name of a mission profile.+missionProfileListItem_name :: Lens.Lens' MissionProfileListItem (Prelude.Maybe Prelude.Text)+missionProfileListItem_name = Lens.lens (\MissionProfileListItem' {name} -> name) (\s@MissionProfileListItem' {} a -> s {name = a} :: MissionProfileListItem)++-- | Region of a mission profile.+missionProfileListItem_region :: Lens.Lens' MissionProfileListItem (Prelude.Maybe Prelude.Text)+missionProfileListItem_region = Lens.lens (\MissionProfileListItem' {region} -> region) (\s@MissionProfileListItem' {} a -> s {region = a} :: MissionProfileListItem)++instance Data.FromJSON MissionProfileListItem where+  parseJSON =+    Data.withObject+      "MissionProfileListItem"+      ( \x ->+          MissionProfileListItem'+            Prelude.<$> (x Data..:? "missionProfileArn")+            Prelude.<*> (x Data..:? "missionProfileId")+            Prelude.<*> (x Data..:? "name")+            Prelude.<*> (x Data..:? "region")+      )++instance Prelude.Hashable MissionProfileListItem where+  hashWithSalt _salt MissionProfileListItem' {..} =+    _salt+      `Prelude.hashWithSalt` missionProfileArn+      `Prelude.hashWithSalt` missionProfileId+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` region++instance Prelude.NFData MissionProfileListItem where+  rnf MissionProfileListItem' {..} =+    Prelude.rnf missionProfileArn+      `Prelude.seq` Prelude.rnf missionProfileId+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf region
+ gen/Amazonka/GroundStation/Types/OEMEphemeris.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.GroundStation.Types.OEMEphemeris+-- Copyright   : (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.GroundStation.Types.OEMEphemeris where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GroundStation.Types.S3Object+import qualified Amazonka.Prelude as Prelude++-- | Ephemeris data in Orbit Ephemeris Message (OEM) format.+--+-- /See:/ 'newOEMEphemeris' smart constructor.+data OEMEphemeris = OEMEphemeris'+  { -- | The data for an OEM ephemeris, supplied directly in the request rather+    -- than through an S3 object.+    oemData :: Prelude.Maybe Prelude.Text,+    -- | Identifies the S3 object to be used as the ephemeris.+    s3Object :: Prelude.Maybe S3Object+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'OEMEphemeris' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'oemData', 'oEMEphemeris_oemData' - The data for an OEM ephemeris, supplied directly in the request rather+-- than through an S3 object.+--+-- 's3Object', 'oEMEphemeris_s3Object' - Identifies the S3 object to be used as the ephemeris.+newOEMEphemeris ::+  OEMEphemeris+newOEMEphemeris =+  OEMEphemeris'+    { oemData = Prelude.Nothing,+      s3Object = Prelude.Nothing+    }++-- | The data for an OEM ephemeris, supplied directly in the request rather+-- than through an S3 object.+oEMEphemeris_oemData :: Lens.Lens' OEMEphemeris (Prelude.Maybe Prelude.Text)+oEMEphemeris_oemData = Lens.lens (\OEMEphemeris' {oemData} -> oemData) (\s@OEMEphemeris' {} a -> s {oemData = a} :: OEMEphemeris)++-- | Identifies the S3 object to be used as the ephemeris.+oEMEphemeris_s3Object :: Lens.Lens' OEMEphemeris (Prelude.Maybe S3Object)+oEMEphemeris_s3Object = Lens.lens (\OEMEphemeris' {s3Object} -> s3Object) (\s@OEMEphemeris' {} a -> s {s3Object = a} :: OEMEphemeris)++instance Prelude.Hashable OEMEphemeris where+  hashWithSalt _salt OEMEphemeris' {..} =+    _salt+      `Prelude.hashWithSalt` oemData+      `Prelude.hashWithSalt` s3Object++instance Prelude.NFData OEMEphemeris where+  rnf OEMEphemeris' {..} =+    Prelude.rnf oemData+      `Prelude.seq` Prelude.rnf s3Object++instance Data.ToJSON OEMEphemeris where+  toJSON OEMEphemeris' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("oemData" Data..=) Prelude.<$> oemData,+            ("s3Object" Data..=) Prelude.<$> s3Object+          ]+      )
+ gen/Amazonka/GroundStation/Types/Polarization.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.GroundStation.Types.Polarization+-- Copyright   : (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.GroundStation.Types.Polarization+  ( Polarization+      ( ..,+        Polarization_LEFT_HAND,+        Polarization_NONE,+        Polarization_RIGHT_HAND+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype Polarization = Polarization'+  { fromPolarization ::+      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 Polarization_LEFT_HAND :: Polarization+pattern Polarization_LEFT_HAND = Polarization' "LEFT_HAND"++pattern Polarization_NONE :: Polarization+pattern Polarization_NONE = Polarization' "NONE"++pattern Polarization_RIGHT_HAND :: Polarization+pattern Polarization_RIGHT_HAND = Polarization' "RIGHT_HAND"++{-# COMPLETE+  Polarization_LEFT_HAND,+  Polarization_NONE,+  Polarization_RIGHT_HAND,+  Polarization'+  #-}
+ gen/Amazonka/GroundStation/Types/S3Object.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.GroundStation.Types.S3Object+-- Copyright   : (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.GroundStation.Types.S3Object where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Object stored in S3 containing ephemeris data.+--+-- /See:/ 'newS3Object' smart constructor.+data S3Object = S3Object'+  { -- | An Amazon S3 Bucket name.+    bucket :: Prelude.Maybe Prelude.Text,+    -- | An Amazon S3 key for the ephemeris.+    key :: Prelude.Maybe Prelude.Text,+    -- | For versioned S3 objects, the version to use for the ephemeris.+    version :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'S3Object' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'bucket', 's3Object_bucket' - An Amazon S3 Bucket name.+--+-- 'key', 's3Object_key' - An Amazon S3 key for the ephemeris.+--+-- 'version', 's3Object_version' - For versioned S3 objects, the version to use for the ephemeris.+newS3Object ::+  S3Object+newS3Object =+  S3Object'+    { bucket = Prelude.Nothing,+      key = Prelude.Nothing,+      version = Prelude.Nothing+    }++-- | An Amazon S3 Bucket name.+s3Object_bucket :: Lens.Lens' S3Object (Prelude.Maybe Prelude.Text)+s3Object_bucket = Lens.lens (\S3Object' {bucket} -> bucket) (\s@S3Object' {} a -> s {bucket = a} :: S3Object)++-- | An Amazon S3 key for the ephemeris.+s3Object_key :: Lens.Lens' S3Object (Prelude.Maybe Prelude.Text)+s3Object_key = Lens.lens (\S3Object' {key} -> key) (\s@S3Object' {} a -> s {key = a} :: S3Object)++-- | For versioned S3 objects, the version to use for the ephemeris.+s3Object_version :: Lens.Lens' S3Object (Prelude.Maybe Prelude.Text)+s3Object_version = Lens.lens (\S3Object' {version} -> version) (\s@S3Object' {} a -> s {version = a} :: S3Object)++instance Data.FromJSON S3Object where+  parseJSON =+    Data.withObject+      "S3Object"+      ( \x ->+          S3Object'+            Prelude.<$> (x Data..:? "bucket")+            Prelude.<*> (x Data..:? "key")+            Prelude.<*> (x Data..:? "version")+      )++instance Prelude.Hashable S3Object where+  hashWithSalt _salt S3Object' {..} =+    _salt+      `Prelude.hashWithSalt` bucket+      `Prelude.hashWithSalt` key+      `Prelude.hashWithSalt` version++instance Prelude.NFData S3Object where+  rnf S3Object' {..} =+    Prelude.rnf bucket+      `Prelude.seq` Prelude.rnf key+      `Prelude.seq` Prelude.rnf version++instance Data.ToJSON S3Object where+  toJSON S3Object' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("bucket" Data..=) Prelude.<$> bucket,+            ("key" Data..=) Prelude.<$> key,+            ("version" Data..=) Prelude.<$> version+          ]+      )
+ gen/Amazonka/GroundStation/Types/S3RecordingConfig.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.GroundStation.Types.S3RecordingConfig+-- Copyright   : (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.GroundStation.Types.S3RecordingConfig where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Information about an S3 recording @Config@.+--+-- /See:/ 'newS3RecordingConfig' smart constructor.+data S3RecordingConfig = S3RecordingConfig'+  { -- | S3 Key prefix to prefice data files.+    prefix :: Prelude.Maybe Prelude.Text,+    -- | ARN of the bucket to record to.+    bucketArn :: Prelude.Text,+    -- | ARN of the role Ground Station assumes to write data to the bucket.+    roleArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'S3RecordingConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'prefix', 's3RecordingConfig_prefix' - S3 Key prefix to prefice data files.+--+-- 'bucketArn', 's3RecordingConfig_bucketArn' - ARN of the bucket to record to.+--+-- 'roleArn', 's3RecordingConfig_roleArn' - ARN of the role Ground Station assumes to write data to the bucket.+newS3RecordingConfig ::+  -- | 'bucketArn'+  Prelude.Text ->+  -- | 'roleArn'+  Prelude.Text ->+  S3RecordingConfig+newS3RecordingConfig pBucketArn_ pRoleArn_ =+  S3RecordingConfig'+    { prefix = Prelude.Nothing,+      bucketArn = pBucketArn_,+      roleArn = pRoleArn_+    }++-- | S3 Key prefix to prefice data files.+s3RecordingConfig_prefix :: Lens.Lens' S3RecordingConfig (Prelude.Maybe Prelude.Text)+s3RecordingConfig_prefix = Lens.lens (\S3RecordingConfig' {prefix} -> prefix) (\s@S3RecordingConfig' {} a -> s {prefix = a} :: S3RecordingConfig)++-- | ARN of the bucket to record to.+s3RecordingConfig_bucketArn :: Lens.Lens' S3RecordingConfig Prelude.Text+s3RecordingConfig_bucketArn = Lens.lens (\S3RecordingConfig' {bucketArn} -> bucketArn) (\s@S3RecordingConfig' {} a -> s {bucketArn = a} :: S3RecordingConfig)++-- | ARN of the role Ground Station assumes to write data to the bucket.+s3RecordingConfig_roleArn :: Lens.Lens' S3RecordingConfig Prelude.Text+s3RecordingConfig_roleArn = Lens.lens (\S3RecordingConfig' {roleArn} -> roleArn) (\s@S3RecordingConfig' {} a -> s {roleArn = a} :: S3RecordingConfig)++instance Data.FromJSON S3RecordingConfig where+  parseJSON =+    Data.withObject+      "S3RecordingConfig"+      ( \x ->+          S3RecordingConfig'+            Prelude.<$> (x Data..:? "prefix")+            Prelude.<*> (x Data..: "bucketArn")+            Prelude.<*> (x Data..: "roleArn")+      )++instance Prelude.Hashable S3RecordingConfig where+  hashWithSalt _salt S3RecordingConfig' {..} =+    _salt+      `Prelude.hashWithSalt` prefix+      `Prelude.hashWithSalt` bucketArn+      `Prelude.hashWithSalt` roleArn++instance Prelude.NFData S3RecordingConfig where+  rnf S3RecordingConfig' {..} =+    Prelude.rnf prefix+      `Prelude.seq` Prelude.rnf bucketArn+      `Prelude.seq` Prelude.rnf roleArn++instance Data.ToJSON S3RecordingConfig where+  toJSON S3RecordingConfig' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("prefix" Data..=) Prelude.<$> prefix,+            Prelude.Just ("bucketArn" Data..= bucketArn),+            Prelude.Just ("roleArn" Data..= roleArn)+          ]+      )
+ gen/Amazonka/GroundStation/Types/S3RecordingDetails.hs view
@@ -0,0 +1,84 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.GroundStation.Types.S3RecordingDetails+-- Copyright   : (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.GroundStation.Types.S3RecordingDetails 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++-- | Details about an S3 recording @Config@ used in a contact.+--+-- /See:/ 'newS3RecordingDetails' smart constructor.+data S3RecordingDetails = S3RecordingDetails'+  { -- | ARN of the bucket used.+    bucketArn :: Prelude.Maybe Prelude.Text,+    -- | Key template used for the S3 Recording Configuration+    keyTemplate :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'S3RecordingDetails' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'bucketArn', 's3RecordingDetails_bucketArn' - ARN of the bucket used.+--+-- 'keyTemplate', 's3RecordingDetails_keyTemplate' - Key template used for the S3 Recording Configuration+newS3RecordingDetails ::+  S3RecordingDetails+newS3RecordingDetails =+  S3RecordingDetails'+    { bucketArn = Prelude.Nothing,+      keyTemplate = Prelude.Nothing+    }++-- | ARN of the bucket used.+s3RecordingDetails_bucketArn :: Lens.Lens' S3RecordingDetails (Prelude.Maybe Prelude.Text)+s3RecordingDetails_bucketArn = Lens.lens (\S3RecordingDetails' {bucketArn} -> bucketArn) (\s@S3RecordingDetails' {} a -> s {bucketArn = a} :: S3RecordingDetails)++-- | Key template used for the S3 Recording Configuration+s3RecordingDetails_keyTemplate :: Lens.Lens' S3RecordingDetails (Prelude.Maybe Prelude.Text)+s3RecordingDetails_keyTemplate = Lens.lens (\S3RecordingDetails' {keyTemplate} -> keyTemplate) (\s@S3RecordingDetails' {} a -> s {keyTemplate = a} :: S3RecordingDetails)++instance Data.FromJSON S3RecordingDetails where+  parseJSON =+    Data.withObject+      "S3RecordingDetails"+      ( \x ->+          S3RecordingDetails'+            Prelude.<$> (x Data..:? "bucketArn")+            Prelude.<*> (x Data..:? "keyTemplate")+      )++instance Prelude.Hashable S3RecordingDetails where+  hashWithSalt _salt S3RecordingDetails' {..} =+    _salt+      `Prelude.hashWithSalt` bucketArn+      `Prelude.hashWithSalt` keyTemplate++instance Prelude.NFData S3RecordingDetails where+  rnf S3RecordingDetails' {..} =+    Prelude.rnf bucketArn+      `Prelude.seq` Prelude.rnf keyTemplate
+ gen/Amazonka/GroundStation/Types/SatelliteListItem.hs view
@@ -0,0 +1,125 @@+{-# 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.GroundStation.Types.SatelliteListItem+-- Copyright   : (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.GroundStation.Types.SatelliteListItem where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GroundStation.Types.EphemerisMetaData+import qualified Amazonka.Prelude as Prelude++-- | Item in a list of satellites.+--+-- /See:/ 'newSatelliteListItem' smart constructor.+data SatelliteListItem = SatelliteListItem'+  { -- | The current ephemeris being used to compute the trajectory of the+    -- satellite.+    currentEphemeris :: Prelude.Maybe EphemerisMetaData,+    -- | A list of ground stations to which the satellite is on-boarded.+    groundStations :: Prelude.Maybe [Prelude.Text],+    -- | NORAD satellite ID number.+    noradSatelliteID :: Prelude.Maybe Prelude.Natural,+    -- | ARN of a satellite.+    satelliteArn :: Prelude.Maybe Prelude.Text,+    -- | UUID of a satellite.+    satelliteId :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SatelliteListItem' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'currentEphemeris', 'satelliteListItem_currentEphemeris' - The current ephemeris being used to compute the trajectory of the+-- satellite.+--+-- 'groundStations', 'satelliteListItem_groundStations' - A list of ground stations to which the satellite is on-boarded.+--+-- 'noradSatelliteID', 'satelliteListItem_noradSatelliteID' - NORAD satellite ID number.+--+-- 'satelliteArn', 'satelliteListItem_satelliteArn' - ARN of a satellite.+--+-- 'satelliteId', 'satelliteListItem_satelliteId' - UUID of a satellite.+newSatelliteListItem ::+  SatelliteListItem+newSatelliteListItem =+  SatelliteListItem'+    { currentEphemeris =+        Prelude.Nothing,+      groundStations = Prelude.Nothing,+      noradSatelliteID = Prelude.Nothing,+      satelliteArn = Prelude.Nothing,+      satelliteId = Prelude.Nothing+    }++-- | The current ephemeris being used to compute the trajectory of the+-- satellite.+satelliteListItem_currentEphemeris :: Lens.Lens' SatelliteListItem (Prelude.Maybe EphemerisMetaData)+satelliteListItem_currentEphemeris = Lens.lens (\SatelliteListItem' {currentEphemeris} -> currentEphemeris) (\s@SatelliteListItem' {} a -> s {currentEphemeris = a} :: SatelliteListItem)++-- | A list of ground stations to which the satellite is on-boarded.+satelliteListItem_groundStations :: Lens.Lens' SatelliteListItem (Prelude.Maybe [Prelude.Text])+satelliteListItem_groundStations = Lens.lens (\SatelliteListItem' {groundStations} -> groundStations) (\s@SatelliteListItem' {} a -> s {groundStations = a} :: SatelliteListItem) Prelude.. Lens.mapping Lens.coerced++-- | NORAD satellite ID number.+satelliteListItem_noradSatelliteID :: Lens.Lens' SatelliteListItem (Prelude.Maybe Prelude.Natural)+satelliteListItem_noradSatelliteID = Lens.lens (\SatelliteListItem' {noradSatelliteID} -> noradSatelliteID) (\s@SatelliteListItem' {} a -> s {noradSatelliteID = a} :: SatelliteListItem)++-- | ARN of a satellite.+satelliteListItem_satelliteArn :: Lens.Lens' SatelliteListItem (Prelude.Maybe Prelude.Text)+satelliteListItem_satelliteArn = Lens.lens (\SatelliteListItem' {satelliteArn} -> satelliteArn) (\s@SatelliteListItem' {} a -> s {satelliteArn = a} :: SatelliteListItem)++-- | UUID of a satellite.+satelliteListItem_satelliteId :: Lens.Lens' SatelliteListItem (Prelude.Maybe Prelude.Text)+satelliteListItem_satelliteId = Lens.lens (\SatelliteListItem' {satelliteId} -> satelliteId) (\s@SatelliteListItem' {} a -> s {satelliteId = a} :: SatelliteListItem)++instance Data.FromJSON SatelliteListItem where+  parseJSON =+    Data.withObject+      "SatelliteListItem"+      ( \x ->+          SatelliteListItem'+            Prelude.<$> (x Data..:? "currentEphemeris")+            Prelude.<*> (x Data..:? "groundStations" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "noradSatelliteID")+            Prelude.<*> (x Data..:? "satelliteArn")+            Prelude.<*> (x Data..:? "satelliteId")+      )++instance Prelude.Hashable SatelliteListItem where+  hashWithSalt _salt SatelliteListItem' {..} =+    _salt+      `Prelude.hashWithSalt` currentEphemeris+      `Prelude.hashWithSalt` groundStations+      `Prelude.hashWithSalt` noradSatelliteID+      `Prelude.hashWithSalt` satelliteArn+      `Prelude.hashWithSalt` satelliteId++instance Prelude.NFData SatelliteListItem where+  rnf SatelliteListItem' {..} =+    Prelude.rnf currentEphemeris+      `Prelude.seq` Prelude.rnf groundStations+      `Prelude.seq` Prelude.rnf noradSatelliteID+      `Prelude.seq` Prelude.rnf satelliteArn+      `Prelude.seq` Prelude.rnf satelliteId
+ gen/Amazonka/GroundStation/Types/SecurityDetails.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.GroundStation.Types.SecurityDetails+-- Copyright   : (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.GroundStation.Types.SecurityDetails where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Information about endpoints.+--+-- /See:/ 'newSecurityDetails' smart constructor.+data SecurityDetails = SecurityDetails'+  { -- | ARN to a role needed for connecting streams to your instances.+    roleArn :: Prelude.Text,+    -- | The security groups to attach to the elastic network interfaces.+    securityGroupIds :: [Prelude.Text],+    -- | A list of subnets where AWS Ground Station places elastic network+    -- interfaces to send streams to your instances.+    subnetIds :: [Prelude.Text]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SecurityDetails' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'roleArn', 'securityDetails_roleArn' - ARN to a role needed for connecting streams to your instances.+--+-- 'securityGroupIds', 'securityDetails_securityGroupIds' - The security groups to attach to the elastic network interfaces.+--+-- 'subnetIds', 'securityDetails_subnetIds' - A list of subnets where AWS Ground Station places elastic network+-- interfaces to send streams to your instances.+newSecurityDetails ::+  -- | 'roleArn'+  Prelude.Text ->+  SecurityDetails+newSecurityDetails pRoleArn_ =+  SecurityDetails'+    { roleArn = pRoleArn_,+      securityGroupIds = Prelude.mempty,+      subnetIds = Prelude.mempty+    }++-- | ARN to a role needed for connecting streams to your instances.+securityDetails_roleArn :: Lens.Lens' SecurityDetails Prelude.Text+securityDetails_roleArn = Lens.lens (\SecurityDetails' {roleArn} -> roleArn) (\s@SecurityDetails' {} a -> s {roleArn = a} :: SecurityDetails)++-- | The security groups to attach to the elastic network interfaces.+securityDetails_securityGroupIds :: Lens.Lens' SecurityDetails [Prelude.Text]+securityDetails_securityGroupIds = Lens.lens (\SecurityDetails' {securityGroupIds} -> securityGroupIds) (\s@SecurityDetails' {} a -> s {securityGroupIds = a} :: SecurityDetails) Prelude.. Lens.coerced++-- | A list of subnets where AWS Ground Station places elastic network+-- interfaces to send streams to your instances.+securityDetails_subnetIds :: Lens.Lens' SecurityDetails [Prelude.Text]+securityDetails_subnetIds = Lens.lens (\SecurityDetails' {subnetIds} -> subnetIds) (\s@SecurityDetails' {} a -> s {subnetIds = a} :: SecurityDetails) Prelude.. Lens.coerced++instance Data.FromJSON SecurityDetails where+  parseJSON =+    Data.withObject+      "SecurityDetails"+      ( \x ->+          SecurityDetails'+            Prelude.<$> (x Data..: "roleArn")+            Prelude.<*> ( x+                            Data..:? "securityGroupIds"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "subnetIds" Data..!= Prelude.mempty)+      )++instance Prelude.Hashable SecurityDetails where+  hashWithSalt _salt SecurityDetails' {..} =+    _salt+      `Prelude.hashWithSalt` roleArn+      `Prelude.hashWithSalt` securityGroupIds+      `Prelude.hashWithSalt` subnetIds++instance Prelude.NFData SecurityDetails where+  rnf SecurityDetails' {..} =+    Prelude.rnf roleArn+      `Prelude.seq` Prelude.rnf securityGroupIds+      `Prelude.seq` Prelude.rnf subnetIds++instance Data.ToJSON SecurityDetails where+  toJSON SecurityDetails' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("roleArn" Data..= roleArn),+            Prelude.Just+              ("securityGroupIds" Data..= securityGroupIds),+            Prelude.Just ("subnetIds" Data..= subnetIds)+          ]+      )
+ gen/Amazonka/GroundStation/Types/SocketAddress.hs view
@@ -0,0 +1,93 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.GroundStation.Types.SocketAddress+-- Copyright   : (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.GroundStation.Types.SocketAddress where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Information about the socket address.+--+-- /See:/ 'newSocketAddress' smart constructor.+data SocketAddress = SocketAddress'+  { -- | Name of a socket address.+    name :: Prelude.Text,+    -- | Port of a socket address.+    port :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SocketAddress' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'socketAddress_name' - Name of a socket address.+--+-- 'port', 'socketAddress_port' - Port of a socket address.+newSocketAddress ::+  -- | 'name'+  Prelude.Text ->+  -- | 'port'+  Prelude.Int ->+  SocketAddress+newSocketAddress pName_ pPort_ =+  SocketAddress' {name = pName_, port = pPort_}++-- | Name of a socket address.+socketAddress_name :: Lens.Lens' SocketAddress Prelude.Text+socketAddress_name = Lens.lens (\SocketAddress' {name} -> name) (\s@SocketAddress' {} a -> s {name = a} :: SocketAddress)++-- | Port of a socket address.+socketAddress_port :: Lens.Lens' SocketAddress Prelude.Int+socketAddress_port = Lens.lens (\SocketAddress' {port} -> port) (\s@SocketAddress' {} a -> s {port = a} :: SocketAddress)++instance Data.FromJSON SocketAddress where+  parseJSON =+    Data.withObject+      "SocketAddress"+      ( \x ->+          SocketAddress'+            Prelude.<$> (x Data..: "name")+            Prelude.<*> (x Data..: "port")+      )++instance Prelude.Hashable SocketAddress where+  hashWithSalt _salt SocketAddress' {..} =+    _salt+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` port++instance Prelude.NFData SocketAddress where+  rnf SocketAddress' {..} =+    Prelude.rnf name `Prelude.seq` Prelude.rnf port++instance Data.ToJSON SocketAddress where+  toJSON SocketAddress' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("name" Data..= name),+            Prelude.Just ("port" Data..= port)+          ]+      )
+ gen/Amazonka/GroundStation/Types/Source.hs view
@@ -0,0 +1,113 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.GroundStation.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.GroundStation.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.GroundStation.Types.ConfigCapabilityType+import Amazonka.GroundStation.Types.ConfigDetails+import qualified Amazonka.Prelude as Prelude++-- | Dataflow details for the source side.+--+-- /See:/ 'newSource' smart constructor.+data Source = Source'+  { -- | Additional details for a @Config@, if type is @dataflow-endpoint@ or+    -- @antenna-downlink-demod-decode@+    configDetails :: Prelude.Maybe ConfigDetails,+    -- | UUID of a @Config@.+    configId :: Prelude.Maybe Prelude.Text,+    -- | Type of a @Config@.+    configType :: Prelude.Maybe ConfigCapabilityType,+    -- | Region of a dataflow source.+    dataflowSourceRegion :: Prelude.Maybe 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:+--+-- 'configDetails', 'source_configDetails' - Additional details for a @Config@, if type is @dataflow-endpoint@ or+-- @antenna-downlink-demod-decode@+--+-- 'configId', 'source_configId' - UUID of a @Config@.+--+-- 'configType', 'source_configType' - Type of a @Config@.+--+-- 'dataflowSourceRegion', 'source_dataflowSourceRegion' - Region of a dataflow source.+newSource ::+  Source+newSource =+  Source'+    { configDetails = Prelude.Nothing,+      configId = Prelude.Nothing,+      configType = Prelude.Nothing,+      dataflowSourceRegion = Prelude.Nothing+    }++-- | Additional details for a @Config@, if type is @dataflow-endpoint@ or+-- @antenna-downlink-demod-decode@+source_configDetails :: Lens.Lens' Source (Prelude.Maybe ConfigDetails)+source_configDetails = Lens.lens (\Source' {configDetails} -> configDetails) (\s@Source' {} a -> s {configDetails = a} :: Source)++-- | UUID of a @Config@.+source_configId :: Lens.Lens' Source (Prelude.Maybe Prelude.Text)+source_configId = Lens.lens (\Source' {configId} -> configId) (\s@Source' {} a -> s {configId = a} :: Source)++-- | Type of a @Config@.+source_configType :: Lens.Lens' Source (Prelude.Maybe ConfigCapabilityType)+source_configType = Lens.lens (\Source' {configType} -> configType) (\s@Source' {} a -> s {configType = a} :: Source)++-- | Region of a dataflow source.+source_dataflowSourceRegion :: Lens.Lens' Source (Prelude.Maybe Prelude.Text)+source_dataflowSourceRegion = Lens.lens (\Source' {dataflowSourceRegion} -> dataflowSourceRegion) (\s@Source' {} a -> s {dataflowSourceRegion = a} :: Source)++instance Data.FromJSON Source where+  parseJSON =+    Data.withObject+      "Source"+      ( \x ->+          Source'+            Prelude.<$> (x Data..:? "configDetails")+            Prelude.<*> (x Data..:? "configId")+            Prelude.<*> (x Data..:? "configType")+            Prelude.<*> (x Data..:? "dataflowSourceRegion")+      )++instance Prelude.Hashable Source where+  hashWithSalt _salt Source' {..} =+    _salt+      `Prelude.hashWithSalt` configDetails+      `Prelude.hashWithSalt` configId+      `Prelude.hashWithSalt` configType+      `Prelude.hashWithSalt` dataflowSourceRegion++instance Prelude.NFData Source where+  rnf Source' {..} =+    Prelude.rnf configDetails+      `Prelude.seq` Prelude.rnf configId+      `Prelude.seq` Prelude.rnf configType+      `Prelude.seq` Prelude.rnf dataflowSourceRegion
+ gen/Amazonka/GroundStation/Types/SpectrumConfig.hs view
@@ -0,0 +1,153 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.GroundStation.Types.SpectrumConfig+-- Copyright   : (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.GroundStation.Types.SpectrumConfig where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GroundStation.Types.Frequency+import Amazonka.GroundStation.Types.FrequencyBandwidth+import Amazonka.GroundStation.Types.Polarization+import qualified Amazonka.Prelude as Prelude++-- | Object that describes a spectral @Config@.+--+-- /See:/ 'newSpectrumConfig' smart constructor.+data SpectrumConfig = SpectrumConfig'+  { -- | Polarization of a spectral @Config@. Capturing both @\"RIGHT_HAND\"@ and+    -- @\"LEFT_HAND\"@ polarization requires two separate configs.+    polarization :: Prelude.Maybe Polarization,+    -- | Bandwidth of a spectral @Config@. AWS Ground Station currently has the+    -- following bandwidth limitations:+    --+    -- -   For @AntennaDownlinkDemodDecodeconfig@, valid values are between 125+    --     kHz to 650 MHz.+    --+    -- -   For @AntennaDownlinkconfig@ valid values are between 10 kHz to 54+    --     MHz.+    --+    -- -   For @AntennaUplinkConfig@, valid values are between 10 kHz to 54+    --     MHz.+    bandwidth :: FrequencyBandwidth,+    -- | Center frequency of a spectral @Config@. Valid values are between 2200+    -- to 2300 MHz and 7750 to 8400 MHz for downlink and 2025 to 2120 MHz for+    -- uplink.+    centerFrequency :: Frequency+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SpectrumConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'polarization', 'spectrumConfig_polarization' - Polarization of a spectral @Config@. Capturing both @\"RIGHT_HAND\"@ and+-- @\"LEFT_HAND\"@ polarization requires two separate configs.+--+-- 'bandwidth', 'spectrumConfig_bandwidth' - Bandwidth of a spectral @Config@. AWS Ground Station currently has the+-- following bandwidth limitations:+--+-- -   For @AntennaDownlinkDemodDecodeconfig@, valid values are between 125+--     kHz to 650 MHz.+--+-- -   For @AntennaDownlinkconfig@ valid values are between 10 kHz to 54+--     MHz.+--+-- -   For @AntennaUplinkConfig@, valid values are between 10 kHz to 54+--     MHz.+--+-- 'centerFrequency', 'spectrumConfig_centerFrequency' - Center frequency of a spectral @Config@. Valid values are between 2200+-- to 2300 MHz and 7750 to 8400 MHz for downlink and 2025 to 2120 MHz for+-- uplink.+newSpectrumConfig ::+  -- | 'bandwidth'+  FrequencyBandwidth ->+  -- | 'centerFrequency'+  Frequency ->+  SpectrumConfig+newSpectrumConfig pBandwidth_ pCenterFrequency_ =+  SpectrumConfig'+    { polarization = Prelude.Nothing,+      bandwidth = pBandwidth_,+      centerFrequency = pCenterFrequency_+    }++-- | Polarization of a spectral @Config@. Capturing both @\"RIGHT_HAND\"@ and+-- @\"LEFT_HAND\"@ polarization requires two separate configs.+spectrumConfig_polarization :: Lens.Lens' SpectrumConfig (Prelude.Maybe Polarization)+spectrumConfig_polarization = Lens.lens (\SpectrumConfig' {polarization} -> polarization) (\s@SpectrumConfig' {} a -> s {polarization = a} :: SpectrumConfig)++-- | Bandwidth of a spectral @Config@. AWS Ground Station currently has the+-- following bandwidth limitations:+--+-- -   For @AntennaDownlinkDemodDecodeconfig@, valid values are between 125+--     kHz to 650 MHz.+--+-- -   For @AntennaDownlinkconfig@ valid values are between 10 kHz to 54+--     MHz.+--+-- -   For @AntennaUplinkConfig@, valid values are between 10 kHz to 54+--     MHz.+spectrumConfig_bandwidth :: Lens.Lens' SpectrumConfig FrequencyBandwidth+spectrumConfig_bandwidth = Lens.lens (\SpectrumConfig' {bandwidth} -> bandwidth) (\s@SpectrumConfig' {} a -> s {bandwidth = a} :: SpectrumConfig)++-- | Center frequency of a spectral @Config@. Valid values are between 2200+-- to 2300 MHz and 7750 to 8400 MHz for downlink and 2025 to 2120 MHz for+-- uplink.+spectrumConfig_centerFrequency :: Lens.Lens' SpectrumConfig Frequency+spectrumConfig_centerFrequency = Lens.lens (\SpectrumConfig' {centerFrequency} -> centerFrequency) (\s@SpectrumConfig' {} a -> s {centerFrequency = a} :: SpectrumConfig)++instance Data.FromJSON SpectrumConfig where+  parseJSON =+    Data.withObject+      "SpectrumConfig"+      ( \x ->+          SpectrumConfig'+            Prelude.<$> (x Data..:? "polarization")+            Prelude.<*> (x Data..: "bandwidth")+            Prelude.<*> (x Data..: "centerFrequency")+      )++instance Prelude.Hashable SpectrumConfig where+  hashWithSalt _salt SpectrumConfig' {..} =+    _salt+      `Prelude.hashWithSalt` polarization+      `Prelude.hashWithSalt` bandwidth+      `Prelude.hashWithSalt` centerFrequency++instance Prelude.NFData SpectrumConfig where+  rnf SpectrumConfig' {..} =+    Prelude.rnf polarization+      `Prelude.seq` Prelude.rnf bandwidth+      `Prelude.seq` Prelude.rnf centerFrequency++instance Data.ToJSON SpectrumConfig where+  toJSON SpectrumConfig' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("polarization" Data..=) Prelude.<$> polarization,+            Prelude.Just ("bandwidth" Data..= bandwidth),+            Prelude.Just+              ("centerFrequency" Data..= centerFrequency)+          ]+      )
+ gen/Amazonka/GroundStation/Types/TLEData.hs view
@@ -0,0 +1,103 @@+{-# 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.GroundStation.Types.TLEData+-- Copyright   : (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.GroundStation.Types.TLEData where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GroundStation.Types.TimeRange+import qualified Amazonka.Prelude as Prelude++-- | Two-line element set (TLE) data.+--+-- /See:/ 'newTLEData' smart constructor.+data TLEData = TLEData'+  { -- | First line of two-line element set (TLE) data.+    tleLine1 :: Prelude.Text,+    -- | Second line of two-line element set (TLE) data.+    tleLine2 :: Prelude.Text,+    -- | The valid time range for the TLE. Gaps or overlap are not permitted.+    validTimeRange :: TimeRange+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TLEData' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'tleLine1', 'tLEData_tleLine1' - First line of two-line element set (TLE) data.+--+-- 'tleLine2', 'tLEData_tleLine2' - Second line of two-line element set (TLE) data.+--+-- 'validTimeRange', 'tLEData_validTimeRange' - The valid time range for the TLE. Gaps or overlap are not permitted.+newTLEData ::+  -- | 'tleLine1'+  Prelude.Text ->+  -- | 'tleLine2'+  Prelude.Text ->+  -- | 'validTimeRange'+  TimeRange ->+  TLEData+newTLEData pTleLine1_ pTleLine2_ pValidTimeRange_ =+  TLEData'+    { tleLine1 = pTleLine1_,+      tleLine2 = pTleLine2_,+      validTimeRange = pValidTimeRange_+    }++-- | First line of two-line element set (TLE) data.+tLEData_tleLine1 :: Lens.Lens' TLEData Prelude.Text+tLEData_tleLine1 = Lens.lens (\TLEData' {tleLine1} -> tleLine1) (\s@TLEData' {} a -> s {tleLine1 = a} :: TLEData)++-- | Second line of two-line element set (TLE) data.+tLEData_tleLine2 :: Lens.Lens' TLEData Prelude.Text+tLEData_tleLine2 = Lens.lens (\TLEData' {tleLine2} -> tleLine2) (\s@TLEData' {} a -> s {tleLine2 = a} :: TLEData)++-- | The valid time range for the TLE. Gaps or overlap are not permitted.+tLEData_validTimeRange :: Lens.Lens' TLEData TimeRange+tLEData_validTimeRange = Lens.lens (\TLEData' {validTimeRange} -> validTimeRange) (\s@TLEData' {} a -> s {validTimeRange = a} :: TLEData)++instance Prelude.Hashable TLEData where+  hashWithSalt _salt TLEData' {..} =+    _salt+      `Prelude.hashWithSalt` tleLine1+      `Prelude.hashWithSalt` tleLine2+      `Prelude.hashWithSalt` validTimeRange++instance Prelude.NFData TLEData where+  rnf TLEData' {..} =+    Prelude.rnf tleLine1+      `Prelude.seq` Prelude.rnf tleLine2+      `Prelude.seq` Prelude.rnf validTimeRange++instance Data.ToJSON TLEData where+  toJSON TLEData' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("tleLine1" Data..= tleLine1),+            Prelude.Just ("tleLine2" Data..= tleLine2),+            Prelude.Just+              ("validTimeRange" Data..= validTimeRange)+          ]+      )
+ gen/Amazonka/GroundStation/Types/TLEEphemeris.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.GroundStation.Types.TLEEphemeris+-- Copyright   : (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.GroundStation.Types.TLEEphemeris where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GroundStation.Types.S3Object+import Amazonka.GroundStation.Types.TLEData+import qualified Amazonka.Prelude as Prelude++-- | Two-line element set (TLE) ephemeris.+--+-- /See:/ 'newTLEEphemeris' smart constructor.+data TLEEphemeris = TLEEphemeris'+  { -- | Identifies the S3 object to be used as the ephemeris.+    s3Object :: Prelude.Maybe S3Object,+    -- | The data for a TLE ephemeris, supplied directly in the request rather+    -- than through an S3 object.+    tleData :: Prelude.Maybe (Prelude.NonEmpty TLEData)+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TLEEphemeris' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 's3Object', 'tLEEphemeris_s3Object' - Identifies the S3 object to be used as the ephemeris.+--+-- 'tleData', 'tLEEphemeris_tleData' - The data for a TLE ephemeris, supplied directly in the request rather+-- than through an S3 object.+newTLEEphemeris ::+  TLEEphemeris+newTLEEphemeris =+  TLEEphemeris'+    { s3Object = Prelude.Nothing,+      tleData = Prelude.Nothing+    }++-- | Identifies the S3 object to be used as the ephemeris.+tLEEphemeris_s3Object :: Lens.Lens' TLEEphemeris (Prelude.Maybe S3Object)+tLEEphemeris_s3Object = Lens.lens (\TLEEphemeris' {s3Object} -> s3Object) (\s@TLEEphemeris' {} a -> s {s3Object = a} :: TLEEphemeris)++-- | The data for a TLE ephemeris, supplied directly in the request rather+-- than through an S3 object.+tLEEphemeris_tleData :: Lens.Lens' TLEEphemeris (Prelude.Maybe (Prelude.NonEmpty TLEData))+tLEEphemeris_tleData = Lens.lens (\TLEEphemeris' {tleData} -> tleData) (\s@TLEEphemeris' {} a -> s {tleData = a} :: TLEEphemeris) Prelude.. Lens.mapping Lens.coerced++instance Prelude.Hashable TLEEphemeris where+  hashWithSalt _salt TLEEphemeris' {..} =+    _salt+      `Prelude.hashWithSalt` s3Object+      `Prelude.hashWithSalt` tleData++instance Prelude.NFData TLEEphemeris where+  rnf TLEEphemeris' {..} =+    Prelude.rnf s3Object+      `Prelude.seq` Prelude.rnf tleData++instance Data.ToJSON TLEEphemeris where+  toJSON TLEEphemeris' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("s3Object" Data..=) Prelude.<$> s3Object,+            ("tleData" Data..=) Prelude.<$> tleData+          ]+      )
+ gen/Amazonka/GroundStation/Types/TimeRange.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.GroundStation.Types.TimeRange+-- Copyright   : (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.GroundStation.Types.TimeRange where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | A time range with a start and end time.+--+-- /See:/ 'newTimeRange' smart constructor.+data TimeRange = TimeRange'+  { -- | Time in UTC at which the time range ends.+    endTime :: Data.POSIX,+    -- | Time in UTC at which the time range starts.+    startTime :: Data.POSIX+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TimeRange' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'endTime', 'timeRange_endTime' - Time in UTC at which the time range ends.+--+-- 'startTime', 'timeRange_startTime' - Time in UTC at which the time range starts.+newTimeRange ::+  -- | 'endTime'+  Prelude.UTCTime ->+  -- | 'startTime'+  Prelude.UTCTime ->+  TimeRange+newTimeRange pEndTime_ pStartTime_ =+  TimeRange'+    { endTime = Data._Time Lens.# pEndTime_,+      startTime = Data._Time Lens.# pStartTime_+    }++-- | Time in UTC at which the time range ends.+timeRange_endTime :: Lens.Lens' TimeRange Prelude.UTCTime+timeRange_endTime = Lens.lens (\TimeRange' {endTime} -> endTime) (\s@TimeRange' {} a -> s {endTime = a} :: TimeRange) Prelude.. Data._Time++-- | Time in UTC at which the time range starts.+timeRange_startTime :: Lens.Lens' TimeRange Prelude.UTCTime+timeRange_startTime = Lens.lens (\TimeRange' {startTime} -> startTime) (\s@TimeRange' {} a -> s {startTime = a} :: TimeRange) Prelude.. Data._Time++instance Prelude.Hashable TimeRange where+  hashWithSalt _salt TimeRange' {..} =+    _salt+      `Prelude.hashWithSalt` endTime+      `Prelude.hashWithSalt` startTime++instance Prelude.NFData TimeRange where+  rnf TimeRange' {..} =+    Prelude.rnf endTime+      `Prelude.seq` Prelude.rnf startTime++instance Data.ToJSON TimeRange where+  toJSON TimeRange' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("endTime" Data..= endTime),+            Prelude.Just ("startTime" Data..= startTime)+          ]+      )
+ gen/Amazonka/GroundStation/Types/TrackingConfig.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.GroundStation.Types.TrackingConfig+-- Copyright   : (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.GroundStation.Types.TrackingConfig where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GroundStation.Types.Criticality+import qualified Amazonka.Prelude as Prelude++-- | Object that determines whether tracking should be used during a contact+-- executed with this @Config@ in the mission profile.+--+-- /See:/ 'newTrackingConfig' smart constructor.+data TrackingConfig = TrackingConfig'+  { -- | Current setting for autotrack.+    autotrack :: Criticality+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TrackingConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'autotrack', 'trackingConfig_autotrack' - Current setting for autotrack.+newTrackingConfig ::+  -- | 'autotrack'+  Criticality ->+  TrackingConfig+newTrackingConfig pAutotrack_ =+  TrackingConfig' {autotrack = pAutotrack_}++-- | Current setting for autotrack.+trackingConfig_autotrack :: Lens.Lens' TrackingConfig Criticality+trackingConfig_autotrack = Lens.lens (\TrackingConfig' {autotrack} -> autotrack) (\s@TrackingConfig' {} a -> s {autotrack = a} :: TrackingConfig)++instance Data.FromJSON TrackingConfig where+  parseJSON =+    Data.withObject+      "TrackingConfig"+      ( \x ->+          TrackingConfig' Prelude.<$> (x Data..: "autotrack")+      )++instance Prelude.Hashable TrackingConfig where+  hashWithSalt _salt TrackingConfig' {..} =+    _salt `Prelude.hashWithSalt` autotrack++instance Prelude.NFData TrackingConfig where+  rnf TrackingConfig' {..} = Prelude.rnf autotrack++instance Data.ToJSON TrackingConfig where+  toJSON TrackingConfig' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("autotrack" Data..= autotrack)]+      )
+ gen/Amazonka/GroundStation/Types/UplinkEchoConfig.hs view
@@ -0,0 +1,107 @@+{-# 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.GroundStation.Types.UplinkEchoConfig+-- Copyright   : (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.GroundStation.Types.UplinkEchoConfig where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Information about an uplink echo @Config@.+--+-- Parameters from the @AntennaUplinkConfig@, corresponding to the+-- specified @AntennaUplinkConfigArn@, are used when this+-- @UplinkEchoConfig@ is used in a contact.+--+-- /See:/ 'newUplinkEchoConfig' smart constructor.+data UplinkEchoConfig = UplinkEchoConfig'+  { -- | ARN of an uplink @Config@.+    antennaUplinkConfigArn :: Prelude.Text,+    -- | Whether or not an uplink @Config@ is enabled.+    enabled :: Prelude.Bool+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UplinkEchoConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'antennaUplinkConfigArn', 'uplinkEchoConfig_antennaUplinkConfigArn' - ARN of an uplink @Config@.+--+-- 'enabled', 'uplinkEchoConfig_enabled' - Whether or not an uplink @Config@ is enabled.+newUplinkEchoConfig ::+  -- | 'antennaUplinkConfigArn'+  Prelude.Text ->+  -- | 'enabled'+  Prelude.Bool ->+  UplinkEchoConfig+newUplinkEchoConfig+  pAntennaUplinkConfigArn_+  pEnabled_ =+    UplinkEchoConfig'+      { antennaUplinkConfigArn =+          pAntennaUplinkConfigArn_,+        enabled = pEnabled_+      }++-- | ARN of an uplink @Config@.+uplinkEchoConfig_antennaUplinkConfigArn :: Lens.Lens' UplinkEchoConfig Prelude.Text+uplinkEchoConfig_antennaUplinkConfigArn = Lens.lens (\UplinkEchoConfig' {antennaUplinkConfigArn} -> antennaUplinkConfigArn) (\s@UplinkEchoConfig' {} a -> s {antennaUplinkConfigArn = a} :: UplinkEchoConfig)++-- | Whether or not an uplink @Config@ is enabled.+uplinkEchoConfig_enabled :: Lens.Lens' UplinkEchoConfig Prelude.Bool+uplinkEchoConfig_enabled = Lens.lens (\UplinkEchoConfig' {enabled} -> enabled) (\s@UplinkEchoConfig' {} a -> s {enabled = a} :: UplinkEchoConfig)++instance Data.FromJSON UplinkEchoConfig where+  parseJSON =+    Data.withObject+      "UplinkEchoConfig"+      ( \x ->+          UplinkEchoConfig'+            Prelude.<$> (x Data..: "antennaUplinkConfigArn")+            Prelude.<*> (x Data..: "enabled")+      )++instance Prelude.Hashable UplinkEchoConfig where+  hashWithSalt _salt UplinkEchoConfig' {..} =+    _salt+      `Prelude.hashWithSalt` antennaUplinkConfigArn+      `Prelude.hashWithSalt` enabled++instance Prelude.NFData UplinkEchoConfig where+  rnf UplinkEchoConfig' {..} =+    Prelude.rnf antennaUplinkConfigArn+      `Prelude.seq` Prelude.rnf enabled++instance Data.ToJSON UplinkEchoConfig where+  toJSON UplinkEchoConfig' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ( "antennaUplinkConfigArn"+                  Data..= antennaUplinkConfigArn+              ),+            Prelude.Just ("enabled" Data..= enabled)+          ]+      )
+ gen/Amazonka/GroundStation/Types/UplinkSpectrumConfig.hs view
@@ -0,0 +1,108 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.GroundStation.Types.UplinkSpectrumConfig+-- Copyright   : (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.GroundStation.Types.UplinkSpectrumConfig where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GroundStation.Types.Frequency+import Amazonka.GroundStation.Types.Polarization+import qualified Amazonka.Prelude as Prelude++-- | Information about the uplink spectral @Config@.+--+-- /See:/ 'newUplinkSpectrumConfig' smart constructor.+data UplinkSpectrumConfig = UplinkSpectrumConfig'+  { -- | Polarization of an uplink spectral @Config@. Capturing both+    -- @\"RIGHT_HAND\"@ and @\"LEFT_HAND\"@ polarization requires two separate+    -- configs.+    polarization :: Prelude.Maybe Polarization,+    -- | Center frequency of an uplink spectral @Config@. Valid values are+    -- between 2025 to 2120 MHz.+    centerFrequency :: Frequency+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UplinkSpectrumConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'polarization', 'uplinkSpectrumConfig_polarization' - Polarization of an uplink spectral @Config@. Capturing both+-- @\"RIGHT_HAND\"@ and @\"LEFT_HAND\"@ polarization requires two separate+-- configs.+--+-- 'centerFrequency', 'uplinkSpectrumConfig_centerFrequency' - Center frequency of an uplink spectral @Config@. Valid values are+-- between 2025 to 2120 MHz.+newUplinkSpectrumConfig ::+  -- | 'centerFrequency'+  Frequency ->+  UplinkSpectrumConfig+newUplinkSpectrumConfig pCenterFrequency_ =+  UplinkSpectrumConfig'+    { polarization =+        Prelude.Nothing,+      centerFrequency = pCenterFrequency_+    }++-- | Polarization of an uplink spectral @Config@. Capturing both+-- @\"RIGHT_HAND\"@ and @\"LEFT_HAND\"@ polarization requires two separate+-- configs.+uplinkSpectrumConfig_polarization :: Lens.Lens' UplinkSpectrumConfig (Prelude.Maybe Polarization)+uplinkSpectrumConfig_polarization = Lens.lens (\UplinkSpectrumConfig' {polarization} -> polarization) (\s@UplinkSpectrumConfig' {} a -> s {polarization = a} :: UplinkSpectrumConfig)++-- | Center frequency of an uplink spectral @Config@. Valid values are+-- between 2025 to 2120 MHz.+uplinkSpectrumConfig_centerFrequency :: Lens.Lens' UplinkSpectrumConfig Frequency+uplinkSpectrumConfig_centerFrequency = Lens.lens (\UplinkSpectrumConfig' {centerFrequency} -> centerFrequency) (\s@UplinkSpectrumConfig' {} a -> s {centerFrequency = a} :: UplinkSpectrumConfig)++instance Data.FromJSON UplinkSpectrumConfig where+  parseJSON =+    Data.withObject+      "UplinkSpectrumConfig"+      ( \x ->+          UplinkSpectrumConfig'+            Prelude.<$> (x Data..:? "polarization")+            Prelude.<*> (x Data..: "centerFrequency")+      )++instance Prelude.Hashable UplinkSpectrumConfig where+  hashWithSalt _salt UplinkSpectrumConfig' {..} =+    _salt+      `Prelude.hashWithSalt` polarization+      `Prelude.hashWithSalt` centerFrequency++instance Prelude.NFData UplinkSpectrumConfig where+  rnf UplinkSpectrumConfig' {..} =+    Prelude.rnf polarization+      `Prelude.seq` Prelude.rnf centerFrequency++instance Data.ToJSON UplinkSpectrumConfig where+  toJSON UplinkSpectrumConfig' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("polarization" Data..=) Prelude.<$> polarization,+            Prelude.Just+              ("centerFrequency" Data..= centerFrequency)+          ]+      )
+ gen/Amazonka/GroundStation/UntagResource.hs view
@@ -0,0 +1,165 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.GroundStation.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)+--+-- Deassigns a resource tag.+module Amazonka.GroundStation.UntagResource+  ( -- * Creating a Request+    UntagResource (..),+    newUntagResource,++    -- * Request Lenses+    untagResource_resourceArn,+    untagResource_tagKeys,++    -- * Destructuring the Response+    UntagResourceResponse (..),+    newUntagResourceResponse,++    -- * Response Lenses+    untagResourceResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GroundStation.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- |+--+-- /See:/ 'newUntagResource' smart constructor.+data UntagResource = UntagResource'+  { -- | ARN of a resource.+    resourceArn :: Prelude.Text,+    -- | Keys of a resource tag.+    tagKeys :: [Prelude.Text]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UntagResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceArn', 'untagResource_resourceArn' - ARN of a resource.+--+-- 'tagKeys', 'untagResource_tagKeys' - Keys of a resource tag.+newUntagResource ::+  -- | 'resourceArn'+  Prelude.Text ->+  UntagResource+newUntagResource pResourceArn_ =+  UntagResource'+    { resourceArn = pResourceArn_,+      tagKeys = Prelude.mempty+    }++-- | ARN of a resource.+untagResource_resourceArn :: Lens.Lens' UntagResource Prelude.Text+untagResource_resourceArn = Lens.lens (\UntagResource' {resourceArn} -> resourceArn) (\s@UntagResource' {} a -> s {resourceArn = a} :: UntagResource)++-- | Keys of a resource tag.+untagResource_tagKeys :: Lens.Lens' UntagResource [Prelude.Text]+untagResource_tagKeys = Lens.lens (\UntagResource' {tagKeys} -> tagKeys) (\s@UntagResource' {} a -> s {tagKeys = a} :: UntagResource) Prelude.. Lens.coerced++instance Core.AWSRequest UntagResource where+  type+    AWSResponse UntagResource =+      UntagResourceResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          UntagResourceResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UntagResource where+  hashWithSalt _salt UntagResource' {..} =+    _salt+      `Prelude.hashWithSalt` resourceArn+      `Prelude.hashWithSalt` tagKeys++instance Prelude.NFData UntagResource where+  rnf UntagResource' {..} =+    Prelude.rnf resourceArn+      `Prelude.seq` Prelude.rnf tagKeys++instance Data.ToHeaders UntagResource where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath UntagResource where+  toPath UntagResource' {..} =+    Prelude.mconcat ["/tags/", Data.toBS resourceArn]++instance Data.ToQuery UntagResource where+  toQuery UntagResource' {..} =+    Prelude.mconcat+      ["tagKeys" Data.=: Data.toQueryList "member" tagKeys]++-- |+--+-- /See:/ 'newUntagResourceResponse' smart constructor.+data UntagResourceResponse = UntagResourceResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UntagResourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'untagResourceResponse_httpStatus' - The response's http status code.+newUntagResourceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UntagResourceResponse+newUntagResourceResponse pHttpStatus_ =+  UntagResourceResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+untagResourceResponse_httpStatus :: Lens.Lens' UntagResourceResponse Prelude.Int+untagResourceResponse_httpStatus = Lens.lens (\UntagResourceResponse' {httpStatus} -> httpStatus) (\s@UntagResourceResponse' {} a -> s {httpStatus = a} :: UntagResourceResponse)++instance Prelude.NFData UntagResourceResponse where+  rnf UntagResourceResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/GroundStation/UpdateConfig.hs view
@@ -0,0 +1,178 @@+{-# 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.GroundStation.UpdateConfig+-- 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 @Config@ used when scheduling contacts.+--+-- Updating a @Config@ will not update the execution parameters for+-- existing future contacts scheduled with this @Config@.+module Amazonka.GroundStation.UpdateConfig+  ( -- * Creating a Request+    UpdateConfig (..),+    newUpdateConfig,++    -- * Request Lenses+    updateConfig_configData,+    updateConfig_configId,+    updateConfig_configType,+    updateConfig_name,++    -- * Destructuring the Response+    ConfigIdResponse (..),+    newConfigIdResponse,++    -- * Response Lenses+    configIdResponse_configArn,+    configIdResponse_configId,+    configIdResponse_configType,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GroundStation.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- |+--+-- /See:/ 'newUpdateConfig' smart constructor.+data UpdateConfig = UpdateConfig'+  { -- | Parameters of a @Config@.+    configData :: ConfigTypeData,+    -- | UUID of a @Config@.+    configId :: Prelude.Text,+    -- | Type of a @Config@.+    configType :: ConfigCapabilityType,+    -- | Name of a @Config@.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'configData', 'updateConfig_configData' - Parameters of a @Config@.+--+-- 'configId', 'updateConfig_configId' - UUID of a @Config@.+--+-- 'configType', 'updateConfig_configType' - Type of a @Config@.+--+-- 'name', 'updateConfig_name' - Name of a @Config@.+newUpdateConfig ::+  -- | 'configData'+  ConfigTypeData ->+  -- | 'configId'+  Prelude.Text ->+  -- | 'configType'+  ConfigCapabilityType ->+  -- | 'name'+  Prelude.Text ->+  UpdateConfig+newUpdateConfig+  pConfigData_+  pConfigId_+  pConfigType_+  pName_ =+    UpdateConfig'+      { configData = pConfigData_,+        configId = pConfigId_,+        configType = pConfigType_,+        name = pName_+      }++-- | Parameters of a @Config@.+updateConfig_configData :: Lens.Lens' UpdateConfig ConfigTypeData+updateConfig_configData = Lens.lens (\UpdateConfig' {configData} -> configData) (\s@UpdateConfig' {} a -> s {configData = a} :: UpdateConfig)++-- | UUID of a @Config@.+updateConfig_configId :: Lens.Lens' UpdateConfig Prelude.Text+updateConfig_configId = Lens.lens (\UpdateConfig' {configId} -> configId) (\s@UpdateConfig' {} a -> s {configId = a} :: UpdateConfig)++-- | Type of a @Config@.+updateConfig_configType :: Lens.Lens' UpdateConfig ConfigCapabilityType+updateConfig_configType = Lens.lens (\UpdateConfig' {configType} -> configType) (\s@UpdateConfig' {} a -> s {configType = a} :: UpdateConfig)++-- | Name of a @Config@.+updateConfig_name :: Lens.Lens' UpdateConfig Prelude.Text+updateConfig_name = Lens.lens (\UpdateConfig' {name} -> name) (\s@UpdateConfig' {} a -> s {name = a} :: UpdateConfig)++instance Core.AWSRequest UpdateConfig where+  type AWSResponse UpdateConfig = ConfigIdResponse+  request overrides =+    Request.putJSON (overrides defaultService)+  response =+    Response.receiveJSON+      (\s h x -> Data.eitherParseJSON x)++instance Prelude.Hashable UpdateConfig where+  hashWithSalt _salt UpdateConfig' {..} =+    _salt+      `Prelude.hashWithSalt` configData+      `Prelude.hashWithSalt` configId+      `Prelude.hashWithSalt` configType+      `Prelude.hashWithSalt` name++instance Prelude.NFData UpdateConfig where+  rnf UpdateConfig' {..} =+    Prelude.rnf configData+      `Prelude.seq` Prelude.rnf configId+      `Prelude.seq` Prelude.rnf configType+      `Prelude.seq` Prelude.rnf name++instance Data.ToHeaders UpdateConfig where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateConfig where+  toJSON UpdateConfig' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("configData" Data..= configData),+            Prelude.Just ("name" Data..= name)+          ]+      )++instance Data.ToPath UpdateConfig where+  toPath UpdateConfig' {..} =+    Prelude.mconcat+      [ "/config/",+        Data.toBS configType,+        "/",+        Data.toBS configId+      ]++instance Data.ToQuery UpdateConfig where+  toQuery = Prelude.const Prelude.mempty
+ gen/Amazonka/GroundStation/UpdateEphemeris.hs view
@@ -0,0 +1,186 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.GroundStation.UpdateEphemeris+-- 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 ephemeris+module Amazonka.GroundStation.UpdateEphemeris+  ( -- * Creating a Request+    UpdateEphemeris (..),+    newUpdateEphemeris,++    -- * Request Lenses+    updateEphemeris_name,+    updateEphemeris_priority,+    updateEphemeris_enabled,+    updateEphemeris_ephemerisId,++    -- * Destructuring the Response+    EphemerisIdResponse (..),+    newEphemerisIdResponse,++    -- * Response Lenses+    ephemerisIdResponse_ephemerisId,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GroundStation.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateEphemeris' smart constructor.+data UpdateEphemeris = UpdateEphemeris'+  { -- | A name string associated with the ephemeris. Used as a human-readable+    -- identifier for the ephemeris.+    name :: Prelude.Maybe Prelude.Text,+    -- | Customer-provided priority score to establish the order in which+    -- overlapping ephemerides should be used.+    --+    -- The default for customer-provided ephemeris priority is 1, and higher+    -- numbers take precedence.+    --+    -- Priority must be 1 or greater+    priority :: Prelude.Maybe Prelude.Natural,+    -- | Whether the ephemeris is enabled or not. Changing this value will not+    -- require the ephemeris to be re-validated.+    enabled :: Prelude.Bool,+    -- | The AWS Ground Station ephemeris ID.+    ephemerisId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateEphemeris' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'updateEphemeris_name' - A name string associated with the ephemeris. Used as a human-readable+-- identifier for the ephemeris.+--+-- 'priority', 'updateEphemeris_priority' - Customer-provided priority score to establish the order in which+-- overlapping ephemerides should be used.+--+-- The default for customer-provided ephemeris priority is 1, and higher+-- numbers take precedence.+--+-- Priority must be 1 or greater+--+-- 'enabled', 'updateEphemeris_enabled' - Whether the ephemeris is enabled or not. Changing this value will not+-- require the ephemeris to be re-validated.+--+-- 'ephemerisId', 'updateEphemeris_ephemerisId' - The AWS Ground Station ephemeris ID.+newUpdateEphemeris ::+  -- | 'enabled'+  Prelude.Bool ->+  -- | 'ephemerisId'+  Prelude.Text ->+  UpdateEphemeris+newUpdateEphemeris pEnabled_ pEphemerisId_ =+  UpdateEphemeris'+    { name = Prelude.Nothing,+      priority = Prelude.Nothing,+      enabled = pEnabled_,+      ephemerisId = pEphemerisId_+    }++-- | A name string associated with the ephemeris. Used as a human-readable+-- identifier for the ephemeris.+updateEphemeris_name :: Lens.Lens' UpdateEphemeris (Prelude.Maybe Prelude.Text)+updateEphemeris_name = Lens.lens (\UpdateEphemeris' {name} -> name) (\s@UpdateEphemeris' {} a -> s {name = a} :: UpdateEphemeris)++-- | Customer-provided priority score to establish the order in which+-- overlapping ephemerides should be used.+--+-- The default for customer-provided ephemeris priority is 1, and higher+-- numbers take precedence.+--+-- Priority must be 1 or greater+updateEphemeris_priority :: Lens.Lens' UpdateEphemeris (Prelude.Maybe Prelude.Natural)+updateEphemeris_priority = Lens.lens (\UpdateEphemeris' {priority} -> priority) (\s@UpdateEphemeris' {} a -> s {priority = a} :: UpdateEphemeris)++-- | Whether the ephemeris is enabled or not. Changing this value will not+-- require the ephemeris to be re-validated.+updateEphemeris_enabled :: Lens.Lens' UpdateEphemeris Prelude.Bool+updateEphemeris_enabled = Lens.lens (\UpdateEphemeris' {enabled} -> enabled) (\s@UpdateEphemeris' {} a -> s {enabled = a} :: UpdateEphemeris)++-- | The AWS Ground Station ephemeris ID.+updateEphemeris_ephemerisId :: Lens.Lens' UpdateEphemeris Prelude.Text+updateEphemeris_ephemerisId = Lens.lens (\UpdateEphemeris' {ephemerisId} -> ephemerisId) (\s@UpdateEphemeris' {} a -> s {ephemerisId = a} :: UpdateEphemeris)++instance Core.AWSRequest UpdateEphemeris where+  type+    AWSResponse UpdateEphemeris =+      EphemerisIdResponse+  request overrides =+    Request.putJSON (overrides defaultService)+  response =+    Response.receiveJSON+      (\s h x -> Data.eitherParseJSON x)++instance Prelude.Hashable UpdateEphemeris where+  hashWithSalt _salt UpdateEphemeris' {..} =+    _salt+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` priority+      `Prelude.hashWithSalt` enabled+      `Prelude.hashWithSalt` ephemerisId++instance Prelude.NFData UpdateEphemeris where+  rnf UpdateEphemeris' {..} =+    Prelude.rnf name+      `Prelude.seq` Prelude.rnf priority+      `Prelude.seq` Prelude.rnf enabled+      `Prelude.seq` Prelude.rnf ephemerisId++instance Data.ToHeaders UpdateEphemeris where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateEphemeris where+  toJSON UpdateEphemeris' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("name" Data..=) Prelude.<$> name,+            ("priority" Data..=) Prelude.<$> priority,+            Prelude.Just ("enabled" Data..= enabled)+          ]+      )++instance Data.ToPath UpdateEphemeris where+  toPath UpdateEphemeris' {..} =+    Prelude.mconcat+      ["/ephemeris/", Data.toBS ephemerisId]++instance Data.ToQuery UpdateEphemeris where+  toQuery = Prelude.const Prelude.mempty
+ gen/Amazonka/GroundStation/UpdateMissionProfile.hs view
@@ -0,0 +1,225 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.GroundStation.UpdateMissionProfile+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates a mission profile.+--+-- Updating a mission profile will not update the execution parameters for+-- existing future contacts.+module Amazonka.GroundStation.UpdateMissionProfile+  ( -- * Creating a Request+    UpdateMissionProfile (..),+    newUpdateMissionProfile,++    -- * Request Lenses+    updateMissionProfile_contactPostPassDurationSeconds,+    updateMissionProfile_contactPrePassDurationSeconds,+    updateMissionProfile_dataflowEdges,+    updateMissionProfile_minimumViableContactDurationSeconds,+    updateMissionProfile_name,+    updateMissionProfile_trackingConfigArn,+    updateMissionProfile_missionProfileId,++    -- * Destructuring the Response+    MissionProfileIdResponse (..),+    newMissionProfileIdResponse,++    -- * Response Lenses+    missionProfileIdResponse_missionProfileId,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GroundStation.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- |+--+-- /See:/ 'newUpdateMissionProfile' smart constructor.+data UpdateMissionProfile = UpdateMissionProfile'+  { -- | Amount of time after a contact ends that you’d like to receive a+    -- CloudWatch event indicating the pass has finished.+    contactPostPassDurationSeconds :: Prelude.Maybe Prelude.Natural,+    -- | Amount of time after a contact ends that you’d like to receive a+    -- CloudWatch event indicating the pass has finished.+    contactPrePassDurationSeconds :: Prelude.Maybe Prelude.Natural,+    -- | A list of lists of ARNs. Each list of ARNs is an edge, with a /from/+    -- @Config@ and a /to/ @Config@.+    dataflowEdges :: Prelude.Maybe [Prelude.NonEmpty Prelude.Text],+    -- | Smallest amount of time in seconds that you’d like to see for an+    -- available contact. AWS Ground Station will not present you with contacts+    -- shorter than this duration.+    minimumViableContactDurationSeconds :: Prelude.Maybe Prelude.Natural,+    -- | Name of a mission profile.+    name :: Prelude.Maybe Prelude.Text,+    -- | ARN of a tracking @Config@.+    trackingConfigArn :: Prelude.Maybe Prelude.Text,+    -- | UUID of a mission profile.+    missionProfileId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateMissionProfile' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'contactPostPassDurationSeconds', 'updateMissionProfile_contactPostPassDurationSeconds' - Amount of time after a contact ends that you’d like to receive a+-- CloudWatch event indicating the pass has finished.+--+-- 'contactPrePassDurationSeconds', 'updateMissionProfile_contactPrePassDurationSeconds' - Amount of time after a contact ends that you’d like to receive a+-- CloudWatch event indicating the pass has finished.+--+-- 'dataflowEdges', 'updateMissionProfile_dataflowEdges' - A list of lists of ARNs. Each list of ARNs is an edge, with a /from/+-- @Config@ and a /to/ @Config@.+--+-- 'minimumViableContactDurationSeconds', 'updateMissionProfile_minimumViableContactDurationSeconds' - Smallest amount of time in seconds that you’d like to see for an+-- available contact. AWS Ground Station will not present you with contacts+-- shorter than this duration.+--+-- 'name', 'updateMissionProfile_name' - Name of a mission profile.+--+-- 'trackingConfigArn', 'updateMissionProfile_trackingConfigArn' - ARN of a tracking @Config@.+--+-- 'missionProfileId', 'updateMissionProfile_missionProfileId' - UUID of a mission profile.+newUpdateMissionProfile ::+  -- | 'missionProfileId'+  Prelude.Text ->+  UpdateMissionProfile+newUpdateMissionProfile pMissionProfileId_ =+  UpdateMissionProfile'+    { contactPostPassDurationSeconds =+        Prelude.Nothing,+      contactPrePassDurationSeconds = Prelude.Nothing,+      dataflowEdges = Prelude.Nothing,+      minimumViableContactDurationSeconds =+        Prelude.Nothing,+      name = Prelude.Nothing,+      trackingConfigArn = Prelude.Nothing,+      missionProfileId = pMissionProfileId_+    }++-- | Amount of time after a contact ends that you’d like to receive a+-- CloudWatch event indicating the pass has finished.+updateMissionProfile_contactPostPassDurationSeconds :: Lens.Lens' UpdateMissionProfile (Prelude.Maybe Prelude.Natural)+updateMissionProfile_contactPostPassDurationSeconds = Lens.lens (\UpdateMissionProfile' {contactPostPassDurationSeconds} -> contactPostPassDurationSeconds) (\s@UpdateMissionProfile' {} a -> s {contactPostPassDurationSeconds = a} :: UpdateMissionProfile)++-- | Amount of time after a contact ends that you’d like to receive a+-- CloudWatch event indicating the pass has finished.+updateMissionProfile_contactPrePassDurationSeconds :: Lens.Lens' UpdateMissionProfile (Prelude.Maybe Prelude.Natural)+updateMissionProfile_contactPrePassDurationSeconds = Lens.lens (\UpdateMissionProfile' {contactPrePassDurationSeconds} -> contactPrePassDurationSeconds) (\s@UpdateMissionProfile' {} a -> s {contactPrePassDurationSeconds = a} :: UpdateMissionProfile)++-- | A list of lists of ARNs. Each list of ARNs is an edge, with a /from/+-- @Config@ and a /to/ @Config@.+updateMissionProfile_dataflowEdges :: Lens.Lens' UpdateMissionProfile (Prelude.Maybe [Prelude.NonEmpty Prelude.Text])+updateMissionProfile_dataflowEdges = Lens.lens (\UpdateMissionProfile' {dataflowEdges} -> dataflowEdges) (\s@UpdateMissionProfile' {} a -> s {dataflowEdges = a} :: UpdateMissionProfile) Prelude.. Lens.mapping Lens.coerced++-- | Smallest amount of time in seconds that you’d like to see for an+-- available contact. AWS Ground Station will not present you with contacts+-- shorter than this duration.+updateMissionProfile_minimumViableContactDurationSeconds :: Lens.Lens' UpdateMissionProfile (Prelude.Maybe Prelude.Natural)+updateMissionProfile_minimumViableContactDurationSeconds = Lens.lens (\UpdateMissionProfile' {minimumViableContactDurationSeconds} -> minimumViableContactDurationSeconds) (\s@UpdateMissionProfile' {} a -> s {minimumViableContactDurationSeconds = a} :: UpdateMissionProfile)++-- | Name of a mission profile.+updateMissionProfile_name :: Lens.Lens' UpdateMissionProfile (Prelude.Maybe Prelude.Text)+updateMissionProfile_name = Lens.lens (\UpdateMissionProfile' {name} -> name) (\s@UpdateMissionProfile' {} a -> s {name = a} :: UpdateMissionProfile)++-- | ARN of a tracking @Config@.+updateMissionProfile_trackingConfigArn :: Lens.Lens' UpdateMissionProfile (Prelude.Maybe Prelude.Text)+updateMissionProfile_trackingConfigArn = Lens.lens (\UpdateMissionProfile' {trackingConfigArn} -> trackingConfigArn) (\s@UpdateMissionProfile' {} a -> s {trackingConfigArn = a} :: UpdateMissionProfile)++-- | UUID of a mission profile.+updateMissionProfile_missionProfileId :: Lens.Lens' UpdateMissionProfile Prelude.Text+updateMissionProfile_missionProfileId = Lens.lens (\UpdateMissionProfile' {missionProfileId} -> missionProfileId) (\s@UpdateMissionProfile' {} a -> s {missionProfileId = a} :: UpdateMissionProfile)++instance Core.AWSRequest UpdateMissionProfile where+  type+    AWSResponse UpdateMissionProfile =+      MissionProfileIdResponse+  request overrides =+    Request.putJSON (overrides defaultService)+  response =+    Response.receiveJSON+      (\s h x -> Data.eitherParseJSON x)++instance Prelude.Hashable UpdateMissionProfile where+  hashWithSalt _salt UpdateMissionProfile' {..} =+    _salt+      `Prelude.hashWithSalt` contactPostPassDurationSeconds+      `Prelude.hashWithSalt` contactPrePassDurationSeconds+      `Prelude.hashWithSalt` dataflowEdges+      `Prelude.hashWithSalt` minimumViableContactDurationSeconds+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` trackingConfigArn+      `Prelude.hashWithSalt` missionProfileId++instance Prelude.NFData UpdateMissionProfile where+  rnf UpdateMissionProfile' {..} =+    Prelude.rnf contactPostPassDurationSeconds+      `Prelude.seq` Prelude.rnf contactPrePassDurationSeconds+      `Prelude.seq` Prelude.rnf dataflowEdges+      `Prelude.seq` Prelude.rnf minimumViableContactDurationSeconds+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf trackingConfigArn+      `Prelude.seq` Prelude.rnf missionProfileId++instance Data.ToHeaders UpdateMissionProfile where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateMissionProfile where+  toJSON UpdateMissionProfile' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("contactPostPassDurationSeconds" Data..=)+              Prelude.<$> contactPostPassDurationSeconds,+            ("contactPrePassDurationSeconds" Data..=)+              Prelude.<$> contactPrePassDurationSeconds,+            ("dataflowEdges" Data..=) Prelude.<$> dataflowEdges,+            ("minimumViableContactDurationSeconds" Data..=)+              Prelude.<$> minimumViableContactDurationSeconds,+            ("name" Data..=) Prelude.<$> name,+            ("trackingConfigArn" Data..=)+              Prelude.<$> trackingConfigArn+          ]+      )++instance Data.ToPath UpdateMissionProfile where+  toPath UpdateMissionProfile' {..} =+    Prelude.mconcat+      ["/missionprofile/", Data.toBS missionProfileId]++instance Data.ToQuery UpdateMissionProfile where+  toQuery = Prelude.const Prelude.mempty
+ gen/Amazonka/GroundStation/Waiters.hs view
@@ -0,0 +1,24 @@+{-# LANGUAGE DisambiguateRecordFields #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.GroundStation.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.GroundStation.Waiters where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.GroundStation.Lens+import Amazonka.GroundStation.Types+import qualified Amazonka.Prelude as Prelude
+ src/.gitkeep view
+ test/Main.hs view
@@ -0,0 +1,23 @@+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Main+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Main (main) where++import Test.Amazonka.GroundStation+import Test.Amazonka.GroundStation.Internal+import Test.Tasty++main :: IO ()+main =+  defaultMain $+    testGroup+      "GroundStation"+      [ testGroup "tests" tests,+        testGroup "fixtures" fixtures+      ]
+ test/Test/Amazonka/Gen/GroundStation.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.GroundStation+-- Copyright   : (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.GroundStation where++import Amazonka.GroundStation+import qualified Data.Proxy as Proxy+import Test.Amazonka.Fixture+import Test.Amazonka.GroundStation.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"+--         [ requestCancelContact $+--             newCancelContact+--+--         , requestCreateConfig $+--             newCreateConfig+--+--         , requestCreateDataflowEndpointGroup $+--             newCreateDataflowEndpointGroup+--+--         , requestCreateEphemeris $+--             newCreateEphemeris+--+--         , requestCreateMissionProfile $+--             newCreateMissionProfile+--+--         , requestDeleteConfig $+--             newDeleteConfig+--+--         , requestDeleteDataflowEndpointGroup $+--             newDeleteDataflowEndpointGroup+--+--         , requestDeleteEphemeris $+--             newDeleteEphemeris+--+--         , requestDeleteMissionProfile $+--             newDeleteMissionProfile+--+--         , requestDescribeContact $+--             newDescribeContact+--+--         , requestDescribeEphemeris $+--             newDescribeEphemeris+--+--         , requestGetConfig $+--             newGetConfig+--+--         , requestGetDataflowEndpointGroup $+--             newGetDataflowEndpointGroup+--+--         , requestGetMinuteUsage $+--             newGetMinuteUsage+--+--         , requestGetMissionProfile $+--             newGetMissionProfile+--+--         , requestGetSatellite $+--             newGetSatellite+--+--         , requestListConfigs $+--             newListConfigs+--+--         , requestListContacts $+--             newListContacts+--+--         , requestListDataflowEndpointGroups $+--             newListDataflowEndpointGroups+--+--         , requestListEphemerides $+--             newListEphemerides+--+--         , requestListGroundStations $+--             newListGroundStations+--+--         , requestListMissionProfiles $+--             newListMissionProfiles+--+--         , requestListSatellites $+--             newListSatellites+--+--         , requestListTagsForResource $+--             newListTagsForResource+--+--         , requestReserveContact $+--             newReserveContact+--+--         , requestTagResource $+--             newTagResource+--+--         , requestUntagResource $+--             newUntagResource+--+--         , requestUpdateConfig $+--             newUpdateConfig+--+--         , requestUpdateEphemeris $+--             newUpdateEphemeris+--+--         , requestUpdateMissionProfile $+--             newUpdateMissionProfile+--+--           ]++--     , testGroup "response"+--         [ responseCancelContact $+--             newContactIdResponse+--+--         , responseCreateConfig $+--             newConfigIdResponse+--+--         , responseCreateDataflowEndpointGroup $+--             newDataflowEndpointGroupIdResponse+--+--         , responseCreateEphemeris $+--             newEphemerisIdResponse+--+--         , responseCreateMissionProfile $+--             newMissionProfileIdResponse+--+--         , responseDeleteConfig $+--             newConfigIdResponse+--+--         , responseDeleteDataflowEndpointGroup $+--             newDataflowEndpointGroupIdResponse+--+--         , responseDeleteEphemeris $+--             newEphemerisIdResponse+--+--         , responseDeleteMissionProfile $+--             newMissionProfileIdResponse+--+--         , responseDescribeContact $+--             newDescribeContactResponse+--+--         , responseDescribeEphemeris $+--             newDescribeEphemerisResponse+--+--         , responseGetConfig $+--             newGetConfigResponse+--+--         , responseGetDataflowEndpointGroup $+--             newGetDataflowEndpointGroupResponse+--+--         , responseGetMinuteUsage $+--             newGetMinuteUsageResponse+--+--         , responseGetMissionProfile $+--             newGetMissionProfileResponse+--+--         , responseGetSatellite $+--             newGetSatelliteResponse+--+--         , responseListConfigs $+--             newListConfigsResponse+--+--         , responseListContacts $+--             newListContactsResponse+--+--         , responseListDataflowEndpointGroups $+--             newListDataflowEndpointGroupsResponse+--+--         , responseListEphemerides $+--             newListEphemeridesResponse+--+--         , responseListGroundStations $+--             newListGroundStationsResponse+--+--         , responseListMissionProfiles $+--             newListMissionProfilesResponse+--+--         , responseListSatellites $+--             newListSatellitesResponse+--+--         , responseListTagsForResource $+--             newListTagsForResourceResponse+--+--         , responseReserveContact $+--             newContactIdResponse+--+--         , responseTagResource $+--             newTagResourceResponse+--+--         , responseUntagResource $+--             newUntagResourceResponse+--+--         , responseUpdateConfig $+--             newConfigIdResponse+--+--         , responseUpdateEphemeris $+--             newEphemerisIdResponse+--+--         , responseUpdateMissionProfile $+--             newMissionProfileIdResponse+--+--           ]+--     ]++-- Requests++requestCancelContact :: CancelContact -> TestTree+requestCancelContact =+  req+    "CancelContact"+    "fixture/CancelContact.yaml"++requestCreateConfig :: CreateConfig -> TestTree+requestCreateConfig =+  req+    "CreateConfig"+    "fixture/CreateConfig.yaml"++requestCreateDataflowEndpointGroup :: CreateDataflowEndpointGroup -> TestTree+requestCreateDataflowEndpointGroup =+  req+    "CreateDataflowEndpointGroup"+    "fixture/CreateDataflowEndpointGroup.yaml"++requestCreateEphemeris :: CreateEphemeris -> TestTree+requestCreateEphemeris =+  req+    "CreateEphemeris"+    "fixture/CreateEphemeris.yaml"++requestCreateMissionProfile :: CreateMissionProfile -> TestTree+requestCreateMissionProfile =+  req+    "CreateMissionProfile"+    "fixture/CreateMissionProfile.yaml"++requestDeleteConfig :: DeleteConfig -> TestTree+requestDeleteConfig =+  req+    "DeleteConfig"+    "fixture/DeleteConfig.yaml"++requestDeleteDataflowEndpointGroup :: DeleteDataflowEndpointGroup -> TestTree+requestDeleteDataflowEndpointGroup =+  req+    "DeleteDataflowEndpointGroup"+    "fixture/DeleteDataflowEndpointGroup.yaml"++requestDeleteEphemeris :: DeleteEphemeris -> TestTree+requestDeleteEphemeris =+  req+    "DeleteEphemeris"+    "fixture/DeleteEphemeris.yaml"++requestDeleteMissionProfile :: DeleteMissionProfile -> TestTree+requestDeleteMissionProfile =+  req+    "DeleteMissionProfile"+    "fixture/DeleteMissionProfile.yaml"++requestDescribeContact :: DescribeContact -> TestTree+requestDescribeContact =+  req+    "DescribeContact"+    "fixture/DescribeContact.yaml"++requestDescribeEphemeris :: DescribeEphemeris -> TestTree+requestDescribeEphemeris =+  req+    "DescribeEphemeris"+    "fixture/DescribeEphemeris.yaml"++requestGetConfig :: GetConfig -> TestTree+requestGetConfig =+  req+    "GetConfig"+    "fixture/GetConfig.yaml"++requestGetDataflowEndpointGroup :: GetDataflowEndpointGroup -> TestTree+requestGetDataflowEndpointGroup =+  req+    "GetDataflowEndpointGroup"+    "fixture/GetDataflowEndpointGroup.yaml"++requestGetMinuteUsage :: GetMinuteUsage -> TestTree+requestGetMinuteUsage =+  req+    "GetMinuteUsage"+    "fixture/GetMinuteUsage.yaml"++requestGetMissionProfile :: GetMissionProfile -> TestTree+requestGetMissionProfile =+  req+    "GetMissionProfile"+    "fixture/GetMissionProfile.yaml"++requestGetSatellite :: GetSatellite -> TestTree+requestGetSatellite =+  req+    "GetSatellite"+    "fixture/GetSatellite.yaml"++requestListConfigs :: ListConfigs -> TestTree+requestListConfigs =+  req+    "ListConfigs"+    "fixture/ListConfigs.yaml"++requestListContacts :: ListContacts -> TestTree+requestListContacts =+  req+    "ListContacts"+    "fixture/ListContacts.yaml"++requestListDataflowEndpointGroups :: ListDataflowEndpointGroups -> TestTree+requestListDataflowEndpointGroups =+  req+    "ListDataflowEndpointGroups"+    "fixture/ListDataflowEndpointGroups.yaml"++requestListEphemerides :: ListEphemerides -> TestTree+requestListEphemerides =+  req+    "ListEphemerides"+    "fixture/ListEphemerides.yaml"++requestListGroundStations :: ListGroundStations -> TestTree+requestListGroundStations =+  req+    "ListGroundStations"+    "fixture/ListGroundStations.yaml"++requestListMissionProfiles :: ListMissionProfiles -> TestTree+requestListMissionProfiles =+  req+    "ListMissionProfiles"+    "fixture/ListMissionProfiles.yaml"++requestListSatellites :: ListSatellites -> TestTree+requestListSatellites =+  req+    "ListSatellites"+    "fixture/ListSatellites.yaml"++requestListTagsForResource :: ListTagsForResource -> TestTree+requestListTagsForResource =+  req+    "ListTagsForResource"+    "fixture/ListTagsForResource.yaml"++requestReserveContact :: ReserveContact -> TestTree+requestReserveContact =+  req+    "ReserveContact"+    "fixture/ReserveContact.yaml"++requestTagResource :: TagResource -> TestTree+requestTagResource =+  req+    "TagResource"+    "fixture/TagResource.yaml"++requestUntagResource :: UntagResource -> TestTree+requestUntagResource =+  req+    "UntagResource"+    "fixture/UntagResource.yaml"++requestUpdateConfig :: UpdateConfig -> TestTree+requestUpdateConfig =+  req+    "UpdateConfig"+    "fixture/UpdateConfig.yaml"++requestUpdateEphemeris :: UpdateEphemeris -> TestTree+requestUpdateEphemeris =+  req+    "UpdateEphemeris"+    "fixture/UpdateEphemeris.yaml"++requestUpdateMissionProfile :: UpdateMissionProfile -> TestTree+requestUpdateMissionProfile =+  req+    "UpdateMissionProfile"+    "fixture/UpdateMissionProfile.yaml"++-- Responses++responseCancelContact :: ContactIdResponse -> TestTree+responseCancelContact =+  res+    "CancelContactResponse"+    "fixture/CancelContactResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CancelContact)++responseCreateConfig :: ConfigIdResponse -> TestTree+responseCreateConfig =+  res+    "CreateConfigResponse"+    "fixture/CreateConfigResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateConfig)++responseCreateDataflowEndpointGroup :: DataflowEndpointGroupIdResponse -> TestTree+responseCreateDataflowEndpointGroup =+  res+    "CreateDataflowEndpointGroupResponse"+    "fixture/CreateDataflowEndpointGroupResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateDataflowEndpointGroup)++responseCreateEphemeris :: EphemerisIdResponse -> TestTree+responseCreateEphemeris =+  res+    "CreateEphemerisResponse"+    "fixture/CreateEphemerisResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateEphemeris)++responseCreateMissionProfile :: MissionProfileIdResponse -> TestTree+responseCreateMissionProfile =+  res+    "CreateMissionProfileResponse"+    "fixture/CreateMissionProfileResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateMissionProfile)++responseDeleteConfig :: ConfigIdResponse -> TestTree+responseDeleteConfig =+  res+    "DeleteConfigResponse"+    "fixture/DeleteConfigResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteConfig)++responseDeleteDataflowEndpointGroup :: DataflowEndpointGroupIdResponse -> TestTree+responseDeleteDataflowEndpointGroup =+  res+    "DeleteDataflowEndpointGroupResponse"+    "fixture/DeleteDataflowEndpointGroupResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteDataflowEndpointGroup)++responseDeleteEphemeris :: EphemerisIdResponse -> TestTree+responseDeleteEphemeris =+  res+    "DeleteEphemerisResponse"+    "fixture/DeleteEphemerisResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteEphemeris)++responseDeleteMissionProfile :: MissionProfileIdResponse -> TestTree+responseDeleteMissionProfile =+  res+    "DeleteMissionProfileResponse"+    "fixture/DeleteMissionProfileResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteMissionProfile)++responseDescribeContact :: DescribeContactResponse -> TestTree+responseDescribeContact =+  res+    "DescribeContactResponse"+    "fixture/DescribeContactResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeContact)++responseDescribeEphemeris :: DescribeEphemerisResponse -> TestTree+responseDescribeEphemeris =+  res+    "DescribeEphemerisResponse"+    "fixture/DescribeEphemerisResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeEphemeris)++responseGetConfig :: GetConfigResponse -> TestTree+responseGetConfig =+  res+    "GetConfigResponse"+    "fixture/GetConfigResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetConfig)++responseGetDataflowEndpointGroup :: GetDataflowEndpointGroupResponse -> TestTree+responseGetDataflowEndpointGroup =+  res+    "GetDataflowEndpointGroupResponse"+    "fixture/GetDataflowEndpointGroupResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetDataflowEndpointGroup)++responseGetMinuteUsage :: GetMinuteUsageResponse -> TestTree+responseGetMinuteUsage =+  res+    "GetMinuteUsageResponse"+    "fixture/GetMinuteUsageResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetMinuteUsage)++responseGetMissionProfile :: GetMissionProfileResponse -> TestTree+responseGetMissionProfile =+  res+    "GetMissionProfileResponse"+    "fixture/GetMissionProfileResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetMissionProfile)++responseGetSatellite :: GetSatelliteResponse -> TestTree+responseGetSatellite =+  res+    "GetSatelliteResponse"+    "fixture/GetSatelliteResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetSatellite)++responseListConfigs :: ListConfigsResponse -> TestTree+responseListConfigs =+  res+    "ListConfigsResponse"+    "fixture/ListConfigsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListConfigs)++responseListContacts :: ListContactsResponse -> TestTree+responseListContacts =+  res+    "ListContactsResponse"+    "fixture/ListContactsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListContacts)++responseListDataflowEndpointGroups :: ListDataflowEndpointGroupsResponse -> TestTree+responseListDataflowEndpointGroups =+  res+    "ListDataflowEndpointGroupsResponse"+    "fixture/ListDataflowEndpointGroupsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListDataflowEndpointGroups)++responseListEphemerides :: ListEphemeridesResponse -> TestTree+responseListEphemerides =+  res+    "ListEphemeridesResponse"+    "fixture/ListEphemeridesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListEphemerides)++responseListGroundStations :: ListGroundStationsResponse -> TestTree+responseListGroundStations =+  res+    "ListGroundStationsResponse"+    "fixture/ListGroundStationsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListGroundStations)++responseListMissionProfiles :: ListMissionProfilesResponse -> TestTree+responseListMissionProfiles =+  res+    "ListMissionProfilesResponse"+    "fixture/ListMissionProfilesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListMissionProfiles)++responseListSatellites :: ListSatellitesResponse -> TestTree+responseListSatellites =+  res+    "ListSatellitesResponse"+    "fixture/ListSatellitesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListSatellites)++responseListTagsForResource :: ListTagsForResourceResponse -> TestTree+responseListTagsForResource =+  res+    "ListTagsForResourceResponse"+    "fixture/ListTagsForResourceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListTagsForResource)++responseReserveContact :: ContactIdResponse -> TestTree+responseReserveContact =+  res+    "ReserveContactResponse"+    "fixture/ReserveContactResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ReserveContact)++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)++responseUpdateConfig :: ConfigIdResponse -> TestTree+responseUpdateConfig =+  res+    "UpdateConfigResponse"+    "fixture/UpdateConfigResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateConfig)++responseUpdateEphemeris :: EphemerisIdResponse -> TestTree+responseUpdateEphemeris =+  res+    "UpdateEphemerisResponse"+    "fixture/UpdateEphemerisResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateEphemeris)++responseUpdateMissionProfile :: MissionProfileIdResponse -> TestTree+responseUpdateMissionProfile =+  res+    "UpdateMissionProfileResponse"+    "fixture/UpdateMissionProfileResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateMissionProfile)
+ test/Test/Amazonka/GroundStation.hs view
@@ -0,0 +1,20 @@+-- |+-- Module      : Test.Amazonka.GroundStation+-- Copyright   : (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.GroundStation+  ( tests,+    fixtures,+  )+where++import Test.Tasty (TestTree)++tests :: [TestTree]+tests = []++fixtures :: [TestTree]+fixtures = []
+ test/Test/Amazonka/GroundStation/Internal.hs view
@@ -0,0 +1,8 @@+-- |+-- Module      : Test.Amazonka.GroundStation.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.GroundStation.Internal where