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 +367/−0
- README.md +44/−0
- amazonka-support-app.cabal +97/−0
- fixture/CreateSlackChannelConfiguration.yaml +10/−0
- fixture/CreateSlackChannelConfigurationResponse.proto +0/−0
- fixture/DeleteAccountAlias.yaml +10/−0
- fixture/DeleteAccountAliasResponse.proto +0/−0
- fixture/DeleteSlackChannelConfiguration.yaml +10/−0
- fixture/DeleteSlackChannelConfigurationResponse.proto +0/−0
- fixture/DeleteSlackWorkspaceConfiguration.yaml +10/−0
- fixture/DeleteSlackWorkspaceConfigurationResponse.proto +0/−0
- fixture/GetAccountAlias.yaml +10/−0
- fixture/GetAccountAliasResponse.proto +0/−0
- fixture/ListSlackChannelConfigurations.yaml +10/−0
- fixture/ListSlackChannelConfigurationsResponse.proto +0/−0
- fixture/ListSlackWorkspaceConfigurations.yaml +10/−0
- fixture/ListSlackWorkspaceConfigurationsResponse.proto +0/−0
- fixture/PutAccountAlias.yaml +10/−0
- fixture/PutAccountAliasResponse.proto +0/−0
- fixture/RegisterSlackWorkspaceForOrganization.yaml +10/−0
- fixture/RegisterSlackWorkspaceForOrganizationResponse.proto +0/−0
- fixture/UpdateSlackChannelConfiguration.yaml +10/−0
- fixture/UpdateSlackChannelConfigurationResponse.proto +0/−0
- gen/Amazonka/SupportApp.hs +201/−0
- gen/Amazonka/SupportApp/CreateSlackChannelConfiguration.hs +394/−0
- gen/Amazonka/SupportApp/DeleteAccountAlias.hs +136/−0
- gen/Amazonka/SupportApp/DeleteSlackChannelConfiguration.hs +202/−0
- gen/Amazonka/SupportApp/DeleteSlackWorkspaceConfiguration.hs +189/−0
- gen/Amazonka/SupportApp/GetAccountAlias.hs +147/−0
- gen/Amazonka/SupportApp/Lens.hs +116/−0
- gen/Amazonka/SupportApp/ListSlackChannelConfigurations.hs +218/−0
- gen/Amazonka/SupportApp/ListSlackWorkspaceConfigurations.hs +221/−0
- gen/Amazonka/SupportApp/PutAccountAlias.hs +152/−0
- gen/Amazonka/SupportApp/RegisterSlackWorkspaceForOrganization.hs +267/−0
- gen/Amazonka/SupportApp/Types.hs +205/−0
- gen/Amazonka/SupportApp/Types/AccountType.hs +71/−0
- gen/Amazonka/SupportApp/Types/NotificationSeverityLevel.hs +76/−0
- gen/Amazonka/SupportApp/Types/SlackChannelConfiguration.hs +191/−0
- gen/Amazonka/SupportApp/Types/SlackWorkspaceConfiguration.hs +106/−0
- gen/Amazonka/SupportApp/UpdateSlackChannelConfiguration.hs +495/−0
- gen/Amazonka/SupportApp/Waiters.hs +24/−0
- src/.gitkeep +0/−0
- test/Main.hs +23/−0
- test/Test/Amazonka/Gen/SupportApp.hs +238/−0
- test/Test/Amazonka/SupportApp.hs +20/−0
- test/Test/Amazonka/SupportApp/Internal.hs +8/−0
+ LICENSE view
@@ -0,0 +1,367 @@+Mozilla Public License Version 2.0+==================================++1. Definitions+--------------++1.1. "Contributor"+ means each individual or legal entity that creates, contributes to+ the creation of, or owns Covered Software.++1.2. "Contributor Version"+ means the combination of the Contributions of others (if any) used+ by a Contributor and that particular Contributor's Contribution.++1.3. "Contribution"+ means Covered Software of a particular Contributor.++1.4. "Covered Software"+ means Source Code Form to which the initial Contributor has attached+ the notice in Exhibit A, the Executable Form of such Source Code+ Form, and Modifications of such Source Code Form, in each case+ including portions thereof.++1.5. "Incompatible With Secondary Licenses"+ means++ (a) that the initial Contributor has attached the notice described+ in Exhibit B to the Covered Software; or++ (b) that the Covered Software was made available under the terms of+ version 1.1 or earlier of the License, but not also under the+ terms of a Secondary License.++1.6. "Executable Form"+ means any form of the work other than Source Code Form.++1.7. "Larger Work"+ means a work that combines Covered Software with other material, in+ a separate file or files, that is not Covered Software.++1.8. "License"+ means this document.++1.9. "Licensable"+ means having the right to grant, to the maximum extent possible,+ whether at the time of the initial grant or subsequently, any and+ all of the rights conveyed by this License.++1.10. "Modifications"+ means any of the following:++ (a) any file in Source Code Form that results from an addition to,+ deletion from, or modification of the contents of Covered+ Software; or++ (b) any new file in Source Code Form that contains any Covered+ Software.++1.11. "Patent Claims" of a Contributor+ means any patent claim(s), including without limitation, method,+ process, and apparatus claims, in any patent Licensable by such+ Contributor that would be infringed, but for the grant of the+ License, by the making, using, selling, offering for sale, having+ made, import, or transfer of either its Contributions or its+ Contributor Version.++1.12. "Secondary License"+ means either the GNU General Public License, Version 2.0, the GNU+ Lesser General Public License, Version 2.1, the GNU Affero General+ Public License, Version 3.0, or any later versions of those+ licenses.++1.13. "Source Code Form"+ means the form of the work preferred for making modifications.++1.14. "You" (or "Your")+ means an individual or a legal entity exercising rights under this+ License. For legal entities, "You" includes any entity that+ controls, is controlled by, or is under common control with You. For+ purposes of this definition, "control" means (a) the power, direct+ or indirect, to cause the direction or management of such entity,+ whether by contract or otherwise, or (b) ownership of more than+ fifty percent (50%) of the outstanding shares or beneficial+ ownership of such entity.++2. License Grants and Conditions+--------------------------------++2.1. Grants++Each Contributor hereby grants You a world-wide, royalty-free,+non-exclusive license:++(a) under intellectual property rights (other than patent or trademark)+ Licensable by such Contributor to use, reproduce, make available,+ modify, display, perform, distribute, and otherwise exploit its+ Contributions, either on an unmodified basis, with Modifications, or+ as part of a Larger Work; and++(b) under Patent Claims of such Contributor to make, use, sell, offer+ for sale, have made, import, and otherwise transfer either its+ Contributions or its Contributor Version.++2.2. Effective Date++The licenses granted in Section 2.1 with respect to any Contribution+become effective for each Contribution on the date the Contributor first+distributes such Contribution.++2.3. Limitations on Grant Scope++The licenses granted in this Section 2 are the only rights granted under+this License. No additional rights or licenses will be implied from the+distribution or licensing of Covered Software under this License.+Notwithstanding Section 2.1(b) above, no patent license is granted by a+Contributor:++(a) for any code that a Contributor has removed from Covered Software;+ or++(b) for infringements caused by: (i) Your and any other third party's+ modifications of Covered Software, or (ii) the combination of its+ Contributions with other software (except as part of its Contributor+ Version); or++(c) under Patent Claims infringed by Covered Software in the absence of+ its Contributions.++This License does not grant any rights in the trademarks, service marks,+or logos of any Contributor (except as may be necessary to comply with+the notice requirements in Section 3.4).++2.4. Subsequent Licenses++No Contributor makes additional grants as a result of Your choice to+distribute the Covered Software under a subsequent version of this+License (see Section 10.2) or under the terms of a Secondary License (if+permitted under the terms of Section 3.3).++2.5. Representation++Each Contributor represents that the Contributor believes its+Contributions are its original creation(s) or it has sufficient rights+to grant the rights to its Contributions conveyed by this License.++2.6. Fair Use++This License is not intended to limit any rights You have under+applicable copyright doctrines of fair use, fair dealing, or other+equivalents.++2.7. Conditions++Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted+in Section 2.1.++3. Responsibilities+-------------------++3.1. Distribution of Source Form++All distribution of Covered Software in Source Code Form, including any+Modifications that You create or to which You contribute, must be under+the terms of this License. You must inform recipients that the Source+Code Form of the Covered Software is governed by the terms of this+License, and how they can obtain a copy of this License. You may not+attempt to alter or restrict the recipients' rights in the Source Code+Form.++3.2. Distribution of Executable Form++If You distribute Covered Software in Executable Form then:++(a) such Covered Software must also be made available in Source Code+ Form, as described in Section 3.1, and You must inform recipients of+ the Executable Form how they can obtain a copy of such Source Code+ Form by reasonable means in a timely manner, at a charge no more+ than the cost of distribution to the recipient; and++(b) You may distribute such Executable Form under the terms of this+ License, or sublicense it under different terms, provided that the+ license for the Executable Form does not attempt to limit or alter+ the recipients' rights in the Source Code Form under this License.++3.3. Distribution of a Larger Work++You may create and distribute a Larger Work under terms of Your choice,+provided that You also comply with the requirements of this License for+the Covered Software. If the Larger Work is a combination of Covered+Software with a work governed by one or more Secondary Licenses, and the+Covered Software is not Incompatible With Secondary Licenses, this+License permits You to additionally distribute such Covered Software+under the terms of such Secondary License(s), so that the recipient of+the Larger Work may, at their option, further distribute the Covered+Software under the terms of either this License or such Secondary+License(s).++3.4. Notices++You may not remove or alter the substance of any license notices+(including copyright notices, patent notices, disclaimers of warranty,+or limitations of liability) contained within the Source Code Form of+the Covered Software, except that You may alter any license notices to+the extent required to remedy known factual inaccuracies.++3.5. Application of Additional Terms++You may choose to offer, and to charge a fee for, warranty, support,+indemnity or liability obligations to one or more recipients of Covered+Software. However, You may do so only on Your own behalf, and not on+behalf of any Contributor. You must make it absolutely clear that any+such warranty, support, indemnity, or liability obligation is offered by+You alone, and You hereby agree to indemnify every Contributor for any+liability incurred by such Contributor as a result of warranty, support,+indemnity or liability terms You offer. You may include additional+disclaimers of warranty and limitations of liability specific to any+jurisdiction.++4. Inability to Comply Due to Statute or Regulation+---------------------------------------------------++If it is impossible for You to comply with any of the terms of this+License with respect to some or all of the Covered Software due to+statute, judicial order, or regulation then You must: (a) comply with+the terms of this License to the maximum extent possible; and (b)+describe the limitations and the code they affect. Such description must+be placed in a text file included with all distributions of the Covered+Software under this License. Except to the extent prohibited by statute+or regulation, such description must be sufficiently detailed for a+recipient of ordinary skill to be able to understand it.++5. Termination+--------------++5.1. The rights granted under this License will terminate automatically+if You fail to comply with any of its terms. However, if You become+compliant, then the rights granted under this License from a particular+Contributor are reinstated (a) provisionally, unless and until such+Contributor explicitly and finally terminates Your grants, and (b) on an+ongoing basis, if such Contributor fails to notify You of the+non-compliance by some reasonable means prior to 60 days after You have+come back into compliance. Moreover, Your grants from a particular+Contributor are reinstated on an ongoing basis if such Contributor+notifies You of the non-compliance by some reasonable means, this is the+first time You have received notice of non-compliance with this License+from such Contributor, and You become compliant prior to 30 days after+Your receipt of the notice.++5.2. If You initiate litigation against any entity by asserting a patent+infringement claim (excluding declaratory judgment actions,+counter-claims, and cross-claims) alleging that a Contributor Version+directly or indirectly infringes any patent, then the rights granted to+You by any and all Contributors for the Covered Software under Section+2.1 of this License shall terminate.++5.3. In the event of termination under Sections 5.1 or 5.2 above, all+end user license agreements (excluding distributors and resellers) which+have been validly granted by You or Your distributors under this License+prior to termination shall survive termination.++************************************************************************+* *+* 6. Disclaimer of Warranty *+* ------------------------- *+* *+* Covered Software is provided under this License on an "as is" *+* basis, without warranty of any kind, either expressed, implied, or *+* statutory, including, without limitation, warranties that the *+* Covered Software is free of defects, merchantable, fit for a *+* particular purpose or non-infringing. The entire risk as to the *+* quality and performance of the Covered Software is with You. *+* Should any Covered Software prove defective in any respect, You *+* (not any Contributor) assume the cost of any necessary servicing, *+* repair, or correction. This disclaimer of warranty constitutes an *+* essential part of this License. No use of any Covered Software is *+* authorized under this License except under this disclaimer. *+* *+************************************************************************++************************************************************************+* *+* 7. Limitation of Liability *+* -------------------------- *+* *+* Under no circumstances and under no legal theory, whether tort *+* (including negligence), contract, or otherwise, shall any *+* Contributor, or anyone who distributes Covered Software as *+* permitted above, be liable to You for any direct, indirect, *+* special, incidental, or consequential damages of any character *+* including, without limitation, damages for lost profits, loss of *+* goodwill, work stoppage, computer failure or malfunction, or any *+* and all other commercial damages or losses, even if such party *+* shall have been informed of the possibility of such damages. This *+* limitation of liability shall not apply to liability for death or *+* personal injury resulting from such party's negligence to the *+* extent applicable law prohibits such limitation. Some *+* jurisdictions do not allow the exclusion or limitation of *+* incidental or consequential damages, so this exclusion and *+* limitation may not apply to You. *+* *+************************************************************************++8. Litigation+-------------++Any litigation relating to this License may be brought only in the+courts of a jurisdiction where the defendant maintains its principal+place of business and such litigation shall be governed by laws of that+jurisdiction, without reference to its conflict-of-law provisions.+Nothing in this Section shall prevent a party's ability to bring+cross-claims or counter-claims.++9. Miscellaneous+----------------++This License represents the complete agreement concerning the subject+matter hereof. If any provision of this License is held to be+unenforceable, such provision shall be reformed only to the extent+necessary to make it enforceable. Any law or regulation which provides+that the language of a contract shall be construed against the drafter+shall not be used to construe this License against a Contributor.++10. Versions of the License+---------------------------++10.1. New Versions++Mozilla Foundation is the license steward. Except as provided in Section+10.3, no one other than the license steward has the right to modify or+publish new versions of this License. Each version will be given a+distinguishing version number.++10.2. Effect of New Versions++You may distribute the Covered Software under the terms of the version+of the License under which You originally received the Covered Software,+or under the terms of any subsequent version published by the license+steward.++10.3. Modified Versions++If you create software not governed by this License, and you want to+create a new license for such software, you may create and use a+modified version of this License if you rename the license and remove+any references to the name of the license steward (except to note that+such modified license differs from this License).++10.4. Distributing Source Code Form that is Incompatible With Secondary+Licenses++If You choose to distribute Source Code Form that is Incompatible With+Secondary Licenses under the terms of this version of the License, the+notice described in Exhibit B of this License must be attached.++Exhibit A - Source Code Form License Notice+-------------------------------------------++ This Source Code Form is subject to the terms of the Mozilla Public+ License, v. 2.0. If a copy of the MPL was not distributed with this+ file, You can obtain one at http://mozilla.org/MPL/2.0/.++If it is not possible or desirable to put the notice in a particular+file, then You may include the notice in a location (such as a LICENSE+file in a relevant directory) where a recipient would be likely to look+for such a notice.++You may add additional accurate notices of copyright ownership.
+ README.md view
@@ -0,0 +1,44 @@+# Amazon 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