packages feed

amazonka-support-app (empty) → 2.0

raw patch · 46 files changed

+4308/−0 lines, 46 filesdep +amazonka-coredep +amazonka-support-appdep +amazonka-test

Dependencies added: amazonka-core, amazonka-support-app, 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 Support App SDK++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version+ +`2.0` - Derived from API version @2021-08-20@ of the AWS service descriptions, licensed under Apache 2.0.++## Description++Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-support-app)+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.SupportApp](http://hackage.haskell.org/package/amazonka-support-app/docs/Amazonka-SupportApp.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-support-app` 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-support-app.cabal view
@@ -0,0 +1,97 @@+cabal-version:      2.2+name:               amazonka-support-app+version:            2.0+synopsis:           Amazon Support App SDK.+homepage:           https://github.com/brendanhay/amazonka+bug-reports:        https://github.com/brendanhay/amazonka/issues+license:            MPL-2.0+license-file:       LICENSE+author:             Brendan Hay+maintainer:+  Brendan Hay <brendan.g.hay+amazonka@gmail.com>, Jack Kelly <jack@jackkelly.name>++copyright:          Copyright (c) 2013-2023 Brendan Hay+category:           AWS+build-type:         Simple+extra-source-files:+  fixture/*.proto+  fixture/*.yaml+  README.md+  src/.gitkeep++description:+  Derived from API version @2021-08-20@ 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.SupportApp.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.SupportApp" 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-support-app++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.SupportApp+    Amazonka.SupportApp.CreateSlackChannelConfiguration+    Amazonka.SupportApp.DeleteAccountAlias+    Amazonka.SupportApp.DeleteSlackChannelConfiguration+    Amazonka.SupportApp.DeleteSlackWorkspaceConfiguration+    Amazonka.SupportApp.GetAccountAlias+    Amazonka.SupportApp.Lens+    Amazonka.SupportApp.ListSlackChannelConfigurations+    Amazonka.SupportApp.ListSlackWorkspaceConfigurations+    Amazonka.SupportApp.PutAccountAlias+    Amazonka.SupportApp.RegisterSlackWorkspaceForOrganization+    Amazonka.SupportApp.Types+    Amazonka.SupportApp.Types.AccountType+    Amazonka.SupportApp.Types.NotificationSeverityLevel+    Amazonka.SupportApp.Types.SlackChannelConfiguration+    Amazonka.SupportApp.Types.SlackWorkspaceConfiguration+    Amazonka.SupportApp.UpdateSlackChannelConfiguration+    Amazonka.SupportApp.Waiters++  build-depends:+    , amazonka-core  >=2.0  && <2.1+    , base           >=4.12 && <5++test-suite amazonka-support-app-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.SupportApp+    Test.Amazonka.SupportApp+    Test.Amazonka.SupportApp.Internal++  build-depends:+    , amazonka-core         >=2.0 && <2.1+    , amazonka-support-app+    , amazonka-test         >=2.0 && <2.1+    , base+    , bytestring+    , case-insensitive+    , tasty+    , tasty-hunit+    , text+    , time+    , unordered-containers
+ fixture/CreateSlackChannelConfiguration.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/supportapp/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  supportapp.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/CreateSlackChannelConfigurationResponse.proto view
+ fixture/DeleteAccountAlias.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/supportapp/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  supportapp.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/DeleteAccountAliasResponse.proto view
+ fixture/DeleteSlackChannelConfiguration.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/supportapp/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  supportapp.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/DeleteSlackChannelConfigurationResponse.proto view
+ fixture/DeleteSlackWorkspaceConfiguration.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/supportapp/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  supportapp.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/DeleteSlackWorkspaceConfigurationResponse.proto view
+ fixture/GetAccountAlias.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/supportapp/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  supportapp.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/GetAccountAliasResponse.proto view
+ fixture/ListSlackChannelConfigurations.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/supportapp/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  supportapp.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/ListSlackChannelConfigurationsResponse.proto view
+ fixture/ListSlackWorkspaceConfigurations.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/supportapp/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  supportapp.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/ListSlackWorkspaceConfigurationsResponse.proto view
+ fixture/PutAccountAlias.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/supportapp/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  supportapp.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/PutAccountAliasResponse.proto view
+ fixture/RegisterSlackWorkspaceForOrganization.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/supportapp/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  supportapp.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/RegisterSlackWorkspaceForOrganizationResponse.proto view
+ fixture/UpdateSlackChannelConfiguration.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/supportapp/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  supportapp.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/UpdateSlackChannelConfigurationResponse.proto view
+ gen/Amazonka/SupportApp.hs view
@@ -0,0 +1,201 @@+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Amazonka.SupportApp+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Derived from API version @2021-08-20@ of the AWS service descriptions, licensed under Apache 2.0.+--+-- Amazon Web Services Support App in Slack+--+-- You can use the Amazon Web Services Support App in Slack API to manage+-- your support cases in Slack for your Amazon Web Services account. After+-- you configure your Slack workspace and channel with the Amazon Web+-- Services Support App, you can perform the following tasks directly in+-- your Slack channel:+--+-- -   Create, search, update, and resolve your support cases+--+-- -   Request service quota increases for your account+--+-- -   Invite Amazon Web Services Support agents to your channel so that+--     you can chat directly about your support cases+--+-- For more information about how to perform these actions in Slack, see+-- the following documentation in the /Amazon Web Services Support User+-- Guide/:+--+-- -   <https://docs.aws.amazon.com/awssupport/latest/user/aws-support-app-for-slack.html Amazon Web Services Support App in Slack>+--+-- -   <https://docs.aws.amazon.com/awssupport/latest/user/joining-a-live-chat-session.html Joining a live chat session with Amazon Web Services Support>+--+-- -   <https://docs.aws.amazon.com/awssupport/latest/user/service-quota-increase.html Requesting service quota increases>+--+-- -   <https://docs.aws.amazon.com/awssupport/latest/user/support-app-commands.html Amazon Web Services Support App commands in Slack>+--+-- You can also use the Amazon Web Services Management Console instead of+-- the Amazon Web Services Support App API to manage your Slack+-- configurations. For more information, see+-- <https://docs.aws.amazon.com/awssupport/latest/user/authorize-slack-workspace.html Authorize a Slack workspace to enable the Amazon Web Services Support App>.+--+-- -   You must have a Business or Enterprise Support plan to use the+--     Amazon Web Services Support App API.+--+-- -   For more information about the Amazon Web Services Support App+--     endpoints, see the+--     <https://docs.aws.amazon.com/general/latest/gr/awssupport.html#awssupport_app_region Amazon Web Services Support App in Slack endpoints>+--     in the /Amazon Web Services General Reference/.+module Amazonka.SupportApp+  ( -- * Service Configuration+    defaultService,++    -- * Errors+    -- $errors++    -- ** AccessDeniedException+    _AccessDeniedException,++    -- ** ConflictException+    _ConflictException,++    -- ** InternalServerException+    _InternalServerException,++    -- ** ResourceNotFoundException+    _ResourceNotFoundException,++    -- ** ServiceQuotaExceededException+    _ServiceQuotaExceededException,++    -- ** ValidationException+    _ValidationException,++    -- * Waiters+    -- $waiters++    -- * Operations+    -- $operations++    -- ** CreateSlackChannelConfiguration+    CreateSlackChannelConfiguration (CreateSlackChannelConfiguration'),+    newCreateSlackChannelConfiguration,+    CreateSlackChannelConfigurationResponse (CreateSlackChannelConfigurationResponse'),+    newCreateSlackChannelConfigurationResponse,++    -- ** DeleteAccountAlias+    DeleteAccountAlias (DeleteAccountAlias'),+    newDeleteAccountAlias,+    DeleteAccountAliasResponse (DeleteAccountAliasResponse'),+    newDeleteAccountAliasResponse,++    -- ** DeleteSlackChannelConfiguration+    DeleteSlackChannelConfiguration (DeleteSlackChannelConfiguration'),+    newDeleteSlackChannelConfiguration,+    DeleteSlackChannelConfigurationResponse (DeleteSlackChannelConfigurationResponse'),+    newDeleteSlackChannelConfigurationResponse,++    -- ** DeleteSlackWorkspaceConfiguration+    DeleteSlackWorkspaceConfiguration (DeleteSlackWorkspaceConfiguration'),+    newDeleteSlackWorkspaceConfiguration,+    DeleteSlackWorkspaceConfigurationResponse (DeleteSlackWorkspaceConfigurationResponse'),+    newDeleteSlackWorkspaceConfigurationResponse,++    -- ** GetAccountAlias+    GetAccountAlias (GetAccountAlias'),+    newGetAccountAlias,+    GetAccountAliasResponse (GetAccountAliasResponse'),+    newGetAccountAliasResponse,++    -- ** ListSlackChannelConfigurations+    ListSlackChannelConfigurations (ListSlackChannelConfigurations'),+    newListSlackChannelConfigurations,+    ListSlackChannelConfigurationsResponse (ListSlackChannelConfigurationsResponse'),+    newListSlackChannelConfigurationsResponse,++    -- ** ListSlackWorkspaceConfigurations+    ListSlackWorkspaceConfigurations (ListSlackWorkspaceConfigurations'),+    newListSlackWorkspaceConfigurations,+    ListSlackWorkspaceConfigurationsResponse (ListSlackWorkspaceConfigurationsResponse'),+    newListSlackWorkspaceConfigurationsResponse,++    -- ** PutAccountAlias+    PutAccountAlias (PutAccountAlias'),+    newPutAccountAlias,+    PutAccountAliasResponse (PutAccountAliasResponse'),+    newPutAccountAliasResponse,++    -- ** RegisterSlackWorkspaceForOrganization+    RegisterSlackWorkspaceForOrganization (RegisterSlackWorkspaceForOrganization'),+    newRegisterSlackWorkspaceForOrganization,+    RegisterSlackWorkspaceForOrganizationResponse (RegisterSlackWorkspaceForOrganizationResponse'),+    newRegisterSlackWorkspaceForOrganizationResponse,++    -- ** UpdateSlackChannelConfiguration+    UpdateSlackChannelConfiguration (UpdateSlackChannelConfiguration'),+    newUpdateSlackChannelConfiguration,+    UpdateSlackChannelConfigurationResponse (UpdateSlackChannelConfigurationResponse'),+    newUpdateSlackChannelConfigurationResponse,++    -- * Types++    -- ** AccountType+    AccountType (..),++    -- ** NotificationSeverityLevel+    NotificationSeverityLevel (..),++    -- ** SlackChannelConfiguration+    SlackChannelConfiguration (SlackChannelConfiguration'),+    newSlackChannelConfiguration,++    -- ** SlackWorkspaceConfiguration+    SlackWorkspaceConfiguration (SlackWorkspaceConfiguration'),+    newSlackWorkspaceConfiguration,+  )+where++import Amazonka.SupportApp.CreateSlackChannelConfiguration+import Amazonka.SupportApp.DeleteAccountAlias+import Amazonka.SupportApp.DeleteSlackChannelConfiguration+import Amazonka.SupportApp.DeleteSlackWorkspaceConfiguration+import Amazonka.SupportApp.GetAccountAlias+import Amazonka.SupportApp.Lens+import Amazonka.SupportApp.ListSlackChannelConfigurations+import Amazonka.SupportApp.ListSlackWorkspaceConfigurations+import Amazonka.SupportApp.PutAccountAlias+import Amazonka.SupportApp.RegisterSlackWorkspaceForOrganization+import Amazonka.SupportApp.Types+import Amazonka.SupportApp.UpdateSlackChannelConfiguration+import Amazonka.SupportApp.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 'SupportApp'.++-- $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/SupportApp/CreateSlackChannelConfiguration.hs view
@@ -0,0 +1,394 @@+{-# 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.SupportApp.CreateSlackChannelConfiguration+-- 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 Slack channel configuration for your Amazon Web Services+-- account.+--+-- -   You can add up to 5 Slack workspaces for your account.+--+-- -   You can add up to 20 Slack channels for your account.+--+-- A Slack channel can have up to 100 Amazon Web Services accounts. This+-- means that only 100 accounts can add the same Slack channel to the+-- Amazon Web Services Support App. We recommend that you only add the+-- accounts that you need to manage support cases for your organization.+-- This can reduce the notifications about case updates that you receive in+-- the Slack channel.+--+-- We recommend that you choose a private Slack channel so that only+-- members in that channel have read and write access to your support+-- cases. Anyone in your Slack channel can create, update, or resolve+-- support cases for your account. Users require an invitation to join+-- private channels.+module Amazonka.SupportApp.CreateSlackChannelConfiguration+  ( -- * Creating a Request+    CreateSlackChannelConfiguration (..),+    newCreateSlackChannelConfiguration,++    -- * Request Lenses+    createSlackChannelConfiguration_channelName,+    createSlackChannelConfiguration_notifyOnAddCorrespondenceToCase,+    createSlackChannelConfiguration_notifyOnCreateOrReopenCase,+    createSlackChannelConfiguration_notifyOnResolveCase,+    createSlackChannelConfiguration_channelId,+    createSlackChannelConfiguration_channelRoleArn,+    createSlackChannelConfiguration_notifyOnCaseSeverity,+    createSlackChannelConfiguration_teamId,++    -- * Destructuring the Response+    CreateSlackChannelConfigurationResponse (..),+    newCreateSlackChannelConfigurationResponse,++    -- * Response Lenses+    createSlackChannelConfigurationResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SupportApp.Types++-- | /See:/ 'newCreateSlackChannelConfiguration' smart constructor.+data CreateSlackChannelConfiguration = CreateSlackChannelConfiguration'+  { -- | The name of the Slack channel that you configure for the Amazon Web+    -- Services Support App.+    channelName :: Prelude.Maybe Prelude.Text,+    -- | Whether you want to get notified when a support case has a new+    -- correspondence.+    notifyOnAddCorrespondenceToCase :: Prelude.Maybe Prelude.Bool,+    -- | Whether you want to get notified when a support case is created or+    -- reopened.+    notifyOnCreateOrReopenCase :: Prelude.Maybe Prelude.Bool,+    -- | Whether you want to get notified when a support case is resolved.+    notifyOnResolveCase :: Prelude.Maybe Prelude.Bool,+    -- | The channel ID in Slack. This ID identifies a channel within a Slack+    -- workspace.+    channelId :: Prelude.Text,+    -- | The Amazon Resource Name (ARN) of an IAM role that you want to use to+    -- perform operations on Amazon Web Services. For more information, see+    -- <https://docs.aws.amazon.com/awssupport/latest/user/support-app-permissions.html Managing access to the Amazon Web Services Support App>+    -- in the /Amazon Web Services Support User Guide/.+    channelRoleArn :: Prelude.Text,+    -- | The case severity for a support case that you want to receive+    -- notifications.+    --+    -- If you specify @high@ or @all@, you must specify @true@ for at least one+    -- of the following parameters:+    --+    -- -   @notifyOnAddCorrespondenceToCase@+    --+    -- -   @notifyOnCreateOrReopenCase@+    --+    -- -   @notifyOnResolveCase@+    --+    -- If you specify @none@, the following parameters must be null or @false@:+    --+    -- -   @notifyOnAddCorrespondenceToCase@+    --+    -- -   @notifyOnCreateOrReopenCase@+    --+    -- -   @notifyOnResolveCase@+    --+    -- If you don\'t specify these parameters in your request, they default to+    -- @false@.+    notifyOnCaseSeverity :: NotificationSeverityLevel,+    -- | The team ID in Slack. This ID uniquely identifies a Slack workspace,+    -- such as @T012ABCDEFG@.+    teamId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateSlackChannelConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'channelName', 'createSlackChannelConfiguration_channelName' - The name of the Slack channel that you configure for the Amazon Web+-- Services Support App.+--+-- 'notifyOnAddCorrespondenceToCase', 'createSlackChannelConfiguration_notifyOnAddCorrespondenceToCase' - Whether you want to get notified when a support case has a new+-- correspondence.+--+-- 'notifyOnCreateOrReopenCase', 'createSlackChannelConfiguration_notifyOnCreateOrReopenCase' - Whether you want to get notified when a support case is created or+-- reopened.+--+-- 'notifyOnResolveCase', 'createSlackChannelConfiguration_notifyOnResolveCase' - Whether you want to get notified when a support case is resolved.+--+-- 'channelId', 'createSlackChannelConfiguration_channelId' - The channel ID in Slack. This ID identifies a channel within a Slack+-- workspace.+--+-- 'channelRoleArn', 'createSlackChannelConfiguration_channelRoleArn' - The Amazon Resource Name (ARN) of an IAM role that you want to use to+-- perform operations on Amazon Web Services. For more information, see+-- <https://docs.aws.amazon.com/awssupport/latest/user/support-app-permissions.html Managing access to the Amazon Web Services Support App>+-- in the /Amazon Web Services Support User Guide/.+--+-- 'notifyOnCaseSeverity', 'createSlackChannelConfiguration_notifyOnCaseSeverity' - The case severity for a support case that you want to receive+-- notifications.+--+-- If you specify @high@ or @all@, you must specify @true@ for at least one+-- of the following parameters:+--+-- -   @notifyOnAddCorrespondenceToCase@+--+-- -   @notifyOnCreateOrReopenCase@+--+-- -   @notifyOnResolveCase@+--+-- If you specify @none@, the following parameters must be null or @false@:+--+-- -   @notifyOnAddCorrespondenceToCase@+--+-- -   @notifyOnCreateOrReopenCase@+--+-- -   @notifyOnResolveCase@+--+-- If you don\'t specify these parameters in your request, they default to+-- @false@.+--+-- 'teamId', 'createSlackChannelConfiguration_teamId' - The team ID in Slack. This ID uniquely identifies a Slack workspace,+-- such as @T012ABCDEFG@.+newCreateSlackChannelConfiguration ::+  -- | 'channelId'+  Prelude.Text ->+  -- | 'channelRoleArn'+  Prelude.Text ->+  -- | 'notifyOnCaseSeverity'+  NotificationSeverityLevel ->+  -- | 'teamId'+  Prelude.Text ->+  CreateSlackChannelConfiguration+newCreateSlackChannelConfiguration+  pChannelId_+  pChannelRoleArn_+  pNotifyOnCaseSeverity_+  pTeamId_ =+    CreateSlackChannelConfiguration'+      { channelName =+          Prelude.Nothing,+        notifyOnAddCorrespondenceToCase =+          Prelude.Nothing,+        notifyOnCreateOrReopenCase =+          Prelude.Nothing,+        notifyOnResolveCase = Prelude.Nothing,+        channelId = pChannelId_,+        channelRoleArn = pChannelRoleArn_,+        notifyOnCaseSeverity =+          pNotifyOnCaseSeverity_,+        teamId = pTeamId_+      }++-- | The name of the Slack channel that you configure for the Amazon Web+-- Services Support App.+createSlackChannelConfiguration_channelName :: Lens.Lens' CreateSlackChannelConfiguration (Prelude.Maybe Prelude.Text)+createSlackChannelConfiguration_channelName = Lens.lens (\CreateSlackChannelConfiguration' {channelName} -> channelName) (\s@CreateSlackChannelConfiguration' {} a -> s {channelName = a} :: CreateSlackChannelConfiguration)++-- | Whether you want to get notified when a support case has a new+-- correspondence.+createSlackChannelConfiguration_notifyOnAddCorrespondenceToCase :: Lens.Lens' CreateSlackChannelConfiguration (Prelude.Maybe Prelude.Bool)+createSlackChannelConfiguration_notifyOnAddCorrespondenceToCase = Lens.lens (\CreateSlackChannelConfiguration' {notifyOnAddCorrespondenceToCase} -> notifyOnAddCorrespondenceToCase) (\s@CreateSlackChannelConfiguration' {} a -> s {notifyOnAddCorrespondenceToCase = a} :: CreateSlackChannelConfiguration)++-- | Whether you want to get notified when a support case is created or+-- reopened.+createSlackChannelConfiguration_notifyOnCreateOrReopenCase :: Lens.Lens' CreateSlackChannelConfiguration (Prelude.Maybe Prelude.Bool)+createSlackChannelConfiguration_notifyOnCreateOrReopenCase = Lens.lens (\CreateSlackChannelConfiguration' {notifyOnCreateOrReopenCase} -> notifyOnCreateOrReopenCase) (\s@CreateSlackChannelConfiguration' {} a -> s {notifyOnCreateOrReopenCase = a} :: CreateSlackChannelConfiguration)++-- | Whether you want to get notified when a support case is resolved.+createSlackChannelConfiguration_notifyOnResolveCase :: Lens.Lens' CreateSlackChannelConfiguration (Prelude.Maybe Prelude.Bool)+createSlackChannelConfiguration_notifyOnResolveCase = Lens.lens (\CreateSlackChannelConfiguration' {notifyOnResolveCase} -> notifyOnResolveCase) (\s@CreateSlackChannelConfiguration' {} a -> s {notifyOnResolveCase = a} :: CreateSlackChannelConfiguration)++-- | The channel ID in Slack. This ID identifies a channel within a Slack+-- workspace.+createSlackChannelConfiguration_channelId :: Lens.Lens' CreateSlackChannelConfiguration Prelude.Text+createSlackChannelConfiguration_channelId = Lens.lens (\CreateSlackChannelConfiguration' {channelId} -> channelId) (\s@CreateSlackChannelConfiguration' {} a -> s {channelId = a} :: CreateSlackChannelConfiguration)++-- | The Amazon Resource Name (ARN) of an IAM role that you want to use to+-- perform operations on Amazon Web Services. For more information, see+-- <https://docs.aws.amazon.com/awssupport/latest/user/support-app-permissions.html Managing access to the Amazon Web Services Support App>+-- in the /Amazon Web Services Support User Guide/.+createSlackChannelConfiguration_channelRoleArn :: Lens.Lens' CreateSlackChannelConfiguration Prelude.Text+createSlackChannelConfiguration_channelRoleArn = Lens.lens (\CreateSlackChannelConfiguration' {channelRoleArn} -> channelRoleArn) (\s@CreateSlackChannelConfiguration' {} a -> s {channelRoleArn = a} :: CreateSlackChannelConfiguration)++-- | The case severity for a support case that you want to receive+-- notifications.+--+-- If you specify @high@ or @all@, you must specify @true@ for at least one+-- of the following parameters:+--+-- -   @notifyOnAddCorrespondenceToCase@+--+-- -   @notifyOnCreateOrReopenCase@+--+-- -   @notifyOnResolveCase@+--+-- If you specify @none@, the following parameters must be null or @false@:+--+-- -   @notifyOnAddCorrespondenceToCase@+--+-- -   @notifyOnCreateOrReopenCase@+--+-- -   @notifyOnResolveCase@+--+-- If you don\'t specify these parameters in your request, they default to+-- @false@.+createSlackChannelConfiguration_notifyOnCaseSeverity :: Lens.Lens' CreateSlackChannelConfiguration NotificationSeverityLevel+createSlackChannelConfiguration_notifyOnCaseSeverity = Lens.lens (\CreateSlackChannelConfiguration' {notifyOnCaseSeverity} -> notifyOnCaseSeverity) (\s@CreateSlackChannelConfiguration' {} a -> s {notifyOnCaseSeverity = a} :: CreateSlackChannelConfiguration)++-- | The team ID in Slack. This ID uniquely identifies a Slack workspace,+-- such as @T012ABCDEFG@.+createSlackChannelConfiguration_teamId :: Lens.Lens' CreateSlackChannelConfiguration Prelude.Text+createSlackChannelConfiguration_teamId = Lens.lens (\CreateSlackChannelConfiguration' {teamId} -> teamId) (\s@CreateSlackChannelConfiguration' {} a -> s {teamId = a} :: CreateSlackChannelConfiguration)++instance+  Core.AWSRequest+    CreateSlackChannelConfiguration+  where+  type+    AWSResponse CreateSlackChannelConfiguration =+      CreateSlackChannelConfigurationResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          CreateSlackChannelConfigurationResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    CreateSlackChannelConfiguration+  where+  hashWithSalt+    _salt+    CreateSlackChannelConfiguration' {..} =+      _salt+        `Prelude.hashWithSalt` channelName+        `Prelude.hashWithSalt` notifyOnAddCorrespondenceToCase+        `Prelude.hashWithSalt` notifyOnCreateOrReopenCase+        `Prelude.hashWithSalt` notifyOnResolveCase+        `Prelude.hashWithSalt` channelId+        `Prelude.hashWithSalt` channelRoleArn+        `Prelude.hashWithSalt` notifyOnCaseSeverity+        `Prelude.hashWithSalt` teamId++instance+  Prelude.NFData+    CreateSlackChannelConfiguration+  where+  rnf CreateSlackChannelConfiguration' {..} =+    Prelude.rnf channelName+      `Prelude.seq` Prelude.rnf notifyOnAddCorrespondenceToCase+      `Prelude.seq` Prelude.rnf notifyOnCreateOrReopenCase+      `Prelude.seq` Prelude.rnf notifyOnResolveCase+      `Prelude.seq` Prelude.rnf channelId+      `Prelude.seq` Prelude.rnf channelRoleArn+      `Prelude.seq` Prelude.rnf notifyOnCaseSeverity+      `Prelude.seq` Prelude.rnf teamId++instance+  Data.ToHeaders+    CreateSlackChannelConfiguration+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateSlackChannelConfiguration where+  toJSON CreateSlackChannelConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("channelName" Data..=) Prelude.<$> channelName,+            ("notifyOnAddCorrespondenceToCase" Data..=)+              Prelude.<$> notifyOnAddCorrespondenceToCase,+            ("notifyOnCreateOrReopenCase" Data..=)+              Prelude.<$> notifyOnCreateOrReopenCase,+            ("notifyOnResolveCase" Data..=)+              Prelude.<$> notifyOnResolveCase,+            Prelude.Just ("channelId" Data..= channelId),+            Prelude.Just+              ("channelRoleArn" Data..= channelRoleArn),+            Prelude.Just+              ( "notifyOnCaseSeverity"+                  Data..= notifyOnCaseSeverity+              ),+            Prelude.Just ("teamId" Data..= teamId)+          ]+      )++instance Data.ToPath CreateSlackChannelConfiguration where+  toPath =+    Prelude.const+      "/control/create-slack-channel-configuration"++instance Data.ToQuery CreateSlackChannelConfiguration where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateSlackChannelConfigurationResponse' smart constructor.+data CreateSlackChannelConfigurationResponse = CreateSlackChannelConfigurationResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateSlackChannelConfigurationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'createSlackChannelConfigurationResponse_httpStatus' - The response's http status code.+newCreateSlackChannelConfigurationResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateSlackChannelConfigurationResponse+newCreateSlackChannelConfigurationResponse+  pHttpStatus_ =+    CreateSlackChannelConfigurationResponse'+      { httpStatus =+          pHttpStatus_+      }++-- | The response's http status code.+createSlackChannelConfigurationResponse_httpStatus :: Lens.Lens' CreateSlackChannelConfigurationResponse Prelude.Int+createSlackChannelConfigurationResponse_httpStatus = Lens.lens (\CreateSlackChannelConfigurationResponse' {httpStatus} -> httpStatus) (\s@CreateSlackChannelConfigurationResponse' {} a -> s {httpStatus = a} :: CreateSlackChannelConfigurationResponse)++instance+  Prelude.NFData+    CreateSlackChannelConfigurationResponse+  where+  rnf CreateSlackChannelConfigurationResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/SupportApp/DeleteAccountAlias.hs view
@@ -0,0 +1,136 @@+{-# 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.SupportApp.DeleteAccountAlias+-- 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 alias for an Amazon Web Services account ID. The alias+-- appears in the Amazon Web Services Support App page of the Amazon Web+-- Services Support Center. The alias also appears in Slack messages from+-- the Amazon Web Services Support App.+module Amazonka.SupportApp.DeleteAccountAlias+  ( -- * Creating a Request+    DeleteAccountAlias (..),+    newDeleteAccountAlias,++    -- * Destructuring the Response+    DeleteAccountAliasResponse (..),+    newDeleteAccountAliasResponse,++    -- * Response Lenses+    deleteAccountAliasResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SupportApp.Types++-- | /See:/ 'newDeleteAccountAlias' smart constructor.+data DeleteAccountAlias = DeleteAccountAlias'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteAccountAlias' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newDeleteAccountAlias ::+  DeleteAccountAlias+newDeleteAccountAlias = DeleteAccountAlias'++instance Core.AWSRequest DeleteAccountAlias where+  type+    AWSResponse DeleteAccountAlias =+      DeleteAccountAliasResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          DeleteAccountAliasResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteAccountAlias where+  hashWithSalt _salt _ =+    _salt `Prelude.hashWithSalt` ()++instance Prelude.NFData DeleteAccountAlias where+  rnf _ = ()++instance Data.ToHeaders DeleteAccountAlias where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DeleteAccountAlias where+  toJSON = Prelude.const (Data.Object Prelude.mempty)++instance Data.ToPath DeleteAccountAlias where+  toPath =+    Prelude.const "/control/delete-account-alias"++instance Data.ToQuery DeleteAccountAlias where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteAccountAliasResponse' smart constructor.+data DeleteAccountAliasResponse = DeleteAccountAliasResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteAccountAliasResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteAccountAliasResponse_httpStatus' - The response's http status code.+newDeleteAccountAliasResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteAccountAliasResponse+newDeleteAccountAliasResponse pHttpStatus_ =+  DeleteAccountAliasResponse'+    { httpStatus =+        pHttpStatus_+    }++-- | The response's http status code.+deleteAccountAliasResponse_httpStatus :: Lens.Lens' DeleteAccountAliasResponse Prelude.Int+deleteAccountAliasResponse_httpStatus = Lens.lens (\DeleteAccountAliasResponse' {httpStatus} -> httpStatus) (\s@DeleteAccountAliasResponse' {} a -> s {httpStatus = a} :: DeleteAccountAliasResponse)++instance Prelude.NFData DeleteAccountAliasResponse where+  rnf DeleteAccountAliasResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/SupportApp/DeleteSlackChannelConfiguration.hs view
@@ -0,0 +1,202 @@+{-# 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.SupportApp.DeleteSlackChannelConfiguration+-- 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 Slack channel configuration from your Amazon Web Services+-- account. This operation doesn\'t delete your Slack channel.+module Amazonka.SupportApp.DeleteSlackChannelConfiguration+  ( -- * Creating a Request+    DeleteSlackChannelConfiguration (..),+    newDeleteSlackChannelConfiguration,++    -- * Request Lenses+    deleteSlackChannelConfiguration_channelId,+    deleteSlackChannelConfiguration_teamId,++    -- * Destructuring the Response+    DeleteSlackChannelConfigurationResponse (..),+    newDeleteSlackChannelConfigurationResponse,++    -- * Response Lenses+    deleteSlackChannelConfigurationResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SupportApp.Types++-- | /See:/ 'newDeleteSlackChannelConfiguration' smart constructor.+data DeleteSlackChannelConfiguration = DeleteSlackChannelConfiguration'+  { -- | The channel ID in Slack. This ID identifies a channel within a Slack+    -- workspace.+    channelId :: Prelude.Text,+    -- | The team ID in Slack. This ID uniquely identifies a Slack workspace,+    -- such as @T012ABCDEFG@.+    teamId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteSlackChannelConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'channelId', 'deleteSlackChannelConfiguration_channelId' - The channel ID in Slack. This ID identifies a channel within a Slack+-- workspace.+--+-- 'teamId', 'deleteSlackChannelConfiguration_teamId' - The team ID in Slack. This ID uniquely identifies a Slack workspace,+-- such as @T012ABCDEFG@.+newDeleteSlackChannelConfiguration ::+  -- | 'channelId'+  Prelude.Text ->+  -- | 'teamId'+  Prelude.Text ->+  DeleteSlackChannelConfiguration+newDeleteSlackChannelConfiguration+  pChannelId_+  pTeamId_ =+    DeleteSlackChannelConfiguration'+      { channelId =+          pChannelId_,+        teamId = pTeamId_+      }++-- | The channel ID in Slack. This ID identifies a channel within a Slack+-- workspace.+deleteSlackChannelConfiguration_channelId :: Lens.Lens' DeleteSlackChannelConfiguration Prelude.Text+deleteSlackChannelConfiguration_channelId = Lens.lens (\DeleteSlackChannelConfiguration' {channelId} -> channelId) (\s@DeleteSlackChannelConfiguration' {} a -> s {channelId = a} :: DeleteSlackChannelConfiguration)++-- | The team ID in Slack. This ID uniquely identifies a Slack workspace,+-- such as @T012ABCDEFG@.+deleteSlackChannelConfiguration_teamId :: Lens.Lens' DeleteSlackChannelConfiguration Prelude.Text+deleteSlackChannelConfiguration_teamId = Lens.lens (\DeleteSlackChannelConfiguration' {teamId} -> teamId) (\s@DeleteSlackChannelConfiguration' {} a -> s {teamId = a} :: DeleteSlackChannelConfiguration)++instance+  Core.AWSRequest+    DeleteSlackChannelConfiguration+  where+  type+    AWSResponse DeleteSlackChannelConfiguration =+      DeleteSlackChannelConfigurationResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          DeleteSlackChannelConfigurationResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    DeleteSlackChannelConfiguration+  where+  hashWithSalt+    _salt+    DeleteSlackChannelConfiguration' {..} =+      _salt+        `Prelude.hashWithSalt` channelId+        `Prelude.hashWithSalt` teamId++instance+  Prelude.NFData+    DeleteSlackChannelConfiguration+  where+  rnf DeleteSlackChannelConfiguration' {..} =+    Prelude.rnf channelId+      `Prelude.seq` Prelude.rnf teamId++instance+  Data.ToHeaders+    DeleteSlackChannelConfiguration+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DeleteSlackChannelConfiguration where+  toJSON DeleteSlackChannelConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("channelId" Data..= channelId),+            Prelude.Just ("teamId" Data..= teamId)+          ]+      )++instance Data.ToPath DeleteSlackChannelConfiguration where+  toPath =+    Prelude.const+      "/control/delete-slack-channel-configuration"++instance Data.ToQuery DeleteSlackChannelConfiguration where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteSlackChannelConfigurationResponse' smart constructor.+data DeleteSlackChannelConfigurationResponse = DeleteSlackChannelConfigurationResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteSlackChannelConfigurationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteSlackChannelConfigurationResponse_httpStatus' - The response's http status code.+newDeleteSlackChannelConfigurationResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteSlackChannelConfigurationResponse+newDeleteSlackChannelConfigurationResponse+  pHttpStatus_ =+    DeleteSlackChannelConfigurationResponse'+      { httpStatus =+          pHttpStatus_+      }++-- | The response's http status code.+deleteSlackChannelConfigurationResponse_httpStatus :: Lens.Lens' DeleteSlackChannelConfigurationResponse Prelude.Int+deleteSlackChannelConfigurationResponse_httpStatus = Lens.lens (\DeleteSlackChannelConfigurationResponse' {httpStatus} -> httpStatus) (\s@DeleteSlackChannelConfigurationResponse' {} a -> s {httpStatus = a} :: DeleteSlackChannelConfigurationResponse)++instance+  Prelude.NFData+    DeleteSlackChannelConfigurationResponse+  where+  rnf DeleteSlackChannelConfigurationResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/SupportApp/DeleteSlackWorkspaceConfiguration.hs view
@@ -0,0 +1,189 @@+{-# 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.SupportApp.DeleteSlackWorkspaceConfiguration+-- 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 Slack workspace configuration from your Amazon Web Services+-- account. This operation doesn\'t delete your Slack workspace.+module Amazonka.SupportApp.DeleteSlackWorkspaceConfiguration+  ( -- * Creating a Request+    DeleteSlackWorkspaceConfiguration (..),+    newDeleteSlackWorkspaceConfiguration,++    -- * Request Lenses+    deleteSlackWorkspaceConfiguration_teamId,++    -- * Destructuring the Response+    DeleteSlackWorkspaceConfigurationResponse (..),+    newDeleteSlackWorkspaceConfigurationResponse,++    -- * Response Lenses+    deleteSlackWorkspaceConfigurationResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SupportApp.Types++-- | /See:/ 'newDeleteSlackWorkspaceConfiguration' smart constructor.+data DeleteSlackWorkspaceConfiguration = DeleteSlackWorkspaceConfiguration'+  { -- | The team ID in Slack. This ID uniquely identifies a Slack workspace,+    -- such as @T012ABCDEFG@.+    teamId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteSlackWorkspaceConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'teamId', 'deleteSlackWorkspaceConfiguration_teamId' - The team ID in Slack. This ID uniquely identifies a Slack workspace,+-- such as @T012ABCDEFG@.+newDeleteSlackWorkspaceConfiguration ::+  -- | 'teamId'+  Prelude.Text ->+  DeleteSlackWorkspaceConfiguration+newDeleteSlackWorkspaceConfiguration pTeamId_ =+  DeleteSlackWorkspaceConfiguration'+    { teamId =+        pTeamId_+    }++-- | The team ID in Slack. This ID uniquely identifies a Slack workspace,+-- such as @T012ABCDEFG@.+deleteSlackWorkspaceConfiguration_teamId :: Lens.Lens' DeleteSlackWorkspaceConfiguration Prelude.Text+deleteSlackWorkspaceConfiguration_teamId = Lens.lens (\DeleteSlackWorkspaceConfiguration' {teamId} -> teamId) (\s@DeleteSlackWorkspaceConfiguration' {} a -> s {teamId = a} :: DeleteSlackWorkspaceConfiguration)++instance+  Core.AWSRequest+    DeleteSlackWorkspaceConfiguration+  where+  type+    AWSResponse DeleteSlackWorkspaceConfiguration =+      DeleteSlackWorkspaceConfigurationResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          DeleteSlackWorkspaceConfigurationResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    DeleteSlackWorkspaceConfiguration+  where+  hashWithSalt+    _salt+    DeleteSlackWorkspaceConfiguration' {..} =+      _salt `Prelude.hashWithSalt` teamId++instance+  Prelude.NFData+    DeleteSlackWorkspaceConfiguration+  where+  rnf DeleteSlackWorkspaceConfiguration' {..} =+    Prelude.rnf teamId++instance+  Data.ToHeaders+    DeleteSlackWorkspaceConfiguration+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance+  Data.ToJSON+    DeleteSlackWorkspaceConfiguration+  where+  toJSON DeleteSlackWorkspaceConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("teamId" Data..= teamId)]+      )++instance+  Data.ToPath+    DeleteSlackWorkspaceConfiguration+  where+  toPath =+    Prelude.const+      "/control/delete-slack-workspace-configuration"++instance+  Data.ToQuery+    DeleteSlackWorkspaceConfiguration+  where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteSlackWorkspaceConfigurationResponse' smart constructor.+data DeleteSlackWorkspaceConfigurationResponse = DeleteSlackWorkspaceConfigurationResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteSlackWorkspaceConfigurationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteSlackWorkspaceConfigurationResponse_httpStatus' - The response's http status code.+newDeleteSlackWorkspaceConfigurationResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteSlackWorkspaceConfigurationResponse+newDeleteSlackWorkspaceConfigurationResponse+  pHttpStatus_ =+    DeleteSlackWorkspaceConfigurationResponse'+      { httpStatus =+          pHttpStatus_+      }++-- | The response's http status code.+deleteSlackWorkspaceConfigurationResponse_httpStatus :: Lens.Lens' DeleteSlackWorkspaceConfigurationResponse Prelude.Int+deleteSlackWorkspaceConfigurationResponse_httpStatus = Lens.lens (\DeleteSlackWorkspaceConfigurationResponse' {httpStatus} -> httpStatus) (\s@DeleteSlackWorkspaceConfigurationResponse' {} a -> s {httpStatus = a} :: DeleteSlackWorkspaceConfigurationResponse)++instance+  Prelude.NFData+    DeleteSlackWorkspaceConfigurationResponse+  where+  rnf DeleteSlackWorkspaceConfigurationResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/SupportApp/GetAccountAlias.hs view
@@ -0,0 +1,147 @@+{-# 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.SupportApp.GetAccountAlias+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves the alias from an Amazon Web Services account ID. The alias+-- appears in the Amazon Web Services Support App page of the Amazon Web+-- Services Support Center. The alias also appears in Slack messages from+-- the Amazon Web Services Support App.+module Amazonka.SupportApp.GetAccountAlias+  ( -- * Creating a Request+    GetAccountAlias (..),+    newGetAccountAlias,++    -- * Destructuring the Response+    GetAccountAliasResponse (..),+    newGetAccountAliasResponse,++    -- * Response Lenses+    getAccountAliasResponse_accountAlias,+    getAccountAliasResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SupportApp.Types++-- | /See:/ 'newGetAccountAlias' smart constructor.+data GetAccountAlias = GetAccountAlias'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetAccountAlias' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newGetAccountAlias ::+  GetAccountAlias+newGetAccountAlias = GetAccountAlias'++instance Core.AWSRequest GetAccountAlias where+  type+    AWSResponse GetAccountAlias =+      GetAccountAliasResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetAccountAliasResponse'+            Prelude.<$> (x Data..?> "accountAlias")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetAccountAlias where+  hashWithSalt _salt _ =+    _salt `Prelude.hashWithSalt` ()++instance Prelude.NFData GetAccountAlias where+  rnf _ = ()++instance Data.ToHeaders GetAccountAlias where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON GetAccountAlias where+  toJSON = Prelude.const (Data.Object Prelude.mempty)++instance Data.ToPath GetAccountAlias where+  toPath = Prelude.const "/control/get-account-alias"++instance Data.ToQuery GetAccountAlias where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetAccountAliasResponse' smart constructor.+data GetAccountAliasResponse = GetAccountAliasResponse'+  { -- | An alias or short name for an Amazon Web Services account.+    accountAlias :: 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 'GetAccountAliasResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accountAlias', 'getAccountAliasResponse_accountAlias' - An alias or short name for an Amazon Web Services account.+--+-- 'httpStatus', 'getAccountAliasResponse_httpStatus' - The response's http status code.+newGetAccountAliasResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetAccountAliasResponse+newGetAccountAliasResponse pHttpStatus_ =+  GetAccountAliasResponse'+    { accountAlias =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | An alias or short name for an Amazon Web Services account.+getAccountAliasResponse_accountAlias :: Lens.Lens' GetAccountAliasResponse (Prelude.Maybe Prelude.Text)+getAccountAliasResponse_accountAlias = Lens.lens (\GetAccountAliasResponse' {accountAlias} -> accountAlias) (\s@GetAccountAliasResponse' {} a -> s {accountAlias = a} :: GetAccountAliasResponse)++-- | The response's http status code.+getAccountAliasResponse_httpStatus :: Lens.Lens' GetAccountAliasResponse Prelude.Int+getAccountAliasResponse_httpStatus = Lens.lens (\GetAccountAliasResponse' {httpStatus} -> httpStatus) (\s@GetAccountAliasResponse' {} a -> s {httpStatus = a} :: GetAccountAliasResponse)++instance Prelude.NFData GetAccountAliasResponse where+  rnf GetAccountAliasResponse' {..} =+    Prelude.rnf accountAlias+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/SupportApp/Lens.hs view
@@ -0,0 +1,116 @@+{-# 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.SupportApp.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.SupportApp.Lens+  ( -- * Operations++    -- ** CreateSlackChannelConfiguration+    createSlackChannelConfiguration_channelName,+    createSlackChannelConfiguration_notifyOnAddCorrespondenceToCase,+    createSlackChannelConfiguration_notifyOnCreateOrReopenCase,+    createSlackChannelConfiguration_notifyOnResolveCase,+    createSlackChannelConfiguration_channelId,+    createSlackChannelConfiguration_channelRoleArn,+    createSlackChannelConfiguration_notifyOnCaseSeverity,+    createSlackChannelConfiguration_teamId,+    createSlackChannelConfigurationResponse_httpStatus,++    -- ** DeleteAccountAlias+    deleteAccountAliasResponse_httpStatus,++    -- ** DeleteSlackChannelConfiguration+    deleteSlackChannelConfiguration_channelId,+    deleteSlackChannelConfiguration_teamId,+    deleteSlackChannelConfigurationResponse_httpStatus,++    -- ** DeleteSlackWorkspaceConfiguration+    deleteSlackWorkspaceConfiguration_teamId,+    deleteSlackWorkspaceConfigurationResponse_httpStatus,++    -- ** GetAccountAlias+    getAccountAliasResponse_accountAlias,+    getAccountAliasResponse_httpStatus,++    -- ** ListSlackChannelConfigurations+    listSlackChannelConfigurations_nextToken,+    listSlackChannelConfigurationsResponse_nextToken,+    listSlackChannelConfigurationsResponse_httpStatus,+    listSlackChannelConfigurationsResponse_slackChannelConfigurations,++    -- ** ListSlackWorkspaceConfigurations+    listSlackWorkspaceConfigurations_nextToken,+    listSlackWorkspaceConfigurationsResponse_nextToken,+    listSlackWorkspaceConfigurationsResponse_slackWorkspaceConfigurations,+    listSlackWorkspaceConfigurationsResponse_httpStatus,++    -- ** PutAccountAlias+    putAccountAlias_accountAlias,+    putAccountAliasResponse_httpStatus,++    -- ** RegisterSlackWorkspaceForOrganization+    registerSlackWorkspaceForOrganization_teamId,+    registerSlackWorkspaceForOrganizationResponse_accountType,+    registerSlackWorkspaceForOrganizationResponse_teamId,+    registerSlackWorkspaceForOrganizationResponse_teamName,+    registerSlackWorkspaceForOrganizationResponse_httpStatus,++    -- ** UpdateSlackChannelConfiguration+    updateSlackChannelConfiguration_channelName,+    updateSlackChannelConfiguration_channelRoleArn,+    updateSlackChannelConfiguration_notifyOnAddCorrespondenceToCase,+    updateSlackChannelConfiguration_notifyOnCaseSeverity,+    updateSlackChannelConfiguration_notifyOnCreateOrReopenCase,+    updateSlackChannelConfiguration_notifyOnResolveCase,+    updateSlackChannelConfiguration_channelId,+    updateSlackChannelConfiguration_teamId,+    updateSlackChannelConfigurationResponse_channelId,+    updateSlackChannelConfigurationResponse_channelName,+    updateSlackChannelConfigurationResponse_channelRoleArn,+    updateSlackChannelConfigurationResponse_notifyOnAddCorrespondenceToCase,+    updateSlackChannelConfigurationResponse_notifyOnCaseSeverity,+    updateSlackChannelConfigurationResponse_notifyOnCreateOrReopenCase,+    updateSlackChannelConfigurationResponse_notifyOnResolveCase,+    updateSlackChannelConfigurationResponse_teamId,+    updateSlackChannelConfigurationResponse_httpStatus,++    -- * Types++    -- ** SlackChannelConfiguration+    slackChannelConfiguration_channelName,+    slackChannelConfiguration_channelRoleArn,+    slackChannelConfiguration_notifyOnAddCorrespondenceToCase,+    slackChannelConfiguration_notifyOnCaseSeverity,+    slackChannelConfiguration_notifyOnCreateOrReopenCase,+    slackChannelConfiguration_notifyOnResolveCase,+    slackChannelConfiguration_channelId,+    slackChannelConfiguration_teamId,++    -- ** SlackWorkspaceConfiguration+    slackWorkspaceConfiguration_allowOrganizationMemberAccount,+    slackWorkspaceConfiguration_teamName,+    slackWorkspaceConfiguration_teamId,+  )+where++import Amazonka.SupportApp.CreateSlackChannelConfiguration+import Amazonka.SupportApp.DeleteAccountAlias+import Amazonka.SupportApp.DeleteSlackChannelConfiguration+import Amazonka.SupportApp.DeleteSlackWorkspaceConfiguration+import Amazonka.SupportApp.GetAccountAlias+import Amazonka.SupportApp.ListSlackChannelConfigurations+import Amazonka.SupportApp.ListSlackWorkspaceConfigurations+import Amazonka.SupportApp.PutAccountAlias+import Amazonka.SupportApp.RegisterSlackWorkspaceForOrganization+import Amazonka.SupportApp.Types.SlackChannelConfiguration+import Amazonka.SupportApp.Types.SlackWorkspaceConfiguration+import Amazonka.SupportApp.UpdateSlackChannelConfiguration
+ gen/Amazonka/SupportApp/ListSlackChannelConfigurations.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.SupportApp.ListSlackChannelConfigurations+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists the Slack channel configurations for an Amazon Web Services+-- account.+module Amazonka.SupportApp.ListSlackChannelConfigurations+  ( -- * Creating a Request+    ListSlackChannelConfigurations (..),+    newListSlackChannelConfigurations,++    -- * Request Lenses+    listSlackChannelConfigurations_nextToken,++    -- * Destructuring the Response+    ListSlackChannelConfigurationsResponse (..),+    newListSlackChannelConfigurationsResponse,++    -- * Response Lenses+    listSlackChannelConfigurationsResponse_nextToken,+    listSlackChannelConfigurationsResponse_httpStatus,+    listSlackChannelConfigurationsResponse_slackChannelConfigurations,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SupportApp.Types++-- | /See:/ 'newListSlackChannelConfigurations' smart constructor.+data ListSlackChannelConfigurations = ListSlackChannelConfigurations'+  { -- | If the results of a search are large, the API only returns a portion of+    -- the results and includes a @nextToken@ pagination token in the response.+    -- To retrieve the next batch of results, reissue the search request and+    -- include the returned token. When the API returns the last set of+    -- results, the response doesn\'t include a pagination token value.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListSlackChannelConfigurations' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listSlackChannelConfigurations_nextToken' - If the results of a search are large, the API only returns a portion of+-- the results and includes a @nextToken@ pagination token in the response.+-- To retrieve the next batch of results, reissue the search request and+-- include the returned token. When the API returns the last set of+-- results, the response doesn\'t include a pagination token value.+newListSlackChannelConfigurations ::+  ListSlackChannelConfigurations+newListSlackChannelConfigurations =+  ListSlackChannelConfigurations'+    { nextToken =+        Prelude.Nothing+    }++-- | If the results of a search are large, the API only returns a portion of+-- the results and includes a @nextToken@ pagination token in the response.+-- To retrieve the next batch of results, reissue the search request and+-- include the returned token. When the API returns the last set of+-- results, the response doesn\'t include a pagination token value.+listSlackChannelConfigurations_nextToken :: Lens.Lens' ListSlackChannelConfigurations (Prelude.Maybe Prelude.Text)+listSlackChannelConfigurations_nextToken = Lens.lens (\ListSlackChannelConfigurations' {nextToken} -> nextToken) (\s@ListSlackChannelConfigurations' {} a -> s {nextToken = a} :: ListSlackChannelConfigurations)++instance+  Core.AWSRequest+    ListSlackChannelConfigurations+  where+  type+    AWSResponse ListSlackChannelConfigurations =+      ListSlackChannelConfigurationsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListSlackChannelConfigurationsResponse'+            Prelude.<$> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> ( x+                            Data..?> "slackChannelConfigurations"+                            Core..!@ Prelude.mempty+                        )+      )++instance+  Prelude.Hashable+    ListSlackChannelConfigurations+  where+  hashWithSalt+    _salt+    ListSlackChannelConfigurations' {..} =+      _salt `Prelude.hashWithSalt` nextToken++instance+  Prelude.NFData+    ListSlackChannelConfigurations+  where+  rnf ListSlackChannelConfigurations' {..} =+    Prelude.rnf nextToken++instance+  Data.ToHeaders+    ListSlackChannelConfigurations+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListSlackChannelConfigurations where+  toJSON ListSlackChannelConfigurations' {..} =+    Data.object+      ( Prelude.catMaybes+          [("nextToken" Data..=) Prelude.<$> nextToken]+      )++instance Data.ToPath ListSlackChannelConfigurations where+  toPath =+    Prelude.const+      "/control/list-slack-channel-configurations"++instance Data.ToQuery ListSlackChannelConfigurations where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListSlackChannelConfigurationsResponse' smart constructor.+data ListSlackChannelConfigurationsResponse = ListSlackChannelConfigurationsResponse'+  { -- | The point where pagination should resume when the response returns only+    -- partial results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The configurations for a Slack channel.+    slackChannelConfigurations :: [SlackChannelConfiguration]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListSlackChannelConfigurationsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listSlackChannelConfigurationsResponse_nextToken' - The point where pagination should resume when the response returns only+-- partial results.+--+-- 'httpStatus', 'listSlackChannelConfigurationsResponse_httpStatus' - The response's http status code.+--+-- 'slackChannelConfigurations', 'listSlackChannelConfigurationsResponse_slackChannelConfigurations' - The configurations for a Slack channel.+newListSlackChannelConfigurationsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListSlackChannelConfigurationsResponse+newListSlackChannelConfigurationsResponse+  pHttpStatus_ =+    ListSlackChannelConfigurationsResponse'+      { nextToken =+          Prelude.Nothing,+        httpStatus = pHttpStatus_,+        slackChannelConfigurations =+          Prelude.mempty+      }++-- | The point where pagination should resume when the response returns only+-- partial results.+listSlackChannelConfigurationsResponse_nextToken :: Lens.Lens' ListSlackChannelConfigurationsResponse (Prelude.Maybe Prelude.Text)+listSlackChannelConfigurationsResponse_nextToken = Lens.lens (\ListSlackChannelConfigurationsResponse' {nextToken} -> nextToken) (\s@ListSlackChannelConfigurationsResponse' {} a -> s {nextToken = a} :: ListSlackChannelConfigurationsResponse)++-- | The response's http status code.+listSlackChannelConfigurationsResponse_httpStatus :: Lens.Lens' ListSlackChannelConfigurationsResponse Prelude.Int+listSlackChannelConfigurationsResponse_httpStatus = Lens.lens (\ListSlackChannelConfigurationsResponse' {httpStatus} -> httpStatus) (\s@ListSlackChannelConfigurationsResponse' {} a -> s {httpStatus = a} :: ListSlackChannelConfigurationsResponse)++-- | The configurations for a Slack channel.+listSlackChannelConfigurationsResponse_slackChannelConfigurations :: Lens.Lens' ListSlackChannelConfigurationsResponse [SlackChannelConfiguration]+listSlackChannelConfigurationsResponse_slackChannelConfigurations = Lens.lens (\ListSlackChannelConfigurationsResponse' {slackChannelConfigurations} -> slackChannelConfigurations) (\s@ListSlackChannelConfigurationsResponse' {} a -> s {slackChannelConfigurations = a} :: ListSlackChannelConfigurationsResponse) Prelude.. Lens.coerced++instance+  Prelude.NFData+    ListSlackChannelConfigurationsResponse+  where+  rnf ListSlackChannelConfigurationsResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf slackChannelConfigurations
+ gen/Amazonka/SupportApp/ListSlackWorkspaceConfigurations.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.SupportApp.ListSlackWorkspaceConfigurations+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists the Slack workspace configurations for an Amazon Web Services+-- account.+module Amazonka.SupportApp.ListSlackWorkspaceConfigurations+  ( -- * Creating a Request+    ListSlackWorkspaceConfigurations (..),+    newListSlackWorkspaceConfigurations,++    -- * Request Lenses+    listSlackWorkspaceConfigurations_nextToken,++    -- * Destructuring the Response+    ListSlackWorkspaceConfigurationsResponse (..),+    newListSlackWorkspaceConfigurationsResponse,++    -- * Response Lenses+    listSlackWorkspaceConfigurationsResponse_nextToken,+    listSlackWorkspaceConfigurationsResponse_slackWorkspaceConfigurations,+    listSlackWorkspaceConfigurationsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SupportApp.Types++-- | /See:/ 'newListSlackWorkspaceConfigurations' smart constructor.+data ListSlackWorkspaceConfigurations = ListSlackWorkspaceConfigurations'+  { -- | If the results of a search are large, the API only returns a portion of+    -- the results and includes a @nextToken@ pagination token in the response.+    -- To retrieve the next batch of results, reissue the search request and+    -- include the returned token. When the API returns the last set of+    -- results, the response doesn\'t include a pagination token value.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListSlackWorkspaceConfigurations' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listSlackWorkspaceConfigurations_nextToken' - If the results of a search are large, the API only returns a portion of+-- the results and includes a @nextToken@ pagination token in the response.+-- To retrieve the next batch of results, reissue the search request and+-- include the returned token. When the API returns the last set of+-- results, the response doesn\'t include a pagination token value.+newListSlackWorkspaceConfigurations ::+  ListSlackWorkspaceConfigurations+newListSlackWorkspaceConfigurations =+  ListSlackWorkspaceConfigurations'+    { nextToken =+        Prelude.Nothing+    }++-- | If the results of a search are large, the API only returns a portion of+-- the results and includes a @nextToken@ pagination token in the response.+-- To retrieve the next batch of results, reissue the search request and+-- include the returned token. When the API returns the last set of+-- results, the response doesn\'t include a pagination token value.+listSlackWorkspaceConfigurations_nextToken :: Lens.Lens' ListSlackWorkspaceConfigurations (Prelude.Maybe Prelude.Text)+listSlackWorkspaceConfigurations_nextToken = Lens.lens (\ListSlackWorkspaceConfigurations' {nextToken} -> nextToken) (\s@ListSlackWorkspaceConfigurations' {} a -> s {nextToken = a} :: ListSlackWorkspaceConfigurations)++instance+  Core.AWSRequest+    ListSlackWorkspaceConfigurations+  where+  type+    AWSResponse ListSlackWorkspaceConfigurations =+      ListSlackWorkspaceConfigurationsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListSlackWorkspaceConfigurationsResponse'+            Prelude.<$> (x Data..?> "nextToken")+            Prelude.<*> ( x+                            Data..?> "slackWorkspaceConfigurations"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    ListSlackWorkspaceConfigurations+  where+  hashWithSalt+    _salt+    ListSlackWorkspaceConfigurations' {..} =+      _salt `Prelude.hashWithSalt` nextToken++instance+  Prelude.NFData+    ListSlackWorkspaceConfigurations+  where+  rnf ListSlackWorkspaceConfigurations' {..} =+    Prelude.rnf nextToken++instance+  Data.ToHeaders+    ListSlackWorkspaceConfigurations+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListSlackWorkspaceConfigurations where+  toJSON ListSlackWorkspaceConfigurations' {..} =+    Data.object+      ( Prelude.catMaybes+          [("nextToken" Data..=) Prelude.<$> nextToken]+      )++instance Data.ToPath ListSlackWorkspaceConfigurations where+  toPath =+    Prelude.const+      "/control/list-slack-workspace-configurations"++instance+  Data.ToQuery+    ListSlackWorkspaceConfigurations+  where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListSlackWorkspaceConfigurationsResponse' smart constructor.+data ListSlackWorkspaceConfigurationsResponse = ListSlackWorkspaceConfigurationsResponse'+  { -- | The point where pagination should resume when the response returns only+    -- partial results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The configurations for a Slack workspace.+    slackWorkspaceConfigurations :: Prelude.Maybe [SlackWorkspaceConfiguration],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListSlackWorkspaceConfigurationsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listSlackWorkspaceConfigurationsResponse_nextToken' - The point where pagination should resume when the response returns only+-- partial results.+--+-- 'slackWorkspaceConfigurations', 'listSlackWorkspaceConfigurationsResponse_slackWorkspaceConfigurations' - The configurations for a Slack workspace.+--+-- 'httpStatus', 'listSlackWorkspaceConfigurationsResponse_httpStatus' - The response's http status code.+newListSlackWorkspaceConfigurationsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListSlackWorkspaceConfigurationsResponse+newListSlackWorkspaceConfigurationsResponse+  pHttpStatus_ =+    ListSlackWorkspaceConfigurationsResponse'+      { nextToken =+          Prelude.Nothing,+        slackWorkspaceConfigurations =+          Prelude.Nothing,+        httpStatus = pHttpStatus_+      }++-- | The point where pagination should resume when the response returns only+-- partial results.+listSlackWorkspaceConfigurationsResponse_nextToken :: Lens.Lens' ListSlackWorkspaceConfigurationsResponse (Prelude.Maybe Prelude.Text)+listSlackWorkspaceConfigurationsResponse_nextToken = Lens.lens (\ListSlackWorkspaceConfigurationsResponse' {nextToken} -> nextToken) (\s@ListSlackWorkspaceConfigurationsResponse' {} a -> s {nextToken = a} :: ListSlackWorkspaceConfigurationsResponse)++-- | The configurations for a Slack workspace.+listSlackWorkspaceConfigurationsResponse_slackWorkspaceConfigurations :: Lens.Lens' ListSlackWorkspaceConfigurationsResponse (Prelude.Maybe [SlackWorkspaceConfiguration])+listSlackWorkspaceConfigurationsResponse_slackWorkspaceConfigurations = Lens.lens (\ListSlackWorkspaceConfigurationsResponse' {slackWorkspaceConfigurations} -> slackWorkspaceConfigurations) (\s@ListSlackWorkspaceConfigurationsResponse' {} a -> s {slackWorkspaceConfigurations = a} :: ListSlackWorkspaceConfigurationsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listSlackWorkspaceConfigurationsResponse_httpStatus :: Lens.Lens' ListSlackWorkspaceConfigurationsResponse Prelude.Int+listSlackWorkspaceConfigurationsResponse_httpStatus = Lens.lens (\ListSlackWorkspaceConfigurationsResponse' {httpStatus} -> httpStatus) (\s@ListSlackWorkspaceConfigurationsResponse' {} a -> s {httpStatus = a} :: ListSlackWorkspaceConfigurationsResponse)++instance+  Prelude.NFData+    ListSlackWorkspaceConfigurationsResponse+  where+  rnf ListSlackWorkspaceConfigurationsResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf slackWorkspaceConfigurations+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/SupportApp/PutAccountAlias.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.SupportApp.PutAccountAlias+-- 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 or updates an individual alias for each Amazon Web Services+-- account ID. The alias appears in the Amazon Web Services Support App+-- page of the Amazon Web Services Support Center. The alias also appears+-- in Slack messages from the Amazon Web Services Support App.+module Amazonka.SupportApp.PutAccountAlias+  ( -- * Creating a Request+    PutAccountAlias (..),+    newPutAccountAlias,++    -- * Request Lenses+    putAccountAlias_accountAlias,++    -- * Destructuring the Response+    PutAccountAliasResponse (..),+    newPutAccountAliasResponse,++    -- * Response Lenses+    putAccountAliasResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SupportApp.Types++-- | /See:/ 'newPutAccountAlias' smart constructor.+data PutAccountAlias = PutAccountAlias'+  { -- | An alias or short name for an Amazon Web Services account.+    accountAlias :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutAccountAlias' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accountAlias', 'putAccountAlias_accountAlias' - An alias or short name for an Amazon Web Services account.+newPutAccountAlias ::+  -- | 'accountAlias'+  Prelude.Text ->+  PutAccountAlias+newPutAccountAlias pAccountAlias_ =+  PutAccountAlias' {accountAlias = pAccountAlias_}++-- | An alias or short name for an Amazon Web Services account.+putAccountAlias_accountAlias :: Lens.Lens' PutAccountAlias Prelude.Text+putAccountAlias_accountAlias = Lens.lens (\PutAccountAlias' {accountAlias} -> accountAlias) (\s@PutAccountAlias' {} a -> s {accountAlias = a} :: PutAccountAlias)++instance Core.AWSRequest PutAccountAlias where+  type+    AWSResponse PutAccountAlias =+      PutAccountAliasResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          PutAccountAliasResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable PutAccountAlias where+  hashWithSalt _salt PutAccountAlias' {..} =+    _salt `Prelude.hashWithSalt` accountAlias++instance Prelude.NFData PutAccountAlias where+  rnf PutAccountAlias' {..} = Prelude.rnf accountAlias++instance Data.ToHeaders PutAccountAlias where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON PutAccountAlias where+  toJSON PutAccountAlias' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("accountAlias" Data..= accountAlias)]+      )++instance Data.ToPath PutAccountAlias where+  toPath = Prelude.const "/control/put-account-alias"++instance Data.ToQuery PutAccountAlias where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newPutAccountAliasResponse' smart constructor.+data PutAccountAliasResponse = PutAccountAliasResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutAccountAliasResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'putAccountAliasResponse_httpStatus' - The response's http status code.+newPutAccountAliasResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  PutAccountAliasResponse+newPutAccountAliasResponse pHttpStatus_ =+  PutAccountAliasResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+putAccountAliasResponse_httpStatus :: Lens.Lens' PutAccountAliasResponse Prelude.Int+putAccountAliasResponse_httpStatus = Lens.lens (\PutAccountAliasResponse' {httpStatus} -> httpStatus) (\s@PutAccountAliasResponse' {} a -> s {httpStatus = a} :: PutAccountAliasResponse)++instance Prelude.NFData PutAccountAliasResponse where+  rnf PutAccountAliasResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/SupportApp/RegisterSlackWorkspaceForOrganization.hs view
@@ -0,0 +1,267 @@+{-# 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.SupportApp.RegisterSlackWorkspaceForOrganization+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Registers a Slack workspace for your Amazon Web Services account. To+-- call this API, your account must be part of an organization in+-- Organizations.+--+-- If you\'re the /management account/ and you want to register Slack+-- workspaces for your organization, you must complete the following tasks:+--+-- 1.  Sign in to the+--     <https://console.aws.amazon.com/support/app Amazon Web Services Support Center>+--     and authorize the Slack workspaces where you want your organization+--     to have access to. See+--     <https://docs.aws.amazon.com/awssupport/latest/user/authorize-slack-workspace.html Authorize a Slack workspace>+--     in the /Amazon Web Services Support User Guide/.+--+-- 2.  Call the @RegisterSlackWorkspaceForOrganization@ API to authorize+--     each Slack workspace for the organization.+--+-- After the management account authorizes the Slack workspace, member+-- accounts can call this API to authorize the same Slack workspace for+-- their individual accounts. Member accounts don\'t need to authorize the+-- Slack workspace manually through the+-- <https://console.aws.amazon.com/support/app Amazon Web Services Support Center>.+--+-- To use the Amazon Web Services Support App, each account must then+-- complete the following tasks:+--+-- -   Create an Identity and Access Management (IAM) role with the+--     required permission. For more information, see+--     <https://docs.aws.amazon.com/awssupport/latest/user/support-app-permissions.html Managing access to the Amazon Web Services Support App>.+--+-- -   Configure a Slack channel to use the Amazon Web Services Support App+--     for support cases for that account. For more information, see+--     <https://docs.aws.amazon.com/awssupport/latest/user/add-your-slack-channel.html Configuring a Slack channel>.+module Amazonka.SupportApp.RegisterSlackWorkspaceForOrganization+  ( -- * Creating a Request+    RegisterSlackWorkspaceForOrganization (..),+    newRegisterSlackWorkspaceForOrganization,++    -- * Request Lenses+    registerSlackWorkspaceForOrganization_teamId,++    -- * Destructuring the Response+    RegisterSlackWorkspaceForOrganizationResponse (..),+    newRegisterSlackWorkspaceForOrganizationResponse,++    -- * Response Lenses+    registerSlackWorkspaceForOrganizationResponse_accountType,+    registerSlackWorkspaceForOrganizationResponse_teamId,+    registerSlackWorkspaceForOrganizationResponse_teamName,+    registerSlackWorkspaceForOrganizationResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SupportApp.Types++-- | /See:/ 'newRegisterSlackWorkspaceForOrganization' smart constructor.+data RegisterSlackWorkspaceForOrganization = RegisterSlackWorkspaceForOrganization'+  { -- | The team ID in Slack. This ID uniquely identifies a Slack workspace,+    -- such as @T012ABCDEFG@. Specify the Slack workspace that you want to use+    -- for your organization.+    teamId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RegisterSlackWorkspaceForOrganization' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'teamId', 'registerSlackWorkspaceForOrganization_teamId' - The team ID in Slack. This ID uniquely identifies a Slack workspace,+-- such as @T012ABCDEFG@. Specify the Slack workspace that you want to use+-- for your organization.+newRegisterSlackWorkspaceForOrganization ::+  -- | 'teamId'+  Prelude.Text ->+  RegisterSlackWorkspaceForOrganization+newRegisterSlackWorkspaceForOrganization pTeamId_ =+  RegisterSlackWorkspaceForOrganization'+    { teamId =+        pTeamId_+    }++-- | The team ID in Slack. This ID uniquely identifies a Slack workspace,+-- such as @T012ABCDEFG@. Specify the Slack workspace that you want to use+-- for your organization.+registerSlackWorkspaceForOrganization_teamId :: Lens.Lens' RegisterSlackWorkspaceForOrganization Prelude.Text+registerSlackWorkspaceForOrganization_teamId = Lens.lens (\RegisterSlackWorkspaceForOrganization' {teamId} -> teamId) (\s@RegisterSlackWorkspaceForOrganization' {} a -> s {teamId = a} :: RegisterSlackWorkspaceForOrganization)++instance+  Core.AWSRequest+    RegisterSlackWorkspaceForOrganization+  where+  type+    AWSResponse+      RegisterSlackWorkspaceForOrganization =+      RegisterSlackWorkspaceForOrganizationResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          RegisterSlackWorkspaceForOrganizationResponse'+            Prelude.<$> (x Data..?> "accountType")+            Prelude.<*> (x Data..?> "teamId")+            Prelude.<*> (x Data..?> "teamName")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    RegisterSlackWorkspaceForOrganization+  where+  hashWithSalt+    _salt+    RegisterSlackWorkspaceForOrganization' {..} =+      _salt `Prelude.hashWithSalt` teamId++instance+  Prelude.NFData+    RegisterSlackWorkspaceForOrganization+  where+  rnf RegisterSlackWorkspaceForOrganization' {..} =+    Prelude.rnf teamId++instance+  Data.ToHeaders+    RegisterSlackWorkspaceForOrganization+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance+  Data.ToJSON+    RegisterSlackWorkspaceForOrganization+  where+  toJSON RegisterSlackWorkspaceForOrganization' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("teamId" Data..= teamId)]+      )++instance+  Data.ToPath+    RegisterSlackWorkspaceForOrganization+  where+  toPath =+    Prelude.const+      "/control/register-slack-workspace-for-organization"++instance+  Data.ToQuery+    RegisterSlackWorkspaceForOrganization+  where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newRegisterSlackWorkspaceForOrganizationResponse' smart constructor.+data RegisterSlackWorkspaceForOrganizationResponse = RegisterSlackWorkspaceForOrganizationResponse'+  { -- | Whether the Amazon Web Services account is a management or member+    -- account that\'s part of an organization in Organizations.+    accountType :: Prelude.Maybe AccountType,+    -- | The team ID in Slack. This ID uniquely identifies a Slack workspace,+    -- such as @T012ABCDEFG@.+    teamId :: Prelude.Maybe Prelude.Text,+    -- | The name of the Slack workspace.+    teamName :: 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 'RegisterSlackWorkspaceForOrganizationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accountType', 'registerSlackWorkspaceForOrganizationResponse_accountType' - Whether the Amazon Web Services account is a management or member+-- account that\'s part of an organization in Organizations.+--+-- 'teamId', 'registerSlackWorkspaceForOrganizationResponse_teamId' - The team ID in Slack. This ID uniquely identifies a Slack workspace,+-- such as @T012ABCDEFG@.+--+-- 'teamName', 'registerSlackWorkspaceForOrganizationResponse_teamName' - The name of the Slack workspace.+--+-- 'httpStatus', 'registerSlackWorkspaceForOrganizationResponse_httpStatus' - The response's http status code.+newRegisterSlackWorkspaceForOrganizationResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  RegisterSlackWorkspaceForOrganizationResponse+newRegisterSlackWorkspaceForOrganizationResponse+  pHttpStatus_ =+    RegisterSlackWorkspaceForOrganizationResponse'+      { accountType =+          Prelude.Nothing,+        teamId = Prelude.Nothing,+        teamName = Prelude.Nothing,+        httpStatus = pHttpStatus_+      }++-- | Whether the Amazon Web Services account is a management or member+-- account that\'s part of an organization in Organizations.+registerSlackWorkspaceForOrganizationResponse_accountType :: Lens.Lens' RegisterSlackWorkspaceForOrganizationResponse (Prelude.Maybe AccountType)+registerSlackWorkspaceForOrganizationResponse_accountType = Lens.lens (\RegisterSlackWorkspaceForOrganizationResponse' {accountType} -> accountType) (\s@RegisterSlackWorkspaceForOrganizationResponse' {} a -> s {accountType = a} :: RegisterSlackWorkspaceForOrganizationResponse)++-- | The team ID in Slack. This ID uniquely identifies a Slack workspace,+-- such as @T012ABCDEFG@.+registerSlackWorkspaceForOrganizationResponse_teamId :: Lens.Lens' RegisterSlackWorkspaceForOrganizationResponse (Prelude.Maybe Prelude.Text)+registerSlackWorkspaceForOrganizationResponse_teamId = Lens.lens (\RegisterSlackWorkspaceForOrganizationResponse' {teamId} -> teamId) (\s@RegisterSlackWorkspaceForOrganizationResponse' {} a -> s {teamId = a} :: RegisterSlackWorkspaceForOrganizationResponse)++-- | The name of the Slack workspace.+registerSlackWorkspaceForOrganizationResponse_teamName :: Lens.Lens' RegisterSlackWorkspaceForOrganizationResponse (Prelude.Maybe Prelude.Text)+registerSlackWorkspaceForOrganizationResponse_teamName = Lens.lens (\RegisterSlackWorkspaceForOrganizationResponse' {teamName} -> teamName) (\s@RegisterSlackWorkspaceForOrganizationResponse' {} a -> s {teamName = a} :: RegisterSlackWorkspaceForOrganizationResponse)++-- | The response's http status code.+registerSlackWorkspaceForOrganizationResponse_httpStatus :: Lens.Lens' RegisterSlackWorkspaceForOrganizationResponse Prelude.Int+registerSlackWorkspaceForOrganizationResponse_httpStatus = Lens.lens (\RegisterSlackWorkspaceForOrganizationResponse' {httpStatus} -> httpStatus) (\s@RegisterSlackWorkspaceForOrganizationResponse' {} a -> s {httpStatus = a} :: RegisterSlackWorkspaceForOrganizationResponse)++instance+  Prelude.NFData+    RegisterSlackWorkspaceForOrganizationResponse+  where+  rnf+    RegisterSlackWorkspaceForOrganizationResponse' {..} =+      Prelude.rnf accountType+        `Prelude.seq` Prelude.rnf teamId+        `Prelude.seq` Prelude.rnf teamName+        `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/SupportApp/Types.hs view
@@ -0,0 +1,205 @@+{-# 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.SupportApp.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.SupportApp.Types+  ( -- * Service Configuration+    defaultService,++    -- * Errors+    _AccessDeniedException,+    _ConflictException,+    _InternalServerException,+    _ResourceNotFoundException,+    _ServiceQuotaExceededException,+    _ValidationException,++    -- * AccountType+    AccountType (..),++    -- * NotificationSeverityLevel+    NotificationSeverityLevel (..),++    -- * SlackChannelConfiguration+    SlackChannelConfiguration (..),+    newSlackChannelConfiguration,+    slackChannelConfiguration_channelName,+    slackChannelConfiguration_channelRoleArn,+    slackChannelConfiguration_notifyOnAddCorrespondenceToCase,+    slackChannelConfiguration_notifyOnCaseSeverity,+    slackChannelConfiguration_notifyOnCreateOrReopenCase,+    slackChannelConfiguration_notifyOnResolveCase,+    slackChannelConfiguration_channelId,+    slackChannelConfiguration_teamId,++    -- * SlackWorkspaceConfiguration+    SlackWorkspaceConfiguration (..),+    newSlackWorkspaceConfiguration,+    slackWorkspaceConfiguration_allowOrganizationMemberAccount,+    slackWorkspaceConfiguration_teamName,+    slackWorkspaceConfiguration_teamId,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Sign.V4 as Sign+import Amazonka.SupportApp.Types.AccountType+import Amazonka.SupportApp.Types.NotificationSeverityLevel+import Amazonka.SupportApp.Types.SlackChannelConfiguration+import Amazonka.SupportApp.Types.SlackWorkspaceConfiguration++-- | API version @2021-08-20@ of the Amazon Support App SDK configuration.+defaultService :: Core.Service+defaultService =+  Core.Service+    { Core.abbrev = "SupportApp",+      Core.signer = Sign.v4,+      Core.endpointPrefix = "supportapp",+      Core.signingName = "supportapp",+      Core.version = "2021-08-20",+      Core.s3AddressingStyle = Core.S3AddressingStyleAuto,+      Core.endpoint = Core.defaultEndpoint defaultService,+      Core.timeout = Prelude.Just 70,+      Core.check = Core.statusSuccess,+      Core.error = Core.parseJSONError "SupportApp",+      Core.retry = retry+    }+  where+    retry =+      Core.Exponential+        { Core.base = 5.0e-2,+          Core.growth = 2,+          Core.attempts = 5,+          Core.check = check+        }+    check e+      | Lens.has (Core.hasStatus 502) e =+          Prelude.Just "bad_gateway"+      | Lens.has (Core.hasStatus 504) e =+          Prelude.Just "gateway_timeout"+      | Lens.has (Core.hasStatus 500) e =+          Prelude.Just "general_server_error"+      | Lens.has (Core.hasStatus 509) e =+          Prelude.Just "limit_exceeded"+      | Lens.has+          ( Core.hasCode "RequestThrottledException"+              Prelude.. Core.hasStatus 400+          )+          e =+          Prelude.Just "request_throttled_exception"+      | Lens.has (Core.hasStatus 503) e =+          Prelude.Just "service_unavailable"+      | Lens.has+          ( Core.hasCode "ThrottledException"+              Prelude.. Core.hasStatus 400+          )+          e =+          Prelude.Just "throttled_exception"+      | Lens.has+          ( Core.hasCode "Throttling"+              Prelude.. Core.hasStatus 400+          )+          e =+          Prelude.Just "throttling"+      | Lens.has+          ( Core.hasCode "ThrottlingException"+              Prelude.. Core.hasStatus 400+          )+          e =+          Prelude.Just "throttling_exception"+      | Lens.has+          ( Core.hasCode+              "ProvisionedThroughputExceededException"+              Prelude.. Core.hasStatus 400+          )+          e =+          Prelude.Just "throughput_exceeded"+      | Lens.has (Core.hasStatus 429) e =+          Prelude.Just "too_many_requests"+      | Prelude.otherwise = Prelude.Nothing++-- | You don\'t have sufficient permission to perform this action.+_AccessDeniedException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_AccessDeniedException =+  Core._MatchServiceError+    defaultService+    "AccessDeniedException"+    Prelude.. Core.hasStatus 403++-- | Your request has a conflict. For example, you might receive this error+-- if you try the following:+--+-- -   Add, update, or delete a Slack channel configuration before you add+--     a Slack workspace to your Amazon Web Services account.+--+-- -   Add a Slack channel configuration that already exists in your Amazon+--     Web Services account.+--+-- -   Delete a Slack channel configuration for a live chat channel.+--+-- -   Delete a Slack workspace from your Amazon Web Services account that+--     has an active live chat channel.+--+-- -   Call the @RegisterSlackWorkspaceForOrganization@ API from an Amazon+--     Web Services account that doesn\'t belong to an organization.+--+-- -   Call the @RegisterSlackWorkspaceForOrganization@ API from a member+--     account, but the management account hasn\'t registered that+--     workspace yet for the organization.+_ConflictException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ConflictException =+  Core._MatchServiceError+    defaultService+    "ConflictException"+    Prelude.. Core.hasStatus 409++-- | We can’t process your request right now because of a server issue. Try+-- again later.+_InternalServerException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InternalServerException =+  Core._MatchServiceError+    defaultService+    "InternalServerException"+    Prelude.. Core.hasStatus 500++-- | The specified resource is missing or doesn\'t exist, such as an account+-- alias, Slack channel configuration, or Slack workspace configuration.+_ResourceNotFoundException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ResourceNotFoundException =+  Core._MatchServiceError+    defaultService+    "ResourceNotFoundException"+    Prelude.. Core.hasStatus 404++-- | Your Service Quotas request exceeds the quota for the service. For+-- example, your Service Quotas request to Amazon Web Services Support App+-- might exceed the maximum number of workspaces or channels per account,+-- or the maximum number of accounts per Slack channel.+_ServiceQuotaExceededException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ServiceQuotaExceededException =+  Core._MatchServiceError+    defaultService+    "ServiceQuotaExceededException"+    Prelude.. Core.hasStatus 402++-- | Your request input doesn\'t meet the constraints that the Amazon Web+-- Services Support App specifies.+_ValidationException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ValidationException =+  Core._MatchServiceError+    defaultService+    "ValidationException"+    Prelude.. Core.hasStatus 400
+ gen/Amazonka/SupportApp/Types/AccountType.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.SupportApp.Types.AccountType+-- Copyright   : (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.SupportApp.Types.AccountType+  ( AccountType+      ( ..,+        AccountType_Management,+        AccountType_Member+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype AccountType = AccountType'+  { fromAccountType ::+      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 AccountType_Management :: AccountType+pattern AccountType_Management = AccountType' "management"++pattern AccountType_Member :: AccountType+pattern AccountType_Member = AccountType' "member"++{-# COMPLETE+  AccountType_Management,+  AccountType_Member,+  AccountType'+  #-}
+ gen/Amazonka/SupportApp/Types/NotificationSeverityLevel.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.SupportApp.Types.NotificationSeverityLevel+-- Copyright   : (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.SupportApp.Types.NotificationSeverityLevel+  ( NotificationSeverityLevel+      ( ..,+        NotificationSeverityLevel_All,+        NotificationSeverityLevel_High,+        NotificationSeverityLevel_None+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype NotificationSeverityLevel = NotificationSeverityLevel'+  { fromNotificationSeverityLevel ::+      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 NotificationSeverityLevel_All :: NotificationSeverityLevel+pattern NotificationSeverityLevel_All = NotificationSeverityLevel' "all"++pattern NotificationSeverityLevel_High :: NotificationSeverityLevel+pattern NotificationSeverityLevel_High = NotificationSeverityLevel' "high"++pattern NotificationSeverityLevel_None :: NotificationSeverityLevel+pattern NotificationSeverityLevel_None = NotificationSeverityLevel' "none"++{-# COMPLETE+  NotificationSeverityLevel_All,+  NotificationSeverityLevel_High,+  NotificationSeverityLevel_None,+  NotificationSeverityLevel'+  #-}
+ gen/Amazonka/SupportApp/Types/SlackChannelConfiguration.hs view
@@ -0,0 +1,191 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.SupportApp.Types.SlackChannelConfiguration+-- Copyright   : (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.SupportApp.Types.SlackChannelConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import Amazonka.SupportApp.Types.NotificationSeverityLevel++-- | The configuration for a Slack channel that you added for your Amazon Web+-- Services account.+--+-- /See:/ 'newSlackChannelConfiguration' smart constructor.+data SlackChannelConfiguration = SlackChannelConfiguration'+  { -- | The name of the Slack channel that you configured with the Amazon Web+    -- Services Support App for your Amazon Web Services account.+    channelName :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of an IAM role that you want to use to+    -- perform operations on Amazon Web Services. For more information, see+    -- <https://docs.aws.amazon.com/awssupport/latest/user/support-app-permissions.html Managing access to the Amazon Web Services Support App>+    -- in the /Amazon Web Services Support User Guide/.+    channelRoleArn :: Prelude.Maybe Prelude.Text,+    -- | Whether you want to get notified when a support case has a new+    -- correspondence.+    notifyOnAddCorrespondenceToCase :: Prelude.Maybe Prelude.Bool,+    -- | The case severity for a support case that you want to receive+    -- notifications.+    notifyOnCaseSeverity :: Prelude.Maybe NotificationSeverityLevel,+    -- | Whether you want to get notified when a support case is created or+    -- reopened.+    notifyOnCreateOrReopenCase :: Prelude.Maybe Prelude.Bool,+    -- | Whether you want to get notified when a support case is resolved.+    notifyOnResolveCase :: Prelude.Maybe Prelude.Bool,+    -- | The channel ID in Slack. This ID identifies a channel within a Slack+    -- workspace.+    channelId :: Prelude.Text,+    -- | The team ID in Slack. This ID uniquely identifies a Slack workspace,+    -- such as @T012ABCDEFG@.+    teamId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SlackChannelConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'channelName', 'slackChannelConfiguration_channelName' - The name of the Slack channel that you configured with the Amazon Web+-- Services Support App for your Amazon Web Services account.+--+-- 'channelRoleArn', 'slackChannelConfiguration_channelRoleArn' - The Amazon Resource Name (ARN) of an IAM role that you want to use to+-- perform operations on Amazon Web Services. For more information, see+-- <https://docs.aws.amazon.com/awssupport/latest/user/support-app-permissions.html Managing access to the Amazon Web Services Support App>+-- in the /Amazon Web Services Support User Guide/.+--+-- 'notifyOnAddCorrespondenceToCase', 'slackChannelConfiguration_notifyOnAddCorrespondenceToCase' - Whether you want to get notified when a support case has a new+-- correspondence.+--+-- 'notifyOnCaseSeverity', 'slackChannelConfiguration_notifyOnCaseSeverity' - The case severity for a support case that you want to receive+-- notifications.+--+-- 'notifyOnCreateOrReopenCase', 'slackChannelConfiguration_notifyOnCreateOrReopenCase' - Whether you want to get notified when a support case is created or+-- reopened.+--+-- 'notifyOnResolveCase', 'slackChannelConfiguration_notifyOnResolveCase' - Whether you want to get notified when a support case is resolved.+--+-- 'channelId', 'slackChannelConfiguration_channelId' - The channel ID in Slack. This ID identifies a channel within a Slack+-- workspace.+--+-- 'teamId', 'slackChannelConfiguration_teamId' - The team ID in Slack. This ID uniquely identifies a Slack workspace,+-- such as @T012ABCDEFG@.+newSlackChannelConfiguration ::+  -- | 'channelId'+  Prelude.Text ->+  -- | 'teamId'+  Prelude.Text ->+  SlackChannelConfiguration+newSlackChannelConfiguration pChannelId_ pTeamId_ =+  SlackChannelConfiguration'+    { channelName =+        Prelude.Nothing,+      channelRoleArn = Prelude.Nothing,+      notifyOnAddCorrespondenceToCase =+        Prelude.Nothing,+      notifyOnCaseSeverity = Prelude.Nothing,+      notifyOnCreateOrReopenCase = Prelude.Nothing,+      notifyOnResolveCase = Prelude.Nothing,+      channelId = pChannelId_,+      teamId = pTeamId_+    }++-- | The name of the Slack channel that you configured with the Amazon Web+-- Services Support App for your Amazon Web Services account.+slackChannelConfiguration_channelName :: Lens.Lens' SlackChannelConfiguration (Prelude.Maybe Prelude.Text)+slackChannelConfiguration_channelName = Lens.lens (\SlackChannelConfiguration' {channelName} -> channelName) (\s@SlackChannelConfiguration' {} a -> s {channelName = a} :: SlackChannelConfiguration)++-- | The Amazon Resource Name (ARN) of an IAM role that you want to use to+-- perform operations on Amazon Web Services. For more information, see+-- <https://docs.aws.amazon.com/awssupport/latest/user/support-app-permissions.html Managing access to the Amazon Web Services Support App>+-- in the /Amazon Web Services Support User Guide/.+slackChannelConfiguration_channelRoleArn :: Lens.Lens' SlackChannelConfiguration (Prelude.Maybe Prelude.Text)+slackChannelConfiguration_channelRoleArn = Lens.lens (\SlackChannelConfiguration' {channelRoleArn} -> channelRoleArn) (\s@SlackChannelConfiguration' {} a -> s {channelRoleArn = a} :: SlackChannelConfiguration)++-- | Whether you want to get notified when a support case has a new+-- correspondence.+slackChannelConfiguration_notifyOnAddCorrespondenceToCase :: Lens.Lens' SlackChannelConfiguration (Prelude.Maybe Prelude.Bool)+slackChannelConfiguration_notifyOnAddCorrespondenceToCase = Lens.lens (\SlackChannelConfiguration' {notifyOnAddCorrespondenceToCase} -> notifyOnAddCorrespondenceToCase) (\s@SlackChannelConfiguration' {} a -> s {notifyOnAddCorrespondenceToCase = a} :: SlackChannelConfiguration)++-- | The case severity for a support case that you want to receive+-- notifications.+slackChannelConfiguration_notifyOnCaseSeverity :: Lens.Lens' SlackChannelConfiguration (Prelude.Maybe NotificationSeverityLevel)+slackChannelConfiguration_notifyOnCaseSeverity = Lens.lens (\SlackChannelConfiguration' {notifyOnCaseSeverity} -> notifyOnCaseSeverity) (\s@SlackChannelConfiguration' {} a -> s {notifyOnCaseSeverity = a} :: SlackChannelConfiguration)++-- | Whether you want to get notified when a support case is created or+-- reopened.+slackChannelConfiguration_notifyOnCreateOrReopenCase :: Lens.Lens' SlackChannelConfiguration (Prelude.Maybe Prelude.Bool)+slackChannelConfiguration_notifyOnCreateOrReopenCase = Lens.lens (\SlackChannelConfiguration' {notifyOnCreateOrReopenCase} -> notifyOnCreateOrReopenCase) (\s@SlackChannelConfiguration' {} a -> s {notifyOnCreateOrReopenCase = a} :: SlackChannelConfiguration)++-- | Whether you want to get notified when a support case is resolved.+slackChannelConfiguration_notifyOnResolveCase :: Lens.Lens' SlackChannelConfiguration (Prelude.Maybe Prelude.Bool)+slackChannelConfiguration_notifyOnResolveCase = Lens.lens (\SlackChannelConfiguration' {notifyOnResolveCase} -> notifyOnResolveCase) (\s@SlackChannelConfiguration' {} a -> s {notifyOnResolveCase = a} :: SlackChannelConfiguration)++-- | The channel ID in Slack. This ID identifies a channel within a Slack+-- workspace.+slackChannelConfiguration_channelId :: Lens.Lens' SlackChannelConfiguration Prelude.Text+slackChannelConfiguration_channelId = Lens.lens (\SlackChannelConfiguration' {channelId} -> channelId) (\s@SlackChannelConfiguration' {} a -> s {channelId = a} :: SlackChannelConfiguration)++-- | The team ID in Slack. This ID uniquely identifies a Slack workspace,+-- such as @T012ABCDEFG@.+slackChannelConfiguration_teamId :: Lens.Lens' SlackChannelConfiguration Prelude.Text+slackChannelConfiguration_teamId = Lens.lens (\SlackChannelConfiguration' {teamId} -> teamId) (\s@SlackChannelConfiguration' {} a -> s {teamId = a} :: SlackChannelConfiguration)++instance Data.FromJSON SlackChannelConfiguration where+  parseJSON =+    Data.withObject+      "SlackChannelConfiguration"+      ( \x ->+          SlackChannelConfiguration'+            Prelude.<$> (x Data..:? "channelName")+            Prelude.<*> (x Data..:? "channelRoleArn")+            Prelude.<*> (x Data..:? "notifyOnAddCorrespondenceToCase")+            Prelude.<*> (x Data..:? "notifyOnCaseSeverity")+            Prelude.<*> (x Data..:? "notifyOnCreateOrReopenCase")+            Prelude.<*> (x Data..:? "notifyOnResolveCase")+            Prelude.<*> (x Data..: "channelId")+            Prelude.<*> (x Data..: "teamId")+      )++instance Prelude.Hashable SlackChannelConfiguration where+  hashWithSalt _salt SlackChannelConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` channelName+      `Prelude.hashWithSalt` channelRoleArn+      `Prelude.hashWithSalt` notifyOnAddCorrespondenceToCase+      `Prelude.hashWithSalt` notifyOnCaseSeverity+      `Prelude.hashWithSalt` notifyOnCreateOrReopenCase+      `Prelude.hashWithSalt` notifyOnResolveCase+      `Prelude.hashWithSalt` channelId+      `Prelude.hashWithSalt` teamId++instance Prelude.NFData SlackChannelConfiguration where+  rnf SlackChannelConfiguration' {..} =+    Prelude.rnf channelName+      `Prelude.seq` Prelude.rnf channelRoleArn+      `Prelude.seq` Prelude.rnf notifyOnAddCorrespondenceToCase+      `Prelude.seq` Prelude.rnf notifyOnCaseSeverity+      `Prelude.seq` Prelude.rnf notifyOnCreateOrReopenCase+      `Prelude.seq` Prelude.rnf notifyOnResolveCase+      `Prelude.seq` Prelude.rnf channelId+      `Prelude.seq` Prelude.rnf teamId
+ gen/Amazonka/SupportApp/Types/SlackWorkspaceConfiguration.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.SupportApp.Types.SlackWorkspaceConfiguration+-- Copyright   : (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.SupportApp.Types.SlackWorkspaceConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The configuration for a Slack workspace that you added to an Amazon Web+-- Services account.+--+-- /See:/ 'newSlackWorkspaceConfiguration' smart constructor.+data SlackWorkspaceConfiguration = SlackWorkspaceConfiguration'+  { -- | Whether to allow member accounts to authorize Slack workspaces. Member+    -- accounts must be part of an organization in Organizations.+    allowOrganizationMemberAccount :: Prelude.Maybe Prelude.Bool,+    -- | The name of the Slack workspace.+    teamName :: Prelude.Maybe Prelude.Text,+    -- | The team ID in Slack. This ID uniquely identifies a Slack workspace,+    -- such as @T012ABCDEFG@.+    teamId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SlackWorkspaceConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'allowOrganizationMemberAccount', 'slackWorkspaceConfiguration_allowOrganizationMemberAccount' - Whether to allow member accounts to authorize Slack workspaces. Member+-- accounts must be part of an organization in Organizations.+--+-- 'teamName', 'slackWorkspaceConfiguration_teamName' - The name of the Slack workspace.+--+-- 'teamId', 'slackWorkspaceConfiguration_teamId' - The team ID in Slack. This ID uniquely identifies a Slack workspace,+-- such as @T012ABCDEFG@.+newSlackWorkspaceConfiguration ::+  -- | 'teamId'+  Prelude.Text ->+  SlackWorkspaceConfiguration+newSlackWorkspaceConfiguration pTeamId_ =+  SlackWorkspaceConfiguration'+    { allowOrganizationMemberAccount =+        Prelude.Nothing,+      teamName = Prelude.Nothing,+      teamId = pTeamId_+    }++-- | Whether to allow member accounts to authorize Slack workspaces. Member+-- accounts must be part of an organization in Organizations.+slackWorkspaceConfiguration_allowOrganizationMemberAccount :: Lens.Lens' SlackWorkspaceConfiguration (Prelude.Maybe Prelude.Bool)+slackWorkspaceConfiguration_allowOrganizationMemberAccount = Lens.lens (\SlackWorkspaceConfiguration' {allowOrganizationMemberAccount} -> allowOrganizationMemberAccount) (\s@SlackWorkspaceConfiguration' {} a -> s {allowOrganizationMemberAccount = a} :: SlackWorkspaceConfiguration)++-- | The name of the Slack workspace.+slackWorkspaceConfiguration_teamName :: Lens.Lens' SlackWorkspaceConfiguration (Prelude.Maybe Prelude.Text)+slackWorkspaceConfiguration_teamName = Lens.lens (\SlackWorkspaceConfiguration' {teamName} -> teamName) (\s@SlackWorkspaceConfiguration' {} a -> s {teamName = a} :: SlackWorkspaceConfiguration)++-- | The team ID in Slack. This ID uniquely identifies a Slack workspace,+-- such as @T012ABCDEFG@.+slackWorkspaceConfiguration_teamId :: Lens.Lens' SlackWorkspaceConfiguration Prelude.Text+slackWorkspaceConfiguration_teamId = Lens.lens (\SlackWorkspaceConfiguration' {teamId} -> teamId) (\s@SlackWorkspaceConfiguration' {} a -> s {teamId = a} :: SlackWorkspaceConfiguration)++instance Data.FromJSON SlackWorkspaceConfiguration where+  parseJSON =+    Data.withObject+      "SlackWorkspaceConfiguration"+      ( \x ->+          SlackWorkspaceConfiguration'+            Prelude.<$> (x Data..:? "allowOrganizationMemberAccount")+            Prelude.<*> (x Data..:? "teamName")+            Prelude.<*> (x Data..: "teamId")+      )++instance Prelude.Hashable SlackWorkspaceConfiguration where+  hashWithSalt _salt SlackWorkspaceConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` allowOrganizationMemberAccount+      `Prelude.hashWithSalt` teamName+      `Prelude.hashWithSalt` teamId++instance Prelude.NFData SlackWorkspaceConfiguration where+  rnf SlackWorkspaceConfiguration' {..} =+    Prelude.rnf allowOrganizationMemberAccount+      `Prelude.seq` Prelude.rnf teamName+      `Prelude.seq` Prelude.rnf teamId
+ gen/Amazonka/SupportApp/UpdateSlackChannelConfiguration.hs view
@@ -0,0 +1,495 @@+{-# 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.SupportApp.UpdateSlackChannelConfiguration+-- 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 configuration for a Slack channel, such as case update+-- notifications.+module Amazonka.SupportApp.UpdateSlackChannelConfiguration+  ( -- * Creating a Request+    UpdateSlackChannelConfiguration (..),+    newUpdateSlackChannelConfiguration,++    -- * Request Lenses+    updateSlackChannelConfiguration_channelName,+    updateSlackChannelConfiguration_channelRoleArn,+    updateSlackChannelConfiguration_notifyOnAddCorrespondenceToCase,+    updateSlackChannelConfiguration_notifyOnCaseSeverity,+    updateSlackChannelConfiguration_notifyOnCreateOrReopenCase,+    updateSlackChannelConfiguration_notifyOnResolveCase,+    updateSlackChannelConfiguration_channelId,+    updateSlackChannelConfiguration_teamId,++    -- * Destructuring the Response+    UpdateSlackChannelConfigurationResponse (..),+    newUpdateSlackChannelConfigurationResponse,++    -- * Response Lenses+    updateSlackChannelConfigurationResponse_channelId,+    updateSlackChannelConfigurationResponse_channelName,+    updateSlackChannelConfigurationResponse_channelRoleArn,+    updateSlackChannelConfigurationResponse_notifyOnAddCorrespondenceToCase,+    updateSlackChannelConfigurationResponse_notifyOnCaseSeverity,+    updateSlackChannelConfigurationResponse_notifyOnCreateOrReopenCase,+    updateSlackChannelConfigurationResponse_notifyOnResolveCase,+    updateSlackChannelConfigurationResponse_teamId,+    updateSlackChannelConfigurationResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SupportApp.Types++-- | /See:/ 'newUpdateSlackChannelConfiguration' smart constructor.+data UpdateSlackChannelConfiguration = UpdateSlackChannelConfiguration'+  { -- | The Slack channel name that you want to update.+    channelName :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of an IAM role that you want to use to+    -- perform operations on Amazon Web Services. For more information, see+    -- <https://docs.aws.amazon.com/awssupport/latest/user/support-app-permissions.html Managing access to the Amazon Web Services Support App>+    -- in the /Amazon Web Services Support User Guide/.+    channelRoleArn :: Prelude.Maybe Prelude.Text,+    -- | Whether you want to get notified when a support case has a new+    -- correspondence.+    notifyOnAddCorrespondenceToCase :: Prelude.Maybe Prelude.Bool,+    -- | The case severity for a support case that you want to receive+    -- notifications.+    --+    -- If you specify @high@ or @all@, at least one of the following parameters+    -- must be @true@:+    --+    -- -   @notifyOnAddCorrespondenceToCase@+    --+    -- -   @notifyOnCreateOrReopenCase@+    --+    -- -   @notifyOnResolveCase@+    --+    -- If you specify @none@, any of the following parameters that you specify+    -- in your request must be @false@:+    --+    -- -   @notifyOnAddCorrespondenceToCase@+    --+    -- -   @notifyOnCreateOrReopenCase@+    --+    -- -   @notifyOnResolveCase@+    --+    -- If you don\'t specify these parameters in your request, the Amazon Web+    -- Services Support App uses the current values by default.+    notifyOnCaseSeverity :: Prelude.Maybe NotificationSeverityLevel,+    -- | Whether you want to get notified when a support case is created or+    -- reopened.+    notifyOnCreateOrReopenCase :: Prelude.Maybe Prelude.Bool,+    -- | Whether you want to get notified when a support case is resolved.+    notifyOnResolveCase :: Prelude.Maybe Prelude.Bool,+    -- | The channel ID in Slack. This ID identifies a channel within a Slack+    -- workspace.+    channelId :: Prelude.Text,+    -- | The team ID in Slack. This ID uniquely identifies a Slack workspace,+    -- such as @T012ABCDEFG@.+    teamId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateSlackChannelConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'channelName', 'updateSlackChannelConfiguration_channelName' - The Slack channel name that you want to update.+--+-- 'channelRoleArn', 'updateSlackChannelConfiguration_channelRoleArn' - The Amazon Resource Name (ARN) of an IAM role that you want to use to+-- perform operations on Amazon Web Services. For more information, see+-- <https://docs.aws.amazon.com/awssupport/latest/user/support-app-permissions.html Managing access to the Amazon Web Services Support App>+-- in the /Amazon Web Services Support User Guide/.+--+-- 'notifyOnAddCorrespondenceToCase', 'updateSlackChannelConfiguration_notifyOnAddCorrespondenceToCase' - Whether you want to get notified when a support case has a new+-- correspondence.+--+-- 'notifyOnCaseSeverity', 'updateSlackChannelConfiguration_notifyOnCaseSeverity' - The case severity for a support case that you want to receive+-- notifications.+--+-- If you specify @high@ or @all@, at least one of the following parameters+-- must be @true@:+--+-- -   @notifyOnAddCorrespondenceToCase@+--+-- -   @notifyOnCreateOrReopenCase@+--+-- -   @notifyOnResolveCase@+--+-- If you specify @none@, any of the following parameters that you specify+-- in your request must be @false@:+--+-- -   @notifyOnAddCorrespondenceToCase@+--+-- -   @notifyOnCreateOrReopenCase@+--+-- -   @notifyOnResolveCase@+--+-- If you don\'t specify these parameters in your request, the Amazon Web+-- Services Support App uses the current values by default.+--+-- 'notifyOnCreateOrReopenCase', 'updateSlackChannelConfiguration_notifyOnCreateOrReopenCase' - Whether you want to get notified when a support case is created or+-- reopened.+--+-- 'notifyOnResolveCase', 'updateSlackChannelConfiguration_notifyOnResolveCase' - Whether you want to get notified when a support case is resolved.+--+-- 'channelId', 'updateSlackChannelConfiguration_channelId' - The channel ID in Slack. This ID identifies a channel within a Slack+-- workspace.+--+-- 'teamId', 'updateSlackChannelConfiguration_teamId' - The team ID in Slack. This ID uniquely identifies a Slack workspace,+-- such as @T012ABCDEFG@.+newUpdateSlackChannelConfiguration ::+  -- | 'channelId'+  Prelude.Text ->+  -- | 'teamId'+  Prelude.Text ->+  UpdateSlackChannelConfiguration+newUpdateSlackChannelConfiguration+  pChannelId_+  pTeamId_ =+    UpdateSlackChannelConfiguration'+      { channelName =+          Prelude.Nothing,+        channelRoleArn = Prelude.Nothing,+        notifyOnAddCorrespondenceToCase =+          Prelude.Nothing,+        notifyOnCaseSeverity = Prelude.Nothing,+        notifyOnCreateOrReopenCase =+          Prelude.Nothing,+        notifyOnResolveCase = Prelude.Nothing,+        channelId = pChannelId_,+        teamId = pTeamId_+      }++-- | The Slack channel name that you want to update.+updateSlackChannelConfiguration_channelName :: Lens.Lens' UpdateSlackChannelConfiguration (Prelude.Maybe Prelude.Text)+updateSlackChannelConfiguration_channelName = Lens.lens (\UpdateSlackChannelConfiguration' {channelName} -> channelName) (\s@UpdateSlackChannelConfiguration' {} a -> s {channelName = a} :: UpdateSlackChannelConfiguration)++-- | The Amazon Resource Name (ARN) of an IAM role that you want to use to+-- perform operations on Amazon Web Services. For more information, see+-- <https://docs.aws.amazon.com/awssupport/latest/user/support-app-permissions.html Managing access to the Amazon Web Services Support App>+-- in the /Amazon Web Services Support User Guide/.+updateSlackChannelConfiguration_channelRoleArn :: Lens.Lens' UpdateSlackChannelConfiguration (Prelude.Maybe Prelude.Text)+updateSlackChannelConfiguration_channelRoleArn = Lens.lens (\UpdateSlackChannelConfiguration' {channelRoleArn} -> channelRoleArn) (\s@UpdateSlackChannelConfiguration' {} a -> s {channelRoleArn = a} :: UpdateSlackChannelConfiguration)++-- | Whether you want to get notified when a support case has a new+-- correspondence.+updateSlackChannelConfiguration_notifyOnAddCorrespondenceToCase :: Lens.Lens' UpdateSlackChannelConfiguration (Prelude.Maybe Prelude.Bool)+updateSlackChannelConfiguration_notifyOnAddCorrespondenceToCase = Lens.lens (\UpdateSlackChannelConfiguration' {notifyOnAddCorrespondenceToCase} -> notifyOnAddCorrespondenceToCase) (\s@UpdateSlackChannelConfiguration' {} a -> s {notifyOnAddCorrespondenceToCase = a} :: UpdateSlackChannelConfiguration)++-- | The case severity for a support case that you want to receive+-- notifications.+--+-- If you specify @high@ or @all@, at least one of the following parameters+-- must be @true@:+--+-- -   @notifyOnAddCorrespondenceToCase@+--+-- -   @notifyOnCreateOrReopenCase@+--+-- -   @notifyOnResolveCase@+--+-- If you specify @none@, any of the following parameters that you specify+-- in your request must be @false@:+--+-- -   @notifyOnAddCorrespondenceToCase@+--+-- -   @notifyOnCreateOrReopenCase@+--+-- -   @notifyOnResolveCase@+--+-- If you don\'t specify these parameters in your request, the Amazon Web+-- Services Support App uses the current values by default.+updateSlackChannelConfiguration_notifyOnCaseSeverity :: Lens.Lens' UpdateSlackChannelConfiguration (Prelude.Maybe NotificationSeverityLevel)+updateSlackChannelConfiguration_notifyOnCaseSeverity = Lens.lens (\UpdateSlackChannelConfiguration' {notifyOnCaseSeverity} -> notifyOnCaseSeverity) (\s@UpdateSlackChannelConfiguration' {} a -> s {notifyOnCaseSeverity = a} :: UpdateSlackChannelConfiguration)++-- | Whether you want to get notified when a support case is created or+-- reopened.+updateSlackChannelConfiguration_notifyOnCreateOrReopenCase :: Lens.Lens' UpdateSlackChannelConfiguration (Prelude.Maybe Prelude.Bool)+updateSlackChannelConfiguration_notifyOnCreateOrReopenCase = Lens.lens (\UpdateSlackChannelConfiguration' {notifyOnCreateOrReopenCase} -> notifyOnCreateOrReopenCase) (\s@UpdateSlackChannelConfiguration' {} a -> s {notifyOnCreateOrReopenCase = a} :: UpdateSlackChannelConfiguration)++-- | Whether you want to get notified when a support case is resolved.+updateSlackChannelConfiguration_notifyOnResolveCase :: Lens.Lens' UpdateSlackChannelConfiguration (Prelude.Maybe Prelude.Bool)+updateSlackChannelConfiguration_notifyOnResolveCase = Lens.lens (\UpdateSlackChannelConfiguration' {notifyOnResolveCase} -> notifyOnResolveCase) (\s@UpdateSlackChannelConfiguration' {} a -> s {notifyOnResolveCase = a} :: UpdateSlackChannelConfiguration)++-- | The channel ID in Slack. This ID identifies a channel within a Slack+-- workspace.+updateSlackChannelConfiguration_channelId :: Lens.Lens' UpdateSlackChannelConfiguration Prelude.Text+updateSlackChannelConfiguration_channelId = Lens.lens (\UpdateSlackChannelConfiguration' {channelId} -> channelId) (\s@UpdateSlackChannelConfiguration' {} a -> s {channelId = a} :: UpdateSlackChannelConfiguration)++-- | The team ID in Slack. This ID uniquely identifies a Slack workspace,+-- such as @T012ABCDEFG@.+updateSlackChannelConfiguration_teamId :: Lens.Lens' UpdateSlackChannelConfiguration Prelude.Text+updateSlackChannelConfiguration_teamId = Lens.lens (\UpdateSlackChannelConfiguration' {teamId} -> teamId) (\s@UpdateSlackChannelConfiguration' {} a -> s {teamId = a} :: UpdateSlackChannelConfiguration)++instance+  Core.AWSRequest+    UpdateSlackChannelConfiguration+  where+  type+    AWSResponse UpdateSlackChannelConfiguration =+      UpdateSlackChannelConfigurationResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateSlackChannelConfigurationResponse'+            Prelude.<$> (x Data..?> "channelId")+            Prelude.<*> (x Data..?> "channelName")+            Prelude.<*> (x Data..?> "channelRoleArn")+            Prelude.<*> (x Data..?> "notifyOnAddCorrespondenceToCase")+            Prelude.<*> (x Data..?> "notifyOnCaseSeverity")+            Prelude.<*> (x Data..?> "notifyOnCreateOrReopenCase")+            Prelude.<*> (x Data..?> "notifyOnResolveCase")+            Prelude.<*> (x Data..?> "teamId")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    UpdateSlackChannelConfiguration+  where+  hashWithSalt+    _salt+    UpdateSlackChannelConfiguration' {..} =+      _salt+        `Prelude.hashWithSalt` channelName+        `Prelude.hashWithSalt` channelRoleArn+        `Prelude.hashWithSalt` notifyOnAddCorrespondenceToCase+        `Prelude.hashWithSalt` notifyOnCaseSeverity+        `Prelude.hashWithSalt` notifyOnCreateOrReopenCase+        `Prelude.hashWithSalt` notifyOnResolveCase+        `Prelude.hashWithSalt` channelId+        `Prelude.hashWithSalt` teamId++instance+  Prelude.NFData+    UpdateSlackChannelConfiguration+  where+  rnf UpdateSlackChannelConfiguration' {..} =+    Prelude.rnf channelName+      `Prelude.seq` Prelude.rnf channelRoleArn+      `Prelude.seq` Prelude.rnf notifyOnAddCorrespondenceToCase+      `Prelude.seq` Prelude.rnf notifyOnCaseSeverity+      `Prelude.seq` Prelude.rnf notifyOnCreateOrReopenCase+      `Prelude.seq` Prelude.rnf notifyOnResolveCase+      `Prelude.seq` Prelude.rnf channelId+      `Prelude.seq` Prelude.rnf teamId++instance+  Data.ToHeaders+    UpdateSlackChannelConfiguration+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateSlackChannelConfiguration where+  toJSON UpdateSlackChannelConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("channelName" Data..=) Prelude.<$> channelName,+            ("channelRoleArn" Data..=)+              Prelude.<$> channelRoleArn,+            ("notifyOnAddCorrespondenceToCase" Data..=)+              Prelude.<$> notifyOnAddCorrespondenceToCase,+            ("notifyOnCaseSeverity" Data..=)+              Prelude.<$> notifyOnCaseSeverity,+            ("notifyOnCreateOrReopenCase" Data..=)+              Prelude.<$> notifyOnCreateOrReopenCase,+            ("notifyOnResolveCase" Data..=)+              Prelude.<$> notifyOnResolveCase,+            Prelude.Just ("channelId" Data..= channelId),+            Prelude.Just ("teamId" Data..= teamId)+          ]+      )++instance Data.ToPath UpdateSlackChannelConfiguration where+  toPath =+    Prelude.const+      "/control/update-slack-channel-configuration"++instance Data.ToQuery UpdateSlackChannelConfiguration where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateSlackChannelConfigurationResponse' smart constructor.+data UpdateSlackChannelConfigurationResponse = UpdateSlackChannelConfigurationResponse'+  { -- | The channel ID in Slack. This ID identifies a channel within a Slack+    -- workspace.+    channelId :: Prelude.Maybe Prelude.Text,+    -- | The name of the Slack channel that you configure for the Amazon Web+    -- Services Support App.+    channelName :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of an IAM role that you want to use to+    -- perform operations on Amazon Web Services. For more information, see+    -- <https://docs.aws.amazon.com/awssupport/latest/user/support-app-permissions.html Managing access to the Amazon Web Services Support App>+    -- in the /Amazon Web Services Support User Guide/.+    channelRoleArn :: Prelude.Maybe Prelude.Text,+    -- | Whether you want to get notified when a support case has a new+    -- correspondence.+    notifyOnAddCorrespondenceToCase :: Prelude.Maybe Prelude.Bool,+    -- | The case severity for a support case that you want to receive+    -- notifications.+    notifyOnCaseSeverity :: Prelude.Maybe NotificationSeverityLevel,+    -- | Whether you want to get notified when a support case is created or+    -- reopened.+    notifyOnCreateOrReopenCase :: Prelude.Maybe Prelude.Bool,+    -- | Whether you want to get notified when a support case is resolved.+    notifyOnResolveCase :: Prelude.Maybe Prelude.Bool,+    -- | The team ID in Slack. This ID uniquely identifies a Slack workspace,+    -- such as @T012ABCDEFG@.+    teamId :: 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 'UpdateSlackChannelConfigurationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'channelId', 'updateSlackChannelConfigurationResponse_channelId' - The channel ID in Slack. This ID identifies a channel within a Slack+-- workspace.+--+-- 'channelName', 'updateSlackChannelConfigurationResponse_channelName' - The name of the Slack channel that you configure for the Amazon Web+-- Services Support App.+--+-- 'channelRoleArn', 'updateSlackChannelConfigurationResponse_channelRoleArn' - The Amazon Resource Name (ARN) of an IAM role that you want to use to+-- perform operations on Amazon Web Services. For more information, see+-- <https://docs.aws.amazon.com/awssupport/latest/user/support-app-permissions.html Managing access to the Amazon Web Services Support App>+-- in the /Amazon Web Services Support User Guide/.+--+-- 'notifyOnAddCorrespondenceToCase', 'updateSlackChannelConfigurationResponse_notifyOnAddCorrespondenceToCase' - Whether you want to get notified when a support case has a new+-- correspondence.+--+-- 'notifyOnCaseSeverity', 'updateSlackChannelConfigurationResponse_notifyOnCaseSeverity' - The case severity for a support case that you want to receive+-- notifications.+--+-- 'notifyOnCreateOrReopenCase', 'updateSlackChannelConfigurationResponse_notifyOnCreateOrReopenCase' - Whether you want to get notified when a support case is created or+-- reopened.+--+-- 'notifyOnResolveCase', 'updateSlackChannelConfigurationResponse_notifyOnResolveCase' - Whether you want to get notified when a support case is resolved.+--+-- 'teamId', 'updateSlackChannelConfigurationResponse_teamId' - The team ID in Slack. This ID uniquely identifies a Slack workspace,+-- such as @T012ABCDEFG@.+--+-- 'httpStatus', 'updateSlackChannelConfigurationResponse_httpStatus' - The response's http status code.+newUpdateSlackChannelConfigurationResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateSlackChannelConfigurationResponse+newUpdateSlackChannelConfigurationResponse+  pHttpStatus_ =+    UpdateSlackChannelConfigurationResponse'+      { channelId =+          Prelude.Nothing,+        channelName = Prelude.Nothing,+        channelRoleArn = Prelude.Nothing,+        notifyOnAddCorrespondenceToCase =+          Prelude.Nothing,+        notifyOnCaseSeverity =+          Prelude.Nothing,+        notifyOnCreateOrReopenCase =+          Prelude.Nothing,+        notifyOnResolveCase =+          Prelude.Nothing,+        teamId = Prelude.Nothing,+        httpStatus = pHttpStatus_+      }++-- | The channel ID in Slack. This ID identifies a channel within a Slack+-- workspace.+updateSlackChannelConfigurationResponse_channelId :: Lens.Lens' UpdateSlackChannelConfigurationResponse (Prelude.Maybe Prelude.Text)+updateSlackChannelConfigurationResponse_channelId = Lens.lens (\UpdateSlackChannelConfigurationResponse' {channelId} -> channelId) (\s@UpdateSlackChannelConfigurationResponse' {} a -> s {channelId = a} :: UpdateSlackChannelConfigurationResponse)++-- | The name of the Slack channel that you configure for the Amazon Web+-- Services Support App.+updateSlackChannelConfigurationResponse_channelName :: Lens.Lens' UpdateSlackChannelConfigurationResponse (Prelude.Maybe Prelude.Text)+updateSlackChannelConfigurationResponse_channelName = Lens.lens (\UpdateSlackChannelConfigurationResponse' {channelName} -> channelName) (\s@UpdateSlackChannelConfigurationResponse' {} a -> s {channelName = a} :: UpdateSlackChannelConfigurationResponse)++-- | The Amazon Resource Name (ARN) of an IAM role that you want to use to+-- perform operations on Amazon Web Services. For more information, see+-- <https://docs.aws.amazon.com/awssupport/latest/user/support-app-permissions.html Managing access to the Amazon Web Services Support App>+-- in the /Amazon Web Services Support User Guide/.+updateSlackChannelConfigurationResponse_channelRoleArn :: Lens.Lens' UpdateSlackChannelConfigurationResponse (Prelude.Maybe Prelude.Text)+updateSlackChannelConfigurationResponse_channelRoleArn = Lens.lens (\UpdateSlackChannelConfigurationResponse' {channelRoleArn} -> channelRoleArn) (\s@UpdateSlackChannelConfigurationResponse' {} a -> s {channelRoleArn = a} :: UpdateSlackChannelConfigurationResponse)++-- | Whether you want to get notified when a support case has a new+-- correspondence.+updateSlackChannelConfigurationResponse_notifyOnAddCorrespondenceToCase :: Lens.Lens' UpdateSlackChannelConfigurationResponse (Prelude.Maybe Prelude.Bool)+updateSlackChannelConfigurationResponse_notifyOnAddCorrespondenceToCase = Lens.lens (\UpdateSlackChannelConfigurationResponse' {notifyOnAddCorrespondenceToCase} -> notifyOnAddCorrespondenceToCase) (\s@UpdateSlackChannelConfigurationResponse' {} a -> s {notifyOnAddCorrespondenceToCase = a} :: UpdateSlackChannelConfigurationResponse)++-- | The case severity for a support case that you want to receive+-- notifications.+updateSlackChannelConfigurationResponse_notifyOnCaseSeverity :: Lens.Lens' UpdateSlackChannelConfigurationResponse (Prelude.Maybe NotificationSeverityLevel)+updateSlackChannelConfigurationResponse_notifyOnCaseSeverity = Lens.lens (\UpdateSlackChannelConfigurationResponse' {notifyOnCaseSeverity} -> notifyOnCaseSeverity) (\s@UpdateSlackChannelConfigurationResponse' {} a -> s {notifyOnCaseSeverity = a} :: UpdateSlackChannelConfigurationResponse)++-- | Whether you want to get notified when a support case is created or+-- reopened.+updateSlackChannelConfigurationResponse_notifyOnCreateOrReopenCase :: Lens.Lens' UpdateSlackChannelConfigurationResponse (Prelude.Maybe Prelude.Bool)+updateSlackChannelConfigurationResponse_notifyOnCreateOrReopenCase = Lens.lens (\UpdateSlackChannelConfigurationResponse' {notifyOnCreateOrReopenCase} -> notifyOnCreateOrReopenCase) (\s@UpdateSlackChannelConfigurationResponse' {} a -> s {notifyOnCreateOrReopenCase = a} :: UpdateSlackChannelConfigurationResponse)++-- | Whether you want to get notified when a support case is resolved.+updateSlackChannelConfigurationResponse_notifyOnResolveCase :: Lens.Lens' UpdateSlackChannelConfigurationResponse (Prelude.Maybe Prelude.Bool)+updateSlackChannelConfigurationResponse_notifyOnResolveCase = Lens.lens (\UpdateSlackChannelConfigurationResponse' {notifyOnResolveCase} -> notifyOnResolveCase) (\s@UpdateSlackChannelConfigurationResponse' {} a -> s {notifyOnResolveCase = a} :: UpdateSlackChannelConfigurationResponse)++-- | The team ID in Slack. This ID uniquely identifies a Slack workspace,+-- such as @T012ABCDEFG@.+updateSlackChannelConfigurationResponse_teamId :: Lens.Lens' UpdateSlackChannelConfigurationResponse (Prelude.Maybe Prelude.Text)+updateSlackChannelConfigurationResponse_teamId = Lens.lens (\UpdateSlackChannelConfigurationResponse' {teamId} -> teamId) (\s@UpdateSlackChannelConfigurationResponse' {} a -> s {teamId = a} :: UpdateSlackChannelConfigurationResponse)++-- | The response's http status code.+updateSlackChannelConfigurationResponse_httpStatus :: Lens.Lens' UpdateSlackChannelConfigurationResponse Prelude.Int+updateSlackChannelConfigurationResponse_httpStatus = Lens.lens (\UpdateSlackChannelConfigurationResponse' {httpStatus} -> httpStatus) (\s@UpdateSlackChannelConfigurationResponse' {} a -> s {httpStatus = a} :: UpdateSlackChannelConfigurationResponse)++instance+  Prelude.NFData+    UpdateSlackChannelConfigurationResponse+  where+  rnf UpdateSlackChannelConfigurationResponse' {..} =+    Prelude.rnf channelId+      `Prelude.seq` Prelude.rnf channelName+      `Prelude.seq` Prelude.rnf channelRoleArn+      `Prelude.seq` Prelude.rnf notifyOnAddCorrespondenceToCase+      `Prelude.seq` Prelude.rnf notifyOnCaseSeverity+      `Prelude.seq` Prelude.rnf notifyOnCreateOrReopenCase+      `Prelude.seq` Prelude.rnf notifyOnResolveCase+      `Prelude.seq` Prelude.rnf teamId+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/SupportApp/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.SupportApp.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.SupportApp.Waiters where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import Amazonka.SupportApp.Lens+import Amazonka.SupportApp.Types
+ 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.SupportApp+import Test.Amazonka.SupportApp.Internal+import Test.Tasty++main :: IO ()+main =+  defaultMain $+    testGroup+      "SupportApp"+      [ testGroup "tests" tests,+        testGroup "fixtures" fixtures+      ]
+ test/Test/Amazonka/Gen/SupportApp.hs view
@@ -0,0 +1,238 @@+{-# 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.SupportApp+-- Copyright   : (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.SupportApp where++import Amazonka.SupportApp+import qualified Data.Proxy as Proxy+import Test.Amazonka.Fixture+import Test.Amazonka.Prelude+import Test.Amazonka.SupportApp.Internal+import Test.Tasty++-- Auto-generated: the actual test selection needs to be manually placed into+-- the top-level so that real test data can be incrementally added.+--+-- This commented snippet is what the entire set should look like:++-- fixtures :: TestTree+-- fixtures =+--     [ testGroup "request"+--         [ requestCreateSlackChannelConfiguration $+--             newCreateSlackChannelConfiguration+--+--         , requestDeleteAccountAlias $+--             newDeleteAccountAlias+--+--         , requestDeleteSlackChannelConfiguration $+--             newDeleteSlackChannelConfiguration+--+--         , requestDeleteSlackWorkspaceConfiguration $+--             newDeleteSlackWorkspaceConfiguration+--+--         , requestGetAccountAlias $+--             newGetAccountAlias+--+--         , requestListSlackChannelConfigurations $+--             newListSlackChannelConfigurations+--+--         , requestListSlackWorkspaceConfigurations $+--             newListSlackWorkspaceConfigurations+--+--         , requestPutAccountAlias $+--             newPutAccountAlias+--+--         , requestRegisterSlackWorkspaceForOrganization $+--             newRegisterSlackWorkspaceForOrganization+--+--         , requestUpdateSlackChannelConfiguration $+--             newUpdateSlackChannelConfiguration+--+--           ]++--     , testGroup "response"+--         [ responseCreateSlackChannelConfiguration $+--             newCreateSlackChannelConfigurationResponse+--+--         , responseDeleteAccountAlias $+--             newDeleteAccountAliasResponse+--+--         , responseDeleteSlackChannelConfiguration $+--             newDeleteSlackChannelConfigurationResponse+--+--         , responseDeleteSlackWorkspaceConfiguration $+--             newDeleteSlackWorkspaceConfigurationResponse+--+--         , responseGetAccountAlias $+--             newGetAccountAliasResponse+--+--         , responseListSlackChannelConfigurations $+--             newListSlackChannelConfigurationsResponse+--+--         , responseListSlackWorkspaceConfigurations $+--             newListSlackWorkspaceConfigurationsResponse+--+--         , responsePutAccountAlias $+--             newPutAccountAliasResponse+--+--         , responseRegisterSlackWorkspaceForOrganization $+--             newRegisterSlackWorkspaceForOrganizationResponse+--+--         , responseUpdateSlackChannelConfiguration $+--             newUpdateSlackChannelConfigurationResponse+--+--           ]+--     ]++-- Requests++requestCreateSlackChannelConfiguration :: CreateSlackChannelConfiguration -> TestTree+requestCreateSlackChannelConfiguration =+  req+    "CreateSlackChannelConfiguration"+    "fixture/CreateSlackChannelConfiguration.yaml"++requestDeleteAccountAlias :: DeleteAccountAlias -> TestTree+requestDeleteAccountAlias =+  req+    "DeleteAccountAlias"+    "fixture/DeleteAccountAlias.yaml"++requestDeleteSlackChannelConfiguration :: DeleteSlackChannelConfiguration -> TestTree+requestDeleteSlackChannelConfiguration =+  req+    "DeleteSlackChannelConfiguration"+    "fixture/DeleteSlackChannelConfiguration.yaml"++requestDeleteSlackWorkspaceConfiguration :: DeleteSlackWorkspaceConfiguration -> TestTree+requestDeleteSlackWorkspaceConfiguration =+  req+    "DeleteSlackWorkspaceConfiguration"+    "fixture/DeleteSlackWorkspaceConfiguration.yaml"++requestGetAccountAlias :: GetAccountAlias -> TestTree+requestGetAccountAlias =+  req+    "GetAccountAlias"+    "fixture/GetAccountAlias.yaml"++requestListSlackChannelConfigurations :: ListSlackChannelConfigurations -> TestTree+requestListSlackChannelConfigurations =+  req+    "ListSlackChannelConfigurations"+    "fixture/ListSlackChannelConfigurations.yaml"++requestListSlackWorkspaceConfigurations :: ListSlackWorkspaceConfigurations -> TestTree+requestListSlackWorkspaceConfigurations =+  req+    "ListSlackWorkspaceConfigurations"+    "fixture/ListSlackWorkspaceConfigurations.yaml"++requestPutAccountAlias :: PutAccountAlias -> TestTree+requestPutAccountAlias =+  req+    "PutAccountAlias"+    "fixture/PutAccountAlias.yaml"++requestRegisterSlackWorkspaceForOrganization :: RegisterSlackWorkspaceForOrganization -> TestTree+requestRegisterSlackWorkspaceForOrganization =+  req+    "RegisterSlackWorkspaceForOrganization"+    "fixture/RegisterSlackWorkspaceForOrganization.yaml"++requestUpdateSlackChannelConfiguration :: UpdateSlackChannelConfiguration -> TestTree+requestUpdateSlackChannelConfiguration =+  req+    "UpdateSlackChannelConfiguration"+    "fixture/UpdateSlackChannelConfiguration.yaml"++-- Responses++responseCreateSlackChannelConfiguration :: CreateSlackChannelConfigurationResponse -> TestTree+responseCreateSlackChannelConfiguration =+  res+    "CreateSlackChannelConfigurationResponse"+    "fixture/CreateSlackChannelConfigurationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateSlackChannelConfiguration)++responseDeleteAccountAlias :: DeleteAccountAliasResponse -> TestTree+responseDeleteAccountAlias =+  res+    "DeleteAccountAliasResponse"+    "fixture/DeleteAccountAliasResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteAccountAlias)++responseDeleteSlackChannelConfiguration :: DeleteSlackChannelConfigurationResponse -> TestTree+responseDeleteSlackChannelConfiguration =+  res+    "DeleteSlackChannelConfigurationResponse"+    "fixture/DeleteSlackChannelConfigurationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteSlackChannelConfiguration)++responseDeleteSlackWorkspaceConfiguration :: DeleteSlackWorkspaceConfigurationResponse -> TestTree+responseDeleteSlackWorkspaceConfiguration =+  res+    "DeleteSlackWorkspaceConfigurationResponse"+    "fixture/DeleteSlackWorkspaceConfigurationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteSlackWorkspaceConfiguration)++responseGetAccountAlias :: GetAccountAliasResponse -> TestTree+responseGetAccountAlias =+  res+    "GetAccountAliasResponse"+    "fixture/GetAccountAliasResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetAccountAlias)++responseListSlackChannelConfigurations :: ListSlackChannelConfigurationsResponse -> TestTree+responseListSlackChannelConfigurations =+  res+    "ListSlackChannelConfigurationsResponse"+    "fixture/ListSlackChannelConfigurationsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListSlackChannelConfigurations)++responseListSlackWorkspaceConfigurations :: ListSlackWorkspaceConfigurationsResponse -> TestTree+responseListSlackWorkspaceConfigurations =+  res+    "ListSlackWorkspaceConfigurationsResponse"+    "fixture/ListSlackWorkspaceConfigurationsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListSlackWorkspaceConfigurations)++responsePutAccountAlias :: PutAccountAliasResponse -> TestTree+responsePutAccountAlias =+  res+    "PutAccountAliasResponse"+    "fixture/PutAccountAliasResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy PutAccountAlias)++responseRegisterSlackWorkspaceForOrganization :: RegisterSlackWorkspaceForOrganizationResponse -> TestTree+responseRegisterSlackWorkspaceForOrganization =+  res+    "RegisterSlackWorkspaceForOrganizationResponse"+    "fixture/RegisterSlackWorkspaceForOrganizationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy RegisterSlackWorkspaceForOrganization)++responseUpdateSlackChannelConfiguration :: UpdateSlackChannelConfigurationResponse -> TestTree+responseUpdateSlackChannelConfiguration =+  res+    "UpdateSlackChannelConfigurationResponse"+    "fixture/UpdateSlackChannelConfigurationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateSlackChannelConfiguration)
+ test/Test/Amazonka/SupportApp.hs view
@@ -0,0 +1,20 @@+-- |+-- Module      : Test.Amazonka.SupportApp+-- Copyright   : (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.SupportApp+  ( tests,+    fixtures,+  )+where++import Test.Tasty (TestTree)++tests :: [TestTree]+tests = []++fixtures :: [TestTree]+fixtures = []
+ test/Test/Amazonka/SupportApp/Internal.hs view
@@ -0,0 +1,8 @@+-- |+-- Module      : Test.Amazonka.SupportApp.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.SupportApp.Internal where