amazonka-customer-profiles (empty) → 2.0
raw patch · 198 files changed
+23113/−0 lines, 198 filesdep +amazonka-coredep +amazonka-customer-profilesdep +amazonka-test
Dependencies added: amazonka-core, amazonka-customer-profiles, amazonka-test, base, bytestring, case-insensitive, tasty, tasty-hunit, text, time, unordered-containers
Files
- LICENSE +367/−0
- README.md +44/−0
- amazonka-customer-profiles.cabal +193/−0
- fixture/AddProfileKey.yaml +10/−0
- fixture/AddProfileKeyResponse.proto +0/−0
- fixture/CreateDomain.yaml +10/−0
- fixture/CreateDomainResponse.proto +0/−0
- fixture/CreateIntegrationWorkflow.yaml +10/−0
- fixture/CreateIntegrationWorkflowResponse.proto +0/−0
- fixture/CreateProfile.yaml +10/−0
- fixture/CreateProfileResponse.proto +0/−0
- fixture/DeleteDomain.yaml +10/−0
- fixture/DeleteDomainResponse.proto +0/−0
- fixture/DeleteIntegration.yaml +10/−0
- fixture/DeleteIntegrationResponse.proto +0/−0
- fixture/DeleteProfile.yaml +10/−0
- fixture/DeleteProfileKey.yaml +10/−0
- fixture/DeleteProfileKeyResponse.proto +0/−0
- fixture/DeleteProfileObject.yaml +10/−0
- fixture/DeleteProfileObjectResponse.proto +0/−0
- fixture/DeleteProfileObjectType.yaml +10/−0
- fixture/DeleteProfileObjectTypeResponse.proto +0/−0
- fixture/DeleteProfileResponse.proto +0/−0
- fixture/DeleteWorkflow.yaml +10/−0
- fixture/DeleteWorkflowResponse.proto +0/−0
- fixture/GetAutoMergingPreview.yaml +10/−0
- fixture/GetAutoMergingPreviewResponse.proto +0/−0
- fixture/GetDomain.yaml +10/−0
- fixture/GetDomainResponse.proto +0/−0
- fixture/GetIdentityResolutionJob.yaml +10/−0
- fixture/GetIdentityResolutionJobResponse.proto +0/−0
- fixture/GetIntegration.yaml +10/−0
- fixture/GetIntegrationResponse.proto +0/−0
- fixture/GetMatches.yaml +10/−0
- fixture/GetMatchesResponse.proto +0/−0
- fixture/GetProfileObjectType.yaml +10/−0
- fixture/GetProfileObjectTypeResponse.proto +0/−0
- fixture/GetProfileObjectTypeTemplate.yaml +10/−0
- fixture/GetProfileObjectTypeTemplateResponse.proto +0/−0
- fixture/GetWorkflow.yaml +10/−0
- fixture/GetWorkflowResponse.proto +0/−0
- fixture/GetWorkflowSteps.yaml +10/−0
- fixture/GetWorkflowStepsResponse.proto +0/−0
- fixture/ListAccountIntegrations.yaml +10/−0
- fixture/ListAccountIntegrationsResponse.proto +0/−0
- fixture/ListDomains.yaml +10/−0
- fixture/ListDomainsResponse.proto +0/−0
- fixture/ListIdentityResolutionJobs.yaml +10/−0
- fixture/ListIdentityResolutionJobsResponse.proto +0/−0
- fixture/ListIntegrations.yaml +10/−0
- fixture/ListIntegrationsResponse.proto +0/−0
- fixture/ListProfileObjectTypeTemplates.yaml +10/−0
- fixture/ListProfileObjectTypeTemplatesResponse.proto +0/−0
- fixture/ListProfileObjectTypes.yaml +10/−0
- fixture/ListProfileObjectTypesResponse.proto +0/−0
- fixture/ListProfileObjects.yaml +10/−0
- fixture/ListProfileObjectsResponse.proto +0/−0
- fixture/ListTagsForResource.yaml +10/−0
- fixture/ListTagsForResourceResponse.proto +0/−0
- fixture/ListWorkflows.yaml +10/−0
- fixture/ListWorkflowsResponse.proto +0/−0
- fixture/MergeProfiles.yaml +10/−0
- fixture/MergeProfilesResponse.proto +0/−0
- fixture/PutIntegration.yaml +10/−0
- fixture/PutIntegrationResponse.proto +0/−0
- fixture/PutProfileObject.yaml +10/−0
- fixture/PutProfileObjectResponse.proto +0/−0
- fixture/PutProfileObjectType.yaml +10/−0
- fixture/PutProfileObjectTypeResponse.proto +0/−0
- fixture/SearchProfiles.yaml +10/−0
- fixture/SearchProfilesResponse.proto +0/−0
- fixture/TagResource.yaml +10/−0
- fixture/TagResourceResponse.proto +0/−0
- fixture/UntagResource.yaml +10/−0
- fixture/UntagResourceResponse.proto +0/−0
- fixture/UpdateDomain.yaml +10/−0
- fixture/UpdateDomainResponse.proto +0/−0
- fixture/UpdateProfile.yaml +10/−0
- fixture/UpdateProfileResponse.proto +0/−0
- gen/Amazonka/CustomerProfiles.hs +619/−0
- gen/Amazonka/CustomerProfiles/AddProfileKey.hs +247/−0
- gen/Amazonka/CustomerProfiles/CreateDomain.hs +439/−0
- gen/Amazonka/CustomerProfiles/CreateIntegrationWorkflow.hs +284/−0
- gen/Amazonka/CustomerProfiles/CreateProfile.hs +494/−0
- gen/Amazonka/CustomerProfiles/DeleteDomain.hs +158/−0
- gen/Amazonka/CustomerProfiles/DeleteIntegration.hs +189/−0
- gen/Amazonka/CustomerProfiles/DeleteProfile.hs +187/−0
- gen/Amazonka/CustomerProfiles/DeleteProfileKey.hs +219/−0
- gen/Amazonka/CustomerProfiles/DeleteProfileObject.hs +227/−0
- gen/Amazonka/CustomerProfiles/DeleteProfileObjectType.hs +194/−0
- gen/Amazonka/CustomerProfiles/DeleteWorkflow.hs +167/−0
- gen/Amazonka/CustomerProfiles/GetAutoMergingPreview.hs +290/−0
- gen/Amazonka/CustomerProfiles/GetDomain.hs +301/−0
- gen/Amazonka/CustomerProfiles/GetIdentityResolutionJob.hs +385/−0
- gen/Amazonka/CustomerProfiles/GetIntegration.hs +320/−0
- gen/Amazonka/CustomerProfiles/GetMatches.hs +279/−0
- gen/Amazonka/CustomerProfiles/GetProfileObjectType.hs +342/−0
- gen/Amazonka/CustomerProfiles/GetProfileObjectTypeTemplate.hs +266/−0
- gen/Amazonka/CustomerProfiles/GetWorkflow.hs +262/−0
- gen/Amazonka/CustomerProfiles/GetWorkflowSteps.hs +254/−0
- gen/Amazonka/CustomerProfiles/Lens.hs +854/−0
- gen/Amazonka/CustomerProfiles/ListAccountIntegrations.hs +229/−0
- gen/Amazonka/CustomerProfiles/ListDomains.hs +185/−0
- gen/Amazonka/CustomerProfiles/ListIdentityResolutionJobs.hs +223/−0
- gen/Amazonka/CustomerProfiles/ListIntegrations.hs +218/−0
- gen/Amazonka/CustomerProfiles/ListProfileObjectTypeTemplates.hs +206/−0
- gen/Amazonka/CustomerProfiles/ListProfileObjectTypes.hs +207/−0
- gen/Amazonka/CustomerProfiles/ListProfileObjects.hs +267/−0
- gen/Amazonka/CustomerProfiles/ListTagsForResource.hs +161/−0
- gen/Amazonka/CustomerProfiles/ListWorkflows.hs +271/−0
- gen/Amazonka/CustomerProfiles/MergeProfiles.hs +263/−0
- gen/Amazonka/CustomerProfiles/PutIntegration.hs +403/−0
- gen/Amazonka/CustomerProfiles/PutProfileObject.hs +221/−0
- gen/Amazonka/CustomerProfiles/PutProfileObjectType.hs +529/−0
- gen/Amazonka/CustomerProfiles/SearchProfiles.hs +363/−0
- gen/Amazonka/CustomerProfiles/TagResource.hs +179/−0
- gen/Amazonka/CustomerProfiles/Types.hs +694/−0
- gen/Amazonka/CustomerProfiles/Types/AdditionalSearchKey.hs +92/−0
- gen/Amazonka/CustomerProfiles/Types/Address.hs +198/−0
- gen/Amazonka/CustomerProfiles/Types/AppflowIntegration.hs +87/−0
- gen/Amazonka/CustomerProfiles/Types/AppflowIntegrationWorkflowAttributes.hs +127/−0
- gen/Amazonka/CustomerProfiles/Types/AppflowIntegrationWorkflowMetrics.hs +117/−0
- gen/Amazonka/CustomerProfiles/Types/AppflowIntegrationWorkflowStep.hs +213/−0
- gen/Amazonka/CustomerProfiles/Types/AutoMerging.hs +150/−0
- gen/Amazonka/CustomerProfiles/Types/Batch.hs +89/−0
- gen/Amazonka/CustomerProfiles/Types/ConflictResolution.hs +127/−0
- gen/Amazonka/CustomerProfiles/Types/ConflictResolvingModel.hs +71/−0
- gen/Amazonka/CustomerProfiles/Types/ConnectorOperator.hs +124/−0
- gen/Amazonka/CustomerProfiles/Types/Consolidation.hs +85/−0
- gen/Amazonka/CustomerProfiles/Types/DataPullMode.hs +71/−0
- gen/Amazonka/CustomerProfiles/Types/DomainStats.hs +118/−0
- gen/Amazonka/CustomerProfiles/Types/ExportingConfig.hs +82/−0
- gen/Amazonka/CustomerProfiles/Types/ExportingLocation.hs +72/−0
- gen/Amazonka/CustomerProfiles/Types/FieldContentType.hs +86/−0
- gen/Amazonka/CustomerProfiles/Types/FieldSourceProfileIds.hs +321/−0
- gen/Amazonka/CustomerProfiles/Types/FlowDefinition.hs +162/−0
- gen/Amazonka/CustomerProfiles/Types/FoundByKeyValue.hs +87/−0
- gen/Amazonka/CustomerProfiles/Types/Gender.hs +73/−0
- gen/Amazonka/CustomerProfiles/Types/IdentityResolutionJob.hs +229/−0
- gen/Amazonka/CustomerProfiles/Types/IdentityResolutionJobStatus.hs +96/−0
- gen/Amazonka/CustomerProfiles/Types/IncrementalPullConfig.hs +76/−0
- gen/Amazonka/CustomerProfiles/Types/IntegrationConfig.hs +73/−0
- gen/Amazonka/CustomerProfiles/Types/JobSchedule.hs +99/−0
- gen/Amazonka/CustomerProfiles/Types/JobScheduleDayOfTheWeek.hs +96/−0
- gen/Amazonka/CustomerProfiles/Types/JobStats.hs +96/−0
- gen/Amazonka/CustomerProfiles/Types/ListDomainItem.hs +117/−0
- gen/Amazonka/CustomerProfiles/Types/ListIntegrationItem.hs +208/−0
- gen/Amazonka/CustomerProfiles/Types/ListProfileObjectTypeItem.hs +127/−0
- gen/Amazonka/CustomerProfiles/Types/ListProfileObjectTypeTemplateItem.hs +108/−0
- gen/Amazonka/CustomerProfiles/Types/ListProfileObjectsItem.hs +99/−0
- gen/Amazonka/CustomerProfiles/Types/ListWorkflowsItem.hs +152/−0
- gen/Amazonka/CustomerProfiles/Types/LogicalOperator.hs +71/−0
- gen/Amazonka/CustomerProfiles/Types/MarketoConnectorOperator.hs +141/−0
- gen/Amazonka/CustomerProfiles/Types/MarketoSourceProperties.hs +69/−0
- gen/Amazonka/CustomerProfiles/Types/MatchItem.hs +117/−0
- gen/Amazonka/CustomerProfiles/Types/MatchingRequest.hs +119/−0
- gen/Amazonka/CustomerProfiles/Types/MatchingResponse.hs +117/−0
- gen/Amazonka/CustomerProfiles/Types/ObjectFilter.hs +99/−0
- gen/Amazonka/CustomerProfiles/Types/ObjectTypeField.hs +119/−0
- gen/Amazonka/CustomerProfiles/Types/ObjectTypeKey.hs +126/−0
- gen/Amazonka/CustomerProfiles/Types/OperatorPropertiesKeys.hs +131/−0
- gen/Amazonka/CustomerProfiles/Types/PartyType.hs +76/−0
- gen/Amazonka/CustomerProfiles/Types/Profile.hs +420/−0
- gen/Amazonka/CustomerProfiles/Types/S3ConnectorOperator.hs +161/−0
- gen/Amazonka/CustomerProfiles/Types/S3ExportingConfig.hs +102/−0
- gen/Amazonka/CustomerProfiles/Types/S3ExportingLocation.hs +91/−0
- gen/Amazonka/CustomerProfiles/Types/S3SourceProperties.hs +89/−0
- gen/Amazonka/CustomerProfiles/Types/SalesforceConnectorOperator.hs +166/−0
- gen/Amazonka/CustomerProfiles/Types/SalesforceSourceProperties.hs +104/−0
- gen/Amazonka/CustomerProfiles/Types/ScheduledTriggerProperties.hs +169/−0
- gen/Amazonka/CustomerProfiles/Types/ServiceNowConnectorOperator.hs +166/−0
- gen/Amazonka/CustomerProfiles/Types/ServiceNowSourceProperties.hs +70/−0
- gen/Amazonka/CustomerProfiles/Types/SourceConnectorProperties.hs +136/−0
- gen/Amazonka/CustomerProfiles/Types/SourceConnectorType.hs +86/−0
- gen/Amazonka/CustomerProfiles/Types/SourceFlowConfig.hs +136/−0
- gen/Amazonka/CustomerProfiles/Types/StandardIdentifier.hs +101/−0
- gen/Amazonka/CustomerProfiles/Types/Status.hs +93/−0
- gen/Amazonka/CustomerProfiles/Types/Task.hs +137/−0
- gen/Amazonka/CustomerProfiles/Types/TaskType.hs +96/−0
- gen/Amazonka/CustomerProfiles/Types/TriggerConfig.hs +98/−0
- gen/Amazonka/CustomerProfiles/Types/TriggerProperties.hs +71/−0
- gen/Amazonka/CustomerProfiles/Types/TriggerType.hs +76/−0
- gen/Amazonka/CustomerProfiles/Types/UpdateAddress.hs +179/−0
- gen/Amazonka/CustomerProfiles/Types/WorkflowAttributes.hs +73/−0
- gen/Amazonka/CustomerProfiles/Types/WorkflowMetrics.hs +73/−0
- gen/Amazonka/CustomerProfiles/Types/WorkflowStepItem.hs +73/−0
- gen/Amazonka/CustomerProfiles/Types/WorkflowType.hs +66/−0
- gen/Amazonka/CustomerProfiles/Types/ZendeskConnectorOperator.hs +131/−0
- gen/Amazonka/CustomerProfiles/Types/ZendeskSourceProperties.hs +69/−0
- gen/Amazonka/CustomerProfiles/UntagResource.hs +165/−0
- gen/Amazonka/CustomerProfiles/UpdateDomain.hs +438/−0
- gen/Amazonka/CustomerProfiles/UpdateProfile.hs +512/−0
- gen/Amazonka/CustomerProfiles/Waiters.hs +24/−0
- src/.gitkeep +0/−0
- test/Main.hs +23/−0
- test/Test/Amazonka/CustomerProfiles.hs +20/−0
- test/Test/Amazonka/CustomerProfiles/Internal.hs +8/−0
- test/Test/Amazonka/Gen/CustomerProfiles.hs +798/−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 Connect Customer Profiles SDK++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version+ +`2.0` - Derived from API version @2020-08-15@ of the AWS service descriptions, licensed under Apache 2.0.++## Description++Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-customer-profiles)+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.CustomerProfiles](http://hackage.haskell.org/package/amazonka-customer-profiles/docs/Amazonka-CustomerProfiles.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-customer-profiles` 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-customer-profiles.cabal view
@@ -0,0 +1,193 @@+cabal-version: 2.2+name: amazonka-customer-profiles+version: 2.0+synopsis: Amazon Connect Customer Profiles SDK.+homepage: https://github.com/brendanhay/amazonka+bug-reports: https://github.com/brendanhay/amazonka/issues+license: MPL-2.0+license-file: LICENSE+author: Brendan Hay+maintainer:+ Brendan Hay <brendan.g.hay+amazonka@gmail.com>, Jack Kelly <jack@jackkelly.name>++copyright: Copyright (c) 2013-2023 Brendan Hay+category: AWS+build-type: Simple+extra-source-files:+ fixture/*.proto+ fixture/*.yaml+ README.md+ src/.gitkeep++description:+ Derived from API version @2020-08-15@ 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.CustomerProfiles.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.CustomerProfiles" 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-customer-profiles++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.CustomerProfiles+ Amazonka.CustomerProfiles.AddProfileKey+ Amazonka.CustomerProfiles.CreateDomain+ Amazonka.CustomerProfiles.CreateIntegrationWorkflow+ Amazonka.CustomerProfiles.CreateProfile+ Amazonka.CustomerProfiles.DeleteDomain+ Amazonka.CustomerProfiles.DeleteIntegration+ Amazonka.CustomerProfiles.DeleteProfile+ Amazonka.CustomerProfiles.DeleteProfileKey+ Amazonka.CustomerProfiles.DeleteProfileObject+ Amazonka.CustomerProfiles.DeleteProfileObjectType+ Amazonka.CustomerProfiles.DeleteWorkflow+ Amazonka.CustomerProfiles.GetAutoMergingPreview+ Amazonka.CustomerProfiles.GetDomain+ Amazonka.CustomerProfiles.GetIdentityResolutionJob+ Amazonka.CustomerProfiles.GetIntegration+ Amazonka.CustomerProfiles.GetMatches+ Amazonka.CustomerProfiles.GetProfileObjectType+ Amazonka.CustomerProfiles.GetProfileObjectTypeTemplate+ Amazonka.CustomerProfiles.GetWorkflow+ Amazonka.CustomerProfiles.GetWorkflowSteps+ Amazonka.CustomerProfiles.Lens+ Amazonka.CustomerProfiles.ListAccountIntegrations+ Amazonka.CustomerProfiles.ListDomains+ Amazonka.CustomerProfiles.ListIdentityResolutionJobs+ Amazonka.CustomerProfiles.ListIntegrations+ Amazonka.CustomerProfiles.ListProfileObjects+ Amazonka.CustomerProfiles.ListProfileObjectTypes+ Amazonka.CustomerProfiles.ListProfileObjectTypeTemplates+ Amazonka.CustomerProfiles.ListTagsForResource+ Amazonka.CustomerProfiles.ListWorkflows+ Amazonka.CustomerProfiles.MergeProfiles+ Amazonka.CustomerProfiles.PutIntegration+ Amazonka.CustomerProfiles.PutProfileObject+ Amazonka.CustomerProfiles.PutProfileObjectType+ Amazonka.CustomerProfiles.SearchProfiles+ Amazonka.CustomerProfiles.TagResource+ Amazonka.CustomerProfiles.Types+ Amazonka.CustomerProfiles.Types.AdditionalSearchKey+ Amazonka.CustomerProfiles.Types.Address+ Amazonka.CustomerProfiles.Types.AppflowIntegration+ Amazonka.CustomerProfiles.Types.AppflowIntegrationWorkflowAttributes+ Amazonka.CustomerProfiles.Types.AppflowIntegrationWorkflowMetrics+ Amazonka.CustomerProfiles.Types.AppflowIntegrationWorkflowStep+ Amazonka.CustomerProfiles.Types.AutoMerging+ Amazonka.CustomerProfiles.Types.Batch+ Amazonka.CustomerProfiles.Types.ConflictResolution+ Amazonka.CustomerProfiles.Types.ConflictResolvingModel+ Amazonka.CustomerProfiles.Types.ConnectorOperator+ Amazonka.CustomerProfiles.Types.Consolidation+ Amazonka.CustomerProfiles.Types.DataPullMode+ Amazonka.CustomerProfiles.Types.DomainStats+ Amazonka.CustomerProfiles.Types.ExportingConfig+ Amazonka.CustomerProfiles.Types.ExportingLocation+ Amazonka.CustomerProfiles.Types.FieldContentType+ Amazonka.CustomerProfiles.Types.FieldSourceProfileIds+ Amazonka.CustomerProfiles.Types.FlowDefinition+ Amazonka.CustomerProfiles.Types.FoundByKeyValue+ Amazonka.CustomerProfiles.Types.Gender+ Amazonka.CustomerProfiles.Types.IdentityResolutionJob+ Amazonka.CustomerProfiles.Types.IdentityResolutionJobStatus+ Amazonka.CustomerProfiles.Types.IncrementalPullConfig+ Amazonka.CustomerProfiles.Types.IntegrationConfig+ Amazonka.CustomerProfiles.Types.JobSchedule+ Amazonka.CustomerProfiles.Types.JobScheduleDayOfTheWeek+ Amazonka.CustomerProfiles.Types.JobStats+ Amazonka.CustomerProfiles.Types.ListDomainItem+ Amazonka.CustomerProfiles.Types.ListIntegrationItem+ Amazonka.CustomerProfiles.Types.ListProfileObjectsItem+ Amazonka.CustomerProfiles.Types.ListProfileObjectTypeItem+ Amazonka.CustomerProfiles.Types.ListProfileObjectTypeTemplateItem+ Amazonka.CustomerProfiles.Types.ListWorkflowsItem+ Amazonka.CustomerProfiles.Types.LogicalOperator+ Amazonka.CustomerProfiles.Types.MarketoConnectorOperator+ Amazonka.CustomerProfiles.Types.MarketoSourceProperties+ Amazonka.CustomerProfiles.Types.MatchingRequest+ Amazonka.CustomerProfiles.Types.MatchingResponse+ Amazonka.CustomerProfiles.Types.MatchItem+ Amazonka.CustomerProfiles.Types.ObjectFilter+ Amazonka.CustomerProfiles.Types.ObjectTypeField+ Amazonka.CustomerProfiles.Types.ObjectTypeKey+ Amazonka.CustomerProfiles.Types.OperatorPropertiesKeys+ Amazonka.CustomerProfiles.Types.PartyType+ Amazonka.CustomerProfiles.Types.Profile+ Amazonka.CustomerProfiles.Types.S3ConnectorOperator+ Amazonka.CustomerProfiles.Types.S3ExportingConfig+ Amazonka.CustomerProfiles.Types.S3ExportingLocation+ Amazonka.CustomerProfiles.Types.S3SourceProperties+ Amazonka.CustomerProfiles.Types.SalesforceConnectorOperator+ Amazonka.CustomerProfiles.Types.SalesforceSourceProperties+ Amazonka.CustomerProfiles.Types.ScheduledTriggerProperties+ Amazonka.CustomerProfiles.Types.ServiceNowConnectorOperator+ Amazonka.CustomerProfiles.Types.ServiceNowSourceProperties+ Amazonka.CustomerProfiles.Types.SourceConnectorProperties+ Amazonka.CustomerProfiles.Types.SourceConnectorType+ Amazonka.CustomerProfiles.Types.SourceFlowConfig+ Amazonka.CustomerProfiles.Types.StandardIdentifier+ Amazonka.CustomerProfiles.Types.Status+ Amazonka.CustomerProfiles.Types.Task+ Amazonka.CustomerProfiles.Types.TaskType+ Amazonka.CustomerProfiles.Types.TriggerConfig+ Amazonka.CustomerProfiles.Types.TriggerProperties+ Amazonka.CustomerProfiles.Types.TriggerType+ Amazonka.CustomerProfiles.Types.UpdateAddress+ Amazonka.CustomerProfiles.Types.WorkflowAttributes+ Amazonka.CustomerProfiles.Types.WorkflowMetrics+ Amazonka.CustomerProfiles.Types.WorkflowStepItem+ Amazonka.CustomerProfiles.Types.WorkflowType+ Amazonka.CustomerProfiles.Types.ZendeskConnectorOperator+ Amazonka.CustomerProfiles.Types.ZendeskSourceProperties+ Amazonka.CustomerProfiles.UntagResource+ Amazonka.CustomerProfiles.UpdateDomain+ Amazonka.CustomerProfiles.UpdateProfile+ Amazonka.CustomerProfiles.Waiters++ build-depends:+ , amazonka-core >=2.0 && <2.1+ , base >=4.12 && <5++test-suite amazonka-customer-profiles-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.CustomerProfiles+ Test.Amazonka.CustomerProfiles.Internal+ Test.Amazonka.Gen.CustomerProfiles++ build-depends:+ , amazonka-core >=2.0 && <2.1+ , amazonka-customer-profiles+ , amazonka-test >=2.0 && <2.1+ , base+ , bytestring+ , case-insensitive+ , tasty+ , tasty-hunit+ , text+ , time+ , unordered-containers
+ fixture/AddProfileKey.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/profile/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: profile.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/AddProfileKeyResponse.proto view
+ fixture/CreateDomain.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/profile/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: profile.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/CreateDomainResponse.proto view
+ fixture/CreateIntegrationWorkflow.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/profile/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: profile.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/CreateIntegrationWorkflowResponse.proto view
+ fixture/CreateProfile.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/profile/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: profile.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/CreateProfileResponse.proto view
+ fixture/DeleteDomain.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/profile/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: profile.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/DeleteDomainResponse.proto view
+ fixture/DeleteIntegration.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/profile/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: profile.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/DeleteIntegrationResponse.proto view
+ fixture/DeleteProfile.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/profile/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: profile.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/DeleteProfileKey.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/profile/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: profile.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/DeleteProfileKeyResponse.proto view
+ fixture/DeleteProfileObject.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/profile/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: profile.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/DeleteProfileObjectResponse.proto view
+ fixture/DeleteProfileObjectType.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/profile/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: profile.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/DeleteProfileObjectTypeResponse.proto view
+ fixture/DeleteProfileResponse.proto view
+ fixture/DeleteWorkflow.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/profile/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: profile.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/DeleteWorkflowResponse.proto view
+ fixture/GetAutoMergingPreview.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/profile/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: profile.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/GetAutoMergingPreviewResponse.proto view
+ fixture/GetDomain.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/profile/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: profile.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/GetDomainResponse.proto view
+ fixture/GetIdentityResolutionJob.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/profile/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: profile.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/GetIdentityResolutionJobResponse.proto view
+ fixture/GetIntegration.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/profile/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: profile.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/GetIntegrationResponse.proto view
+ fixture/GetMatches.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/profile/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: profile.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/GetMatchesResponse.proto view
+ fixture/GetProfileObjectType.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/profile/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: profile.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/GetProfileObjectTypeResponse.proto view
+ fixture/GetProfileObjectTypeTemplate.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/profile/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: profile.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/GetProfileObjectTypeTemplateResponse.proto view
+ fixture/GetWorkflow.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/profile/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: profile.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/GetWorkflowResponse.proto view
+ fixture/GetWorkflowSteps.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/profile/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: profile.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/GetWorkflowStepsResponse.proto view
+ fixture/ListAccountIntegrations.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/profile/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: profile.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/ListAccountIntegrationsResponse.proto view
+ fixture/ListDomains.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/profile/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: profile.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/ListDomainsResponse.proto view
+ fixture/ListIdentityResolutionJobs.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/profile/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: profile.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/ListIdentityResolutionJobsResponse.proto view
+ fixture/ListIntegrations.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/profile/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: profile.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/ListIntegrationsResponse.proto view
+ fixture/ListProfileObjectTypeTemplates.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/profile/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: profile.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/ListProfileObjectTypeTemplatesResponse.proto view
+ fixture/ListProfileObjectTypes.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/profile/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: profile.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/ListProfileObjectTypesResponse.proto view
+ fixture/ListProfileObjects.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/profile/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: profile.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/ListProfileObjectsResponse.proto view
+ fixture/ListTagsForResource.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/profile/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: profile.us-east-1.amazonaws.com+ Content-Type: application/x-www-form-urlencoded; charset=utf-8+ X-Amz-Content-SHA256: abcdef+ X-Amz-Date: 20091028T223200Z+body:+ ''
+ fixture/ListTagsForResourceResponse.proto view
+ fixture/ListWorkflows.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/profile/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: profile.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/ListWorkflowsResponse.proto view
+ fixture/MergeProfiles.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/profile/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: profile.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/MergeProfilesResponse.proto view
+ fixture/PutIntegration.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/profile/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: profile.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/PutIntegrationResponse.proto view
+ fixture/PutProfileObject.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/profile/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: profile.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/PutProfileObjectResponse.proto view
+ fixture/PutProfileObjectType.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/profile/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: profile.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/PutProfileObjectTypeResponse.proto view
+ fixture/SearchProfiles.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/profile/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: profile.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/SearchProfilesResponse.proto view
+ fixture/TagResource.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/profile/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: profile.us-east-1.amazonaws.com+ Content-Type: application/x-www-form-urlencoded; charset=utf-8+ X-Amz-Content-SHA256: abcdef+ X-Amz-Date: 20091028T223200Z+body:+ ''
+ fixture/TagResourceResponse.proto view
+ fixture/UntagResource.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/profile/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: profile.us-east-1.amazonaws.com+ Content-Type: application/x-www-form-urlencoded; charset=utf-8+ X-Amz-Content-SHA256: abcdef+ X-Amz-Date: 20091028T223200Z+body:+ ''
+ fixture/UntagResourceResponse.proto view
+ fixture/UpdateDomain.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/profile/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: profile.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/UpdateDomainResponse.proto view
+ fixture/UpdateProfile.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/profile/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: profile.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/UpdateProfileResponse.proto view
+ gen/Amazonka/CustomerProfiles.hs view
@@ -0,0 +1,619 @@+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module : Amazonka.CustomerProfiles+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Derived from API version @2020-08-15@ of the AWS service descriptions, licensed under Apache 2.0.+--+-- Amazon Connect Customer Profiles+--+-- Amazon Connect Customer Profiles is a unified customer profile for your+-- contact center that has pre-built connectors powered by AppFlow that+-- make it easy to combine customer information from third party+-- applications, such as Salesforce (CRM), ServiceNow (ITSM), and your+-- enterprise resource planning (ERP), with contact history from your+-- Amazon Connect contact center. If you\'re new to Amazon Connect, you+-- might find it helpful to review the+-- <https://docs.aws.amazon.com/connect/latest/adminguide/ Amazon Connect Administrator Guide>.+module Amazonka.CustomerProfiles+ ( -- * Service Configuration+ defaultService,++ -- * Errors+ -- $errors++ -- ** AccessDeniedException+ _AccessDeniedException,++ -- ** BadRequestException+ _BadRequestException,++ -- ** InternalServerException+ _InternalServerException,++ -- ** ResourceNotFoundException+ _ResourceNotFoundException,++ -- ** ThrottlingException+ _ThrottlingException,++ -- * Waiters+ -- $waiters++ -- * Operations+ -- $operations++ -- ** AddProfileKey+ AddProfileKey (AddProfileKey'),+ newAddProfileKey,+ AddProfileKeyResponse (AddProfileKeyResponse'),+ newAddProfileKeyResponse,++ -- ** CreateDomain+ CreateDomain (CreateDomain'),+ newCreateDomain,+ CreateDomainResponse (CreateDomainResponse'),+ newCreateDomainResponse,++ -- ** CreateIntegrationWorkflow+ CreateIntegrationWorkflow (CreateIntegrationWorkflow'),+ newCreateIntegrationWorkflow,+ CreateIntegrationWorkflowResponse (CreateIntegrationWorkflowResponse'),+ newCreateIntegrationWorkflowResponse,++ -- ** CreateProfile+ CreateProfile (CreateProfile'),+ newCreateProfile,+ CreateProfileResponse (CreateProfileResponse'),+ newCreateProfileResponse,++ -- ** DeleteDomain+ DeleteDomain (DeleteDomain'),+ newDeleteDomain,+ DeleteDomainResponse (DeleteDomainResponse'),+ newDeleteDomainResponse,++ -- ** DeleteIntegration+ DeleteIntegration (DeleteIntegration'),+ newDeleteIntegration,+ DeleteIntegrationResponse (DeleteIntegrationResponse'),+ newDeleteIntegrationResponse,++ -- ** DeleteProfile+ DeleteProfile (DeleteProfile'),+ newDeleteProfile,+ DeleteProfileResponse (DeleteProfileResponse'),+ newDeleteProfileResponse,++ -- ** DeleteProfileKey+ DeleteProfileKey (DeleteProfileKey'),+ newDeleteProfileKey,+ DeleteProfileKeyResponse (DeleteProfileKeyResponse'),+ newDeleteProfileKeyResponse,++ -- ** DeleteProfileObject+ DeleteProfileObject (DeleteProfileObject'),+ newDeleteProfileObject,+ DeleteProfileObjectResponse (DeleteProfileObjectResponse'),+ newDeleteProfileObjectResponse,++ -- ** DeleteProfileObjectType+ DeleteProfileObjectType (DeleteProfileObjectType'),+ newDeleteProfileObjectType,+ DeleteProfileObjectTypeResponse (DeleteProfileObjectTypeResponse'),+ newDeleteProfileObjectTypeResponse,++ -- ** DeleteWorkflow+ DeleteWorkflow (DeleteWorkflow'),+ newDeleteWorkflow,+ DeleteWorkflowResponse (DeleteWorkflowResponse'),+ newDeleteWorkflowResponse,++ -- ** GetAutoMergingPreview+ GetAutoMergingPreview (GetAutoMergingPreview'),+ newGetAutoMergingPreview,+ GetAutoMergingPreviewResponse (GetAutoMergingPreviewResponse'),+ newGetAutoMergingPreviewResponse,++ -- ** GetDomain+ GetDomain (GetDomain'),+ newGetDomain,+ GetDomainResponse (GetDomainResponse'),+ newGetDomainResponse,++ -- ** GetIdentityResolutionJob+ GetIdentityResolutionJob (GetIdentityResolutionJob'),+ newGetIdentityResolutionJob,+ GetIdentityResolutionJobResponse (GetIdentityResolutionJobResponse'),+ newGetIdentityResolutionJobResponse,++ -- ** GetIntegration+ GetIntegration (GetIntegration'),+ newGetIntegration,+ GetIntegrationResponse (GetIntegrationResponse'),+ newGetIntegrationResponse,++ -- ** GetMatches+ GetMatches (GetMatches'),+ newGetMatches,+ GetMatchesResponse (GetMatchesResponse'),+ newGetMatchesResponse,++ -- ** GetProfileObjectType+ GetProfileObjectType (GetProfileObjectType'),+ newGetProfileObjectType,+ GetProfileObjectTypeResponse (GetProfileObjectTypeResponse'),+ newGetProfileObjectTypeResponse,++ -- ** GetProfileObjectTypeTemplate+ GetProfileObjectTypeTemplate (GetProfileObjectTypeTemplate'),+ newGetProfileObjectTypeTemplate,+ GetProfileObjectTypeTemplateResponse (GetProfileObjectTypeTemplateResponse'),+ newGetProfileObjectTypeTemplateResponse,++ -- ** GetWorkflow+ GetWorkflow (GetWorkflow'),+ newGetWorkflow,+ GetWorkflowResponse (GetWorkflowResponse'),+ newGetWorkflowResponse,++ -- ** GetWorkflowSteps+ GetWorkflowSteps (GetWorkflowSteps'),+ newGetWorkflowSteps,+ GetWorkflowStepsResponse (GetWorkflowStepsResponse'),+ newGetWorkflowStepsResponse,++ -- ** ListAccountIntegrations+ ListAccountIntegrations (ListAccountIntegrations'),+ newListAccountIntegrations,+ ListAccountIntegrationsResponse (ListAccountIntegrationsResponse'),+ newListAccountIntegrationsResponse,++ -- ** ListDomains+ ListDomains (ListDomains'),+ newListDomains,+ ListDomainsResponse (ListDomainsResponse'),+ newListDomainsResponse,++ -- ** ListIdentityResolutionJobs+ ListIdentityResolutionJobs (ListIdentityResolutionJobs'),+ newListIdentityResolutionJobs,+ ListIdentityResolutionJobsResponse (ListIdentityResolutionJobsResponse'),+ newListIdentityResolutionJobsResponse,++ -- ** ListIntegrations+ ListIntegrations (ListIntegrations'),+ newListIntegrations,+ ListIntegrationsResponse (ListIntegrationsResponse'),+ newListIntegrationsResponse,++ -- ** ListProfileObjectTypeTemplates+ ListProfileObjectTypeTemplates (ListProfileObjectTypeTemplates'),+ newListProfileObjectTypeTemplates,+ ListProfileObjectTypeTemplatesResponse (ListProfileObjectTypeTemplatesResponse'),+ newListProfileObjectTypeTemplatesResponse,++ -- ** ListProfileObjectTypes+ ListProfileObjectTypes (ListProfileObjectTypes'),+ newListProfileObjectTypes,+ ListProfileObjectTypesResponse (ListProfileObjectTypesResponse'),+ newListProfileObjectTypesResponse,++ -- ** ListProfileObjects+ ListProfileObjects (ListProfileObjects'),+ newListProfileObjects,+ ListProfileObjectsResponse (ListProfileObjectsResponse'),+ newListProfileObjectsResponse,++ -- ** ListTagsForResource+ ListTagsForResource (ListTagsForResource'),+ newListTagsForResource,+ ListTagsForResourceResponse (ListTagsForResourceResponse'),+ newListTagsForResourceResponse,++ -- ** ListWorkflows+ ListWorkflows (ListWorkflows'),+ newListWorkflows,+ ListWorkflowsResponse (ListWorkflowsResponse'),+ newListWorkflowsResponse,++ -- ** MergeProfiles+ MergeProfiles (MergeProfiles'),+ newMergeProfiles,+ MergeProfilesResponse (MergeProfilesResponse'),+ newMergeProfilesResponse,++ -- ** PutIntegration+ PutIntegration (PutIntegration'),+ newPutIntegration,+ PutIntegrationResponse (PutIntegrationResponse'),+ newPutIntegrationResponse,++ -- ** PutProfileObject+ PutProfileObject (PutProfileObject'),+ newPutProfileObject,+ PutProfileObjectResponse (PutProfileObjectResponse'),+ newPutProfileObjectResponse,++ -- ** PutProfileObjectType+ PutProfileObjectType (PutProfileObjectType'),+ newPutProfileObjectType,+ PutProfileObjectTypeResponse (PutProfileObjectTypeResponse'),+ newPutProfileObjectTypeResponse,++ -- ** SearchProfiles+ SearchProfiles (SearchProfiles'),+ newSearchProfiles,+ SearchProfilesResponse (SearchProfilesResponse'),+ newSearchProfilesResponse,++ -- ** TagResource+ TagResource (TagResource'),+ newTagResource,+ TagResourceResponse (TagResourceResponse'),+ newTagResourceResponse,++ -- ** UntagResource+ UntagResource (UntagResource'),+ newUntagResource,+ UntagResourceResponse (UntagResourceResponse'),+ newUntagResourceResponse,++ -- ** UpdateDomain+ UpdateDomain (UpdateDomain'),+ newUpdateDomain,+ UpdateDomainResponse (UpdateDomainResponse'),+ newUpdateDomainResponse,++ -- ** UpdateProfile+ UpdateProfile (UpdateProfile'),+ newUpdateProfile,+ UpdateProfileResponse (UpdateProfileResponse'),+ newUpdateProfileResponse,++ -- * Types++ -- ** ConflictResolvingModel+ ConflictResolvingModel (..),++ -- ** DataPullMode+ DataPullMode (..),++ -- ** FieldContentType+ FieldContentType (..),++ -- ** Gender+ Gender (..),++ -- ** IdentityResolutionJobStatus+ IdentityResolutionJobStatus (..),++ -- ** JobScheduleDayOfTheWeek+ JobScheduleDayOfTheWeek (..),++ -- ** LogicalOperator+ LogicalOperator (..),++ -- ** MarketoConnectorOperator+ MarketoConnectorOperator (..),++ -- ** OperatorPropertiesKeys+ OperatorPropertiesKeys (..),++ -- ** PartyType+ PartyType (..),++ -- ** S3ConnectorOperator+ S3ConnectorOperator (..),++ -- ** SalesforceConnectorOperator+ SalesforceConnectorOperator (..),++ -- ** ServiceNowConnectorOperator+ ServiceNowConnectorOperator (..),++ -- ** SourceConnectorType+ SourceConnectorType (..),++ -- ** StandardIdentifier+ StandardIdentifier (..),++ -- ** Status+ Status (..),++ -- ** TaskType+ TaskType (..),++ -- ** TriggerType+ TriggerType (..),++ -- ** WorkflowType+ WorkflowType (..),++ -- ** ZendeskConnectorOperator+ ZendeskConnectorOperator (..),++ -- ** AdditionalSearchKey+ AdditionalSearchKey (AdditionalSearchKey'),+ newAdditionalSearchKey,++ -- ** Address+ Address (Address'),+ newAddress,++ -- ** AppflowIntegration+ AppflowIntegration (AppflowIntegration'),+ newAppflowIntegration,++ -- ** AppflowIntegrationWorkflowAttributes+ AppflowIntegrationWorkflowAttributes (AppflowIntegrationWorkflowAttributes'),+ newAppflowIntegrationWorkflowAttributes,++ -- ** AppflowIntegrationWorkflowMetrics+ AppflowIntegrationWorkflowMetrics (AppflowIntegrationWorkflowMetrics'),+ newAppflowIntegrationWorkflowMetrics,++ -- ** AppflowIntegrationWorkflowStep+ AppflowIntegrationWorkflowStep (AppflowIntegrationWorkflowStep'),+ newAppflowIntegrationWorkflowStep,++ -- ** AutoMerging+ AutoMerging (AutoMerging'),+ newAutoMerging,++ -- ** Batch+ Batch (Batch'),+ newBatch,++ -- ** ConflictResolution+ ConflictResolution (ConflictResolution'),+ newConflictResolution,++ -- ** ConnectorOperator+ ConnectorOperator (ConnectorOperator'),+ newConnectorOperator,++ -- ** Consolidation+ Consolidation (Consolidation'),+ newConsolidation,++ -- ** DomainStats+ DomainStats (DomainStats'),+ newDomainStats,++ -- ** ExportingConfig+ ExportingConfig (ExportingConfig'),+ newExportingConfig,++ -- ** ExportingLocation+ ExportingLocation (ExportingLocation'),+ newExportingLocation,++ -- ** FieldSourceProfileIds+ FieldSourceProfileIds (FieldSourceProfileIds'),+ newFieldSourceProfileIds,++ -- ** FlowDefinition+ FlowDefinition (FlowDefinition'),+ newFlowDefinition,++ -- ** FoundByKeyValue+ FoundByKeyValue (FoundByKeyValue'),+ newFoundByKeyValue,++ -- ** IdentityResolutionJob+ IdentityResolutionJob (IdentityResolutionJob'),+ newIdentityResolutionJob,++ -- ** IncrementalPullConfig+ IncrementalPullConfig (IncrementalPullConfig'),+ newIncrementalPullConfig,++ -- ** IntegrationConfig+ IntegrationConfig (IntegrationConfig'),+ newIntegrationConfig,++ -- ** JobSchedule+ JobSchedule (JobSchedule'),+ newJobSchedule,++ -- ** JobStats+ JobStats (JobStats'),+ newJobStats,++ -- ** ListDomainItem+ ListDomainItem (ListDomainItem'),+ newListDomainItem,++ -- ** ListIntegrationItem+ ListIntegrationItem (ListIntegrationItem'),+ newListIntegrationItem,++ -- ** ListProfileObjectTypeItem+ ListProfileObjectTypeItem (ListProfileObjectTypeItem'),+ newListProfileObjectTypeItem,++ -- ** ListProfileObjectTypeTemplateItem+ ListProfileObjectTypeTemplateItem (ListProfileObjectTypeTemplateItem'),+ newListProfileObjectTypeTemplateItem,++ -- ** ListProfileObjectsItem+ ListProfileObjectsItem (ListProfileObjectsItem'),+ newListProfileObjectsItem,++ -- ** ListWorkflowsItem+ ListWorkflowsItem (ListWorkflowsItem'),+ newListWorkflowsItem,++ -- ** MarketoSourceProperties+ MarketoSourceProperties (MarketoSourceProperties'),+ newMarketoSourceProperties,++ -- ** MatchItem+ MatchItem (MatchItem'),+ newMatchItem,++ -- ** MatchingRequest+ MatchingRequest (MatchingRequest'),+ newMatchingRequest,++ -- ** MatchingResponse+ MatchingResponse (MatchingResponse'),+ newMatchingResponse,++ -- ** ObjectFilter+ ObjectFilter (ObjectFilter'),+ newObjectFilter,++ -- ** ObjectTypeField+ ObjectTypeField (ObjectTypeField'),+ newObjectTypeField,++ -- ** ObjectTypeKey+ ObjectTypeKey (ObjectTypeKey'),+ newObjectTypeKey,++ -- ** Profile+ Profile (Profile'),+ newProfile,++ -- ** S3ExportingConfig+ S3ExportingConfig (S3ExportingConfig'),+ newS3ExportingConfig,++ -- ** S3ExportingLocation+ S3ExportingLocation (S3ExportingLocation'),+ newS3ExportingLocation,++ -- ** S3SourceProperties+ S3SourceProperties (S3SourceProperties'),+ newS3SourceProperties,++ -- ** SalesforceSourceProperties+ SalesforceSourceProperties (SalesforceSourceProperties'),+ newSalesforceSourceProperties,++ -- ** ScheduledTriggerProperties+ ScheduledTriggerProperties (ScheduledTriggerProperties'),+ newScheduledTriggerProperties,++ -- ** ServiceNowSourceProperties+ ServiceNowSourceProperties (ServiceNowSourceProperties'),+ newServiceNowSourceProperties,++ -- ** SourceConnectorProperties+ SourceConnectorProperties (SourceConnectorProperties'),+ newSourceConnectorProperties,++ -- ** SourceFlowConfig+ SourceFlowConfig (SourceFlowConfig'),+ newSourceFlowConfig,++ -- ** Task+ Task (Task'),+ newTask,++ -- ** TriggerConfig+ TriggerConfig (TriggerConfig'),+ newTriggerConfig,++ -- ** TriggerProperties+ TriggerProperties (TriggerProperties'),+ newTriggerProperties,++ -- ** UpdateAddress+ UpdateAddress (UpdateAddress'),+ newUpdateAddress,++ -- ** WorkflowAttributes+ WorkflowAttributes (WorkflowAttributes'),+ newWorkflowAttributes,++ -- ** WorkflowMetrics+ WorkflowMetrics (WorkflowMetrics'),+ newWorkflowMetrics,++ -- ** WorkflowStepItem+ WorkflowStepItem (WorkflowStepItem'),+ newWorkflowStepItem,++ -- ** ZendeskSourceProperties+ ZendeskSourceProperties (ZendeskSourceProperties'),+ newZendeskSourceProperties,+ )+where++import Amazonka.CustomerProfiles.AddProfileKey+import Amazonka.CustomerProfiles.CreateDomain+import Amazonka.CustomerProfiles.CreateIntegrationWorkflow+import Amazonka.CustomerProfiles.CreateProfile+import Amazonka.CustomerProfiles.DeleteDomain+import Amazonka.CustomerProfiles.DeleteIntegration+import Amazonka.CustomerProfiles.DeleteProfile+import Amazonka.CustomerProfiles.DeleteProfileKey+import Amazonka.CustomerProfiles.DeleteProfileObject+import Amazonka.CustomerProfiles.DeleteProfileObjectType+import Amazonka.CustomerProfiles.DeleteWorkflow+import Amazonka.CustomerProfiles.GetAutoMergingPreview+import Amazonka.CustomerProfiles.GetDomain+import Amazonka.CustomerProfiles.GetIdentityResolutionJob+import Amazonka.CustomerProfiles.GetIntegration+import Amazonka.CustomerProfiles.GetMatches+import Amazonka.CustomerProfiles.GetProfileObjectType+import Amazonka.CustomerProfiles.GetProfileObjectTypeTemplate+import Amazonka.CustomerProfiles.GetWorkflow+import Amazonka.CustomerProfiles.GetWorkflowSteps+import Amazonka.CustomerProfiles.Lens+import Amazonka.CustomerProfiles.ListAccountIntegrations+import Amazonka.CustomerProfiles.ListDomains+import Amazonka.CustomerProfiles.ListIdentityResolutionJobs+import Amazonka.CustomerProfiles.ListIntegrations+import Amazonka.CustomerProfiles.ListProfileObjectTypeTemplates+import Amazonka.CustomerProfiles.ListProfileObjectTypes+import Amazonka.CustomerProfiles.ListProfileObjects+import Amazonka.CustomerProfiles.ListTagsForResource+import Amazonka.CustomerProfiles.ListWorkflows+import Amazonka.CustomerProfiles.MergeProfiles+import Amazonka.CustomerProfiles.PutIntegration+import Amazonka.CustomerProfiles.PutProfileObject+import Amazonka.CustomerProfiles.PutProfileObjectType+import Amazonka.CustomerProfiles.SearchProfiles+import Amazonka.CustomerProfiles.TagResource+import Amazonka.CustomerProfiles.Types+import Amazonka.CustomerProfiles.UntagResource+import Amazonka.CustomerProfiles.UpdateDomain+import Amazonka.CustomerProfiles.UpdateProfile+import Amazonka.CustomerProfiles.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 'CustomerProfiles'.++-- $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/CustomerProfiles/AddProfileKey.hs view
@@ -0,0 +1,247 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.CustomerProfiles.AddProfileKey+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Associates a new key value with a specific profile, such as a Contact+-- Record ContactId.+--+-- A profile object can have a single unique key and any number of+-- additional keys that can be used to identify the profile that it belongs+-- to.+module Amazonka.CustomerProfiles.AddProfileKey+ ( -- * Creating a Request+ AddProfileKey (..),+ newAddProfileKey,++ -- * Request Lenses+ addProfileKey_profileId,+ addProfileKey_keyName,+ addProfileKey_values,+ addProfileKey_domainName,++ -- * Destructuring the Response+ AddProfileKeyResponse (..),+ newAddProfileKeyResponse,++ -- * Response Lenses+ addProfileKeyResponse_keyName,+ addProfileKeyResponse_values,+ addProfileKeyResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CustomerProfiles.Types+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newAddProfileKey' smart constructor.+data AddProfileKey = AddProfileKey'+ { -- | The unique identifier of a customer profile.+ profileId :: Prelude.Text,+ -- | A searchable identifier of a customer profile. The predefined keys you+ -- can use include: _account, _profileId, _assetId, _caseId, _orderId,+ -- _fullName, _phone, _email, _ctrContactId, _marketoLeadId,+ -- _salesforceAccountId, _salesforceContactId, _salesforceAssetId,+ -- _zendeskUserId, _zendeskExternalId, _zendeskTicketId,+ -- _serviceNowSystemId, _serviceNowIncidentId, _segmentUserId,+ -- _shopifyCustomerId, _shopifyOrderId.+ keyName :: Prelude.Text,+ -- | A list of key values.+ values :: [Prelude.Text],+ -- | The unique name of the domain.+ domainName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AddProfileKey' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'profileId', 'addProfileKey_profileId' - The unique identifier of a customer profile.+--+-- 'keyName', 'addProfileKey_keyName' - A searchable identifier of a customer profile. The predefined keys you+-- can use include: _account, _profileId, _assetId, _caseId, _orderId,+-- _fullName, _phone, _email, _ctrContactId, _marketoLeadId,+-- _salesforceAccountId, _salesforceContactId, _salesforceAssetId,+-- _zendeskUserId, _zendeskExternalId, _zendeskTicketId,+-- _serviceNowSystemId, _serviceNowIncidentId, _segmentUserId,+-- _shopifyCustomerId, _shopifyOrderId.+--+-- 'values', 'addProfileKey_values' - A list of key values.+--+-- 'domainName', 'addProfileKey_domainName' - The unique name of the domain.+newAddProfileKey ::+ -- | 'profileId'+ Prelude.Text ->+ -- | 'keyName'+ Prelude.Text ->+ -- | 'domainName'+ Prelude.Text ->+ AddProfileKey+newAddProfileKey pProfileId_ pKeyName_ pDomainName_ =+ AddProfileKey'+ { profileId = pProfileId_,+ keyName = pKeyName_,+ values = Prelude.mempty,+ domainName = pDomainName_+ }++-- | The unique identifier of a customer profile.+addProfileKey_profileId :: Lens.Lens' AddProfileKey Prelude.Text+addProfileKey_profileId = Lens.lens (\AddProfileKey' {profileId} -> profileId) (\s@AddProfileKey' {} a -> s {profileId = a} :: AddProfileKey)++-- | A searchable identifier of a customer profile. The predefined keys you+-- can use include: _account, _profileId, _assetId, _caseId, _orderId,+-- _fullName, _phone, _email, _ctrContactId, _marketoLeadId,+-- _salesforceAccountId, _salesforceContactId, _salesforceAssetId,+-- _zendeskUserId, _zendeskExternalId, _zendeskTicketId,+-- _serviceNowSystemId, _serviceNowIncidentId, _segmentUserId,+-- _shopifyCustomerId, _shopifyOrderId.+addProfileKey_keyName :: Lens.Lens' AddProfileKey Prelude.Text+addProfileKey_keyName = Lens.lens (\AddProfileKey' {keyName} -> keyName) (\s@AddProfileKey' {} a -> s {keyName = a} :: AddProfileKey)++-- | A list of key values.+addProfileKey_values :: Lens.Lens' AddProfileKey [Prelude.Text]+addProfileKey_values = Lens.lens (\AddProfileKey' {values} -> values) (\s@AddProfileKey' {} a -> s {values = a} :: AddProfileKey) Prelude.. Lens.coerced++-- | The unique name of the domain.+addProfileKey_domainName :: Lens.Lens' AddProfileKey Prelude.Text+addProfileKey_domainName = Lens.lens (\AddProfileKey' {domainName} -> domainName) (\s@AddProfileKey' {} a -> s {domainName = a} :: AddProfileKey)++instance Core.AWSRequest AddProfileKey where+ type+ AWSResponse AddProfileKey =+ AddProfileKeyResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ AddProfileKeyResponse'+ Prelude.<$> (x Data..?> "KeyName")+ Prelude.<*> (x Data..?> "Values" Core..!@ Prelude.mempty)+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable AddProfileKey where+ hashWithSalt _salt AddProfileKey' {..} =+ _salt+ `Prelude.hashWithSalt` profileId+ `Prelude.hashWithSalt` keyName+ `Prelude.hashWithSalt` values+ `Prelude.hashWithSalt` domainName++instance Prelude.NFData AddProfileKey where+ rnf AddProfileKey' {..} =+ Prelude.rnf profileId+ `Prelude.seq` Prelude.rnf keyName+ `Prelude.seq` Prelude.rnf values+ `Prelude.seq` Prelude.rnf domainName++instance Data.ToHeaders AddProfileKey where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON AddProfileKey where+ toJSON AddProfileKey' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just ("ProfileId" Data..= profileId),+ Prelude.Just ("KeyName" Data..= keyName),+ Prelude.Just ("Values" Data..= values)+ ]+ )++instance Data.ToPath AddProfileKey where+ toPath AddProfileKey' {..} =+ Prelude.mconcat+ ["/domains/", Data.toBS domainName, "/profiles/keys"]++instance Data.ToQuery AddProfileKey where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newAddProfileKeyResponse' smart constructor.+data AddProfileKeyResponse = AddProfileKeyResponse'+ { -- | A searchable identifier of a customer profile.+ keyName :: Prelude.Maybe Prelude.Text,+ -- | A list of key values.+ values :: 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 'AddProfileKeyResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'keyName', 'addProfileKeyResponse_keyName' - A searchable identifier of a customer profile.+--+-- 'values', 'addProfileKeyResponse_values' - A list of key values.+--+-- 'httpStatus', 'addProfileKeyResponse_httpStatus' - The response's http status code.+newAddProfileKeyResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ AddProfileKeyResponse+newAddProfileKeyResponse pHttpStatus_ =+ AddProfileKeyResponse'+ { keyName = Prelude.Nothing,+ values = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | A searchable identifier of a customer profile.+addProfileKeyResponse_keyName :: Lens.Lens' AddProfileKeyResponse (Prelude.Maybe Prelude.Text)+addProfileKeyResponse_keyName = Lens.lens (\AddProfileKeyResponse' {keyName} -> keyName) (\s@AddProfileKeyResponse' {} a -> s {keyName = a} :: AddProfileKeyResponse)++-- | A list of key values.+addProfileKeyResponse_values :: Lens.Lens' AddProfileKeyResponse (Prelude.Maybe [Prelude.Text])+addProfileKeyResponse_values = Lens.lens (\AddProfileKeyResponse' {values} -> values) (\s@AddProfileKeyResponse' {} a -> s {values = a} :: AddProfileKeyResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+addProfileKeyResponse_httpStatus :: Lens.Lens' AddProfileKeyResponse Prelude.Int+addProfileKeyResponse_httpStatus = Lens.lens (\AddProfileKeyResponse' {httpStatus} -> httpStatus) (\s@AddProfileKeyResponse' {} a -> s {httpStatus = a} :: AddProfileKeyResponse)++instance Prelude.NFData AddProfileKeyResponse where+ rnf AddProfileKeyResponse' {..} =+ Prelude.rnf keyName+ `Prelude.seq` Prelude.rnf values+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/CustomerProfiles/CreateDomain.hs view
@@ -0,0 +1,439 @@+{-# 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.CustomerProfiles.CreateDomain+-- 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 domain, which is a container for all customer data, such as+-- customer profile attributes, object types, profile keys, and encryption+-- keys. You can create multiple domains, and each domain can have multiple+-- third-party integrations.+--+-- Each Amazon Connect instance can be associated with only one domain.+-- Multiple Amazon Connect instances can be associated with one domain.+--+-- Use this API or+-- <https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_UpdateDomain.html UpdateDomain>+-- to enable+-- <https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_GetMatches.html identity resolution>:+-- set @Matching@ to true.+--+-- To prevent cross-service impersonation when you call this API, see+-- <https://docs.aws.amazon.com/connect/latest/adminguide/cross-service-confused-deputy-prevention.html Cross-service confused deputy prevention>+-- for sample policies that you should apply.+module Amazonka.CustomerProfiles.CreateDomain+ ( -- * Creating a Request+ CreateDomain (..),+ newCreateDomain,++ -- * Request Lenses+ createDomain_deadLetterQueueUrl,+ createDomain_defaultEncryptionKey,+ createDomain_matching,+ createDomain_tags,+ createDomain_domainName,+ createDomain_defaultExpirationDays,++ -- * Destructuring the Response+ CreateDomainResponse (..),+ newCreateDomainResponse,++ -- * Response Lenses+ createDomainResponse_deadLetterQueueUrl,+ createDomainResponse_defaultEncryptionKey,+ createDomainResponse_matching,+ createDomainResponse_tags,+ createDomainResponse_httpStatus,+ createDomainResponse_domainName,+ createDomainResponse_defaultExpirationDays,+ createDomainResponse_createdAt,+ createDomainResponse_lastUpdatedAt,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CustomerProfiles.Types+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateDomain' smart constructor.+data CreateDomain = CreateDomain'+ { -- | The URL of the SQS dead letter queue, which is used for reporting errors+ -- associated with ingesting data from third party applications. You must+ -- set up a policy on the DeadLetterQueue for the SendMessage operation to+ -- enable Amazon Connect Customer Profiles to send messages to the+ -- DeadLetterQueue.+ deadLetterQueueUrl :: Prelude.Maybe Prelude.Text,+ -- | The default encryption key, which is an AWS managed key, is used when no+ -- specific type of encryption key is specified. It is used to encrypt all+ -- data before it is placed in permanent or semi-permanent storage.+ defaultEncryptionKey :: Prelude.Maybe Prelude.Text,+ -- | The process of matching duplicate profiles. If @Matching@ = @true@,+ -- Amazon Connect Customer Profiles starts a weekly batch process called+ -- Identity Resolution Job. If you do not specify a date and time for+ -- Identity Resolution Job to run, by default it runs every Saturday at+ -- 12AM UTC to detect duplicate profiles in your domains.+ --+ -- After the Identity Resolution Job completes, use the+ -- <https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_GetMatches.html GetMatches>+ -- API to return and review the results. Or, if you have configured+ -- @ExportingConfig@ in the @MatchingRequest@, you can download the results+ -- from S3.+ matching :: Prelude.Maybe MatchingRequest,+ -- | The tags used to organize, track, or control access for this resource.+ tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | The unique name of the domain.+ domainName :: Prelude.Text,+ -- | The default number of days until the data within the domain expires.+ defaultExpirationDays :: Prelude.Natural+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateDomain' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'deadLetterQueueUrl', 'createDomain_deadLetterQueueUrl' - The URL of the SQS dead letter queue, which is used for reporting errors+-- associated with ingesting data from third party applications. You must+-- set up a policy on the DeadLetterQueue for the SendMessage operation to+-- enable Amazon Connect Customer Profiles to send messages to the+-- DeadLetterQueue.+--+-- 'defaultEncryptionKey', 'createDomain_defaultEncryptionKey' - The default encryption key, which is an AWS managed key, is used when no+-- specific type of encryption key is specified. It is used to encrypt all+-- data before it is placed in permanent or semi-permanent storage.+--+-- 'matching', 'createDomain_matching' - The process of matching duplicate profiles. If @Matching@ = @true@,+-- Amazon Connect Customer Profiles starts a weekly batch process called+-- Identity Resolution Job. If you do not specify a date and time for+-- Identity Resolution Job to run, by default it runs every Saturday at+-- 12AM UTC to detect duplicate profiles in your domains.+--+-- After the Identity Resolution Job completes, use the+-- <https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_GetMatches.html GetMatches>+-- API to return and review the results. Or, if you have configured+-- @ExportingConfig@ in the @MatchingRequest@, you can download the results+-- from S3.+--+-- 'tags', 'createDomain_tags' - The tags used to organize, track, or control access for this resource.+--+-- 'domainName', 'createDomain_domainName' - The unique name of the domain.+--+-- 'defaultExpirationDays', 'createDomain_defaultExpirationDays' - The default number of days until the data within the domain expires.+newCreateDomain ::+ -- | 'domainName'+ Prelude.Text ->+ -- | 'defaultExpirationDays'+ Prelude.Natural ->+ CreateDomain+newCreateDomain pDomainName_ pDefaultExpirationDays_ =+ CreateDomain'+ { deadLetterQueueUrl = Prelude.Nothing,+ defaultEncryptionKey = Prelude.Nothing,+ matching = Prelude.Nothing,+ tags = Prelude.Nothing,+ domainName = pDomainName_,+ defaultExpirationDays = pDefaultExpirationDays_+ }++-- | The URL of the SQS dead letter queue, which is used for reporting errors+-- associated with ingesting data from third party applications. You must+-- set up a policy on the DeadLetterQueue for the SendMessage operation to+-- enable Amazon Connect Customer Profiles to send messages to the+-- DeadLetterQueue.+createDomain_deadLetterQueueUrl :: Lens.Lens' CreateDomain (Prelude.Maybe Prelude.Text)+createDomain_deadLetterQueueUrl = Lens.lens (\CreateDomain' {deadLetterQueueUrl} -> deadLetterQueueUrl) (\s@CreateDomain' {} a -> s {deadLetterQueueUrl = a} :: CreateDomain)++-- | The default encryption key, which is an AWS managed key, is used when no+-- specific type of encryption key is specified. It is used to encrypt all+-- data before it is placed in permanent or semi-permanent storage.+createDomain_defaultEncryptionKey :: Lens.Lens' CreateDomain (Prelude.Maybe Prelude.Text)+createDomain_defaultEncryptionKey = Lens.lens (\CreateDomain' {defaultEncryptionKey} -> defaultEncryptionKey) (\s@CreateDomain' {} a -> s {defaultEncryptionKey = a} :: CreateDomain)++-- | The process of matching duplicate profiles. If @Matching@ = @true@,+-- Amazon Connect Customer Profiles starts a weekly batch process called+-- Identity Resolution Job. If you do not specify a date and time for+-- Identity Resolution Job to run, by default it runs every Saturday at+-- 12AM UTC to detect duplicate profiles in your domains.+--+-- After the Identity Resolution Job completes, use the+-- <https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_GetMatches.html GetMatches>+-- API to return and review the results. Or, if you have configured+-- @ExportingConfig@ in the @MatchingRequest@, you can download the results+-- from S3.+createDomain_matching :: Lens.Lens' CreateDomain (Prelude.Maybe MatchingRequest)+createDomain_matching = Lens.lens (\CreateDomain' {matching} -> matching) (\s@CreateDomain' {} a -> s {matching = a} :: CreateDomain)++-- | The tags used to organize, track, or control access for this resource.+createDomain_tags :: Lens.Lens' CreateDomain (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createDomain_tags = Lens.lens (\CreateDomain' {tags} -> tags) (\s@CreateDomain' {} a -> s {tags = a} :: CreateDomain) Prelude.. Lens.mapping Lens.coerced++-- | The unique name of the domain.+createDomain_domainName :: Lens.Lens' CreateDomain Prelude.Text+createDomain_domainName = Lens.lens (\CreateDomain' {domainName} -> domainName) (\s@CreateDomain' {} a -> s {domainName = a} :: CreateDomain)++-- | The default number of days until the data within the domain expires.+createDomain_defaultExpirationDays :: Lens.Lens' CreateDomain Prelude.Natural+createDomain_defaultExpirationDays = Lens.lens (\CreateDomain' {defaultExpirationDays} -> defaultExpirationDays) (\s@CreateDomain' {} a -> s {defaultExpirationDays = a} :: CreateDomain)++instance Core.AWSRequest CreateDomain where+ type AWSResponse CreateDomain = CreateDomainResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ CreateDomainResponse'+ Prelude.<$> (x Data..?> "DeadLetterQueueUrl")+ Prelude.<*> (x Data..?> "DefaultEncryptionKey")+ Prelude.<*> (x Data..?> "Matching")+ Prelude.<*> (x Data..?> "Tags" Core..!@ Prelude.mempty)+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> (x Data..:> "DomainName")+ Prelude.<*> (x Data..:> "DefaultExpirationDays")+ Prelude.<*> (x Data..:> "CreatedAt")+ Prelude.<*> (x Data..:> "LastUpdatedAt")+ )++instance Prelude.Hashable CreateDomain where+ hashWithSalt _salt CreateDomain' {..} =+ _salt+ `Prelude.hashWithSalt` deadLetterQueueUrl+ `Prelude.hashWithSalt` defaultEncryptionKey+ `Prelude.hashWithSalt` matching+ `Prelude.hashWithSalt` tags+ `Prelude.hashWithSalt` domainName+ `Prelude.hashWithSalt` defaultExpirationDays++instance Prelude.NFData CreateDomain where+ rnf CreateDomain' {..} =+ Prelude.rnf deadLetterQueueUrl+ `Prelude.seq` Prelude.rnf defaultEncryptionKey+ `Prelude.seq` Prelude.rnf matching+ `Prelude.seq` Prelude.rnf tags+ `Prelude.seq` Prelude.rnf domainName+ `Prelude.seq` Prelude.rnf defaultExpirationDays++instance Data.ToHeaders CreateDomain where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON CreateDomain where+ toJSON CreateDomain' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("DeadLetterQueueUrl" Data..=)+ Prelude.<$> deadLetterQueueUrl,+ ("DefaultEncryptionKey" Data..=)+ Prelude.<$> defaultEncryptionKey,+ ("Matching" Data..=) Prelude.<$> matching,+ ("Tags" Data..=) Prelude.<$> tags,+ Prelude.Just+ ( "DefaultExpirationDays"+ Data..= defaultExpirationDays+ )+ ]+ )++instance Data.ToPath CreateDomain where+ toPath CreateDomain' {..} =+ Prelude.mconcat ["/domains/", Data.toBS domainName]++instance Data.ToQuery CreateDomain where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateDomainResponse' smart constructor.+data CreateDomainResponse = CreateDomainResponse'+ { -- | The URL of the SQS dead letter queue, which is used for reporting errors+ -- associated with ingesting data from third party applications.+ deadLetterQueueUrl :: Prelude.Maybe Prelude.Text,+ -- | The default encryption key, which is an AWS managed key, is used when no+ -- specific type of encryption key is specified. It is used to encrypt all+ -- data before it is placed in permanent or semi-permanent storage.+ defaultEncryptionKey :: Prelude.Maybe Prelude.Text,+ -- | The process of matching duplicate profiles. If @Matching@ = @true@,+ -- Amazon Connect Customer Profiles starts a weekly batch process called+ -- Identity Resolution Job. If you do not specify a date and time for+ -- Identity Resolution Job to run, by default it runs every Saturday at+ -- 12AM UTC to detect duplicate profiles in your domains.+ --+ -- After the Identity Resolution Job completes, use the+ -- <https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_GetMatches.html GetMatches>+ -- API to return and review the results. Or, if you have configured+ -- @ExportingConfig@ in the @MatchingRequest@, you can download the results+ -- from S3.+ matching :: Prelude.Maybe MatchingResponse,+ -- | The tags used to organize, track, or control access for this resource.+ tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | The unique name of the domain.+ domainName :: Prelude.Text,+ -- | The default number of days until the data within the domain expires.+ defaultExpirationDays :: Prelude.Natural,+ -- | The timestamp of when the domain was created.+ createdAt :: Data.POSIX,+ -- | The timestamp of when the domain was most recently edited.+ lastUpdatedAt :: Data.POSIX+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateDomainResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'deadLetterQueueUrl', 'createDomainResponse_deadLetterQueueUrl' - The URL of the SQS dead letter queue, which is used for reporting errors+-- associated with ingesting data from third party applications.+--+-- 'defaultEncryptionKey', 'createDomainResponse_defaultEncryptionKey' - The default encryption key, which is an AWS managed key, is used when no+-- specific type of encryption key is specified. It is used to encrypt all+-- data before it is placed in permanent or semi-permanent storage.+--+-- 'matching', 'createDomainResponse_matching' - The process of matching duplicate profiles. If @Matching@ = @true@,+-- Amazon Connect Customer Profiles starts a weekly batch process called+-- Identity Resolution Job. If you do not specify a date and time for+-- Identity Resolution Job to run, by default it runs every Saturday at+-- 12AM UTC to detect duplicate profiles in your domains.+--+-- After the Identity Resolution Job completes, use the+-- <https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_GetMatches.html GetMatches>+-- API to return and review the results. Or, if you have configured+-- @ExportingConfig@ in the @MatchingRequest@, you can download the results+-- from S3.+--+-- 'tags', 'createDomainResponse_tags' - The tags used to organize, track, or control access for this resource.+--+-- 'httpStatus', 'createDomainResponse_httpStatus' - The response's http status code.+--+-- 'domainName', 'createDomainResponse_domainName' - The unique name of the domain.+--+-- 'defaultExpirationDays', 'createDomainResponse_defaultExpirationDays' - The default number of days until the data within the domain expires.+--+-- 'createdAt', 'createDomainResponse_createdAt' - The timestamp of when the domain was created.+--+-- 'lastUpdatedAt', 'createDomainResponse_lastUpdatedAt' - The timestamp of when the domain was most recently edited.+newCreateDomainResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ -- | 'domainName'+ Prelude.Text ->+ -- | 'defaultExpirationDays'+ Prelude.Natural ->+ -- | 'createdAt'+ Prelude.UTCTime ->+ -- | 'lastUpdatedAt'+ Prelude.UTCTime ->+ CreateDomainResponse+newCreateDomainResponse+ pHttpStatus_+ pDomainName_+ pDefaultExpirationDays_+ pCreatedAt_+ pLastUpdatedAt_ =+ CreateDomainResponse'+ { deadLetterQueueUrl =+ Prelude.Nothing,+ defaultEncryptionKey = Prelude.Nothing,+ matching = Prelude.Nothing,+ tags = Prelude.Nothing,+ httpStatus = pHttpStatus_,+ domainName = pDomainName_,+ defaultExpirationDays = pDefaultExpirationDays_,+ createdAt = Data._Time Lens.# pCreatedAt_,+ lastUpdatedAt = Data._Time Lens.# pLastUpdatedAt_+ }++-- | The URL of the SQS dead letter queue, which is used for reporting errors+-- associated with ingesting data from third party applications.+createDomainResponse_deadLetterQueueUrl :: Lens.Lens' CreateDomainResponse (Prelude.Maybe Prelude.Text)+createDomainResponse_deadLetterQueueUrl = Lens.lens (\CreateDomainResponse' {deadLetterQueueUrl} -> deadLetterQueueUrl) (\s@CreateDomainResponse' {} a -> s {deadLetterQueueUrl = a} :: CreateDomainResponse)++-- | The default encryption key, which is an AWS managed key, is used when no+-- specific type of encryption key is specified. It is used to encrypt all+-- data before it is placed in permanent or semi-permanent storage.+createDomainResponse_defaultEncryptionKey :: Lens.Lens' CreateDomainResponse (Prelude.Maybe Prelude.Text)+createDomainResponse_defaultEncryptionKey = Lens.lens (\CreateDomainResponse' {defaultEncryptionKey} -> defaultEncryptionKey) (\s@CreateDomainResponse' {} a -> s {defaultEncryptionKey = a} :: CreateDomainResponse)++-- | The process of matching duplicate profiles. If @Matching@ = @true@,+-- Amazon Connect Customer Profiles starts a weekly batch process called+-- Identity Resolution Job. If you do not specify a date and time for+-- Identity Resolution Job to run, by default it runs every Saturday at+-- 12AM UTC to detect duplicate profiles in your domains.+--+-- After the Identity Resolution Job completes, use the+-- <https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_GetMatches.html GetMatches>+-- API to return and review the results. Or, if you have configured+-- @ExportingConfig@ in the @MatchingRequest@, you can download the results+-- from S3.+createDomainResponse_matching :: Lens.Lens' CreateDomainResponse (Prelude.Maybe MatchingResponse)+createDomainResponse_matching = Lens.lens (\CreateDomainResponse' {matching} -> matching) (\s@CreateDomainResponse' {} a -> s {matching = a} :: CreateDomainResponse)++-- | The tags used to organize, track, or control access for this resource.+createDomainResponse_tags :: Lens.Lens' CreateDomainResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createDomainResponse_tags = Lens.lens (\CreateDomainResponse' {tags} -> tags) (\s@CreateDomainResponse' {} a -> s {tags = a} :: CreateDomainResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+createDomainResponse_httpStatus :: Lens.Lens' CreateDomainResponse Prelude.Int+createDomainResponse_httpStatus = Lens.lens (\CreateDomainResponse' {httpStatus} -> httpStatus) (\s@CreateDomainResponse' {} a -> s {httpStatus = a} :: CreateDomainResponse)++-- | The unique name of the domain.+createDomainResponse_domainName :: Lens.Lens' CreateDomainResponse Prelude.Text+createDomainResponse_domainName = Lens.lens (\CreateDomainResponse' {domainName} -> domainName) (\s@CreateDomainResponse' {} a -> s {domainName = a} :: CreateDomainResponse)++-- | The default number of days until the data within the domain expires.+createDomainResponse_defaultExpirationDays :: Lens.Lens' CreateDomainResponse Prelude.Natural+createDomainResponse_defaultExpirationDays = Lens.lens (\CreateDomainResponse' {defaultExpirationDays} -> defaultExpirationDays) (\s@CreateDomainResponse' {} a -> s {defaultExpirationDays = a} :: CreateDomainResponse)++-- | The timestamp of when the domain was created.+createDomainResponse_createdAt :: Lens.Lens' CreateDomainResponse Prelude.UTCTime+createDomainResponse_createdAt = Lens.lens (\CreateDomainResponse' {createdAt} -> createdAt) (\s@CreateDomainResponse' {} a -> s {createdAt = a} :: CreateDomainResponse) Prelude.. Data._Time++-- | The timestamp of when the domain was most recently edited.+createDomainResponse_lastUpdatedAt :: Lens.Lens' CreateDomainResponse Prelude.UTCTime+createDomainResponse_lastUpdatedAt = Lens.lens (\CreateDomainResponse' {lastUpdatedAt} -> lastUpdatedAt) (\s@CreateDomainResponse' {} a -> s {lastUpdatedAt = a} :: CreateDomainResponse) Prelude.. Data._Time++instance Prelude.NFData CreateDomainResponse where+ rnf CreateDomainResponse' {..} =+ Prelude.rnf deadLetterQueueUrl+ `Prelude.seq` Prelude.rnf defaultEncryptionKey+ `Prelude.seq` Prelude.rnf matching+ `Prelude.seq` Prelude.rnf tags+ `Prelude.seq` Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf domainName+ `Prelude.seq` Prelude.rnf defaultExpirationDays+ `Prelude.seq` Prelude.rnf createdAt+ `Prelude.seq` Prelude.rnf lastUpdatedAt
+ gen/Amazonka/CustomerProfiles/CreateIntegrationWorkflow.hs view
@@ -0,0 +1,284 @@+{-# 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.CustomerProfiles.CreateIntegrationWorkflow+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates an integration workflow. An integration workflow is an async+-- process which ingests historic data and sets up an integration for+-- ongoing updates. The supported Amazon AppFlow sources are Salesforce,+-- ServiceNow, and Marketo.+module Amazonka.CustomerProfiles.CreateIntegrationWorkflow+ ( -- * Creating a Request+ CreateIntegrationWorkflow (..),+ newCreateIntegrationWorkflow,++ -- * Request Lenses+ createIntegrationWorkflow_tags,+ createIntegrationWorkflow_domainName,+ createIntegrationWorkflow_workflowType,+ createIntegrationWorkflow_integrationConfig,+ createIntegrationWorkflow_objectTypeName,+ createIntegrationWorkflow_roleArn,++ -- * Destructuring the Response+ CreateIntegrationWorkflowResponse (..),+ newCreateIntegrationWorkflowResponse,++ -- * Response Lenses+ createIntegrationWorkflowResponse_httpStatus,+ createIntegrationWorkflowResponse_workflowId,+ createIntegrationWorkflowResponse_message,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CustomerProfiles.Types+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateIntegrationWorkflow' smart constructor.+data CreateIntegrationWorkflow = CreateIntegrationWorkflow'+ { -- | The tags used to organize, track, or control access for this resource.+ tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | The unique name of the domain.+ domainName :: Prelude.Text,+ -- | The type of workflow. The only supported value is APPFLOW_INTEGRATION.+ workflowType :: WorkflowType,+ -- | Configuration data for integration workflow.+ integrationConfig :: IntegrationConfig,+ -- | The name of the profile object type.+ objectTypeName :: Prelude.Text,+ -- | The Amazon Resource Name (ARN) of the IAM role. Customer Profiles+ -- assumes this role to create resources on your behalf as part of workflow+ -- execution.+ roleArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateIntegrationWorkflow' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'tags', 'createIntegrationWorkflow_tags' - The tags used to organize, track, or control access for this resource.+--+-- 'domainName', 'createIntegrationWorkflow_domainName' - The unique name of the domain.+--+-- 'workflowType', 'createIntegrationWorkflow_workflowType' - The type of workflow. The only supported value is APPFLOW_INTEGRATION.+--+-- 'integrationConfig', 'createIntegrationWorkflow_integrationConfig' - Configuration data for integration workflow.+--+-- 'objectTypeName', 'createIntegrationWorkflow_objectTypeName' - The name of the profile object type.+--+-- 'roleArn', 'createIntegrationWorkflow_roleArn' - The Amazon Resource Name (ARN) of the IAM role. Customer Profiles+-- assumes this role to create resources on your behalf as part of workflow+-- execution.+newCreateIntegrationWorkflow ::+ -- | 'domainName'+ Prelude.Text ->+ -- | 'workflowType'+ WorkflowType ->+ -- | 'integrationConfig'+ IntegrationConfig ->+ -- | 'objectTypeName'+ Prelude.Text ->+ -- | 'roleArn'+ Prelude.Text ->+ CreateIntegrationWorkflow+newCreateIntegrationWorkflow+ pDomainName_+ pWorkflowType_+ pIntegrationConfig_+ pObjectTypeName_+ pRoleArn_ =+ CreateIntegrationWorkflow'+ { tags = Prelude.Nothing,+ domainName = pDomainName_,+ workflowType = pWorkflowType_,+ integrationConfig = pIntegrationConfig_,+ objectTypeName = pObjectTypeName_,+ roleArn = pRoleArn_+ }++-- | The tags used to organize, track, or control access for this resource.+createIntegrationWorkflow_tags :: Lens.Lens' CreateIntegrationWorkflow (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createIntegrationWorkflow_tags = Lens.lens (\CreateIntegrationWorkflow' {tags} -> tags) (\s@CreateIntegrationWorkflow' {} a -> s {tags = a} :: CreateIntegrationWorkflow) Prelude.. Lens.mapping Lens.coerced++-- | The unique name of the domain.+createIntegrationWorkflow_domainName :: Lens.Lens' CreateIntegrationWorkflow Prelude.Text+createIntegrationWorkflow_domainName = Lens.lens (\CreateIntegrationWorkflow' {domainName} -> domainName) (\s@CreateIntegrationWorkflow' {} a -> s {domainName = a} :: CreateIntegrationWorkflow)++-- | The type of workflow. The only supported value is APPFLOW_INTEGRATION.+createIntegrationWorkflow_workflowType :: Lens.Lens' CreateIntegrationWorkflow WorkflowType+createIntegrationWorkflow_workflowType = Lens.lens (\CreateIntegrationWorkflow' {workflowType} -> workflowType) (\s@CreateIntegrationWorkflow' {} a -> s {workflowType = a} :: CreateIntegrationWorkflow)++-- | Configuration data for integration workflow.+createIntegrationWorkflow_integrationConfig :: Lens.Lens' CreateIntegrationWorkflow IntegrationConfig+createIntegrationWorkflow_integrationConfig = Lens.lens (\CreateIntegrationWorkflow' {integrationConfig} -> integrationConfig) (\s@CreateIntegrationWorkflow' {} a -> s {integrationConfig = a} :: CreateIntegrationWorkflow)++-- | The name of the profile object type.+createIntegrationWorkflow_objectTypeName :: Lens.Lens' CreateIntegrationWorkflow Prelude.Text+createIntegrationWorkflow_objectTypeName = Lens.lens (\CreateIntegrationWorkflow' {objectTypeName} -> objectTypeName) (\s@CreateIntegrationWorkflow' {} a -> s {objectTypeName = a} :: CreateIntegrationWorkflow)++-- | The Amazon Resource Name (ARN) of the IAM role. Customer Profiles+-- assumes this role to create resources on your behalf as part of workflow+-- execution.+createIntegrationWorkflow_roleArn :: Lens.Lens' CreateIntegrationWorkflow Prelude.Text+createIntegrationWorkflow_roleArn = Lens.lens (\CreateIntegrationWorkflow' {roleArn} -> roleArn) (\s@CreateIntegrationWorkflow' {} a -> s {roleArn = a} :: CreateIntegrationWorkflow)++instance Core.AWSRequest CreateIntegrationWorkflow where+ type+ AWSResponse CreateIntegrationWorkflow =+ CreateIntegrationWorkflowResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ CreateIntegrationWorkflowResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> (x Data..:> "WorkflowId")+ Prelude.<*> (x Data..:> "Message")+ )++instance Prelude.Hashable CreateIntegrationWorkflow where+ hashWithSalt _salt CreateIntegrationWorkflow' {..} =+ _salt+ `Prelude.hashWithSalt` tags+ `Prelude.hashWithSalt` domainName+ `Prelude.hashWithSalt` workflowType+ `Prelude.hashWithSalt` integrationConfig+ `Prelude.hashWithSalt` objectTypeName+ `Prelude.hashWithSalt` roleArn++instance Prelude.NFData CreateIntegrationWorkflow where+ rnf CreateIntegrationWorkflow' {..} =+ Prelude.rnf tags+ `Prelude.seq` Prelude.rnf domainName+ `Prelude.seq` Prelude.rnf workflowType+ `Prelude.seq` Prelude.rnf integrationConfig+ `Prelude.seq` Prelude.rnf objectTypeName+ `Prelude.seq` Prelude.rnf roleArn++instance Data.ToHeaders CreateIntegrationWorkflow where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON CreateIntegrationWorkflow where+ toJSON CreateIntegrationWorkflow' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("Tags" Data..=) Prelude.<$> tags,+ Prelude.Just ("WorkflowType" Data..= workflowType),+ Prelude.Just+ ("IntegrationConfig" Data..= integrationConfig),+ Prelude.Just+ ("ObjectTypeName" Data..= objectTypeName),+ Prelude.Just ("RoleArn" Data..= roleArn)+ ]+ )++instance Data.ToPath CreateIntegrationWorkflow where+ toPath CreateIntegrationWorkflow' {..} =+ Prelude.mconcat+ [ "/domains/",+ Data.toBS domainName,+ "/workflows/integrations"+ ]++instance Data.ToQuery CreateIntegrationWorkflow where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateIntegrationWorkflowResponse' smart constructor.+data CreateIntegrationWorkflowResponse = CreateIntegrationWorkflowResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | Unique identifier for the workflow.+ workflowId :: Prelude.Text,+ -- | A message indicating create request was received.+ message :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateIntegrationWorkflowResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'createIntegrationWorkflowResponse_httpStatus' - The response's http status code.+--+-- 'workflowId', 'createIntegrationWorkflowResponse_workflowId' - Unique identifier for the workflow.+--+-- 'message', 'createIntegrationWorkflowResponse_message' - A message indicating create request was received.+newCreateIntegrationWorkflowResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ -- | 'workflowId'+ Prelude.Text ->+ -- | 'message'+ Prelude.Text ->+ CreateIntegrationWorkflowResponse+newCreateIntegrationWorkflowResponse+ pHttpStatus_+ pWorkflowId_+ pMessage_ =+ CreateIntegrationWorkflowResponse'+ { httpStatus =+ pHttpStatus_,+ workflowId = pWorkflowId_,+ message = pMessage_+ }++-- | The response's http status code.+createIntegrationWorkflowResponse_httpStatus :: Lens.Lens' CreateIntegrationWorkflowResponse Prelude.Int+createIntegrationWorkflowResponse_httpStatus = Lens.lens (\CreateIntegrationWorkflowResponse' {httpStatus} -> httpStatus) (\s@CreateIntegrationWorkflowResponse' {} a -> s {httpStatus = a} :: CreateIntegrationWorkflowResponse)++-- | Unique identifier for the workflow.+createIntegrationWorkflowResponse_workflowId :: Lens.Lens' CreateIntegrationWorkflowResponse Prelude.Text+createIntegrationWorkflowResponse_workflowId = Lens.lens (\CreateIntegrationWorkflowResponse' {workflowId} -> workflowId) (\s@CreateIntegrationWorkflowResponse' {} a -> s {workflowId = a} :: CreateIntegrationWorkflowResponse)++-- | A message indicating create request was received.+createIntegrationWorkflowResponse_message :: Lens.Lens' CreateIntegrationWorkflowResponse Prelude.Text+createIntegrationWorkflowResponse_message = Lens.lens (\CreateIntegrationWorkflowResponse' {message} -> message) (\s@CreateIntegrationWorkflowResponse' {} a -> s {message = a} :: CreateIntegrationWorkflowResponse)++instance+ Prelude.NFData+ CreateIntegrationWorkflowResponse+ where+ rnf CreateIntegrationWorkflowResponse' {..} =+ Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf workflowId+ `Prelude.seq` Prelude.rnf message
+ gen/Amazonka/CustomerProfiles/CreateProfile.hs view
@@ -0,0 +1,494 @@+{-# 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.CustomerProfiles.CreateProfile+-- 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 standard profile.+--+-- A standard profile represents the following attributes for a customer+-- profile in a domain.+module Amazonka.CustomerProfiles.CreateProfile+ ( -- * Creating a Request+ CreateProfile (..),+ newCreateProfile,++ -- * Request Lenses+ createProfile_accountNumber,+ createProfile_additionalInformation,+ createProfile_address,+ createProfile_attributes,+ createProfile_billingAddress,+ createProfile_birthDate,+ createProfile_businessEmailAddress,+ createProfile_businessName,+ createProfile_businessPhoneNumber,+ createProfile_emailAddress,+ createProfile_firstName,+ createProfile_gender,+ createProfile_genderString,+ createProfile_homePhoneNumber,+ createProfile_lastName,+ createProfile_mailingAddress,+ createProfile_middleName,+ createProfile_mobilePhoneNumber,+ createProfile_partyType,+ createProfile_partyTypeString,+ createProfile_personalEmailAddress,+ createProfile_phoneNumber,+ createProfile_shippingAddress,+ createProfile_domainName,++ -- * Destructuring the Response+ CreateProfileResponse (..),+ newCreateProfileResponse,++ -- * Response Lenses+ createProfileResponse_httpStatus,+ createProfileResponse_profileId,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CustomerProfiles.Types+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateProfile' smart constructor.+data CreateProfile = CreateProfile'+ { -- | A unique account number that you have given to the customer.+ accountNumber :: Prelude.Maybe Prelude.Text,+ -- | Any additional information relevant to the customer’s profile.+ additionalInformation :: Prelude.Maybe Prelude.Text,+ -- | A generic address associated with the customer that is not mailing,+ -- shipping, or billing.+ address :: Prelude.Maybe Address,+ -- | A key value pair of attributes of a customer profile.+ attributes :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | The customer’s billing address.+ billingAddress :: Prelude.Maybe Address,+ -- | The customer’s birth date.+ birthDate :: Prelude.Maybe Prelude.Text,+ -- | The customer’s business email address.+ businessEmailAddress :: Prelude.Maybe Prelude.Text,+ -- | The name of the customer’s business.+ businessName :: Prelude.Maybe Prelude.Text,+ -- | The customer’s business phone number.+ businessPhoneNumber :: Prelude.Maybe Prelude.Text,+ -- | The customer’s email address, which has not been specified as a personal+ -- or business address.+ emailAddress :: Prelude.Maybe Prelude.Text,+ -- | The customer’s first name.+ firstName :: Prelude.Maybe Prelude.Text,+ -- | The gender with which the customer identifies.+ gender :: Prelude.Maybe Gender,+ -- | An alternative to @Gender@ which accepts any string as input.+ genderString :: Prelude.Maybe Prelude.Text,+ -- | The customer’s home phone number.+ homePhoneNumber :: Prelude.Maybe Prelude.Text,+ -- | The customer’s last name.+ lastName :: Prelude.Maybe Prelude.Text,+ -- | The customer’s mailing address.+ mailingAddress :: Prelude.Maybe Address,+ -- | The customer’s middle name.+ middleName :: Prelude.Maybe Prelude.Text,+ -- | The customer’s mobile phone number.+ mobilePhoneNumber :: Prelude.Maybe Prelude.Text,+ -- | The type of profile used to describe the customer.+ partyType :: Prelude.Maybe PartyType,+ -- | An alternative to @PartyType@ which accepts any string as input.+ partyTypeString :: Prelude.Maybe Prelude.Text,+ -- | The customer’s personal email address.+ personalEmailAddress :: Prelude.Maybe Prelude.Text,+ -- | The customer’s phone number, which has not been specified as a mobile,+ -- home, or business number.+ phoneNumber :: Prelude.Maybe Prelude.Text,+ -- | The customer’s shipping address.+ shippingAddress :: Prelude.Maybe Address,+ -- | The unique name of the domain.+ domainName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateProfile' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accountNumber', 'createProfile_accountNumber' - A unique account number that you have given to the customer.+--+-- 'additionalInformation', 'createProfile_additionalInformation' - Any additional information relevant to the customer’s profile.+--+-- 'address', 'createProfile_address' - A generic address associated with the customer that is not mailing,+-- shipping, or billing.+--+-- 'attributes', 'createProfile_attributes' - A key value pair of attributes of a customer profile.+--+-- 'billingAddress', 'createProfile_billingAddress' - The customer’s billing address.+--+-- 'birthDate', 'createProfile_birthDate' - The customer’s birth date.+--+-- 'businessEmailAddress', 'createProfile_businessEmailAddress' - The customer’s business email address.+--+-- 'businessName', 'createProfile_businessName' - The name of the customer’s business.+--+-- 'businessPhoneNumber', 'createProfile_businessPhoneNumber' - The customer’s business phone number.+--+-- 'emailAddress', 'createProfile_emailAddress' - The customer’s email address, which has not been specified as a personal+-- or business address.+--+-- 'firstName', 'createProfile_firstName' - The customer’s first name.+--+-- 'gender', 'createProfile_gender' - The gender with which the customer identifies.+--+-- 'genderString', 'createProfile_genderString' - An alternative to @Gender@ which accepts any string as input.+--+-- 'homePhoneNumber', 'createProfile_homePhoneNumber' - The customer’s home phone number.+--+-- 'lastName', 'createProfile_lastName' - The customer’s last name.+--+-- 'mailingAddress', 'createProfile_mailingAddress' - The customer’s mailing address.+--+-- 'middleName', 'createProfile_middleName' - The customer’s middle name.+--+-- 'mobilePhoneNumber', 'createProfile_mobilePhoneNumber' - The customer’s mobile phone number.+--+-- 'partyType', 'createProfile_partyType' - The type of profile used to describe the customer.+--+-- 'partyTypeString', 'createProfile_partyTypeString' - An alternative to @PartyType@ which accepts any string as input.+--+-- 'personalEmailAddress', 'createProfile_personalEmailAddress' - The customer’s personal email address.+--+-- 'phoneNumber', 'createProfile_phoneNumber' - The customer’s phone number, which has not been specified as a mobile,+-- home, or business number.+--+-- 'shippingAddress', 'createProfile_shippingAddress' - The customer’s shipping address.+--+-- 'domainName', 'createProfile_domainName' - The unique name of the domain.+newCreateProfile ::+ -- | 'domainName'+ Prelude.Text ->+ CreateProfile+newCreateProfile pDomainName_ =+ CreateProfile'+ { accountNumber = Prelude.Nothing,+ additionalInformation = Prelude.Nothing,+ address = Prelude.Nothing,+ attributes = Prelude.Nothing,+ billingAddress = Prelude.Nothing,+ birthDate = Prelude.Nothing,+ businessEmailAddress = Prelude.Nothing,+ businessName = Prelude.Nothing,+ businessPhoneNumber = Prelude.Nothing,+ emailAddress = Prelude.Nothing,+ firstName = Prelude.Nothing,+ gender = Prelude.Nothing,+ genderString = Prelude.Nothing,+ homePhoneNumber = Prelude.Nothing,+ lastName = Prelude.Nothing,+ mailingAddress = Prelude.Nothing,+ middleName = Prelude.Nothing,+ mobilePhoneNumber = Prelude.Nothing,+ partyType = Prelude.Nothing,+ partyTypeString = Prelude.Nothing,+ personalEmailAddress = Prelude.Nothing,+ phoneNumber = Prelude.Nothing,+ shippingAddress = Prelude.Nothing,+ domainName = pDomainName_+ }++-- | A unique account number that you have given to the customer.+createProfile_accountNumber :: Lens.Lens' CreateProfile (Prelude.Maybe Prelude.Text)+createProfile_accountNumber = Lens.lens (\CreateProfile' {accountNumber} -> accountNumber) (\s@CreateProfile' {} a -> s {accountNumber = a} :: CreateProfile)++-- | Any additional information relevant to the customer’s profile.+createProfile_additionalInformation :: Lens.Lens' CreateProfile (Prelude.Maybe Prelude.Text)+createProfile_additionalInformation = Lens.lens (\CreateProfile' {additionalInformation} -> additionalInformation) (\s@CreateProfile' {} a -> s {additionalInformation = a} :: CreateProfile)++-- | A generic address associated with the customer that is not mailing,+-- shipping, or billing.+createProfile_address :: Lens.Lens' CreateProfile (Prelude.Maybe Address)+createProfile_address = Lens.lens (\CreateProfile' {address} -> address) (\s@CreateProfile' {} a -> s {address = a} :: CreateProfile)++-- | A key value pair of attributes of a customer profile.+createProfile_attributes :: Lens.Lens' CreateProfile (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createProfile_attributes = Lens.lens (\CreateProfile' {attributes} -> attributes) (\s@CreateProfile' {} a -> s {attributes = a} :: CreateProfile) Prelude.. Lens.mapping Lens.coerced++-- | The customer’s billing address.+createProfile_billingAddress :: Lens.Lens' CreateProfile (Prelude.Maybe Address)+createProfile_billingAddress = Lens.lens (\CreateProfile' {billingAddress} -> billingAddress) (\s@CreateProfile' {} a -> s {billingAddress = a} :: CreateProfile)++-- | The customer’s birth date.+createProfile_birthDate :: Lens.Lens' CreateProfile (Prelude.Maybe Prelude.Text)+createProfile_birthDate = Lens.lens (\CreateProfile' {birthDate} -> birthDate) (\s@CreateProfile' {} a -> s {birthDate = a} :: CreateProfile)++-- | The customer’s business email address.+createProfile_businessEmailAddress :: Lens.Lens' CreateProfile (Prelude.Maybe Prelude.Text)+createProfile_businessEmailAddress = Lens.lens (\CreateProfile' {businessEmailAddress} -> businessEmailAddress) (\s@CreateProfile' {} a -> s {businessEmailAddress = a} :: CreateProfile)++-- | The name of the customer’s business.+createProfile_businessName :: Lens.Lens' CreateProfile (Prelude.Maybe Prelude.Text)+createProfile_businessName = Lens.lens (\CreateProfile' {businessName} -> businessName) (\s@CreateProfile' {} a -> s {businessName = a} :: CreateProfile)++-- | The customer’s business phone number.+createProfile_businessPhoneNumber :: Lens.Lens' CreateProfile (Prelude.Maybe Prelude.Text)+createProfile_businessPhoneNumber = Lens.lens (\CreateProfile' {businessPhoneNumber} -> businessPhoneNumber) (\s@CreateProfile' {} a -> s {businessPhoneNumber = a} :: CreateProfile)++-- | The customer’s email address, which has not been specified as a personal+-- or business address.+createProfile_emailAddress :: Lens.Lens' CreateProfile (Prelude.Maybe Prelude.Text)+createProfile_emailAddress = Lens.lens (\CreateProfile' {emailAddress} -> emailAddress) (\s@CreateProfile' {} a -> s {emailAddress = a} :: CreateProfile)++-- | The customer’s first name.+createProfile_firstName :: Lens.Lens' CreateProfile (Prelude.Maybe Prelude.Text)+createProfile_firstName = Lens.lens (\CreateProfile' {firstName} -> firstName) (\s@CreateProfile' {} a -> s {firstName = a} :: CreateProfile)++-- | The gender with which the customer identifies.+createProfile_gender :: Lens.Lens' CreateProfile (Prelude.Maybe Gender)+createProfile_gender = Lens.lens (\CreateProfile' {gender} -> gender) (\s@CreateProfile' {} a -> s {gender = a} :: CreateProfile)++-- | An alternative to @Gender@ which accepts any string as input.+createProfile_genderString :: Lens.Lens' CreateProfile (Prelude.Maybe Prelude.Text)+createProfile_genderString = Lens.lens (\CreateProfile' {genderString} -> genderString) (\s@CreateProfile' {} a -> s {genderString = a} :: CreateProfile)++-- | The customer’s home phone number.+createProfile_homePhoneNumber :: Lens.Lens' CreateProfile (Prelude.Maybe Prelude.Text)+createProfile_homePhoneNumber = Lens.lens (\CreateProfile' {homePhoneNumber} -> homePhoneNumber) (\s@CreateProfile' {} a -> s {homePhoneNumber = a} :: CreateProfile)++-- | The customer’s last name.+createProfile_lastName :: Lens.Lens' CreateProfile (Prelude.Maybe Prelude.Text)+createProfile_lastName = Lens.lens (\CreateProfile' {lastName} -> lastName) (\s@CreateProfile' {} a -> s {lastName = a} :: CreateProfile)++-- | The customer’s mailing address.+createProfile_mailingAddress :: Lens.Lens' CreateProfile (Prelude.Maybe Address)+createProfile_mailingAddress = Lens.lens (\CreateProfile' {mailingAddress} -> mailingAddress) (\s@CreateProfile' {} a -> s {mailingAddress = a} :: CreateProfile)++-- | The customer’s middle name.+createProfile_middleName :: Lens.Lens' CreateProfile (Prelude.Maybe Prelude.Text)+createProfile_middleName = Lens.lens (\CreateProfile' {middleName} -> middleName) (\s@CreateProfile' {} a -> s {middleName = a} :: CreateProfile)++-- | The customer’s mobile phone number.+createProfile_mobilePhoneNumber :: Lens.Lens' CreateProfile (Prelude.Maybe Prelude.Text)+createProfile_mobilePhoneNumber = Lens.lens (\CreateProfile' {mobilePhoneNumber} -> mobilePhoneNumber) (\s@CreateProfile' {} a -> s {mobilePhoneNumber = a} :: CreateProfile)++-- | The type of profile used to describe the customer.+createProfile_partyType :: Lens.Lens' CreateProfile (Prelude.Maybe PartyType)+createProfile_partyType = Lens.lens (\CreateProfile' {partyType} -> partyType) (\s@CreateProfile' {} a -> s {partyType = a} :: CreateProfile)++-- | An alternative to @PartyType@ which accepts any string as input.+createProfile_partyTypeString :: Lens.Lens' CreateProfile (Prelude.Maybe Prelude.Text)+createProfile_partyTypeString = Lens.lens (\CreateProfile' {partyTypeString} -> partyTypeString) (\s@CreateProfile' {} a -> s {partyTypeString = a} :: CreateProfile)++-- | The customer’s personal email address.+createProfile_personalEmailAddress :: Lens.Lens' CreateProfile (Prelude.Maybe Prelude.Text)+createProfile_personalEmailAddress = Lens.lens (\CreateProfile' {personalEmailAddress} -> personalEmailAddress) (\s@CreateProfile' {} a -> s {personalEmailAddress = a} :: CreateProfile)++-- | The customer’s phone number, which has not been specified as a mobile,+-- home, or business number.+createProfile_phoneNumber :: Lens.Lens' CreateProfile (Prelude.Maybe Prelude.Text)+createProfile_phoneNumber = Lens.lens (\CreateProfile' {phoneNumber} -> phoneNumber) (\s@CreateProfile' {} a -> s {phoneNumber = a} :: CreateProfile)++-- | The customer’s shipping address.+createProfile_shippingAddress :: Lens.Lens' CreateProfile (Prelude.Maybe Address)+createProfile_shippingAddress = Lens.lens (\CreateProfile' {shippingAddress} -> shippingAddress) (\s@CreateProfile' {} a -> s {shippingAddress = a} :: CreateProfile)++-- | The unique name of the domain.+createProfile_domainName :: Lens.Lens' CreateProfile Prelude.Text+createProfile_domainName = Lens.lens (\CreateProfile' {domainName} -> domainName) (\s@CreateProfile' {} a -> s {domainName = a} :: CreateProfile)++instance Core.AWSRequest CreateProfile where+ type+ AWSResponse CreateProfile =+ CreateProfileResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ CreateProfileResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> (x Data..:> "ProfileId")+ )++instance Prelude.Hashable CreateProfile where+ hashWithSalt _salt CreateProfile' {..} =+ _salt+ `Prelude.hashWithSalt` accountNumber+ `Prelude.hashWithSalt` additionalInformation+ `Prelude.hashWithSalt` address+ `Prelude.hashWithSalt` attributes+ `Prelude.hashWithSalt` billingAddress+ `Prelude.hashWithSalt` birthDate+ `Prelude.hashWithSalt` businessEmailAddress+ `Prelude.hashWithSalt` businessName+ `Prelude.hashWithSalt` businessPhoneNumber+ `Prelude.hashWithSalt` emailAddress+ `Prelude.hashWithSalt` firstName+ `Prelude.hashWithSalt` gender+ `Prelude.hashWithSalt` genderString+ `Prelude.hashWithSalt` homePhoneNumber+ `Prelude.hashWithSalt` lastName+ `Prelude.hashWithSalt` mailingAddress+ `Prelude.hashWithSalt` middleName+ `Prelude.hashWithSalt` mobilePhoneNumber+ `Prelude.hashWithSalt` partyType+ `Prelude.hashWithSalt` partyTypeString+ `Prelude.hashWithSalt` personalEmailAddress+ `Prelude.hashWithSalt` phoneNumber+ `Prelude.hashWithSalt` shippingAddress+ `Prelude.hashWithSalt` domainName++instance Prelude.NFData CreateProfile where+ rnf CreateProfile' {..} =+ Prelude.rnf accountNumber+ `Prelude.seq` Prelude.rnf additionalInformation+ `Prelude.seq` Prelude.rnf address+ `Prelude.seq` Prelude.rnf attributes+ `Prelude.seq` Prelude.rnf billingAddress+ `Prelude.seq` Prelude.rnf birthDate+ `Prelude.seq` Prelude.rnf businessEmailAddress+ `Prelude.seq` Prelude.rnf businessName+ `Prelude.seq` Prelude.rnf businessPhoneNumber+ `Prelude.seq` Prelude.rnf emailAddress+ `Prelude.seq` Prelude.rnf firstName+ `Prelude.seq` Prelude.rnf gender+ `Prelude.seq` Prelude.rnf genderString+ `Prelude.seq` Prelude.rnf homePhoneNumber+ `Prelude.seq` Prelude.rnf lastName+ `Prelude.seq` Prelude.rnf mailingAddress+ `Prelude.seq` Prelude.rnf middleName+ `Prelude.seq` Prelude.rnf mobilePhoneNumber+ `Prelude.seq` Prelude.rnf partyType+ `Prelude.seq` Prelude.rnf partyTypeString+ `Prelude.seq` Prelude.rnf+ personalEmailAddress+ `Prelude.seq` Prelude.rnf phoneNumber+ `Prelude.seq` Prelude.rnf+ shippingAddress+ `Prelude.seq` Prelude.rnf domainName++instance Data.ToHeaders CreateProfile where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON CreateProfile where+ toJSON CreateProfile' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("AccountNumber" Data..=) Prelude.<$> accountNumber,+ ("AdditionalInformation" Data..=)+ Prelude.<$> additionalInformation,+ ("Address" Data..=) Prelude.<$> address,+ ("Attributes" Data..=) Prelude.<$> attributes,+ ("BillingAddress" Data..=)+ Prelude.<$> billingAddress,+ ("BirthDate" Data..=) Prelude.<$> birthDate,+ ("BusinessEmailAddress" Data..=)+ Prelude.<$> businessEmailAddress,+ ("BusinessName" Data..=) Prelude.<$> businessName,+ ("BusinessPhoneNumber" Data..=)+ Prelude.<$> businessPhoneNumber,+ ("EmailAddress" Data..=) Prelude.<$> emailAddress,+ ("FirstName" Data..=) Prelude.<$> firstName,+ ("Gender" Data..=) Prelude.<$> gender,+ ("GenderString" Data..=) Prelude.<$> genderString,+ ("HomePhoneNumber" Data..=)+ Prelude.<$> homePhoneNumber,+ ("LastName" Data..=) Prelude.<$> lastName,+ ("MailingAddress" Data..=)+ Prelude.<$> mailingAddress,+ ("MiddleName" Data..=) Prelude.<$> middleName,+ ("MobilePhoneNumber" Data..=)+ Prelude.<$> mobilePhoneNumber,+ ("PartyType" Data..=) Prelude.<$> partyType,+ ("PartyTypeString" Data..=)+ Prelude.<$> partyTypeString,+ ("PersonalEmailAddress" Data..=)+ Prelude.<$> personalEmailAddress,+ ("PhoneNumber" Data..=) Prelude.<$> phoneNumber,+ ("ShippingAddress" Data..=)+ Prelude.<$> shippingAddress+ ]+ )++instance Data.ToPath CreateProfile where+ toPath CreateProfile' {..} =+ Prelude.mconcat+ ["/domains/", Data.toBS domainName, "/profiles"]++instance Data.ToQuery CreateProfile where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateProfileResponse' smart constructor.+data CreateProfileResponse = CreateProfileResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | The unique identifier of a customer profile.+ profileId :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateProfileResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'createProfileResponse_httpStatus' - The response's http status code.+--+-- 'profileId', 'createProfileResponse_profileId' - The unique identifier of a customer profile.+newCreateProfileResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ -- | 'profileId'+ Prelude.Text ->+ CreateProfileResponse+newCreateProfileResponse pHttpStatus_ pProfileId_ =+ CreateProfileResponse'+ { httpStatus = pHttpStatus_,+ profileId = pProfileId_+ }++-- | The response's http status code.+createProfileResponse_httpStatus :: Lens.Lens' CreateProfileResponse Prelude.Int+createProfileResponse_httpStatus = Lens.lens (\CreateProfileResponse' {httpStatus} -> httpStatus) (\s@CreateProfileResponse' {} a -> s {httpStatus = a} :: CreateProfileResponse)++-- | The unique identifier of a customer profile.+createProfileResponse_profileId :: Lens.Lens' CreateProfileResponse Prelude.Text+createProfileResponse_profileId = Lens.lens (\CreateProfileResponse' {profileId} -> profileId) (\s@CreateProfileResponse' {} a -> s {profileId = a} :: CreateProfileResponse)++instance Prelude.NFData CreateProfileResponse where+ rnf CreateProfileResponse' {..} =+ Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf profileId
+ gen/Amazonka/CustomerProfiles/DeleteDomain.hs view
@@ -0,0 +1,158 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.CustomerProfiles.DeleteDomain+-- 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 specific domain and all of its customer data, such as customer+-- profile attributes and their related objects.+module Amazonka.CustomerProfiles.DeleteDomain+ ( -- * Creating a Request+ DeleteDomain (..),+ newDeleteDomain,++ -- * Request Lenses+ deleteDomain_domainName,++ -- * Destructuring the Response+ DeleteDomainResponse (..),+ newDeleteDomainResponse,++ -- * Response Lenses+ deleteDomainResponse_httpStatus,+ deleteDomainResponse_message,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CustomerProfiles.Types+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteDomain' smart constructor.+data DeleteDomain = DeleteDomain'+ { -- | The unique name of the domain.+ domainName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteDomain' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'domainName', 'deleteDomain_domainName' - The unique name of the domain.+newDeleteDomain ::+ -- | 'domainName'+ Prelude.Text ->+ DeleteDomain+newDeleteDomain pDomainName_ =+ DeleteDomain' {domainName = pDomainName_}++-- | The unique name of the domain.+deleteDomain_domainName :: Lens.Lens' DeleteDomain Prelude.Text+deleteDomain_domainName = Lens.lens (\DeleteDomain' {domainName} -> domainName) (\s@DeleteDomain' {} a -> s {domainName = a} :: DeleteDomain)++instance Core.AWSRequest DeleteDomain where+ type AWSResponse DeleteDomain = DeleteDomainResponse+ request overrides =+ Request.delete (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DeleteDomainResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> (x Data..:> "Message")+ )++instance Prelude.Hashable DeleteDomain where+ hashWithSalt _salt DeleteDomain' {..} =+ _salt `Prelude.hashWithSalt` domainName++instance Prelude.NFData DeleteDomain where+ rnf DeleteDomain' {..} = Prelude.rnf domainName++instance Data.ToHeaders DeleteDomain where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath DeleteDomain where+ toPath DeleteDomain' {..} =+ Prelude.mconcat ["/domains/", Data.toBS domainName]++instance Data.ToQuery DeleteDomain where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteDomainResponse' smart constructor.+data DeleteDomainResponse = DeleteDomainResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | A message that indicates the delete request is done.+ message :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteDomainResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteDomainResponse_httpStatus' - The response's http status code.+--+-- 'message', 'deleteDomainResponse_message' - A message that indicates the delete request is done.+newDeleteDomainResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ -- | 'message'+ Prelude.Text ->+ DeleteDomainResponse+newDeleteDomainResponse pHttpStatus_ pMessage_ =+ DeleteDomainResponse'+ { httpStatus = pHttpStatus_,+ message = pMessage_+ }++-- | The response's http status code.+deleteDomainResponse_httpStatus :: Lens.Lens' DeleteDomainResponse Prelude.Int+deleteDomainResponse_httpStatus = Lens.lens (\DeleteDomainResponse' {httpStatus} -> httpStatus) (\s@DeleteDomainResponse' {} a -> s {httpStatus = a} :: DeleteDomainResponse)++-- | A message that indicates the delete request is done.+deleteDomainResponse_message :: Lens.Lens' DeleteDomainResponse Prelude.Text+deleteDomainResponse_message = Lens.lens (\DeleteDomainResponse' {message} -> message) (\s@DeleteDomainResponse' {} a -> s {message = a} :: DeleteDomainResponse)++instance Prelude.NFData DeleteDomainResponse where+ rnf DeleteDomainResponse' {..} =+ Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf message
+ gen/Amazonka/CustomerProfiles/DeleteIntegration.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.CustomerProfiles.DeleteIntegration+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Removes an integration from a specific domain.+module Amazonka.CustomerProfiles.DeleteIntegration+ ( -- * Creating a Request+ DeleteIntegration (..),+ newDeleteIntegration,++ -- * Request Lenses+ deleteIntegration_domainName,+ deleteIntegration_uri,++ -- * Destructuring the Response+ DeleteIntegrationResponse (..),+ newDeleteIntegrationResponse,++ -- * Response Lenses+ deleteIntegrationResponse_httpStatus,+ deleteIntegrationResponse_message,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CustomerProfiles.Types+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteIntegration' smart constructor.+data DeleteIntegration = DeleteIntegration'+ { -- | The unique name of the domain.+ domainName :: Prelude.Text,+ -- | The URI of the S3 bucket or any other type of data source.+ uri :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteIntegration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'domainName', 'deleteIntegration_domainName' - The unique name of the domain.+--+-- 'uri', 'deleteIntegration_uri' - The URI of the S3 bucket or any other type of data source.+newDeleteIntegration ::+ -- | 'domainName'+ Prelude.Text ->+ -- | 'uri'+ Prelude.Text ->+ DeleteIntegration+newDeleteIntegration pDomainName_ pUri_ =+ DeleteIntegration'+ { domainName = pDomainName_,+ uri = pUri_+ }++-- | The unique name of the domain.+deleteIntegration_domainName :: Lens.Lens' DeleteIntegration Prelude.Text+deleteIntegration_domainName = Lens.lens (\DeleteIntegration' {domainName} -> domainName) (\s@DeleteIntegration' {} a -> s {domainName = a} :: DeleteIntegration)++-- | The URI of the S3 bucket or any other type of data source.+deleteIntegration_uri :: Lens.Lens' DeleteIntegration Prelude.Text+deleteIntegration_uri = Lens.lens (\DeleteIntegration' {uri} -> uri) (\s@DeleteIntegration' {} a -> s {uri = a} :: DeleteIntegration)++instance Core.AWSRequest DeleteIntegration where+ type+ AWSResponse DeleteIntegration =+ DeleteIntegrationResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DeleteIntegrationResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> (x Data..:> "Message")+ )++instance Prelude.Hashable DeleteIntegration where+ hashWithSalt _salt DeleteIntegration' {..} =+ _salt+ `Prelude.hashWithSalt` domainName+ `Prelude.hashWithSalt` uri++instance Prelude.NFData DeleteIntegration where+ rnf DeleteIntegration' {..} =+ Prelude.rnf domainName+ `Prelude.seq` Prelude.rnf uri++instance Data.ToHeaders DeleteIntegration where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON DeleteIntegration where+ toJSON DeleteIntegration' {..} =+ Data.object+ ( Prelude.catMaybes+ [Prelude.Just ("Uri" Data..= uri)]+ )++instance Data.ToPath DeleteIntegration where+ toPath DeleteIntegration' {..} =+ Prelude.mconcat+ [ "/domains/",+ Data.toBS domainName,+ "/integrations/delete"+ ]++instance Data.ToQuery DeleteIntegration where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteIntegrationResponse' smart constructor.+data DeleteIntegrationResponse = DeleteIntegrationResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | A message that indicates the delete request is done.+ message :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteIntegrationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteIntegrationResponse_httpStatus' - The response's http status code.+--+-- 'message', 'deleteIntegrationResponse_message' - A message that indicates the delete request is done.+newDeleteIntegrationResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ -- | 'message'+ Prelude.Text ->+ DeleteIntegrationResponse+newDeleteIntegrationResponse pHttpStatus_ pMessage_ =+ DeleteIntegrationResponse'+ { httpStatus =+ pHttpStatus_,+ message = pMessage_+ }++-- | The response's http status code.+deleteIntegrationResponse_httpStatus :: Lens.Lens' DeleteIntegrationResponse Prelude.Int+deleteIntegrationResponse_httpStatus = Lens.lens (\DeleteIntegrationResponse' {httpStatus} -> httpStatus) (\s@DeleteIntegrationResponse' {} a -> s {httpStatus = a} :: DeleteIntegrationResponse)++-- | A message that indicates the delete request is done.+deleteIntegrationResponse_message :: Lens.Lens' DeleteIntegrationResponse Prelude.Text+deleteIntegrationResponse_message = Lens.lens (\DeleteIntegrationResponse' {message} -> message) (\s@DeleteIntegrationResponse' {} a -> s {message = a} :: DeleteIntegrationResponse)++instance Prelude.NFData DeleteIntegrationResponse where+ rnf DeleteIntegrationResponse' {..} =+ Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf message
+ gen/Amazonka/CustomerProfiles/DeleteProfile.hs view
@@ -0,0 +1,187 @@+{-# 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.CustomerProfiles.DeleteProfile+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes the standard customer profile and all data pertaining to the+-- profile.+module Amazonka.CustomerProfiles.DeleteProfile+ ( -- * Creating a Request+ DeleteProfile (..),+ newDeleteProfile,++ -- * Request Lenses+ deleteProfile_profileId,+ deleteProfile_domainName,++ -- * Destructuring the Response+ DeleteProfileResponse (..),+ newDeleteProfileResponse,++ -- * Response Lenses+ deleteProfileResponse_message,+ deleteProfileResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CustomerProfiles.Types+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteProfile' smart constructor.+data DeleteProfile = DeleteProfile'+ { -- | The unique identifier of a customer profile.+ profileId :: Prelude.Text,+ -- | The unique name of the domain.+ domainName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteProfile' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'profileId', 'deleteProfile_profileId' - The unique identifier of a customer profile.+--+-- 'domainName', 'deleteProfile_domainName' - The unique name of the domain.+newDeleteProfile ::+ -- | 'profileId'+ Prelude.Text ->+ -- | 'domainName'+ Prelude.Text ->+ DeleteProfile+newDeleteProfile pProfileId_ pDomainName_ =+ DeleteProfile'+ { profileId = pProfileId_,+ domainName = pDomainName_+ }++-- | The unique identifier of a customer profile.+deleteProfile_profileId :: Lens.Lens' DeleteProfile Prelude.Text+deleteProfile_profileId = Lens.lens (\DeleteProfile' {profileId} -> profileId) (\s@DeleteProfile' {} a -> s {profileId = a} :: DeleteProfile)++-- | The unique name of the domain.+deleteProfile_domainName :: Lens.Lens' DeleteProfile Prelude.Text+deleteProfile_domainName = Lens.lens (\DeleteProfile' {domainName} -> domainName) (\s@DeleteProfile' {} a -> s {domainName = a} :: DeleteProfile)++instance Core.AWSRequest DeleteProfile where+ type+ AWSResponse DeleteProfile =+ DeleteProfileResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DeleteProfileResponse'+ Prelude.<$> (x Data..?> "Message")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable DeleteProfile where+ hashWithSalt _salt DeleteProfile' {..} =+ _salt+ `Prelude.hashWithSalt` profileId+ `Prelude.hashWithSalt` domainName++instance Prelude.NFData DeleteProfile where+ rnf DeleteProfile' {..} =+ Prelude.rnf profileId+ `Prelude.seq` Prelude.rnf domainName++instance Data.ToHeaders DeleteProfile where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON DeleteProfile where+ toJSON DeleteProfile' {..} =+ Data.object+ ( Prelude.catMaybes+ [Prelude.Just ("ProfileId" Data..= profileId)]+ )++instance Data.ToPath DeleteProfile where+ toPath DeleteProfile' {..} =+ Prelude.mconcat+ [ "/domains/",+ Data.toBS domainName,+ "/profiles/delete"+ ]++instance Data.ToQuery DeleteProfile where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteProfileResponse' smart constructor.+data DeleteProfileResponse = DeleteProfileResponse'+ { -- | A message that indicates the delete request is done.+ message :: 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 'DeleteProfileResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'message', 'deleteProfileResponse_message' - A message that indicates the delete request is done.+--+-- 'httpStatus', 'deleteProfileResponse_httpStatus' - The response's http status code.+newDeleteProfileResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DeleteProfileResponse+newDeleteProfileResponse pHttpStatus_ =+ DeleteProfileResponse'+ { message = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | A message that indicates the delete request is done.+deleteProfileResponse_message :: Lens.Lens' DeleteProfileResponse (Prelude.Maybe Prelude.Text)+deleteProfileResponse_message = Lens.lens (\DeleteProfileResponse' {message} -> message) (\s@DeleteProfileResponse' {} a -> s {message = a} :: DeleteProfileResponse)++-- | The response's http status code.+deleteProfileResponse_httpStatus :: Lens.Lens' DeleteProfileResponse Prelude.Int+deleteProfileResponse_httpStatus = Lens.lens (\DeleteProfileResponse' {httpStatus} -> httpStatus) (\s@DeleteProfileResponse' {} a -> s {httpStatus = a} :: DeleteProfileResponse)++instance Prelude.NFData DeleteProfileResponse where+ rnf DeleteProfileResponse' {..} =+ Prelude.rnf message+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/CustomerProfiles/DeleteProfileKey.hs view
@@ -0,0 +1,219 @@+{-# 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.CustomerProfiles.DeleteProfileKey+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Removes a searchable key from a customer profile.+module Amazonka.CustomerProfiles.DeleteProfileKey+ ( -- * Creating a Request+ DeleteProfileKey (..),+ newDeleteProfileKey,++ -- * Request Lenses+ deleteProfileKey_profileId,+ deleteProfileKey_keyName,+ deleteProfileKey_values,+ deleteProfileKey_domainName,++ -- * Destructuring the Response+ DeleteProfileKeyResponse (..),+ newDeleteProfileKeyResponse,++ -- * Response Lenses+ deleteProfileKeyResponse_message,+ deleteProfileKeyResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CustomerProfiles.Types+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteProfileKey' smart constructor.+data DeleteProfileKey = DeleteProfileKey'+ { -- | The unique identifier of a customer profile.+ profileId :: Prelude.Text,+ -- | A searchable identifier of a customer profile.+ keyName :: Prelude.Text,+ -- | A list of key values.+ values :: [Prelude.Text],+ -- | The unique name of the domain.+ domainName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteProfileKey' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'profileId', 'deleteProfileKey_profileId' - The unique identifier of a customer profile.+--+-- 'keyName', 'deleteProfileKey_keyName' - A searchable identifier of a customer profile.+--+-- 'values', 'deleteProfileKey_values' - A list of key values.+--+-- 'domainName', 'deleteProfileKey_domainName' - The unique name of the domain.+newDeleteProfileKey ::+ -- | 'profileId'+ Prelude.Text ->+ -- | 'keyName'+ Prelude.Text ->+ -- | 'domainName'+ Prelude.Text ->+ DeleteProfileKey+newDeleteProfileKey+ pProfileId_+ pKeyName_+ pDomainName_ =+ DeleteProfileKey'+ { profileId = pProfileId_,+ keyName = pKeyName_,+ values = Prelude.mempty,+ domainName = pDomainName_+ }++-- | The unique identifier of a customer profile.+deleteProfileKey_profileId :: Lens.Lens' DeleteProfileKey Prelude.Text+deleteProfileKey_profileId = Lens.lens (\DeleteProfileKey' {profileId} -> profileId) (\s@DeleteProfileKey' {} a -> s {profileId = a} :: DeleteProfileKey)++-- | A searchable identifier of a customer profile.+deleteProfileKey_keyName :: Lens.Lens' DeleteProfileKey Prelude.Text+deleteProfileKey_keyName = Lens.lens (\DeleteProfileKey' {keyName} -> keyName) (\s@DeleteProfileKey' {} a -> s {keyName = a} :: DeleteProfileKey)++-- | A list of key values.+deleteProfileKey_values :: Lens.Lens' DeleteProfileKey [Prelude.Text]+deleteProfileKey_values = Lens.lens (\DeleteProfileKey' {values} -> values) (\s@DeleteProfileKey' {} a -> s {values = a} :: DeleteProfileKey) Prelude.. Lens.coerced++-- | The unique name of the domain.+deleteProfileKey_domainName :: Lens.Lens' DeleteProfileKey Prelude.Text+deleteProfileKey_domainName = Lens.lens (\DeleteProfileKey' {domainName} -> domainName) (\s@DeleteProfileKey' {} a -> s {domainName = a} :: DeleteProfileKey)++instance Core.AWSRequest DeleteProfileKey where+ type+ AWSResponse DeleteProfileKey =+ DeleteProfileKeyResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DeleteProfileKeyResponse'+ Prelude.<$> (x Data..?> "Message")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable DeleteProfileKey where+ hashWithSalt _salt DeleteProfileKey' {..} =+ _salt+ `Prelude.hashWithSalt` profileId+ `Prelude.hashWithSalt` keyName+ `Prelude.hashWithSalt` values+ `Prelude.hashWithSalt` domainName++instance Prelude.NFData DeleteProfileKey where+ rnf DeleteProfileKey' {..} =+ Prelude.rnf profileId+ `Prelude.seq` Prelude.rnf keyName+ `Prelude.seq` Prelude.rnf values+ `Prelude.seq` Prelude.rnf domainName++instance Data.ToHeaders DeleteProfileKey where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON DeleteProfileKey where+ toJSON DeleteProfileKey' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just ("ProfileId" Data..= profileId),+ Prelude.Just ("KeyName" Data..= keyName),+ Prelude.Just ("Values" Data..= values)+ ]+ )++instance Data.ToPath DeleteProfileKey where+ toPath DeleteProfileKey' {..} =+ Prelude.mconcat+ [ "/domains/",+ Data.toBS domainName,+ "/profiles/keys/delete"+ ]++instance Data.ToQuery DeleteProfileKey where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteProfileKeyResponse' smart constructor.+data DeleteProfileKeyResponse = DeleteProfileKeyResponse'+ { -- | A message that indicates the delete request is done.+ message :: 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 'DeleteProfileKeyResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'message', 'deleteProfileKeyResponse_message' - A message that indicates the delete request is done.+--+-- 'httpStatus', 'deleteProfileKeyResponse_httpStatus' - The response's http status code.+newDeleteProfileKeyResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DeleteProfileKeyResponse+newDeleteProfileKeyResponse pHttpStatus_ =+ DeleteProfileKeyResponse'+ { message =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | A message that indicates the delete request is done.+deleteProfileKeyResponse_message :: Lens.Lens' DeleteProfileKeyResponse (Prelude.Maybe Prelude.Text)+deleteProfileKeyResponse_message = Lens.lens (\DeleteProfileKeyResponse' {message} -> message) (\s@DeleteProfileKeyResponse' {} a -> s {message = a} :: DeleteProfileKeyResponse)++-- | The response's http status code.+deleteProfileKeyResponse_httpStatus :: Lens.Lens' DeleteProfileKeyResponse Prelude.Int+deleteProfileKeyResponse_httpStatus = Lens.lens (\DeleteProfileKeyResponse' {httpStatus} -> httpStatus) (\s@DeleteProfileKeyResponse' {} a -> s {httpStatus = a} :: DeleteProfileKeyResponse)++instance Prelude.NFData DeleteProfileKeyResponse where+ rnf DeleteProfileKeyResponse' {..} =+ Prelude.rnf message+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/CustomerProfiles/DeleteProfileObject.hs view
@@ -0,0 +1,227 @@+{-# 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.CustomerProfiles.DeleteProfileObject+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Removes an object associated with a profile of a given+-- ProfileObjectType.+module Amazonka.CustomerProfiles.DeleteProfileObject+ ( -- * Creating a Request+ DeleteProfileObject (..),+ newDeleteProfileObject,++ -- * Request Lenses+ deleteProfileObject_profileId,+ deleteProfileObject_profileObjectUniqueKey,+ deleteProfileObject_objectTypeName,+ deleteProfileObject_domainName,++ -- * Destructuring the Response+ DeleteProfileObjectResponse (..),+ newDeleteProfileObjectResponse,++ -- * Response Lenses+ deleteProfileObjectResponse_message,+ deleteProfileObjectResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CustomerProfiles.Types+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteProfileObject' smart constructor.+data DeleteProfileObject = DeleteProfileObject'+ { -- | The unique identifier of a customer profile.+ profileId :: Prelude.Text,+ -- | The unique identifier of the profile object generated by the service.+ profileObjectUniqueKey :: Prelude.Text,+ -- | The name of the profile object type.+ objectTypeName :: Prelude.Text,+ -- | The unique name of the domain.+ domainName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteProfileObject' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'profileId', 'deleteProfileObject_profileId' - The unique identifier of a customer profile.+--+-- 'profileObjectUniqueKey', 'deleteProfileObject_profileObjectUniqueKey' - The unique identifier of the profile object generated by the service.+--+-- 'objectTypeName', 'deleteProfileObject_objectTypeName' - The name of the profile object type.+--+-- 'domainName', 'deleteProfileObject_domainName' - The unique name of the domain.+newDeleteProfileObject ::+ -- | 'profileId'+ Prelude.Text ->+ -- | 'profileObjectUniqueKey'+ Prelude.Text ->+ -- | 'objectTypeName'+ Prelude.Text ->+ -- | 'domainName'+ Prelude.Text ->+ DeleteProfileObject+newDeleteProfileObject+ pProfileId_+ pProfileObjectUniqueKey_+ pObjectTypeName_+ pDomainName_ =+ DeleteProfileObject'+ { profileId = pProfileId_,+ profileObjectUniqueKey = pProfileObjectUniqueKey_,+ objectTypeName = pObjectTypeName_,+ domainName = pDomainName_+ }++-- | The unique identifier of a customer profile.+deleteProfileObject_profileId :: Lens.Lens' DeleteProfileObject Prelude.Text+deleteProfileObject_profileId = Lens.lens (\DeleteProfileObject' {profileId} -> profileId) (\s@DeleteProfileObject' {} a -> s {profileId = a} :: DeleteProfileObject)++-- | The unique identifier of the profile object generated by the service.+deleteProfileObject_profileObjectUniqueKey :: Lens.Lens' DeleteProfileObject Prelude.Text+deleteProfileObject_profileObjectUniqueKey = Lens.lens (\DeleteProfileObject' {profileObjectUniqueKey} -> profileObjectUniqueKey) (\s@DeleteProfileObject' {} a -> s {profileObjectUniqueKey = a} :: DeleteProfileObject)++-- | The name of the profile object type.+deleteProfileObject_objectTypeName :: Lens.Lens' DeleteProfileObject Prelude.Text+deleteProfileObject_objectTypeName = Lens.lens (\DeleteProfileObject' {objectTypeName} -> objectTypeName) (\s@DeleteProfileObject' {} a -> s {objectTypeName = a} :: DeleteProfileObject)++-- | The unique name of the domain.+deleteProfileObject_domainName :: Lens.Lens' DeleteProfileObject Prelude.Text+deleteProfileObject_domainName = Lens.lens (\DeleteProfileObject' {domainName} -> domainName) (\s@DeleteProfileObject' {} a -> s {domainName = a} :: DeleteProfileObject)++instance Core.AWSRequest DeleteProfileObject where+ type+ AWSResponse DeleteProfileObject =+ DeleteProfileObjectResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DeleteProfileObjectResponse'+ Prelude.<$> (x Data..?> "Message")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable DeleteProfileObject where+ hashWithSalt _salt DeleteProfileObject' {..} =+ _salt+ `Prelude.hashWithSalt` profileId+ `Prelude.hashWithSalt` profileObjectUniqueKey+ `Prelude.hashWithSalt` objectTypeName+ `Prelude.hashWithSalt` domainName++instance Prelude.NFData DeleteProfileObject where+ rnf DeleteProfileObject' {..} =+ Prelude.rnf profileId+ `Prelude.seq` Prelude.rnf profileObjectUniqueKey+ `Prelude.seq` Prelude.rnf objectTypeName+ `Prelude.seq` Prelude.rnf domainName++instance Data.ToHeaders DeleteProfileObject where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON DeleteProfileObject where+ toJSON DeleteProfileObject' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just ("ProfileId" Data..= profileId),+ Prelude.Just+ ( "ProfileObjectUniqueKey"+ Data..= profileObjectUniqueKey+ ),+ Prelude.Just+ ("ObjectTypeName" Data..= objectTypeName)+ ]+ )++instance Data.ToPath DeleteProfileObject where+ toPath DeleteProfileObject' {..} =+ Prelude.mconcat+ [ "/domains/",+ Data.toBS domainName,+ "/profiles/objects/delete"+ ]++instance Data.ToQuery DeleteProfileObject where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteProfileObjectResponse' smart constructor.+data DeleteProfileObjectResponse = DeleteProfileObjectResponse'+ { -- | A message that indicates the delete request is done.+ message :: 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 'DeleteProfileObjectResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'message', 'deleteProfileObjectResponse_message' - A message that indicates the delete request is done.+--+-- 'httpStatus', 'deleteProfileObjectResponse_httpStatus' - The response's http status code.+newDeleteProfileObjectResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DeleteProfileObjectResponse+newDeleteProfileObjectResponse pHttpStatus_ =+ DeleteProfileObjectResponse'+ { message =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | A message that indicates the delete request is done.+deleteProfileObjectResponse_message :: Lens.Lens' DeleteProfileObjectResponse (Prelude.Maybe Prelude.Text)+deleteProfileObjectResponse_message = Lens.lens (\DeleteProfileObjectResponse' {message} -> message) (\s@DeleteProfileObjectResponse' {} a -> s {message = a} :: DeleteProfileObjectResponse)++-- | The response's http status code.+deleteProfileObjectResponse_httpStatus :: Lens.Lens' DeleteProfileObjectResponse Prelude.Int+deleteProfileObjectResponse_httpStatus = Lens.lens (\DeleteProfileObjectResponse' {httpStatus} -> httpStatus) (\s@DeleteProfileObjectResponse' {} a -> s {httpStatus = a} :: DeleteProfileObjectResponse)++instance Prelude.NFData DeleteProfileObjectResponse where+ rnf DeleteProfileObjectResponse' {..} =+ Prelude.rnf message+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/CustomerProfiles/DeleteProfileObjectType.hs view
@@ -0,0 +1,194 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.CustomerProfiles.DeleteProfileObjectType+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Removes a ProfileObjectType from a specific domain as well as removes+-- all the ProfileObjects of that type. It also disables integrations from+-- this specific ProfileObjectType. In addition, it scrubs all of the+-- fields of the standard profile that were populated from this+-- ProfileObjectType.+module Amazonka.CustomerProfiles.DeleteProfileObjectType+ ( -- * Creating a Request+ DeleteProfileObjectType (..),+ newDeleteProfileObjectType,++ -- * Request Lenses+ deleteProfileObjectType_domainName,+ deleteProfileObjectType_objectTypeName,++ -- * Destructuring the Response+ DeleteProfileObjectTypeResponse (..),+ newDeleteProfileObjectTypeResponse,++ -- * Response Lenses+ deleteProfileObjectTypeResponse_httpStatus,+ deleteProfileObjectTypeResponse_message,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CustomerProfiles.Types+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteProfileObjectType' smart constructor.+data DeleteProfileObjectType = DeleteProfileObjectType'+ { -- | The unique name of the domain.+ domainName :: Prelude.Text,+ -- | The name of the profile object type.+ objectTypeName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteProfileObjectType' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'domainName', 'deleteProfileObjectType_domainName' - The unique name of the domain.+--+-- 'objectTypeName', 'deleteProfileObjectType_objectTypeName' - The name of the profile object type.+newDeleteProfileObjectType ::+ -- | 'domainName'+ Prelude.Text ->+ -- | 'objectTypeName'+ Prelude.Text ->+ DeleteProfileObjectType+newDeleteProfileObjectType+ pDomainName_+ pObjectTypeName_ =+ DeleteProfileObjectType'+ { domainName = pDomainName_,+ objectTypeName = pObjectTypeName_+ }++-- | The unique name of the domain.+deleteProfileObjectType_domainName :: Lens.Lens' DeleteProfileObjectType Prelude.Text+deleteProfileObjectType_domainName = Lens.lens (\DeleteProfileObjectType' {domainName} -> domainName) (\s@DeleteProfileObjectType' {} a -> s {domainName = a} :: DeleteProfileObjectType)++-- | The name of the profile object type.+deleteProfileObjectType_objectTypeName :: Lens.Lens' DeleteProfileObjectType Prelude.Text+deleteProfileObjectType_objectTypeName = Lens.lens (\DeleteProfileObjectType' {objectTypeName} -> objectTypeName) (\s@DeleteProfileObjectType' {} a -> s {objectTypeName = a} :: DeleteProfileObjectType)++instance Core.AWSRequest DeleteProfileObjectType where+ type+ AWSResponse DeleteProfileObjectType =+ DeleteProfileObjectTypeResponse+ request overrides =+ Request.delete (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DeleteProfileObjectTypeResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> (x Data..:> "Message")+ )++instance Prelude.Hashable DeleteProfileObjectType where+ hashWithSalt _salt DeleteProfileObjectType' {..} =+ _salt+ `Prelude.hashWithSalt` domainName+ `Prelude.hashWithSalt` objectTypeName++instance Prelude.NFData DeleteProfileObjectType where+ rnf DeleteProfileObjectType' {..} =+ Prelude.rnf domainName+ `Prelude.seq` Prelude.rnf objectTypeName++instance Data.ToHeaders DeleteProfileObjectType where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath DeleteProfileObjectType where+ toPath DeleteProfileObjectType' {..} =+ Prelude.mconcat+ [ "/domains/",+ Data.toBS domainName,+ "/object-types/",+ Data.toBS objectTypeName+ ]++instance Data.ToQuery DeleteProfileObjectType where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteProfileObjectTypeResponse' smart constructor.+data DeleteProfileObjectTypeResponse = DeleteProfileObjectTypeResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | A message that indicates the delete request is done.+ message :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteProfileObjectTypeResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteProfileObjectTypeResponse_httpStatus' - The response's http status code.+--+-- 'message', 'deleteProfileObjectTypeResponse_message' - A message that indicates the delete request is done.+newDeleteProfileObjectTypeResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ -- | 'message'+ Prelude.Text ->+ DeleteProfileObjectTypeResponse+newDeleteProfileObjectTypeResponse+ pHttpStatus_+ pMessage_ =+ DeleteProfileObjectTypeResponse'+ { httpStatus =+ pHttpStatus_,+ message = pMessage_+ }++-- | The response's http status code.+deleteProfileObjectTypeResponse_httpStatus :: Lens.Lens' DeleteProfileObjectTypeResponse Prelude.Int+deleteProfileObjectTypeResponse_httpStatus = Lens.lens (\DeleteProfileObjectTypeResponse' {httpStatus} -> httpStatus) (\s@DeleteProfileObjectTypeResponse' {} a -> s {httpStatus = a} :: DeleteProfileObjectTypeResponse)++-- | A message that indicates the delete request is done.+deleteProfileObjectTypeResponse_message :: Lens.Lens' DeleteProfileObjectTypeResponse Prelude.Text+deleteProfileObjectTypeResponse_message = Lens.lens (\DeleteProfileObjectTypeResponse' {message} -> message) (\s@DeleteProfileObjectTypeResponse' {} a -> s {message = a} :: DeleteProfileObjectTypeResponse)++instance+ Prelude.NFData+ DeleteProfileObjectTypeResponse+ where+ rnf DeleteProfileObjectTypeResponse' {..} =+ Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf message
+ gen/Amazonka/CustomerProfiles/DeleteWorkflow.hs view
@@ -0,0 +1,167 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.CustomerProfiles.DeleteWorkflow+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes the specified workflow and all its corresponding resources. This+-- is an async process.+module Amazonka.CustomerProfiles.DeleteWorkflow+ ( -- * Creating a Request+ DeleteWorkflow (..),+ newDeleteWorkflow,++ -- * Request Lenses+ deleteWorkflow_domainName,+ deleteWorkflow_workflowId,++ -- * Destructuring the Response+ DeleteWorkflowResponse (..),+ newDeleteWorkflowResponse,++ -- * Response Lenses+ deleteWorkflowResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CustomerProfiles.Types+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteWorkflow' smart constructor.+data DeleteWorkflow = DeleteWorkflow'+ { -- | The unique name of the domain.+ domainName :: Prelude.Text,+ -- | Unique identifier for the workflow.+ workflowId :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteWorkflow' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'domainName', 'deleteWorkflow_domainName' - The unique name of the domain.+--+-- 'workflowId', 'deleteWorkflow_workflowId' - Unique identifier for the workflow.+newDeleteWorkflow ::+ -- | 'domainName'+ Prelude.Text ->+ -- | 'workflowId'+ Prelude.Text ->+ DeleteWorkflow+newDeleteWorkflow pDomainName_ pWorkflowId_ =+ DeleteWorkflow'+ { domainName = pDomainName_,+ workflowId = pWorkflowId_+ }++-- | The unique name of the domain.+deleteWorkflow_domainName :: Lens.Lens' DeleteWorkflow Prelude.Text+deleteWorkflow_domainName = Lens.lens (\DeleteWorkflow' {domainName} -> domainName) (\s@DeleteWorkflow' {} a -> s {domainName = a} :: DeleteWorkflow)++-- | Unique identifier for the workflow.+deleteWorkflow_workflowId :: Lens.Lens' DeleteWorkflow Prelude.Text+deleteWorkflow_workflowId = Lens.lens (\DeleteWorkflow' {workflowId} -> workflowId) (\s@DeleteWorkflow' {} a -> s {workflowId = a} :: DeleteWorkflow)++instance Core.AWSRequest DeleteWorkflow where+ type+ AWSResponse DeleteWorkflow =+ DeleteWorkflowResponse+ request overrides =+ Request.delete (overrides defaultService)+ response =+ Response.receiveEmpty+ ( \s h x ->+ DeleteWorkflowResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable DeleteWorkflow where+ hashWithSalt _salt DeleteWorkflow' {..} =+ _salt+ `Prelude.hashWithSalt` domainName+ `Prelude.hashWithSalt` workflowId++instance Prelude.NFData DeleteWorkflow where+ rnf DeleteWorkflow' {..} =+ Prelude.rnf domainName+ `Prelude.seq` Prelude.rnf workflowId++instance Data.ToHeaders DeleteWorkflow where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath DeleteWorkflow where+ toPath DeleteWorkflow' {..} =+ Prelude.mconcat+ [ "/domains/",+ Data.toBS domainName,+ "/workflows/",+ Data.toBS workflowId+ ]++instance Data.ToQuery DeleteWorkflow where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteWorkflowResponse' smart constructor.+data DeleteWorkflowResponse = DeleteWorkflowResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteWorkflowResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteWorkflowResponse_httpStatus' - The response's http status code.+newDeleteWorkflowResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DeleteWorkflowResponse+newDeleteWorkflowResponse pHttpStatus_ =+ DeleteWorkflowResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+deleteWorkflowResponse_httpStatus :: Lens.Lens' DeleteWorkflowResponse Prelude.Int+deleteWorkflowResponse_httpStatus = Lens.lens (\DeleteWorkflowResponse' {httpStatus} -> httpStatus) (\s@DeleteWorkflowResponse' {} a -> s {httpStatus = a} :: DeleteWorkflowResponse)++instance Prelude.NFData DeleteWorkflowResponse where+ rnf DeleteWorkflowResponse' {..} =+ Prelude.rnf httpStatus
+ gen/Amazonka/CustomerProfiles/GetAutoMergingPreview.hs view
@@ -0,0 +1,290 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.CustomerProfiles.GetAutoMergingPreview+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Tests the auto-merging settings of your Identity Resolution Job without+-- merging your data. It randomly selects a sample of matching groups from+-- the existing matching results, and applies the automerging settings that+-- you provided. You can then view the number of profiles in the sample,+-- the number of matches, and the number of profiles identified to be+-- merged. This enables you to evaluate the accuracy of the attributes in+-- your matching list.+--+-- You can\'t view which profiles are matched and would be merged.+--+-- We strongly recommend you use this API to do a dry run of the+-- automerging process before running the Identity Resolution Job. Include+-- __at least__ two matching attributes. If your matching list includes too+-- few attributes (such as only @FirstName@ or only @LastName@), there may+-- be a large number of matches. This increases the chances of erroneous+-- merges.+module Amazonka.CustomerProfiles.GetAutoMergingPreview+ ( -- * Creating a Request+ GetAutoMergingPreview (..),+ newGetAutoMergingPreview,++ -- * Request Lenses+ getAutoMergingPreview_minAllowedConfidenceScoreForMerging,+ getAutoMergingPreview_domainName,+ getAutoMergingPreview_consolidation,+ getAutoMergingPreview_conflictResolution,++ -- * Destructuring the Response+ GetAutoMergingPreviewResponse (..),+ newGetAutoMergingPreviewResponse,++ -- * Response Lenses+ getAutoMergingPreviewResponse_numberOfMatchesInSample,+ getAutoMergingPreviewResponse_numberOfProfilesInSample,+ getAutoMergingPreviewResponse_numberOfProfilesWillBeMerged,+ getAutoMergingPreviewResponse_httpStatus,+ getAutoMergingPreviewResponse_domainName,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CustomerProfiles.Types+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetAutoMergingPreview' smart constructor.+data GetAutoMergingPreview = GetAutoMergingPreview'+ { -- | Minimum confidence score required for profiles within a matching group+ -- to be merged during the auto-merge process.+ minAllowedConfidenceScoreForMerging :: Prelude.Maybe Prelude.Double,+ -- | The unique name of the domain.+ domainName :: Prelude.Text,+ -- | A list of matching attributes that represent matching criteria.+ consolidation :: Consolidation,+ -- | How the auto-merging process should resolve conflicts between different+ -- profiles.+ conflictResolution :: ConflictResolution+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetAutoMergingPreview' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'minAllowedConfidenceScoreForMerging', 'getAutoMergingPreview_minAllowedConfidenceScoreForMerging' - Minimum confidence score required for profiles within a matching group+-- to be merged during the auto-merge process.+--+-- 'domainName', 'getAutoMergingPreview_domainName' - The unique name of the domain.+--+-- 'consolidation', 'getAutoMergingPreview_consolidation' - A list of matching attributes that represent matching criteria.+--+-- 'conflictResolution', 'getAutoMergingPreview_conflictResolution' - How the auto-merging process should resolve conflicts between different+-- profiles.+newGetAutoMergingPreview ::+ -- | 'domainName'+ Prelude.Text ->+ -- | 'consolidation'+ Consolidation ->+ -- | 'conflictResolution'+ ConflictResolution ->+ GetAutoMergingPreview+newGetAutoMergingPreview+ pDomainName_+ pConsolidation_+ pConflictResolution_ =+ GetAutoMergingPreview'+ { minAllowedConfidenceScoreForMerging =+ Prelude.Nothing,+ domainName = pDomainName_,+ consolidation = pConsolidation_,+ conflictResolution = pConflictResolution_+ }++-- | Minimum confidence score required for profiles within a matching group+-- to be merged during the auto-merge process.+getAutoMergingPreview_minAllowedConfidenceScoreForMerging :: Lens.Lens' GetAutoMergingPreview (Prelude.Maybe Prelude.Double)+getAutoMergingPreview_minAllowedConfidenceScoreForMerging = Lens.lens (\GetAutoMergingPreview' {minAllowedConfidenceScoreForMerging} -> minAllowedConfidenceScoreForMerging) (\s@GetAutoMergingPreview' {} a -> s {minAllowedConfidenceScoreForMerging = a} :: GetAutoMergingPreview)++-- | The unique name of the domain.+getAutoMergingPreview_domainName :: Lens.Lens' GetAutoMergingPreview Prelude.Text+getAutoMergingPreview_domainName = Lens.lens (\GetAutoMergingPreview' {domainName} -> domainName) (\s@GetAutoMergingPreview' {} a -> s {domainName = a} :: GetAutoMergingPreview)++-- | A list of matching attributes that represent matching criteria.+getAutoMergingPreview_consolidation :: Lens.Lens' GetAutoMergingPreview Consolidation+getAutoMergingPreview_consolidation = Lens.lens (\GetAutoMergingPreview' {consolidation} -> consolidation) (\s@GetAutoMergingPreview' {} a -> s {consolidation = a} :: GetAutoMergingPreview)++-- | How the auto-merging process should resolve conflicts between different+-- profiles.+getAutoMergingPreview_conflictResolution :: Lens.Lens' GetAutoMergingPreview ConflictResolution+getAutoMergingPreview_conflictResolution = Lens.lens (\GetAutoMergingPreview' {conflictResolution} -> conflictResolution) (\s@GetAutoMergingPreview' {} a -> s {conflictResolution = a} :: GetAutoMergingPreview)++instance Core.AWSRequest GetAutoMergingPreview where+ type+ AWSResponse GetAutoMergingPreview =+ GetAutoMergingPreviewResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ GetAutoMergingPreviewResponse'+ Prelude.<$> (x Data..?> "NumberOfMatchesInSample")+ Prelude.<*> (x Data..?> "NumberOfProfilesInSample")+ Prelude.<*> (x Data..?> "NumberOfProfilesWillBeMerged")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> (x Data..:> "DomainName")+ )++instance Prelude.Hashable GetAutoMergingPreview where+ hashWithSalt _salt GetAutoMergingPreview' {..} =+ _salt+ `Prelude.hashWithSalt` minAllowedConfidenceScoreForMerging+ `Prelude.hashWithSalt` domainName+ `Prelude.hashWithSalt` consolidation+ `Prelude.hashWithSalt` conflictResolution++instance Prelude.NFData GetAutoMergingPreview where+ rnf GetAutoMergingPreview' {..} =+ Prelude.rnf minAllowedConfidenceScoreForMerging+ `Prelude.seq` Prelude.rnf domainName+ `Prelude.seq` Prelude.rnf consolidation+ `Prelude.seq` Prelude.rnf conflictResolution++instance Data.ToHeaders GetAutoMergingPreview where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON GetAutoMergingPreview where+ toJSON GetAutoMergingPreview' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("MinAllowedConfidenceScoreForMerging" Data..=)+ Prelude.<$> minAllowedConfidenceScoreForMerging,+ Prelude.Just ("Consolidation" Data..= consolidation),+ Prelude.Just+ ("ConflictResolution" Data..= conflictResolution)+ ]+ )++instance Data.ToPath GetAutoMergingPreview where+ toPath GetAutoMergingPreview' {..} =+ Prelude.mconcat+ [ "/domains/",+ Data.toBS domainName,+ "/identity-resolution-jobs/auto-merging-preview"+ ]++instance Data.ToQuery GetAutoMergingPreview where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetAutoMergingPreviewResponse' smart constructor.+data GetAutoMergingPreviewResponse = GetAutoMergingPreviewResponse'+ { -- | The number of match groups in the domain that have been reviewed in this+ -- preview dry run.+ numberOfMatchesInSample :: Prelude.Maybe Prelude.Integer,+ -- | The number of profiles found in this preview dry run.+ numberOfProfilesInSample :: Prelude.Maybe Prelude.Integer,+ -- | The number of profiles that would be merged if this wasn\'t a preview+ -- dry run.+ numberOfProfilesWillBeMerged :: Prelude.Maybe Prelude.Integer,+ -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | The unique name of the domain.+ domainName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetAutoMergingPreviewResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'numberOfMatchesInSample', 'getAutoMergingPreviewResponse_numberOfMatchesInSample' - The number of match groups in the domain that have been reviewed in this+-- preview dry run.+--+-- 'numberOfProfilesInSample', 'getAutoMergingPreviewResponse_numberOfProfilesInSample' - The number of profiles found in this preview dry run.+--+-- 'numberOfProfilesWillBeMerged', 'getAutoMergingPreviewResponse_numberOfProfilesWillBeMerged' - The number of profiles that would be merged if this wasn\'t a preview+-- dry run.+--+-- 'httpStatus', 'getAutoMergingPreviewResponse_httpStatus' - The response's http status code.+--+-- 'domainName', 'getAutoMergingPreviewResponse_domainName' - The unique name of the domain.+newGetAutoMergingPreviewResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ -- | 'domainName'+ Prelude.Text ->+ GetAutoMergingPreviewResponse+newGetAutoMergingPreviewResponse+ pHttpStatus_+ pDomainName_ =+ GetAutoMergingPreviewResponse'+ { numberOfMatchesInSample =+ Prelude.Nothing,+ numberOfProfilesInSample = Prelude.Nothing,+ numberOfProfilesWillBeMerged =+ Prelude.Nothing,+ httpStatus = pHttpStatus_,+ domainName = pDomainName_+ }++-- | The number of match groups in the domain that have been reviewed in this+-- preview dry run.+getAutoMergingPreviewResponse_numberOfMatchesInSample :: Lens.Lens' GetAutoMergingPreviewResponse (Prelude.Maybe Prelude.Integer)+getAutoMergingPreviewResponse_numberOfMatchesInSample = Lens.lens (\GetAutoMergingPreviewResponse' {numberOfMatchesInSample} -> numberOfMatchesInSample) (\s@GetAutoMergingPreviewResponse' {} a -> s {numberOfMatchesInSample = a} :: GetAutoMergingPreviewResponse)++-- | The number of profiles found in this preview dry run.+getAutoMergingPreviewResponse_numberOfProfilesInSample :: Lens.Lens' GetAutoMergingPreviewResponse (Prelude.Maybe Prelude.Integer)+getAutoMergingPreviewResponse_numberOfProfilesInSample = Lens.lens (\GetAutoMergingPreviewResponse' {numberOfProfilesInSample} -> numberOfProfilesInSample) (\s@GetAutoMergingPreviewResponse' {} a -> s {numberOfProfilesInSample = a} :: GetAutoMergingPreviewResponse)++-- | The number of profiles that would be merged if this wasn\'t a preview+-- dry run.+getAutoMergingPreviewResponse_numberOfProfilesWillBeMerged :: Lens.Lens' GetAutoMergingPreviewResponse (Prelude.Maybe Prelude.Integer)+getAutoMergingPreviewResponse_numberOfProfilesWillBeMerged = Lens.lens (\GetAutoMergingPreviewResponse' {numberOfProfilesWillBeMerged} -> numberOfProfilesWillBeMerged) (\s@GetAutoMergingPreviewResponse' {} a -> s {numberOfProfilesWillBeMerged = a} :: GetAutoMergingPreviewResponse)++-- | The response's http status code.+getAutoMergingPreviewResponse_httpStatus :: Lens.Lens' GetAutoMergingPreviewResponse Prelude.Int+getAutoMergingPreviewResponse_httpStatus = Lens.lens (\GetAutoMergingPreviewResponse' {httpStatus} -> httpStatus) (\s@GetAutoMergingPreviewResponse' {} a -> s {httpStatus = a} :: GetAutoMergingPreviewResponse)++-- | The unique name of the domain.+getAutoMergingPreviewResponse_domainName :: Lens.Lens' GetAutoMergingPreviewResponse Prelude.Text+getAutoMergingPreviewResponse_domainName = Lens.lens (\GetAutoMergingPreviewResponse' {domainName} -> domainName) (\s@GetAutoMergingPreviewResponse' {} a -> s {domainName = a} :: GetAutoMergingPreviewResponse)++instance Prelude.NFData GetAutoMergingPreviewResponse where+ rnf GetAutoMergingPreviewResponse' {..} =+ Prelude.rnf numberOfMatchesInSample+ `Prelude.seq` Prelude.rnf numberOfProfilesInSample+ `Prelude.seq` Prelude.rnf numberOfProfilesWillBeMerged+ `Prelude.seq` Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf domainName
+ gen/Amazonka/CustomerProfiles/GetDomain.hs view
@@ -0,0 +1,301 @@+{-# 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.CustomerProfiles.GetDomain+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns information about a specific domain.+module Amazonka.CustomerProfiles.GetDomain+ ( -- * Creating a Request+ GetDomain (..),+ newGetDomain,++ -- * Request Lenses+ getDomain_domainName,++ -- * Destructuring the Response+ GetDomainResponse (..),+ newGetDomainResponse,++ -- * Response Lenses+ getDomainResponse_deadLetterQueueUrl,+ getDomainResponse_defaultEncryptionKey,+ getDomainResponse_defaultExpirationDays,+ getDomainResponse_matching,+ getDomainResponse_stats,+ getDomainResponse_tags,+ getDomainResponse_httpStatus,+ getDomainResponse_domainName,+ getDomainResponse_createdAt,+ getDomainResponse_lastUpdatedAt,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CustomerProfiles.Types+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetDomain' smart constructor.+data GetDomain = GetDomain'+ { -- | The unique name of the domain.+ domainName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetDomain' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'domainName', 'getDomain_domainName' - The unique name of the domain.+newGetDomain ::+ -- | 'domainName'+ Prelude.Text ->+ GetDomain+newGetDomain pDomainName_ =+ GetDomain' {domainName = pDomainName_}++-- | The unique name of the domain.+getDomain_domainName :: Lens.Lens' GetDomain Prelude.Text+getDomain_domainName = Lens.lens (\GetDomain' {domainName} -> domainName) (\s@GetDomain' {} a -> s {domainName = a} :: GetDomain)++instance Core.AWSRequest GetDomain where+ type AWSResponse GetDomain = GetDomainResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ GetDomainResponse'+ Prelude.<$> (x Data..?> "DeadLetterQueueUrl")+ Prelude.<*> (x Data..?> "DefaultEncryptionKey")+ Prelude.<*> (x Data..?> "DefaultExpirationDays")+ Prelude.<*> (x Data..?> "Matching")+ Prelude.<*> (x Data..?> "Stats")+ Prelude.<*> (x Data..?> "Tags" Core..!@ Prelude.mempty)+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> (x Data..:> "DomainName")+ Prelude.<*> (x Data..:> "CreatedAt")+ Prelude.<*> (x Data..:> "LastUpdatedAt")+ )++instance Prelude.Hashable GetDomain where+ hashWithSalt _salt GetDomain' {..} =+ _salt `Prelude.hashWithSalt` domainName++instance Prelude.NFData GetDomain where+ rnf GetDomain' {..} = Prelude.rnf domainName++instance Data.ToHeaders GetDomain where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath GetDomain where+ toPath GetDomain' {..} =+ Prelude.mconcat ["/domains/", Data.toBS domainName]++instance Data.ToQuery GetDomain where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetDomainResponse' smart constructor.+data GetDomainResponse = GetDomainResponse'+ { -- | The URL of the SQS dead letter queue, which is used for reporting errors+ -- associated with ingesting data from third party applications.+ deadLetterQueueUrl :: Prelude.Maybe Prelude.Text,+ -- | The default encryption key, which is an AWS managed key, is used when no+ -- specific type of encryption key is specified. It is used to encrypt all+ -- data before it is placed in permanent or semi-permanent storage.+ defaultEncryptionKey :: Prelude.Maybe Prelude.Text,+ -- | The default number of days until the data within the domain expires.+ defaultExpirationDays :: Prelude.Maybe Prelude.Natural,+ -- | The process of matching duplicate profiles. If @Matching@ = @true@,+ -- Amazon Connect Customer Profiles starts a weekly batch process called+ -- Identity Resolution Job. If you do not specify a date and time for+ -- Identity Resolution Job to run, by default it runs every Saturday at+ -- 12AM UTC to detect duplicate profiles in your domains.+ --+ -- After the Identity Resolution Job completes, use the+ -- <https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_GetMatches.html GetMatches>+ -- API to return and review the results. Or, if you have configured+ -- @ExportingConfig@ in the @MatchingRequest@, you can download the results+ -- from S3.+ matching :: Prelude.Maybe MatchingResponse,+ -- | Usage-specific statistics about the domain.+ stats :: Prelude.Maybe DomainStats,+ -- | The tags used to organize, track, or control access for this resource.+ tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | The unique name of the domain.+ domainName :: Prelude.Text,+ -- | The timestamp of when the domain was created.+ createdAt :: Data.POSIX,+ -- | The timestamp of when the domain was most recently edited.+ lastUpdatedAt :: Data.POSIX+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetDomainResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'deadLetterQueueUrl', 'getDomainResponse_deadLetterQueueUrl' - The URL of the SQS dead letter queue, which is used for reporting errors+-- associated with ingesting data from third party applications.+--+-- 'defaultEncryptionKey', 'getDomainResponse_defaultEncryptionKey' - The default encryption key, which is an AWS managed key, is used when no+-- specific type of encryption key is specified. It is used to encrypt all+-- data before it is placed in permanent or semi-permanent storage.+--+-- 'defaultExpirationDays', 'getDomainResponse_defaultExpirationDays' - The default number of days until the data within the domain expires.+--+-- 'matching', 'getDomainResponse_matching' - The process of matching duplicate profiles. If @Matching@ = @true@,+-- Amazon Connect Customer Profiles starts a weekly batch process called+-- Identity Resolution Job. If you do not specify a date and time for+-- Identity Resolution Job to run, by default it runs every Saturday at+-- 12AM UTC to detect duplicate profiles in your domains.+--+-- After the Identity Resolution Job completes, use the+-- <https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_GetMatches.html GetMatches>+-- API to return and review the results. Or, if you have configured+-- @ExportingConfig@ in the @MatchingRequest@, you can download the results+-- from S3.+--+-- 'stats', 'getDomainResponse_stats' - Usage-specific statistics about the domain.+--+-- 'tags', 'getDomainResponse_tags' - The tags used to organize, track, or control access for this resource.+--+-- 'httpStatus', 'getDomainResponse_httpStatus' - The response's http status code.+--+-- 'domainName', 'getDomainResponse_domainName' - The unique name of the domain.+--+-- 'createdAt', 'getDomainResponse_createdAt' - The timestamp of when the domain was created.+--+-- 'lastUpdatedAt', 'getDomainResponse_lastUpdatedAt' - The timestamp of when the domain was most recently edited.+newGetDomainResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ -- | 'domainName'+ Prelude.Text ->+ -- | 'createdAt'+ Prelude.UTCTime ->+ -- | 'lastUpdatedAt'+ Prelude.UTCTime ->+ GetDomainResponse+newGetDomainResponse+ pHttpStatus_+ pDomainName_+ pCreatedAt_+ pLastUpdatedAt_ =+ GetDomainResponse'+ { deadLetterQueueUrl =+ Prelude.Nothing,+ defaultEncryptionKey = Prelude.Nothing,+ defaultExpirationDays = Prelude.Nothing,+ matching = Prelude.Nothing,+ stats = Prelude.Nothing,+ tags = Prelude.Nothing,+ httpStatus = pHttpStatus_,+ domainName = pDomainName_,+ createdAt = Data._Time Lens.# pCreatedAt_,+ lastUpdatedAt = Data._Time Lens.# pLastUpdatedAt_+ }++-- | The URL of the SQS dead letter queue, which is used for reporting errors+-- associated with ingesting data from third party applications.+getDomainResponse_deadLetterQueueUrl :: Lens.Lens' GetDomainResponse (Prelude.Maybe Prelude.Text)+getDomainResponse_deadLetterQueueUrl = Lens.lens (\GetDomainResponse' {deadLetterQueueUrl} -> deadLetterQueueUrl) (\s@GetDomainResponse' {} a -> s {deadLetterQueueUrl = a} :: GetDomainResponse)++-- | The default encryption key, which is an AWS managed key, is used when no+-- specific type of encryption key is specified. It is used to encrypt all+-- data before it is placed in permanent or semi-permanent storage.+getDomainResponse_defaultEncryptionKey :: Lens.Lens' GetDomainResponse (Prelude.Maybe Prelude.Text)+getDomainResponse_defaultEncryptionKey = Lens.lens (\GetDomainResponse' {defaultEncryptionKey} -> defaultEncryptionKey) (\s@GetDomainResponse' {} a -> s {defaultEncryptionKey = a} :: GetDomainResponse)++-- | The default number of days until the data within the domain expires.+getDomainResponse_defaultExpirationDays :: Lens.Lens' GetDomainResponse (Prelude.Maybe Prelude.Natural)+getDomainResponse_defaultExpirationDays = Lens.lens (\GetDomainResponse' {defaultExpirationDays} -> defaultExpirationDays) (\s@GetDomainResponse' {} a -> s {defaultExpirationDays = a} :: GetDomainResponse)++-- | The process of matching duplicate profiles. If @Matching@ = @true@,+-- Amazon Connect Customer Profiles starts a weekly batch process called+-- Identity Resolution Job. If you do not specify a date and time for+-- Identity Resolution Job to run, by default it runs every Saturday at+-- 12AM UTC to detect duplicate profiles in your domains.+--+-- After the Identity Resolution Job completes, use the+-- <https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_GetMatches.html GetMatches>+-- API to return and review the results. Or, if you have configured+-- @ExportingConfig@ in the @MatchingRequest@, you can download the results+-- from S3.+getDomainResponse_matching :: Lens.Lens' GetDomainResponse (Prelude.Maybe MatchingResponse)+getDomainResponse_matching = Lens.lens (\GetDomainResponse' {matching} -> matching) (\s@GetDomainResponse' {} a -> s {matching = a} :: GetDomainResponse)++-- | Usage-specific statistics about the domain.+getDomainResponse_stats :: Lens.Lens' GetDomainResponse (Prelude.Maybe DomainStats)+getDomainResponse_stats = Lens.lens (\GetDomainResponse' {stats} -> stats) (\s@GetDomainResponse' {} a -> s {stats = a} :: GetDomainResponse)++-- | The tags used to organize, track, or control access for this resource.+getDomainResponse_tags :: Lens.Lens' GetDomainResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+getDomainResponse_tags = Lens.lens (\GetDomainResponse' {tags} -> tags) (\s@GetDomainResponse' {} a -> s {tags = a} :: GetDomainResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+getDomainResponse_httpStatus :: Lens.Lens' GetDomainResponse Prelude.Int+getDomainResponse_httpStatus = Lens.lens (\GetDomainResponse' {httpStatus} -> httpStatus) (\s@GetDomainResponse' {} a -> s {httpStatus = a} :: GetDomainResponse)++-- | The unique name of the domain.+getDomainResponse_domainName :: Lens.Lens' GetDomainResponse Prelude.Text+getDomainResponse_domainName = Lens.lens (\GetDomainResponse' {domainName} -> domainName) (\s@GetDomainResponse' {} a -> s {domainName = a} :: GetDomainResponse)++-- | The timestamp of when the domain was created.+getDomainResponse_createdAt :: Lens.Lens' GetDomainResponse Prelude.UTCTime+getDomainResponse_createdAt = Lens.lens (\GetDomainResponse' {createdAt} -> createdAt) (\s@GetDomainResponse' {} a -> s {createdAt = a} :: GetDomainResponse) Prelude.. Data._Time++-- | The timestamp of when the domain was most recently edited.+getDomainResponse_lastUpdatedAt :: Lens.Lens' GetDomainResponse Prelude.UTCTime+getDomainResponse_lastUpdatedAt = Lens.lens (\GetDomainResponse' {lastUpdatedAt} -> lastUpdatedAt) (\s@GetDomainResponse' {} a -> s {lastUpdatedAt = a} :: GetDomainResponse) Prelude.. Data._Time++instance Prelude.NFData GetDomainResponse where+ rnf GetDomainResponse' {..} =+ Prelude.rnf deadLetterQueueUrl+ `Prelude.seq` Prelude.rnf defaultEncryptionKey+ `Prelude.seq` Prelude.rnf defaultExpirationDays+ `Prelude.seq` Prelude.rnf matching+ `Prelude.seq` Prelude.rnf stats+ `Prelude.seq` Prelude.rnf tags+ `Prelude.seq` Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf domainName+ `Prelude.seq` Prelude.rnf createdAt+ `Prelude.seq` Prelude.rnf lastUpdatedAt
+ gen/Amazonka/CustomerProfiles/GetIdentityResolutionJob.hs view
@@ -0,0 +1,385 @@+{-# 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.CustomerProfiles.GetIdentityResolutionJob+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns information about an Identity Resolution Job in a specific+-- domain.+--+-- Identity Resolution Jobs are set up using the Amazon Connect admin+-- console. For more information, see+-- <https://docs.aws.amazon.com/connect/latest/adminguide/use-identity-resolution.html Use Identity Resolution to consolidate similar profiles>.+module Amazonka.CustomerProfiles.GetIdentityResolutionJob+ ( -- * Creating a Request+ GetIdentityResolutionJob (..),+ newGetIdentityResolutionJob,++ -- * Request Lenses+ getIdentityResolutionJob_domainName,+ getIdentityResolutionJob_jobId,++ -- * Destructuring the Response+ GetIdentityResolutionJobResponse (..),+ newGetIdentityResolutionJobResponse,++ -- * Response Lenses+ getIdentityResolutionJobResponse_autoMerging,+ getIdentityResolutionJobResponse_domainName,+ getIdentityResolutionJobResponse_exportingLocation,+ getIdentityResolutionJobResponse_jobEndTime,+ getIdentityResolutionJobResponse_jobExpirationTime,+ getIdentityResolutionJobResponse_jobId,+ getIdentityResolutionJobResponse_jobStartTime,+ getIdentityResolutionJobResponse_jobStats,+ getIdentityResolutionJobResponse_lastUpdatedAt,+ getIdentityResolutionJobResponse_message,+ getIdentityResolutionJobResponse_status,+ getIdentityResolutionJobResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CustomerProfiles.Types+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetIdentityResolutionJob' smart constructor.+data GetIdentityResolutionJob = GetIdentityResolutionJob'+ { -- | The unique name of the domain.+ domainName :: Prelude.Text,+ -- | The unique identifier of the Identity Resolution Job.+ jobId :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetIdentityResolutionJob' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'domainName', 'getIdentityResolutionJob_domainName' - The unique name of the domain.+--+-- 'jobId', 'getIdentityResolutionJob_jobId' - The unique identifier of the Identity Resolution Job.+newGetIdentityResolutionJob ::+ -- | 'domainName'+ Prelude.Text ->+ -- | 'jobId'+ Prelude.Text ->+ GetIdentityResolutionJob+newGetIdentityResolutionJob pDomainName_ pJobId_ =+ GetIdentityResolutionJob'+ { domainName =+ pDomainName_,+ jobId = pJobId_+ }++-- | The unique name of the domain.+getIdentityResolutionJob_domainName :: Lens.Lens' GetIdentityResolutionJob Prelude.Text+getIdentityResolutionJob_domainName = Lens.lens (\GetIdentityResolutionJob' {domainName} -> domainName) (\s@GetIdentityResolutionJob' {} a -> s {domainName = a} :: GetIdentityResolutionJob)++-- | The unique identifier of the Identity Resolution Job.+getIdentityResolutionJob_jobId :: Lens.Lens' GetIdentityResolutionJob Prelude.Text+getIdentityResolutionJob_jobId = Lens.lens (\GetIdentityResolutionJob' {jobId} -> jobId) (\s@GetIdentityResolutionJob' {} a -> s {jobId = a} :: GetIdentityResolutionJob)++instance Core.AWSRequest GetIdentityResolutionJob where+ type+ AWSResponse GetIdentityResolutionJob =+ GetIdentityResolutionJobResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ GetIdentityResolutionJobResponse'+ Prelude.<$> (x Data..?> "AutoMerging")+ Prelude.<*> (x Data..?> "DomainName")+ Prelude.<*> (x Data..?> "ExportingLocation")+ Prelude.<*> (x Data..?> "JobEndTime")+ Prelude.<*> (x Data..?> "JobExpirationTime")+ Prelude.<*> (x Data..?> "JobId")+ Prelude.<*> (x Data..?> "JobStartTime")+ Prelude.<*> (x Data..?> "JobStats")+ Prelude.<*> (x Data..?> "LastUpdatedAt")+ Prelude.<*> (x Data..?> "Message")+ Prelude.<*> (x Data..?> "Status")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable GetIdentityResolutionJob where+ hashWithSalt _salt GetIdentityResolutionJob' {..} =+ _salt+ `Prelude.hashWithSalt` domainName+ `Prelude.hashWithSalt` jobId++instance Prelude.NFData GetIdentityResolutionJob where+ rnf GetIdentityResolutionJob' {..} =+ Prelude.rnf domainName+ `Prelude.seq` Prelude.rnf jobId++instance Data.ToHeaders GetIdentityResolutionJob where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath GetIdentityResolutionJob where+ toPath GetIdentityResolutionJob' {..} =+ Prelude.mconcat+ [ "/domains/",+ Data.toBS domainName,+ "/identity-resolution-jobs/",+ Data.toBS jobId+ ]++instance Data.ToQuery GetIdentityResolutionJob where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetIdentityResolutionJobResponse' smart constructor.+data GetIdentityResolutionJobResponse = GetIdentityResolutionJobResponse'+ { -- | Configuration settings for how to perform the auto-merging of profiles.+ autoMerging :: Prelude.Maybe AutoMerging,+ -- | The unique name of the domain.+ domainName :: Prelude.Maybe Prelude.Text,+ -- | The S3 location where the Identity Resolution Job writes result files.+ exportingLocation :: Prelude.Maybe ExportingLocation,+ -- | The timestamp of when the Identity Resolution Job was completed.+ jobEndTime :: Prelude.Maybe Data.POSIX,+ -- | The timestamp of when the Identity Resolution Job will expire.+ jobExpirationTime :: Prelude.Maybe Data.POSIX,+ -- | The unique identifier of the Identity Resolution Job.+ jobId :: Prelude.Maybe Prelude.Text,+ -- | The timestamp of when the Identity Resolution Job was started or will be+ -- started.+ jobStartTime :: Prelude.Maybe Data.POSIX,+ -- | Statistics about the Identity Resolution Job.+ jobStats :: Prelude.Maybe JobStats,+ -- | The timestamp of when the Identity Resolution Job was most recently+ -- edited.+ lastUpdatedAt :: Prelude.Maybe Data.POSIX,+ -- | The error messages that are generated when the Identity Resolution Job+ -- runs.+ message :: Prelude.Maybe Prelude.Text,+ -- | The status of the Identity Resolution Job.+ --+ -- - @PENDING@: The Identity Resolution Job is scheduled but has not+ -- started yet. If you turn off the Identity Resolution feature in your+ -- domain, jobs in the @PENDING@ state are deleted.+ --+ -- - @PREPROCESSING@: The Identity Resolution Job is loading your data.+ --+ -- - @FIND_MATCHING@: The Identity Resolution Job is using the machine+ -- learning model to identify profiles that belong to the same matching+ -- group.+ --+ -- - @MERGING@: The Identity Resolution Job is merging duplicate+ -- profiles.+ --+ -- - @COMPLETED@: The Identity Resolution Job completed successfully.+ --+ -- - @PARTIAL_SUCCESS@: There\'s a system error and not all of the data+ -- is merged. The Identity Resolution Job writes a message indicating+ -- the source of the problem.+ --+ -- - @FAILED@: The Identity Resolution Job did not merge any data. It+ -- writes a message indicating the source of the problem.+ status :: Prelude.Maybe IdentityResolutionJobStatus,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetIdentityResolutionJobResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'autoMerging', 'getIdentityResolutionJobResponse_autoMerging' - Configuration settings for how to perform the auto-merging of profiles.+--+-- 'domainName', 'getIdentityResolutionJobResponse_domainName' - The unique name of the domain.+--+-- 'exportingLocation', 'getIdentityResolutionJobResponse_exportingLocation' - The S3 location where the Identity Resolution Job writes result files.+--+-- 'jobEndTime', 'getIdentityResolutionJobResponse_jobEndTime' - The timestamp of when the Identity Resolution Job was completed.+--+-- 'jobExpirationTime', 'getIdentityResolutionJobResponse_jobExpirationTime' - The timestamp of when the Identity Resolution Job will expire.+--+-- 'jobId', 'getIdentityResolutionJobResponse_jobId' - The unique identifier of the Identity Resolution Job.+--+-- 'jobStartTime', 'getIdentityResolutionJobResponse_jobStartTime' - The timestamp of when the Identity Resolution Job was started or will be+-- started.+--+-- 'jobStats', 'getIdentityResolutionJobResponse_jobStats' - Statistics about the Identity Resolution Job.+--+-- 'lastUpdatedAt', 'getIdentityResolutionJobResponse_lastUpdatedAt' - The timestamp of when the Identity Resolution Job was most recently+-- edited.+--+-- 'message', 'getIdentityResolutionJobResponse_message' - The error messages that are generated when the Identity Resolution Job+-- runs.+--+-- 'status', 'getIdentityResolutionJobResponse_status' - The status of the Identity Resolution Job.+--+-- - @PENDING@: The Identity Resolution Job is scheduled but has not+-- started yet. If you turn off the Identity Resolution feature in your+-- domain, jobs in the @PENDING@ state are deleted.+--+-- - @PREPROCESSING@: The Identity Resolution Job is loading your data.+--+-- - @FIND_MATCHING@: The Identity Resolution Job is using the machine+-- learning model to identify profiles that belong to the same matching+-- group.+--+-- - @MERGING@: The Identity Resolution Job is merging duplicate+-- profiles.+--+-- - @COMPLETED@: The Identity Resolution Job completed successfully.+--+-- - @PARTIAL_SUCCESS@: There\'s a system error and not all of the data+-- is merged. The Identity Resolution Job writes a message indicating+-- the source of the problem.+--+-- - @FAILED@: The Identity Resolution Job did not merge any data. It+-- writes a message indicating the source of the problem.+--+-- 'httpStatus', 'getIdentityResolutionJobResponse_httpStatus' - The response's http status code.+newGetIdentityResolutionJobResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ GetIdentityResolutionJobResponse+newGetIdentityResolutionJobResponse pHttpStatus_ =+ GetIdentityResolutionJobResponse'+ { autoMerging =+ Prelude.Nothing,+ domainName = Prelude.Nothing,+ exportingLocation = Prelude.Nothing,+ jobEndTime = Prelude.Nothing,+ jobExpirationTime = Prelude.Nothing,+ jobId = Prelude.Nothing,+ jobStartTime = Prelude.Nothing,+ jobStats = Prelude.Nothing,+ lastUpdatedAt = Prelude.Nothing,+ message = Prelude.Nothing,+ status = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | Configuration settings for how to perform the auto-merging of profiles.+getIdentityResolutionJobResponse_autoMerging :: Lens.Lens' GetIdentityResolutionJobResponse (Prelude.Maybe AutoMerging)+getIdentityResolutionJobResponse_autoMerging = Lens.lens (\GetIdentityResolutionJobResponse' {autoMerging} -> autoMerging) (\s@GetIdentityResolutionJobResponse' {} a -> s {autoMerging = a} :: GetIdentityResolutionJobResponse)++-- | The unique name of the domain.+getIdentityResolutionJobResponse_domainName :: Lens.Lens' GetIdentityResolutionJobResponse (Prelude.Maybe Prelude.Text)+getIdentityResolutionJobResponse_domainName = Lens.lens (\GetIdentityResolutionJobResponse' {domainName} -> domainName) (\s@GetIdentityResolutionJobResponse' {} a -> s {domainName = a} :: GetIdentityResolutionJobResponse)++-- | The S3 location where the Identity Resolution Job writes result files.+getIdentityResolutionJobResponse_exportingLocation :: Lens.Lens' GetIdentityResolutionJobResponse (Prelude.Maybe ExportingLocation)+getIdentityResolutionJobResponse_exportingLocation = Lens.lens (\GetIdentityResolutionJobResponse' {exportingLocation} -> exportingLocation) (\s@GetIdentityResolutionJobResponse' {} a -> s {exportingLocation = a} :: GetIdentityResolutionJobResponse)++-- | The timestamp of when the Identity Resolution Job was completed.+getIdentityResolutionJobResponse_jobEndTime :: Lens.Lens' GetIdentityResolutionJobResponse (Prelude.Maybe Prelude.UTCTime)+getIdentityResolutionJobResponse_jobEndTime = Lens.lens (\GetIdentityResolutionJobResponse' {jobEndTime} -> jobEndTime) (\s@GetIdentityResolutionJobResponse' {} a -> s {jobEndTime = a} :: GetIdentityResolutionJobResponse) Prelude.. Lens.mapping Data._Time++-- | The timestamp of when the Identity Resolution Job will expire.+getIdentityResolutionJobResponse_jobExpirationTime :: Lens.Lens' GetIdentityResolutionJobResponse (Prelude.Maybe Prelude.UTCTime)+getIdentityResolutionJobResponse_jobExpirationTime = Lens.lens (\GetIdentityResolutionJobResponse' {jobExpirationTime} -> jobExpirationTime) (\s@GetIdentityResolutionJobResponse' {} a -> s {jobExpirationTime = a} :: GetIdentityResolutionJobResponse) Prelude.. Lens.mapping Data._Time++-- | The unique identifier of the Identity Resolution Job.+getIdentityResolutionJobResponse_jobId :: Lens.Lens' GetIdentityResolutionJobResponse (Prelude.Maybe Prelude.Text)+getIdentityResolutionJobResponse_jobId = Lens.lens (\GetIdentityResolutionJobResponse' {jobId} -> jobId) (\s@GetIdentityResolutionJobResponse' {} a -> s {jobId = a} :: GetIdentityResolutionJobResponse)++-- | The timestamp of when the Identity Resolution Job was started or will be+-- started.+getIdentityResolutionJobResponse_jobStartTime :: Lens.Lens' GetIdentityResolutionJobResponse (Prelude.Maybe Prelude.UTCTime)+getIdentityResolutionJobResponse_jobStartTime = Lens.lens (\GetIdentityResolutionJobResponse' {jobStartTime} -> jobStartTime) (\s@GetIdentityResolutionJobResponse' {} a -> s {jobStartTime = a} :: GetIdentityResolutionJobResponse) Prelude.. Lens.mapping Data._Time++-- | Statistics about the Identity Resolution Job.+getIdentityResolutionJobResponse_jobStats :: Lens.Lens' GetIdentityResolutionJobResponse (Prelude.Maybe JobStats)+getIdentityResolutionJobResponse_jobStats = Lens.lens (\GetIdentityResolutionJobResponse' {jobStats} -> jobStats) (\s@GetIdentityResolutionJobResponse' {} a -> s {jobStats = a} :: GetIdentityResolutionJobResponse)++-- | The timestamp of when the Identity Resolution Job was most recently+-- edited.+getIdentityResolutionJobResponse_lastUpdatedAt :: Lens.Lens' GetIdentityResolutionJobResponse (Prelude.Maybe Prelude.UTCTime)+getIdentityResolutionJobResponse_lastUpdatedAt = Lens.lens (\GetIdentityResolutionJobResponse' {lastUpdatedAt} -> lastUpdatedAt) (\s@GetIdentityResolutionJobResponse' {} a -> s {lastUpdatedAt = a} :: GetIdentityResolutionJobResponse) Prelude.. Lens.mapping Data._Time++-- | The error messages that are generated when the Identity Resolution Job+-- runs.+getIdentityResolutionJobResponse_message :: Lens.Lens' GetIdentityResolutionJobResponse (Prelude.Maybe Prelude.Text)+getIdentityResolutionJobResponse_message = Lens.lens (\GetIdentityResolutionJobResponse' {message} -> message) (\s@GetIdentityResolutionJobResponse' {} a -> s {message = a} :: GetIdentityResolutionJobResponse)++-- | The status of the Identity Resolution Job.+--+-- - @PENDING@: The Identity Resolution Job is scheduled but has not+-- started yet. If you turn off the Identity Resolution feature in your+-- domain, jobs in the @PENDING@ state are deleted.+--+-- - @PREPROCESSING@: The Identity Resolution Job is loading your data.+--+-- - @FIND_MATCHING@: The Identity Resolution Job is using the machine+-- learning model to identify profiles that belong to the same matching+-- group.+--+-- - @MERGING@: The Identity Resolution Job is merging duplicate+-- profiles.+--+-- - @COMPLETED@: The Identity Resolution Job completed successfully.+--+-- - @PARTIAL_SUCCESS@: There\'s a system error and not all of the data+-- is merged. The Identity Resolution Job writes a message indicating+-- the source of the problem.+--+-- - @FAILED@: The Identity Resolution Job did not merge any data. It+-- writes a message indicating the source of the problem.+getIdentityResolutionJobResponse_status :: Lens.Lens' GetIdentityResolutionJobResponse (Prelude.Maybe IdentityResolutionJobStatus)+getIdentityResolutionJobResponse_status = Lens.lens (\GetIdentityResolutionJobResponse' {status} -> status) (\s@GetIdentityResolutionJobResponse' {} a -> s {status = a} :: GetIdentityResolutionJobResponse)++-- | The response's http status code.+getIdentityResolutionJobResponse_httpStatus :: Lens.Lens' GetIdentityResolutionJobResponse Prelude.Int+getIdentityResolutionJobResponse_httpStatus = Lens.lens (\GetIdentityResolutionJobResponse' {httpStatus} -> httpStatus) (\s@GetIdentityResolutionJobResponse' {} a -> s {httpStatus = a} :: GetIdentityResolutionJobResponse)++instance+ Prelude.NFData+ GetIdentityResolutionJobResponse+ where+ rnf GetIdentityResolutionJobResponse' {..} =+ Prelude.rnf autoMerging+ `Prelude.seq` Prelude.rnf domainName+ `Prelude.seq` Prelude.rnf exportingLocation+ `Prelude.seq` Prelude.rnf jobEndTime+ `Prelude.seq` Prelude.rnf jobExpirationTime+ `Prelude.seq` Prelude.rnf jobId+ `Prelude.seq` Prelude.rnf jobStartTime+ `Prelude.seq` Prelude.rnf jobStats+ `Prelude.seq` Prelude.rnf lastUpdatedAt+ `Prelude.seq` Prelude.rnf message+ `Prelude.seq` Prelude.rnf status+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/CustomerProfiles/GetIntegration.hs view
@@ -0,0 +1,320 @@+{-# 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.CustomerProfiles.GetIntegration+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns an integration for a domain.+module Amazonka.CustomerProfiles.GetIntegration+ ( -- * Creating a Request+ GetIntegration (..),+ newGetIntegration,++ -- * Request Lenses+ getIntegration_domainName,+ getIntegration_uri,++ -- * Destructuring the Response+ GetIntegrationResponse (..),+ newGetIntegrationResponse,++ -- * Response Lenses+ getIntegrationResponse_isUnstructured,+ getIntegrationResponse_objectTypeName,+ getIntegrationResponse_objectTypeNames,+ getIntegrationResponse_tags,+ getIntegrationResponse_workflowId,+ getIntegrationResponse_httpStatus,+ getIntegrationResponse_domainName,+ getIntegrationResponse_uri,+ getIntegrationResponse_createdAt,+ getIntegrationResponse_lastUpdatedAt,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CustomerProfiles.Types+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetIntegration' smart constructor.+data GetIntegration = GetIntegration'+ { -- | The unique name of the domain.+ domainName :: Prelude.Text,+ -- | The URI of the S3 bucket or any other type of data source.+ uri :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetIntegration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'domainName', 'getIntegration_domainName' - The unique name of the domain.+--+-- 'uri', 'getIntegration_uri' - The URI of the S3 bucket or any other type of data source.+newGetIntegration ::+ -- | 'domainName'+ Prelude.Text ->+ -- | 'uri'+ Prelude.Text ->+ GetIntegration+newGetIntegration pDomainName_ pUri_ =+ GetIntegration'+ { domainName = pDomainName_,+ uri = pUri_+ }++-- | The unique name of the domain.+getIntegration_domainName :: Lens.Lens' GetIntegration Prelude.Text+getIntegration_domainName = Lens.lens (\GetIntegration' {domainName} -> domainName) (\s@GetIntegration' {} a -> s {domainName = a} :: GetIntegration)++-- | The URI of the S3 bucket or any other type of data source.+getIntegration_uri :: Lens.Lens' GetIntegration Prelude.Text+getIntegration_uri = Lens.lens (\GetIntegration' {uri} -> uri) (\s@GetIntegration' {} a -> s {uri = a} :: GetIntegration)++instance Core.AWSRequest GetIntegration where+ type+ AWSResponse GetIntegration =+ GetIntegrationResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ GetIntegrationResponse'+ Prelude.<$> (x Data..?> "IsUnstructured")+ Prelude.<*> (x Data..?> "ObjectTypeName")+ Prelude.<*> ( x+ Data..?> "ObjectTypeNames"+ Core..!@ Prelude.mempty+ )+ Prelude.<*> (x Data..?> "Tags" Core..!@ Prelude.mempty)+ Prelude.<*> (x Data..?> "WorkflowId")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> (x Data..:> "DomainName")+ Prelude.<*> (x Data..:> "Uri")+ Prelude.<*> (x Data..:> "CreatedAt")+ Prelude.<*> (x Data..:> "LastUpdatedAt")+ )++instance Prelude.Hashable GetIntegration where+ hashWithSalt _salt GetIntegration' {..} =+ _salt+ `Prelude.hashWithSalt` domainName+ `Prelude.hashWithSalt` uri++instance Prelude.NFData GetIntegration where+ rnf GetIntegration' {..} =+ Prelude.rnf domainName+ `Prelude.seq` Prelude.rnf uri++instance Data.ToHeaders GetIntegration where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON GetIntegration where+ toJSON GetIntegration' {..} =+ Data.object+ ( Prelude.catMaybes+ [Prelude.Just ("Uri" Data..= uri)]+ )++instance Data.ToPath GetIntegration where+ toPath GetIntegration' {..} =+ Prelude.mconcat+ ["/domains/", Data.toBS domainName, "/integrations"]++instance Data.ToQuery GetIntegration where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetIntegrationResponse' smart constructor.+data GetIntegrationResponse = GetIntegrationResponse'+ { -- | Boolean to indicate if the Flow associated with the Integration is+ -- created via Appflow console or with ObjectTypeName equals _unstructured+ -- via API\/CLI in flowDefinition+ isUnstructured :: Prelude.Maybe Prelude.Bool,+ -- | The name of the profile object type.+ objectTypeName :: Prelude.Maybe Prelude.Text,+ -- | A map in which each key is an event type from an external application+ -- such as Segment or Shopify, and each value is an @ObjectTypeName@+ -- (template) used to ingest the event. It supports the following event+ -- types: @SegmentIdentify@, @ShopifyCreateCustomers@,+ -- @ShopifyUpdateCustomers@, @ShopifyCreateDraftOrders@,+ -- @ShopifyUpdateDraftOrders@, @ShopifyCreateOrders@, and+ -- @ShopifyUpdatedOrders@.+ objectTypeNames :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | The tags used to organize, track, or control access for this resource.+ tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | Unique identifier for the workflow.+ workflowId :: Prelude.Maybe Prelude.Text,+ -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | The unique name of the domain.+ domainName :: Prelude.Text,+ -- | The URI of the S3 bucket or any other type of data source.+ uri :: Prelude.Text,+ -- | The timestamp of when the domain was created.+ createdAt :: Data.POSIX,+ -- | The timestamp of when the domain was most recently edited.+ lastUpdatedAt :: Data.POSIX+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetIntegrationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'isUnstructured', 'getIntegrationResponse_isUnstructured' - Boolean to indicate if the Flow associated with the Integration is+-- created via Appflow console or with ObjectTypeName equals _unstructured+-- via API\/CLI in flowDefinition+--+-- 'objectTypeName', 'getIntegrationResponse_objectTypeName' - The name of the profile object type.+--+-- 'objectTypeNames', 'getIntegrationResponse_objectTypeNames' - A map in which each key is an event type from an external application+-- such as Segment or Shopify, and each value is an @ObjectTypeName@+-- (template) used to ingest the event. It supports the following event+-- types: @SegmentIdentify@, @ShopifyCreateCustomers@,+-- @ShopifyUpdateCustomers@, @ShopifyCreateDraftOrders@,+-- @ShopifyUpdateDraftOrders@, @ShopifyCreateOrders@, and+-- @ShopifyUpdatedOrders@.+--+-- 'tags', 'getIntegrationResponse_tags' - The tags used to organize, track, or control access for this resource.+--+-- 'workflowId', 'getIntegrationResponse_workflowId' - Unique identifier for the workflow.+--+-- 'httpStatus', 'getIntegrationResponse_httpStatus' - The response's http status code.+--+-- 'domainName', 'getIntegrationResponse_domainName' - The unique name of the domain.+--+-- 'uri', 'getIntegrationResponse_uri' - The URI of the S3 bucket or any other type of data source.+--+-- 'createdAt', 'getIntegrationResponse_createdAt' - The timestamp of when the domain was created.+--+-- 'lastUpdatedAt', 'getIntegrationResponse_lastUpdatedAt' - The timestamp of when the domain was most recently edited.+newGetIntegrationResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ -- | 'domainName'+ Prelude.Text ->+ -- | 'uri'+ Prelude.Text ->+ -- | 'createdAt'+ Prelude.UTCTime ->+ -- | 'lastUpdatedAt'+ Prelude.UTCTime ->+ GetIntegrationResponse+newGetIntegrationResponse+ pHttpStatus_+ pDomainName_+ pUri_+ pCreatedAt_+ pLastUpdatedAt_ =+ GetIntegrationResponse'+ { isUnstructured =+ Prelude.Nothing,+ objectTypeName = Prelude.Nothing,+ objectTypeNames = Prelude.Nothing,+ tags = Prelude.Nothing,+ workflowId = Prelude.Nothing,+ httpStatus = pHttpStatus_,+ domainName = pDomainName_,+ uri = pUri_,+ createdAt = Data._Time Lens.# pCreatedAt_,+ lastUpdatedAt = Data._Time Lens.# pLastUpdatedAt_+ }++-- | Boolean to indicate if the Flow associated with the Integration is+-- created via Appflow console or with ObjectTypeName equals _unstructured+-- via API\/CLI in flowDefinition+getIntegrationResponse_isUnstructured :: Lens.Lens' GetIntegrationResponse (Prelude.Maybe Prelude.Bool)+getIntegrationResponse_isUnstructured = Lens.lens (\GetIntegrationResponse' {isUnstructured} -> isUnstructured) (\s@GetIntegrationResponse' {} a -> s {isUnstructured = a} :: GetIntegrationResponse)++-- | The name of the profile object type.+getIntegrationResponse_objectTypeName :: Lens.Lens' GetIntegrationResponse (Prelude.Maybe Prelude.Text)+getIntegrationResponse_objectTypeName = Lens.lens (\GetIntegrationResponse' {objectTypeName} -> objectTypeName) (\s@GetIntegrationResponse' {} a -> s {objectTypeName = a} :: GetIntegrationResponse)++-- | A map in which each key is an event type from an external application+-- such as Segment or Shopify, and each value is an @ObjectTypeName@+-- (template) used to ingest the event. It supports the following event+-- types: @SegmentIdentify@, @ShopifyCreateCustomers@,+-- @ShopifyUpdateCustomers@, @ShopifyCreateDraftOrders@,+-- @ShopifyUpdateDraftOrders@, @ShopifyCreateOrders@, and+-- @ShopifyUpdatedOrders@.+getIntegrationResponse_objectTypeNames :: Lens.Lens' GetIntegrationResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+getIntegrationResponse_objectTypeNames = Lens.lens (\GetIntegrationResponse' {objectTypeNames} -> objectTypeNames) (\s@GetIntegrationResponse' {} a -> s {objectTypeNames = a} :: GetIntegrationResponse) Prelude.. Lens.mapping Lens.coerced++-- | The tags used to organize, track, or control access for this resource.+getIntegrationResponse_tags :: Lens.Lens' GetIntegrationResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+getIntegrationResponse_tags = Lens.lens (\GetIntegrationResponse' {tags} -> tags) (\s@GetIntegrationResponse' {} a -> s {tags = a} :: GetIntegrationResponse) Prelude.. Lens.mapping Lens.coerced++-- | Unique identifier for the workflow.+getIntegrationResponse_workflowId :: Lens.Lens' GetIntegrationResponse (Prelude.Maybe Prelude.Text)+getIntegrationResponse_workflowId = Lens.lens (\GetIntegrationResponse' {workflowId} -> workflowId) (\s@GetIntegrationResponse' {} a -> s {workflowId = a} :: GetIntegrationResponse)++-- | The response's http status code.+getIntegrationResponse_httpStatus :: Lens.Lens' GetIntegrationResponse Prelude.Int+getIntegrationResponse_httpStatus = Lens.lens (\GetIntegrationResponse' {httpStatus} -> httpStatus) (\s@GetIntegrationResponse' {} a -> s {httpStatus = a} :: GetIntegrationResponse)++-- | The unique name of the domain.+getIntegrationResponse_domainName :: Lens.Lens' GetIntegrationResponse Prelude.Text+getIntegrationResponse_domainName = Lens.lens (\GetIntegrationResponse' {domainName} -> domainName) (\s@GetIntegrationResponse' {} a -> s {domainName = a} :: GetIntegrationResponse)++-- | The URI of the S3 bucket or any other type of data source.+getIntegrationResponse_uri :: Lens.Lens' GetIntegrationResponse Prelude.Text+getIntegrationResponse_uri = Lens.lens (\GetIntegrationResponse' {uri} -> uri) (\s@GetIntegrationResponse' {} a -> s {uri = a} :: GetIntegrationResponse)++-- | The timestamp of when the domain was created.+getIntegrationResponse_createdAt :: Lens.Lens' GetIntegrationResponse Prelude.UTCTime+getIntegrationResponse_createdAt = Lens.lens (\GetIntegrationResponse' {createdAt} -> createdAt) (\s@GetIntegrationResponse' {} a -> s {createdAt = a} :: GetIntegrationResponse) Prelude.. Data._Time++-- | The timestamp of when the domain was most recently edited.+getIntegrationResponse_lastUpdatedAt :: Lens.Lens' GetIntegrationResponse Prelude.UTCTime+getIntegrationResponse_lastUpdatedAt = Lens.lens (\GetIntegrationResponse' {lastUpdatedAt} -> lastUpdatedAt) (\s@GetIntegrationResponse' {} a -> s {lastUpdatedAt = a} :: GetIntegrationResponse) Prelude.. Data._Time++instance Prelude.NFData GetIntegrationResponse where+ rnf GetIntegrationResponse' {..} =+ Prelude.rnf isUnstructured+ `Prelude.seq` Prelude.rnf objectTypeName+ `Prelude.seq` Prelude.rnf objectTypeNames+ `Prelude.seq` Prelude.rnf tags+ `Prelude.seq` Prelude.rnf workflowId+ `Prelude.seq` Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf domainName+ `Prelude.seq` Prelude.rnf uri+ `Prelude.seq` Prelude.rnf createdAt+ `Prelude.seq` Prelude.rnf lastUpdatedAt
+ gen/Amazonka/CustomerProfiles/GetMatches.hs view
@@ -0,0 +1,279 @@+{-# 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.CustomerProfiles.GetMatches+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Before calling this API, use+-- <https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_CreateDomain.html CreateDomain>+-- or+-- <https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_UpdateDomain.html UpdateDomain>+-- to enable identity resolution: set @Matching@ to true.+--+-- GetMatches returns potentially matching profiles, based on the results+-- of the latest run of a machine learning process.+--+-- The process of matching duplicate profiles. If @Matching@ = @true@,+-- Amazon Connect Customer Profiles starts a weekly batch process called+-- Identity Resolution Job. If you do not specify a date and time for+-- Identity Resolution Job to run, by default it runs every Saturday at+-- 12AM UTC to detect duplicate profiles in your domains.+--+-- After the Identity Resolution Job completes, use the+-- <https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_GetMatches.html GetMatches>+-- API to return and review the results. Or, if you have configured+-- @ExportingConfig@ in the @MatchingRequest@, you can download the results+-- from S3.+--+-- Amazon Connect uses the following profile attributes to identify+-- matches:+--+-- - PhoneNumber+--+-- - HomePhoneNumber+--+-- - BusinessPhoneNumber+--+-- - MobilePhoneNumber+--+-- - EmailAddress+--+-- - PersonalEmailAddress+--+-- - BusinessEmailAddress+--+-- - FullName+--+-- For example, two or more profiles—with spelling mistakes such as __John+-- Doe__ and __Jhn Doe__, or different casing email addresses such as+-- __JOHN_DOE\@ANYCOMPANY.COM__ and __johndoe\@anycompany.com__, or+-- different phone number formats such as __555-010-0000__ and+-- __+1-555-010-0000__—can be detected as belonging to the same customer+-- __John Doe__ and merged into a unified profile.+module Amazonka.CustomerProfiles.GetMatches+ ( -- * Creating a Request+ GetMatches (..),+ newGetMatches,++ -- * Request Lenses+ getMatches_maxResults,+ getMatches_nextToken,+ getMatches_domainName,++ -- * Destructuring the Response+ GetMatchesResponse (..),+ newGetMatchesResponse,++ -- * Response Lenses+ getMatchesResponse_matchGenerationDate,+ getMatchesResponse_matches,+ getMatchesResponse_nextToken,+ getMatchesResponse_potentialMatches,+ getMatchesResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CustomerProfiles.Types+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetMatches' smart constructor.+data GetMatches = GetMatches'+ { -- | The maximum number of results to return per page.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | The token for the next set of results. Use the value returned in the+ -- previous response in the next request to retrieve the next set of+ -- results.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The unique name of the domain.+ domainName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetMatches' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'maxResults', 'getMatches_maxResults' - The maximum number of results to return per page.+--+-- 'nextToken', 'getMatches_nextToken' - The token for the next set of results. Use the value returned in the+-- previous response in the next request to retrieve the next set of+-- results.+--+-- 'domainName', 'getMatches_domainName' - The unique name of the domain.+newGetMatches ::+ -- | 'domainName'+ Prelude.Text ->+ GetMatches+newGetMatches pDomainName_ =+ GetMatches'+ { maxResults = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ domainName = pDomainName_+ }++-- | The maximum number of results to return per page.+getMatches_maxResults :: Lens.Lens' GetMatches (Prelude.Maybe Prelude.Natural)+getMatches_maxResults = Lens.lens (\GetMatches' {maxResults} -> maxResults) (\s@GetMatches' {} a -> s {maxResults = a} :: GetMatches)++-- | The token for the next set of results. Use the value returned in the+-- previous response in the next request to retrieve the next set of+-- results.+getMatches_nextToken :: Lens.Lens' GetMatches (Prelude.Maybe Prelude.Text)+getMatches_nextToken = Lens.lens (\GetMatches' {nextToken} -> nextToken) (\s@GetMatches' {} a -> s {nextToken = a} :: GetMatches)++-- | The unique name of the domain.+getMatches_domainName :: Lens.Lens' GetMatches Prelude.Text+getMatches_domainName = Lens.lens (\GetMatches' {domainName} -> domainName) (\s@GetMatches' {} a -> s {domainName = a} :: GetMatches)++instance Core.AWSRequest GetMatches where+ type AWSResponse GetMatches = GetMatchesResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ GetMatchesResponse'+ Prelude.<$> (x Data..?> "MatchGenerationDate")+ Prelude.<*> (x Data..?> "Matches" Core..!@ Prelude.mempty)+ Prelude.<*> (x Data..?> "NextToken")+ Prelude.<*> (x Data..?> "PotentialMatches")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable GetMatches where+ hashWithSalt _salt GetMatches' {..} =+ _salt+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` domainName++instance Prelude.NFData GetMatches where+ rnf GetMatches' {..} =+ Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf domainName++instance Data.ToHeaders GetMatches where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath GetMatches where+ toPath GetMatches' {..} =+ Prelude.mconcat+ ["/domains/", Data.toBS domainName, "/matches"]++instance Data.ToQuery GetMatches where+ toQuery GetMatches' {..} =+ Prelude.mconcat+ [ "max-results" Data.=: maxResults,+ "next-token" Data.=: nextToken+ ]++-- | /See:/ 'newGetMatchesResponse' smart constructor.+data GetMatchesResponse = GetMatchesResponse'+ { -- | The timestamp this version of Match Result generated.+ matchGenerationDate :: Prelude.Maybe Data.POSIX,+ -- | The list of matched profiles for this instance.+ matches :: Prelude.Maybe [MatchItem],+ -- | If there are additional results, this is the token for the next set of+ -- results.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The number of potential matches found.+ potentialMatches :: Prelude.Maybe Prelude.Natural,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetMatchesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'matchGenerationDate', 'getMatchesResponse_matchGenerationDate' - The timestamp this version of Match Result generated.+--+-- 'matches', 'getMatchesResponse_matches' - The list of matched profiles for this instance.+--+-- 'nextToken', 'getMatchesResponse_nextToken' - If there are additional results, this is the token for the next set of+-- results.+--+-- 'potentialMatches', 'getMatchesResponse_potentialMatches' - The number of potential matches found.+--+-- 'httpStatus', 'getMatchesResponse_httpStatus' - The response's http status code.+newGetMatchesResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ GetMatchesResponse+newGetMatchesResponse pHttpStatus_ =+ GetMatchesResponse'+ { matchGenerationDate =+ Prelude.Nothing,+ matches = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ potentialMatches = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The timestamp this version of Match Result generated.+getMatchesResponse_matchGenerationDate :: Lens.Lens' GetMatchesResponse (Prelude.Maybe Prelude.UTCTime)+getMatchesResponse_matchGenerationDate = Lens.lens (\GetMatchesResponse' {matchGenerationDate} -> matchGenerationDate) (\s@GetMatchesResponse' {} a -> s {matchGenerationDate = a} :: GetMatchesResponse) Prelude.. Lens.mapping Data._Time++-- | The list of matched profiles for this instance.+getMatchesResponse_matches :: Lens.Lens' GetMatchesResponse (Prelude.Maybe [MatchItem])+getMatchesResponse_matches = Lens.lens (\GetMatchesResponse' {matches} -> matches) (\s@GetMatchesResponse' {} a -> s {matches = a} :: GetMatchesResponse) Prelude.. Lens.mapping Lens.coerced++-- | If there are additional results, this is the token for the next set of+-- results.+getMatchesResponse_nextToken :: Lens.Lens' GetMatchesResponse (Prelude.Maybe Prelude.Text)+getMatchesResponse_nextToken = Lens.lens (\GetMatchesResponse' {nextToken} -> nextToken) (\s@GetMatchesResponse' {} a -> s {nextToken = a} :: GetMatchesResponse)++-- | The number of potential matches found.+getMatchesResponse_potentialMatches :: Lens.Lens' GetMatchesResponse (Prelude.Maybe Prelude.Natural)+getMatchesResponse_potentialMatches = Lens.lens (\GetMatchesResponse' {potentialMatches} -> potentialMatches) (\s@GetMatchesResponse' {} a -> s {potentialMatches = a} :: GetMatchesResponse)++-- | The response's http status code.+getMatchesResponse_httpStatus :: Lens.Lens' GetMatchesResponse Prelude.Int+getMatchesResponse_httpStatus = Lens.lens (\GetMatchesResponse' {httpStatus} -> httpStatus) (\s@GetMatchesResponse' {} a -> s {httpStatus = a} :: GetMatchesResponse)++instance Prelude.NFData GetMatchesResponse where+ rnf GetMatchesResponse' {..} =+ Prelude.rnf matchGenerationDate+ `Prelude.seq` Prelude.rnf matches+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf potentialMatches+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/CustomerProfiles/GetProfileObjectType.hs view
@@ -0,0 +1,342 @@+{-# 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.CustomerProfiles.GetProfileObjectType+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns the object types for a specific domain.+module Amazonka.CustomerProfiles.GetProfileObjectType+ ( -- * Creating a Request+ GetProfileObjectType (..),+ newGetProfileObjectType,++ -- * Request Lenses+ getProfileObjectType_domainName,+ getProfileObjectType_objectTypeName,++ -- * Destructuring the Response+ GetProfileObjectTypeResponse (..),+ newGetProfileObjectTypeResponse,++ -- * Response Lenses+ getProfileObjectTypeResponse_allowProfileCreation,+ getProfileObjectTypeResponse_createdAt,+ getProfileObjectTypeResponse_encryptionKey,+ getProfileObjectTypeResponse_expirationDays,+ getProfileObjectTypeResponse_fields,+ getProfileObjectTypeResponse_keys,+ getProfileObjectTypeResponse_lastUpdatedAt,+ getProfileObjectTypeResponse_sourceLastUpdatedTimestampFormat,+ getProfileObjectTypeResponse_tags,+ getProfileObjectTypeResponse_templateId,+ getProfileObjectTypeResponse_httpStatus,+ getProfileObjectTypeResponse_objectTypeName,+ getProfileObjectTypeResponse_description,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CustomerProfiles.Types+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetProfileObjectType' smart constructor.+data GetProfileObjectType = GetProfileObjectType'+ { -- | The unique name of the domain.+ domainName :: Prelude.Text,+ -- | The name of the profile object type.+ objectTypeName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetProfileObjectType' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'domainName', 'getProfileObjectType_domainName' - The unique name of the domain.+--+-- 'objectTypeName', 'getProfileObjectType_objectTypeName' - The name of the profile object type.+newGetProfileObjectType ::+ -- | 'domainName'+ Prelude.Text ->+ -- | 'objectTypeName'+ Prelude.Text ->+ GetProfileObjectType+newGetProfileObjectType pDomainName_ pObjectTypeName_ =+ GetProfileObjectType'+ { domainName = pDomainName_,+ objectTypeName = pObjectTypeName_+ }++-- | The unique name of the domain.+getProfileObjectType_domainName :: Lens.Lens' GetProfileObjectType Prelude.Text+getProfileObjectType_domainName = Lens.lens (\GetProfileObjectType' {domainName} -> domainName) (\s@GetProfileObjectType' {} a -> s {domainName = a} :: GetProfileObjectType)++-- | The name of the profile object type.+getProfileObjectType_objectTypeName :: Lens.Lens' GetProfileObjectType Prelude.Text+getProfileObjectType_objectTypeName = Lens.lens (\GetProfileObjectType' {objectTypeName} -> objectTypeName) (\s@GetProfileObjectType' {} a -> s {objectTypeName = a} :: GetProfileObjectType)++instance Core.AWSRequest GetProfileObjectType where+ type+ AWSResponse GetProfileObjectType =+ GetProfileObjectTypeResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ GetProfileObjectTypeResponse'+ Prelude.<$> (x Data..?> "AllowProfileCreation")+ Prelude.<*> (x Data..?> "CreatedAt")+ Prelude.<*> (x Data..?> "EncryptionKey")+ Prelude.<*> (x Data..?> "ExpirationDays")+ Prelude.<*> (x Data..?> "Fields" Core..!@ Prelude.mempty)+ Prelude.<*> (x Data..?> "Keys" Core..!@ Prelude.mempty)+ Prelude.<*> (x Data..?> "LastUpdatedAt")+ Prelude.<*> (x Data..?> "SourceLastUpdatedTimestampFormat")+ Prelude.<*> (x Data..?> "Tags" Core..!@ Prelude.mempty)+ Prelude.<*> (x Data..?> "TemplateId")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> (x Data..:> "ObjectTypeName")+ Prelude.<*> (x Data..:> "Description")+ )++instance Prelude.Hashable GetProfileObjectType where+ hashWithSalt _salt GetProfileObjectType' {..} =+ _salt+ `Prelude.hashWithSalt` domainName+ `Prelude.hashWithSalt` objectTypeName++instance Prelude.NFData GetProfileObjectType where+ rnf GetProfileObjectType' {..} =+ Prelude.rnf domainName+ `Prelude.seq` Prelude.rnf objectTypeName++instance Data.ToHeaders GetProfileObjectType where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath GetProfileObjectType where+ toPath GetProfileObjectType' {..} =+ Prelude.mconcat+ [ "/domains/",+ Data.toBS domainName,+ "/object-types/",+ Data.toBS objectTypeName+ ]++instance Data.ToQuery GetProfileObjectType where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetProfileObjectTypeResponse' smart constructor.+data GetProfileObjectTypeResponse = GetProfileObjectTypeResponse'+ { -- | Indicates whether a profile should be created when data is received if+ -- one doesn’t exist for an object of this type. The default is @FALSE@. If+ -- the AllowProfileCreation flag is set to @FALSE@, then the service tries+ -- to fetch a standard profile and associate this object with the profile.+ -- If it is set to @TRUE@, and if no match is found, then the service+ -- creates a new standard profile.+ allowProfileCreation :: Prelude.Maybe Prelude.Bool,+ -- | The timestamp of when the domain was created.+ createdAt :: Prelude.Maybe Data.POSIX,+ -- | The customer-provided key to encrypt the profile object that will be+ -- created in this profile object type.+ encryptionKey :: Prelude.Maybe Prelude.Text,+ -- | The number of days until the data in the object expires.+ expirationDays :: Prelude.Maybe Prelude.Natural,+ -- | A map of the name and ObjectType field.+ fields :: Prelude.Maybe (Prelude.HashMap Prelude.Text ObjectTypeField),+ -- | A list of unique keys that can be used to map data to the profile.+ keys :: Prelude.Maybe (Prelude.HashMap Prelude.Text [ObjectTypeKey]),+ -- | The timestamp of when the domain was most recently edited.+ lastUpdatedAt :: Prelude.Maybe Data.POSIX,+ -- | The format of your @sourceLastUpdatedTimestamp@ that was previously set+ -- up.+ sourceLastUpdatedTimestampFormat :: Prelude.Maybe Prelude.Text,+ -- | The tags used to organize, track, or control access for this resource.+ tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | A unique identifier for the object template.+ templateId :: Prelude.Maybe Prelude.Text,+ -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | The name of the profile object type.+ objectTypeName :: Prelude.Text,+ -- | The description of the profile object type.+ description :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetProfileObjectTypeResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'allowProfileCreation', 'getProfileObjectTypeResponse_allowProfileCreation' - Indicates whether a profile should be created when data is received if+-- one doesn’t exist for an object of this type. The default is @FALSE@. If+-- the AllowProfileCreation flag is set to @FALSE@, then the service tries+-- to fetch a standard profile and associate this object with the profile.+-- If it is set to @TRUE@, and if no match is found, then the service+-- creates a new standard profile.+--+-- 'createdAt', 'getProfileObjectTypeResponse_createdAt' - The timestamp of when the domain was created.+--+-- 'encryptionKey', 'getProfileObjectTypeResponse_encryptionKey' - The customer-provided key to encrypt the profile object that will be+-- created in this profile object type.+--+-- 'expirationDays', 'getProfileObjectTypeResponse_expirationDays' - The number of days until the data in the object expires.+--+-- 'fields', 'getProfileObjectTypeResponse_fields' - A map of the name and ObjectType field.+--+-- 'keys', 'getProfileObjectTypeResponse_keys' - A list of unique keys that can be used to map data to the profile.+--+-- 'lastUpdatedAt', 'getProfileObjectTypeResponse_lastUpdatedAt' - The timestamp of when the domain was most recently edited.+--+-- 'sourceLastUpdatedTimestampFormat', 'getProfileObjectTypeResponse_sourceLastUpdatedTimestampFormat' - The format of your @sourceLastUpdatedTimestamp@ that was previously set+-- up.+--+-- 'tags', 'getProfileObjectTypeResponse_tags' - The tags used to organize, track, or control access for this resource.+--+-- 'templateId', 'getProfileObjectTypeResponse_templateId' - A unique identifier for the object template.+--+-- 'httpStatus', 'getProfileObjectTypeResponse_httpStatus' - The response's http status code.+--+-- 'objectTypeName', 'getProfileObjectTypeResponse_objectTypeName' - The name of the profile object type.+--+-- 'description', 'getProfileObjectTypeResponse_description' - The description of the profile object type.+newGetProfileObjectTypeResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ -- | 'objectTypeName'+ Prelude.Text ->+ -- | 'description'+ Prelude.Text ->+ GetProfileObjectTypeResponse+newGetProfileObjectTypeResponse+ pHttpStatus_+ pObjectTypeName_+ pDescription_ =+ GetProfileObjectTypeResponse'+ { allowProfileCreation =+ Prelude.Nothing,+ createdAt = Prelude.Nothing,+ encryptionKey = Prelude.Nothing,+ expirationDays = Prelude.Nothing,+ fields = Prelude.Nothing,+ keys = Prelude.Nothing,+ lastUpdatedAt = Prelude.Nothing,+ sourceLastUpdatedTimestampFormat =+ Prelude.Nothing,+ tags = Prelude.Nothing,+ templateId = Prelude.Nothing,+ httpStatus = pHttpStatus_,+ objectTypeName = pObjectTypeName_,+ description = pDescription_+ }++-- | Indicates whether a profile should be created when data is received if+-- one doesn’t exist for an object of this type. The default is @FALSE@. If+-- the AllowProfileCreation flag is set to @FALSE@, then the service tries+-- to fetch a standard profile and associate this object with the profile.+-- If it is set to @TRUE@, and if no match is found, then the service+-- creates a new standard profile.+getProfileObjectTypeResponse_allowProfileCreation :: Lens.Lens' GetProfileObjectTypeResponse (Prelude.Maybe Prelude.Bool)+getProfileObjectTypeResponse_allowProfileCreation = Lens.lens (\GetProfileObjectTypeResponse' {allowProfileCreation} -> allowProfileCreation) (\s@GetProfileObjectTypeResponse' {} a -> s {allowProfileCreation = a} :: GetProfileObjectTypeResponse)++-- | The timestamp of when the domain was created.+getProfileObjectTypeResponse_createdAt :: Lens.Lens' GetProfileObjectTypeResponse (Prelude.Maybe Prelude.UTCTime)+getProfileObjectTypeResponse_createdAt = Lens.lens (\GetProfileObjectTypeResponse' {createdAt} -> createdAt) (\s@GetProfileObjectTypeResponse' {} a -> s {createdAt = a} :: GetProfileObjectTypeResponse) Prelude.. Lens.mapping Data._Time++-- | The customer-provided key to encrypt the profile object that will be+-- created in this profile object type.+getProfileObjectTypeResponse_encryptionKey :: Lens.Lens' GetProfileObjectTypeResponse (Prelude.Maybe Prelude.Text)+getProfileObjectTypeResponse_encryptionKey = Lens.lens (\GetProfileObjectTypeResponse' {encryptionKey} -> encryptionKey) (\s@GetProfileObjectTypeResponse' {} a -> s {encryptionKey = a} :: GetProfileObjectTypeResponse)++-- | The number of days until the data in the object expires.+getProfileObjectTypeResponse_expirationDays :: Lens.Lens' GetProfileObjectTypeResponse (Prelude.Maybe Prelude.Natural)+getProfileObjectTypeResponse_expirationDays = Lens.lens (\GetProfileObjectTypeResponse' {expirationDays} -> expirationDays) (\s@GetProfileObjectTypeResponse' {} a -> s {expirationDays = a} :: GetProfileObjectTypeResponse)++-- | A map of the name and ObjectType field.+getProfileObjectTypeResponse_fields :: Lens.Lens' GetProfileObjectTypeResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text ObjectTypeField))+getProfileObjectTypeResponse_fields = Lens.lens (\GetProfileObjectTypeResponse' {fields} -> fields) (\s@GetProfileObjectTypeResponse' {} a -> s {fields = a} :: GetProfileObjectTypeResponse) Prelude.. Lens.mapping Lens.coerced++-- | A list of unique keys that can be used to map data to the profile.+getProfileObjectTypeResponse_keys :: Lens.Lens' GetProfileObjectTypeResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text [ObjectTypeKey]))+getProfileObjectTypeResponse_keys = Lens.lens (\GetProfileObjectTypeResponse' {keys} -> keys) (\s@GetProfileObjectTypeResponse' {} a -> s {keys = a} :: GetProfileObjectTypeResponse) Prelude.. Lens.mapping Lens.coerced++-- | The timestamp of when the domain was most recently edited.+getProfileObjectTypeResponse_lastUpdatedAt :: Lens.Lens' GetProfileObjectTypeResponse (Prelude.Maybe Prelude.UTCTime)+getProfileObjectTypeResponse_lastUpdatedAt = Lens.lens (\GetProfileObjectTypeResponse' {lastUpdatedAt} -> lastUpdatedAt) (\s@GetProfileObjectTypeResponse' {} a -> s {lastUpdatedAt = a} :: GetProfileObjectTypeResponse) Prelude.. Lens.mapping Data._Time++-- | The format of your @sourceLastUpdatedTimestamp@ that was previously set+-- up.+getProfileObjectTypeResponse_sourceLastUpdatedTimestampFormat :: Lens.Lens' GetProfileObjectTypeResponse (Prelude.Maybe Prelude.Text)+getProfileObjectTypeResponse_sourceLastUpdatedTimestampFormat = Lens.lens (\GetProfileObjectTypeResponse' {sourceLastUpdatedTimestampFormat} -> sourceLastUpdatedTimestampFormat) (\s@GetProfileObjectTypeResponse' {} a -> s {sourceLastUpdatedTimestampFormat = a} :: GetProfileObjectTypeResponse)++-- | The tags used to organize, track, or control access for this resource.+getProfileObjectTypeResponse_tags :: Lens.Lens' GetProfileObjectTypeResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+getProfileObjectTypeResponse_tags = Lens.lens (\GetProfileObjectTypeResponse' {tags} -> tags) (\s@GetProfileObjectTypeResponse' {} a -> s {tags = a} :: GetProfileObjectTypeResponse) Prelude.. Lens.mapping Lens.coerced++-- | A unique identifier for the object template.+getProfileObjectTypeResponse_templateId :: Lens.Lens' GetProfileObjectTypeResponse (Prelude.Maybe Prelude.Text)+getProfileObjectTypeResponse_templateId = Lens.lens (\GetProfileObjectTypeResponse' {templateId} -> templateId) (\s@GetProfileObjectTypeResponse' {} a -> s {templateId = a} :: GetProfileObjectTypeResponse)++-- | The response's http status code.+getProfileObjectTypeResponse_httpStatus :: Lens.Lens' GetProfileObjectTypeResponse Prelude.Int+getProfileObjectTypeResponse_httpStatus = Lens.lens (\GetProfileObjectTypeResponse' {httpStatus} -> httpStatus) (\s@GetProfileObjectTypeResponse' {} a -> s {httpStatus = a} :: GetProfileObjectTypeResponse)++-- | The name of the profile object type.+getProfileObjectTypeResponse_objectTypeName :: Lens.Lens' GetProfileObjectTypeResponse Prelude.Text+getProfileObjectTypeResponse_objectTypeName = Lens.lens (\GetProfileObjectTypeResponse' {objectTypeName} -> objectTypeName) (\s@GetProfileObjectTypeResponse' {} a -> s {objectTypeName = a} :: GetProfileObjectTypeResponse)++-- | The description of the profile object type.+getProfileObjectTypeResponse_description :: Lens.Lens' GetProfileObjectTypeResponse Prelude.Text+getProfileObjectTypeResponse_description = Lens.lens (\GetProfileObjectTypeResponse' {description} -> description) (\s@GetProfileObjectTypeResponse' {} a -> s {description = a} :: GetProfileObjectTypeResponse)++instance Prelude.NFData GetProfileObjectTypeResponse where+ rnf GetProfileObjectTypeResponse' {..} =+ Prelude.rnf allowProfileCreation+ `Prelude.seq` Prelude.rnf createdAt+ `Prelude.seq` Prelude.rnf encryptionKey+ `Prelude.seq` Prelude.rnf expirationDays+ `Prelude.seq` Prelude.rnf fields+ `Prelude.seq` Prelude.rnf keys+ `Prelude.seq` Prelude.rnf lastUpdatedAt+ `Prelude.seq` Prelude.rnf sourceLastUpdatedTimestampFormat+ `Prelude.seq` Prelude.rnf tags+ `Prelude.seq` Prelude.rnf templateId+ `Prelude.seq` Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf objectTypeName+ `Prelude.seq` Prelude.rnf description
+ gen/Amazonka/CustomerProfiles/GetProfileObjectTypeTemplate.hs view
@@ -0,0 +1,266 @@+{-# 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.CustomerProfiles.GetProfileObjectTypeTemplate+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns the template information for a specific object type.+--+-- A template is a predefined ProfileObjectType, such as+-- “Salesforce-Account” or “Salesforce-Contact.” When a user sends a+-- ProfileObject, using the PutProfileObject API, with an ObjectTypeName+-- that matches one of the TemplateIds, it uses the mappings from the+-- template.+module Amazonka.CustomerProfiles.GetProfileObjectTypeTemplate+ ( -- * Creating a Request+ GetProfileObjectTypeTemplate (..),+ newGetProfileObjectTypeTemplate,++ -- * Request Lenses+ getProfileObjectTypeTemplate_templateId,++ -- * Destructuring the Response+ GetProfileObjectTypeTemplateResponse (..),+ newGetProfileObjectTypeTemplateResponse,++ -- * Response Lenses+ getProfileObjectTypeTemplateResponse_allowProfileCreation,+ getProfileObjectTypeTemplateResponse_fields,+ getProfileObjectTypeTemplateResponse_keys,+ getProfileObjectTypeTemplateResponse_sourceLastUpdatedTimestampFormat,+ getProfileObjectTypeTemplateResponse_sourceName,+ getProfileObjectTypeTemplateResponse_sourceObject,+ getProfileObjectTypeTemplateResponse_templateId,+ getProfileObjectTypeTemplateResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CustomerProfiles.Types+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetProfileObjectTypeTemplate' smart constructor.+data GetProfileObjectTypeTemplate = GetProfileObjectTypeTemplate'+ { -- | A unique identifier for the object template.+ templateId :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetProfileObjectTypeTemplate' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'templateId', 'getProfileObjectTypeTemplate_templateId' - A unique identifier for the object template.+newGetProfileObjectTypeTemplate ::+ -- | 'templateId'+ Prelude.Text ->+ GetProfileObjectTypeTemplate+newGetProfileObjectTypeTemplate pTemplateId_ =+ GetProfileObjectTypeTemplate'+ { templateId =+ pTemplateId_+ }++-- | A unique identifier for the object template.+getProfileObjectTypeTemplate_templateId :: Lens.Lens' GetProfileObjectTypeTemplate Prelude.Text+getProfileObjectTypeTemplate_templateId = Lens.lens (\GetProfileObjectTypeTemplate' {templateId} -> templateId) (\s@GetProfileObjectTypeTemplate' {} a -> s {templateId = a} :: GetProfileObjectTypeTemplate)++instance Core.AWSRequest GetProfileObjectTypeTemplate where+ type+ AWSResponse GetProfileObjectTypeTemplate =+ GetProfileObjectTypeTemplateResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ GetProfileObjectTypeTemplateResponse'+ Prelude.<$> (x Data..?> "AllowProfileCreation")+ Prelude.<*> (x Data..?> "Fields" Core..!@ Prelude.mempty)+ Prelude.<*> (x Data..?> "Keys" Core..!@ Prelude.mempty)+ Prelude.<*> (x Data..?> "SourceLastUpdatedTimestampFormat")+ Prelude.<*> (x Data..?> "SourceName")+ Prelude.<*> (x Data..?> "SourceObject")+ Prelude.<*> (x Data..?> "TemplateId")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance+ Prelude.Hashable+ GetProfileObjectTypeTemplate+ where+ hashWithSalt _salt GetProfileObjectTypeTemplate' {..} =+ _salt `Prelude.hashWithSalt` templateId++instance Prelude.NFData GetProfileObjectTypeTemplate where+ rnf GetProfileObjectTypeTemplate' {..} =+ Prelude.rnf templateId++instance Data.ToHeaders GetProfileObjectTypeTemplate where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath GetProfileObjectTypeTemplate where+ toPath GetProfileObjectTypeTemplate' {..} =+ Prelude.mconcat+ ["/templates/", Data.toBS templateId]++instance Data.ToQuery GetProfileObjectTypeTemplate where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetProfileObjectTypeTemplateResponse' smart constructor.+data GetProfileObjectTypeTemplateResponse = GetProfileObjectTypeTemplateResponse'+ { -- | Indicates whether a profile should be created when data is received if+ -- one doesn’t exist for an object of this type. The default is @FALSE@. If+ -- the AllowProfileCreation flag is set to @FALSE@, then the service tries+ -- to fetch a standard profile and associate this object with the profile.+ -- If it is set to @TRUE@, and if no match is found, then the service+ -- creates a new standard profile.+ allowProfileCreation :: Prelude.Maybe Prelude.Bool,+ -- | A map of the name and ObjectType field.+ fields :: Prelude.Maybe (Prelude.HashMap Prelude.Text ObjectTypeField),+ -- | A list of unique keys that can be used to map data to the profile.+ keys :: Prelude.Maybe (Prelude.HashMap Prelude.Text [ObjectTypeKey]),+ -- | The format of your @sourceLastUpdatedTimestamp@ that was previously set+ -- up.+ sourceLastUpdatedTimestampFormat :: Prelude.Maybe Prelude.Text,+ -- | The name of the source of the object template.+ sourceName :: Prelude.Maybe Prelude.Text,+ -- | The source of the object template.+ sourceObject :: Prelude.Maybe Prelude.Text,+ -- | A unique identifier for the object template.+ templateId :: 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 'GetProfileObjectTypeTemplateResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'allowProfileCreation', 'getProfileObjectTypeTemplateResponse_allowProfileCreation' - Indicates whether a profile should be created when data is received if+-- one doesn’t exist for an object of this type. The default is @FALSE@. If+-- the AllowProfileCreation flag is set to @FALSE@, then the service tries+-- to fetch a standard profile and associate this object with the profile.+-- If it is set to @TRUE@, and if no match is found, then the service+-- creates a new standard profile.+--+-- 'fields', 'getProfileObjectTypeTemplateResponse_fields' - A map of the name and ObjectType field.+--+-- 'keys', 'getProfileObjectTypeTemplateResponse_keys' - A list of unique keys that can be used to map data to the profile.+--+-- 'sourceLastUpdatedTimestampFormat', 'getProfileObjectTypeTemplateResponse_sourceLastUpdatedTimestampFormat' - The format of your @sourceLastUpdatedTimestamp@ that was previously set+-- up.+--+-- 'sourceName', 'getProfileObjectTypeTemplateResponse_sourceName' - The name of the source of the object template.+--+-- 'sourceObject', 'getProfileObjectTypeTemplateResponse_sourceObject' - The source of the object template.+--+-- 'templateId', 'getProfileObjectTypeTemplateResponse_templateId' - A unique identifier for the object template.+--+-- 'httpStatus', 'getProfileObjectTypeTemplateResponse_httpStatus' - The response's http status code.+newGetProfileObjectTypeTemplateResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ GetProfileObjectTypeTemplateResponse+newGetProfileObjectTypeTemplateResponse pHttpStatus_ =+ GetProfileObjectTypeTemplateResponse'+ { allowProfileCreation =+ Prelude.Nothing,+ fields = Prelude.Nothing,+ keys = Prelude.Nothing,+ sourceLastUpdatedTimestampFormat =+ Prelude.Nothing,+ sourceName = Prelude.Nothing,+ sourceObject = Prelude.Nothing,+ templateId = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | Indicates whether a profile should be created when data is received if+-- one doesn’t exist for an object of this type. The default is @FALSE@. If+-- the AllowProfileCreation flag is set to @FALSE@, then the service tries+-- to fetch a standard profile and associate this object with the profile.+-- If it is set to @TRUE@, and if no match is found, then the service+-- creates a new standard profile.+getProfileObjectTypeTemplateResponse_allowProfileCreation :: Lens.Lens' GetProfileObjectTypeTemplateResponse (Prelude.Maybe Prelude.Bool)+getProfileObjectTypeTemplateResponse_allowProfileCreation = Lens.lens (\GetProfileObjectTypeTemplateResponse' {allowProfileCreation} -> allowProfileCreation) (\s@GetProfileObjectTypeTemplateResponse' {} a -> s {allowProfileCreation = a} :: GetProfileObjectTypeTemplateResponse)++-- | A map of the name and ObjectType field.+getProfileObjectTypeTemplateResponse_fields :: Lens.Lens' GetProfileObjectTypeTemplateResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text ObjectTypeField))+getProfileObjectTypeTemplateResponse_fields = Lens.lens (\GetProfileObjectTypeTemplateResponse' {fields} -> fields) (\s@GetProfileObjectTypeTemplateResponse' {} a -> s {fields = a} :: GetProfileObjectTypeTemplateResponse) Prelude.. Lens.mapping Lens.coerced++-- | A list of unique keys that can be used to map data to the profile.+getProfileObjectTypeTemplateResponse_keys :: Lens.Lens' GetProfileObjectTypeTemplateResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text [ObjectTypeKey]))+getProfileObjectTypeTemplateResponse_keys = Lens.lens (\GetProfileObjectTypeTemplateResponse' {keys} -> keys) (\s@GetProfileObjectTypeTemplateResponse' {} a -> s {keys = a} :: GetProfileObjectTypeTemplateResponse) Prelude.. Lens.mapping Lens.coerced++-- | The format of your @sourceLastUpdatedTimestamp@ that was previously set+-- up.+getProfileObjectTypeTemplateResponse_sourceLastUpdatedTimestampFormat :: Lens.Lens' GetProfileObjectTypeTemplateResponse (Prelude.Maybe Prelude.Text)+getProfileObjectTypeTemplateResponse_sourceLastUpdatedTimestampFormat = Lens.lens (\GetProfileObjectTypeTemplateResponse' {sourceLastUpdatedTimestampFormat} -> sourceLastUpdatedTimestampFormat) (\s@GetProfileObjectTypeTemplateResponse' {} a -> s {sourceLastUpdatedTimestampFormat = a} :: GetProfileObjectTypeTemplateResponse)++-- | The name of the source of the object template.+getProfileObjectTypeTemplateResponse_sourceName :: Lens.Lens' GetProfileObjectTypeTemplateResponse (Prelude.Maybe Prelude.Text)+getProfileObjectTypeTemplateResponse_sourceName = Lens.lens (\GetProfileObjectTypeTemplateResponse' {sourceName} -> sourceName) (\s@GetProfileObjectTypeTemplateResponse' {} a -> s {sourceName = a} :: GetProfileObjectTypeTemplateResponse)++-- | The source of the object template.+getProfileObjectTypeTemplateResponse_sourceObject :: Lens.Lens' GetProfileObjectTypeTemplateResponse (Prelude.Maybe Prelude.Text)+getProfileObjectTypeTemplateResponse_sourceObject = Lens.lens (\GetProfileObjectTypeTemplateResponse' {sourceObject} -> sourceObject) (\s@GetProfileObjectTypeTemplateResponse' {} a -> s {sourceObject = a} :: GetProfileObjectTypeTemplateResponse)++-- | A unique identifier for the object template.+getProfileObjectTypeTemplateResponse_templateId :: Lens.Lens' GetProfileObjectTypeTemplateResponse (Prelude.Maybe Prelude.Text)+getProfileObjectTypeTemplateResponse_templateId = Lens.lens (\GetProfileObjectTypeTemplateResponse' {templateId} -> templateId) (\s@GetProfileObjectTypeTemplateResponse' {} a -> s {templateId = a} :: GetProfileObjectTypeTemplateResponse)++-- | The response's http status code.+getProfileObjectTypeTemplateResponse_httpStatus :: Lens.Lens' GetProfileObjectTypeTemplateResponse Prelude.Int+getProfileObjectTypeTemplateResponse_httpStatus = Lens.lens (\GetProfileObjectTypeTemplateResponse' {httpStatus} -> httpStatus) (\s@GetProfileObjectTypeTemplateResponse' {} a -> s {httpStatus = a} :: GetProfileObjectTypeTemplateResponse)++instance+ Prelude.NFData+ GetProfileObjectTypeTemplateResponse+ where+ rnf GetProfileObjectTypeTemplateResponse' {..} =+ Prelude.rnf allowProfileCreation+ `Prelude.seq` Prelude.rnf fields+ `Prelude.seq` Prelude.rnf keys+ `Prelude.seq` Prelude.rnf sourceLastUpdatedTimestampFormat+ `Prelude.seq` Prelude.rnf sourceName+ `Prelude.seq` Prelude.rnf sourceObject+ `Prelude.seq` Prelude.rnf templateId+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/CustomerProfiles/GetWorkflow.hs view
@@ -0,0 +1,262 @@+{-# 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.CustomerProfiles.GetWorkflow+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Get details of specified workflow.+module Amazonka.CustomerProfiles.GetWorkflow+ ( -- * Creating a Request+ GetWorkflow (..),+ newGetWorkflow,++ -- * Request Lenses+ getWorkflow_domainName,+ getWorkflow_workflowId,++ -- * Destructuring the Response+ GetWorkflowResponse (..),+ newGetWorkflowResponse,++ -- * Response Lenses+ getWorkflowResponse_attributes,+ getWorkflowResponse_errorDescription,+ getWorkflowResponse_lastUpdatedAt,+ getWorkflowResponse_metrics,+ getWorkflowResponse_startDate,+ getWorkflowResponse_status,+ getWorkflowResponse_workflowId,+ getWorkflowResponse_workflowType,+ getWorkflowResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CustomerProfiles.Types+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetWorkflow' smart constructor.+data GetWorkflow = GetWorkflow'+ { -- | The unique name of the domain.+ domainName :: Prelude.Text,+ -- | Unique identifier for the workflow.+ workflowId :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetWorkflow' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'domainName', 'getWorkflow_domainName' - The unique name of the domain.+--+-- 'workflowId', 'getWorkflow_workflowId' - Unique identifier for the workflow.+newGetWorkflow ::+ -- | 'domainName'+ Prelude.Text ->+ -- | 'workflowId'+ Prelude.Text ->+ GetWorkflow+newGetWorkflow pDomainName_ pWorkflowId_ =+ GetWorkflow'+ { domainName = pDomainName_,+ workflowId = pWorkflowId_+ }++-- | The unique name of the domain.+getWorkflow_domainName :: Lens.Lens' GetWorkflow Prelude.Text+getWorkflow_domainName = Lens.lens (\GetWorkflow' {domainName} -> domainName) (\s@GetWorkflow' {} a -> s {domainName = a} :: GetWorkflow)++-- | Unique identifier for the workflow.+getWorkflow_workflowId :: Lens.Lens' GetWorkflow Prelude.Text+getWorkflow_workflowId = Lens.lens (\GetWorkflow' {workflowId} -> workflowId) (\s@GetWorkflow' {} a -> s {workflowId = a} :: GetWorkflow)++instance Core.AWSRequest GetWorkflow where+ type AWSResponse GetWorkflow = GetWorkflowResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ GetWorkflowResponse'+ Prelude.<$> (x Data..?> "Attributes")+ Prelude.<*> (x Data..?> "ErrorDescription")+ Prelude.<*> (x Data..?> "LastUpdatedAt")+ Prelude.<*> (x Data..?> "Metrics")+ Prelude.<*> (x Data..?> "StartDate")+ Prelude.<*> (x Data..?> "Status")+ Prelude.<*> (x Data..?> "WorkflowId")+ Prelude.<*> (x Data..?> "WorkflowType")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable GetWorkflow where+ hashWithSalt _salt GetWorkflow' {..} =+ _salt+ `Prelude.hashWithSalt` domainName+ `Prelude.hashWithSalt` workflowId++instance Prelude.NFData GetWorkflow where+ rnf GetWorkflow' {..} =+ Prelude.rnf domainName+ `Prelude.seq` Prelude.rnf workflowId++instance Data.ToHeaders GetWorkflow where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath GetWorkflow where+ toPath GetWorkflow' {..} =+ Prelude.mconcat+ [ "/domains/",+ Data.toBS domainName,+ "/workflows/",+ Data.toBS workflowId+ ]++instance Data.ToQuery GetWorkflow where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetWorkflowResponse' smart constructor.+data GetWorkflowResponse = GetWorkflowResponse'+ { -- | Attributes provided for workflow execution.+ attributes :: Prelude.Maybe WorkflowAttributes,+ -- | Workflow error messages during execution (if any).+ errorDescription :: Prelude.Maybe Prelude.Text,+ -- | The timestamp that represents when workflow execution last updated.+ lastUpdatedAt :: Prelude.Maybe Data.POSIX,+ -- | Workflow specific execution metrics.+ metrics :: Prelude.Maybe WorkflowMetrics,+ -- | The timestamp that represents when workflow execution started.+ startDate :: Prelude.Maybe Data.POSIX,+ -- | Status of workflow execution.+ status :: Prelude.Maybe Status,+ -- | Unique identifier for the workflow.+ workflowId :: Prelude.Maybe Prelude.Text,+ -- | The type of workflow. The only supported value is APPFLOW_INTEGRATION.+ workflowType :: Prelude.Maybe WorkflowType,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetWorkflowResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'attributes', 'getWorkflowResponse_attributes' - Attributes provided for workflow execution.+--+-- 'errorDescription', 'getWorkflowResponse_errorDescription' - Workflow error messages during execution (if any).+--+-- 'lastUpdatedAt', 'getWorkflowResponse_lastUpdatedAt' - The timestamp that represents when workflow execution last updated.+--+-- 'metrics', 'getWorkflowResponse_metrics' - Workflow specific execution metrics.+--+-- 'startDate', 'getWorkflowResponse_startDate' - The timestamp that represents when workflow execution started.+--+-- 'status', 'getWorkflowResponse_status' - Status of workflow execution.+--+-- 'workflowId', 'getWorkflowResponse_workflowId' - Unique identifier for the workflow.+--+-- 'workflowType', 'getWorkflowResponse_workflowType' - The type of workflow. The only supported value is APPFLOW_INTEGRATION.+--+-- 'httpStatus', 'getWorkflowResponse_httpStatus' - The response's http status code.+newGetWorkflowResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ GetWorkflowResponse+newGetWorkflowResponse pHttpStatus_ =+ GetWorkflowResponse'+ { attributes = Prelude.Nothing,+ errorDescription = Prelude.Nothing,+ lastUpdatedAt = Prelude.Nothing,+ metrics = Prelude.Nothing,+ startDate = Prelude.Nothing,+ status = Prelude.Nothing,+ workflowId = Prelude.Nothing,+ workflowType = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | Attributes provided for workflow execution.+getWorkflowResponse_attributes :: Lens.Lens' GetWorkflowResponse (Prelude.Maybe WorkflowAttributes)+getWorkflowResponse_attributes = Lens.lens (\GetWorkflowResponse' {attributes} -> attributes) (\s@GetWorkflowResponse' {} a -> s {attributes = a} :: GetWorkflowResponse)++-- | Workflow error messages during execution (if any).+getWorkflowResponse_errorDescription :: Lens.Lens' GetWorkflowResponse (Prelude.Maybe Prelude.Text)+getWorkflowResponse_errorDescription = Lens.lens (\GetWorkflowResponse' {errorDescription} -> errorDescription) (\s@GetWorkflowResponse' {} a -> s {errorDescription = a} :: GetWorkflowResponse)++-- | The timestamp that represents when workflow execution last updated.+getWorkflowResponse_lastUpdatedAt :: Lens.Lens' GetWorkflowResponse (Prelude.Maybe Prelude.UTCTime)+getWorkflowResponse_lastUpdatedAt = Lens.lens (\GetWorkflowResponse' {lastUpdatedAt} -> lastUpdatedAt) (\s@GetWorkflowResponse' {} a -> s {lastUpdatedAt = a} :: GetWorkflowResponse) Prelude.. Lens.mapping Data._Time++-- | Workflow specific execution metrics.+getWorkflowResponse_metrics :: Lens.Lens' GetWorkflowResponse (Prelude.Maybe WorkflowMetrics)+getWorkflowResponse_metrics = Lens.lens (\GetWorkflowResponse' {metrics} -> metrics) (\s@GetWorkflowResponse' {} a -> s {metrics = a} :: GetWorkflowResponse)++-- | The timestamp that represents when workflow execution started.+getWorkflowResponse_startDate :: Lens.Lens' GetWorkflowResponse (Prelude.Maybe Prelude.UTCTime)+getWorkflowResponse_startDate = Lens.lens (\GetWorkflowResponse' {startDate} -> startDate) (\s@GetWorkflowResponse' {} a -> s {startDate = a} :: GetWorkflowResponse) Prelude.. Lens.mapping Data._Time++-- | Status of workflow execution.+getWorkflowResponse_status :: Lens.Lens' GetWorkflowResponse (Prelude.Maybe Status)+getWorkflowResponse_status = Lens.lens (\GetWorkflowResponse' {status} -> status) (\s@GetWorkflowResponse' {} a -> s {status = a} :: GetWorkflowResponse)++-- | Unique identifier for the workflow.+getWorkflowResponse_workflowId :: Lens.Lens' GetWorkflowResponse (Prelude.Maybe Prelude.Text)+getWorkflowResponse_workflowId = Lens.lens (\GetWorkflowResponse' {workflowId} -> workflowId) (\s@GetWorkflowResponse' {} a -> s {workflowId = a} :: GetWorkflowResponse)++-- | The type of workflow. The only supported value is APPFLOW_INTEGRATION.+getWorkflowResponse_workflowType :: Lens.Lens' GetWorkflowResponse (Prelude.Maybe WorkflowType)+getWorkflowResponse_workflowType = Lens.lens (\GetWorkflowResponse' {workflowType} -> workflowType) (\s@GetWorkflowResponse' {} a -> s {workflowType = a} :: GetWorkflowResponse)++-- | The response's http status code.+getWorkflowResponse_httpStatus :: Lens.Lens' GetWorkflowResponse Prelude.Int+getWorkflowResponse_httpStatus = Lens.lens (\GetWorkflowResponse' {httpStatus} -> httpStatus) (\s@GetWorkflowResponse' {} a -> s {httpStatus = a} :: GetWorkflowResponse)++instance Prelude.NFData GetWorkflowResponse where+ rnf GetWorkflowResponse' {..} =+ Prelude.rnf attributes+ `Prelude.seq` Prelude.rnf errorDescription+ `Prelude.seq` Prelude.rnf lastUpdatedAt+ `Prelude.seq` Prelude.rnf metrics+ `Prelude.seq` Prelude.rnf startDate+ `Prelude.seq` Prelude.rnf status+ `Prelude.seq` Prelude.rnf workflowId+ `Prelude.seq` Prelude.rnf workflowType+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/CustomerProfiles/GetWorkflowSteps.hs view
@@ -0,0 +1,254 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.CustomerProfiles.GetWorkflowSteps+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Get granular list of steps in workflow.+module Amazonka.CustomerProfiles.GetWorkflowSteps+ ( -- * Creating a Request+ GetWorkflowSteps (..),+ newGetWorkflowSteps,++ -- * Request Lenses+ getWorkflowSteps_maxResults,+ getWorkflowSteps_nextToken,+ getWorkflowSteps_domainName,+ getWorkflowSteps_workflowId,++ -- * Destructuring the Response+ GetWorkflowStepsResponse (..),+ newGetWorkflowStepsResponse,++ -- * Response Lenses+ getWorkflowStepsResponse_items,+ getWorkflowStepsResponse_nextToken,+ getWorkflowStepsResponse_workflowId,+ getWorkflowStepsResponse_workflowType,+ getWorkflowStepsResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CustomerProfiles.Types+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetWorkflowSteps' smart constructor.+data GetWorkflowSteps = GetWorkflowSteps'+ { -- | The maximum number of results to return per page.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | The token for the next set of results. Use the value returned in the+ -- previous response in the next request to retrieve the next set of+ -- results.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The unique name of the domain.+ domainName :: Prelude.Text,+ -- | Unique identifier for the workflow.+ workflowId :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetWorkflowSteps' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'maxResults', 'getWorkflowSteps_maxResults' - The maximum number of results to return per page.+--+-- 'nextToken', 'getWorkflowSteps_nextToken' - The token for the next set of results. Use the value returned in the+-- previous response in the next request to retrieve the next set of+-- results.+--+-- 'domainName', 'getWorkflowSteps_domainName' - The unique name of the domain.+--+-- 'workflowId', 'getWorkflowSteps_workflowId' - Unique identifier for the workflow.+newGetWorkflowSteps ::+ -- | 'domainName'+ Prelude.Text ->+ -- | 'workflowId'+ Prelude.Text ->+ GetWorkflowSteps+newGetWorkflowSteps pDomainName_ pWorkflowId_ =+ GetWorkflowSteps'+ { maxResults = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ domainName = pDomainName_,+ workflowId = pWorkflowId_+ }++-- | The maximum number of results to return per page.+getWorkflowSteps_maxResults :: Lens.Lens' GetWorkflowSteps (Prelude.Maybe Prelude.Natural)+getWorkflowSteps_maxResults = Lens.lens (\GetWorkflowSteps' {maxResults} -> maxResults) (\s@GetWorkflowSteps' {} a -> s {maxResults = a} :: GetWorkflowSteps)++-- | The token for the next set of results. Use the value returned in the+-- previous response in the next request to retrieve the next set of+-- results.+getWorkflowSteps_nextToken :: Lens.Lens' GetWorkflowSteps (Prelude.Maybe Prelude.Text)+getWorkflowSteps_nextToken = Lens.lens (\GetWorkflowSteps' {nextToken} -> nextToken) (\s@GetWorkflowSteps' {} a -> s {nextToken = a} :: GetWorkflowSteps)++-- | The unique name of the domain.+getWorkflowSteps_domainName :: Lens.Lens' GetWorkflowSteps Prelude.Text+getWorkflowSteps_domainName = Lens.lens (\GetWorkflowSteps' {domainName} -> domainName) (\s@GetWorkflowSteps' {} a -> s {domainName = a} :: GetWorkflowSteps)++-- | Unique identifier for the workflow.+getWorkflowSteps_workflowId :: Lens.Lens' GetWorkflowSteps Prelude.Text+getWorkflowSteps_workflowId = Lens.lens (\GetWorkflowSteps' {workflowId} -> workflowId) (\s@GetWorkflowSteps' {} a -> s {workflowId = a} :: GetWorkflowSteps)++instance Core.AWSRequest GetWorkflowSteps where+ type+ AWSResponse GetWorkflowSteps =+ GetWorkflowStepsResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ GetWorkflowStepsResponse'+ Prelude.<$> (x Data..?> "Items" Core..!@ Prelude.mempty)+ Prelude.<*> (x Data..?> "NextToken")+ Prelude.<*> (x Data..?> "WorkflowId")+ Prelude.<*> (x Data..?> "WorkflowType")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable GetWorkflowSteps where+ hashWithSalt _salt GetWorkflowSteps' {..} =+ _salt+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` domainName+ `Prelude.hashWithSalt` workflowId++instance Prelude.NFData GetWorkflowSteps where+ rnf GetWorkflowSteps' {..} =+ Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf domainName+ `Prelude.seq` Prelude.rnf workflowId++instance Data.ToHeaders GetWorkflowSteps where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath GetWorkflowSteps where+ toPath GetWorkflowSteps' {..} =+ Prelude.mconcat+ [ "/domains/",+ Data.toBS domainName,+ "/workflows/",+ Data.toBS workflowId,+ "/steps"+ ]++instance Data.ToQuery GetWorkflowSteps where+ toQuery GetWorkflowSteps' {..} =+ Prelude.mconcat+ [ "max-results" Data.=: maxResults,+ "next-token" Data.=: nextToken+ ]++-- | /See:/ 'newGetWorkflowStepsResponse' smart constructor.+data GetWorkflowStepsResponse = GetWorkflowStepsResponse'+ { -- | List containing workflow step details.+ items :: Prelude.Maybe [WorkflowStepItem],+ -- | If there are additional results, this is the token for the next set of+ -- results.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | Unique identifier for the workflow.+ workflowId :: Prelude.Maybe Prelude.Text,+ -- | The type of workflow. The only supported value is APPFLOW_INTEGRATION.+ workflowType :: Prelude.Maybe WorkflowType,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetWorkflowStepsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'items', 'getWorkflowStepsResponse_items' - List containing workflow step details.+--+-- 'nextToken', 'getWorkflowStepsResponse_nextToken' - If there are additional results, this is the token for the next set of+-- results.+--+-- 'workflowId', 'getWorkflowStepsResponse_workflowId' - Unique identifier for the workflow.+--+-- 'workflowType', 'getWorkflowStepsResponse_workflowType' - The type of workflow. The only supported value is APPFLOW_INTEGRATION.+--+-- 'httpStatus', 'getWorkflowStepsResponse_httpStatus' - The response's http status code.+newGetWorkflowStepsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ GetWorkflowStepsResponse+newGetWorkflowStepsResponse pHttpStatus_ =+ GetWorkflowStepsResponse'+ { items = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ workflowId = Prelude.Nothing,+ workflowType = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | List containing workflow step details.+getWorkflowStepsResponse_items :: Lens.Lens' GetWorkflowStepsResponse (Prelude.Maybe [WorkflowStepItem])+getWorkflowStepsResponse_items = Lens.lens (\GetWorkflowStepsResponse' {items} -> items) (\s@GetWorkflowStepsResponse' {} a -> s {items = a} :: GetWorkflowStepsResponse) Prelude.. Lens.mapping Lens.coerced++-- | If there are additional results, this is the token for the next set of+-- results.+getWorkflowStepsResponse_nextToken :: Lens.Lens' GetWorkflowStepsResponse (Prelude.Maybe Prelude.Text)+getWorkflowStepsResponse_nextToken = Lens.lens (\GetWorkflowStepsResponse' {nextToken} -> nextToken) (\s@GetWorkflowStepsResponse' {} a -> s {nextToken = a} :: GetWorkflowStepsResponse)++-- | Unique identifier for the workflow.+getWorkflowStepsResponse_workflowId :: Lens.Lens' GetWorkflowStepsResponse (Prelude.Maybe Prelude.Text)+getWorkflowStepsResponse_workflowId = Lens.lens (\GetWorkflowStepsResponse' {workflowId} -> workflowId) (\s@GetWorkflowStepsResponse' {} a -> s {workflowId = a} :: GetWorkflowStepsResponse)++-- | The type of workflow. The only supported value is APPFLOW_INTEGRATION.+getWorkflowStepsResponse_workflowType :: Lens.Lens' GetWorkflowStepsResponse (Prelude.Maybe WorkflowType)+getWorkflowStepsResponse_workflowType = Lens.lens (\GetWorkflowStepsResponse' {workflowType} -> workflowType) (\s@GetWorkflowStepsResponse' {} a -> s {workflowType = a} :: GetWorkflowStepsResponse)++-- | The response's http status code.+getWorkflowStepsResponse_httpStatus :: Lens.Lens' GetWorkflowStepsResponse Prelude.Int+getWorkflowStepsResponse_httpStatus = Lens.lens (\GetWorkflowStepsResponse' {httpStatus} -> httpStatus) (\s@GetWorkflowStepsResponse' {} a -> s {httpStatus = a} :: GetWorkflowStepsResponse)++instance Prelude.NFData GetWorkflowStepsResponse where+ rnf GetWorkflowStepsResponse' {..} =+ Prelude.rnf items+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf workflowId+ `Prelude.seq` Prelude.rnf workflowType+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/CustomerProfiles/Lens.hs view
@@ -0,0 +1,854 @@+{-# 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.CustomerProfiles.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.CustomerProfiles.Lens+ ( -- * Operations++ -- ** AddProfileKey+ addProfileKey_profileId,+ addProfileKey_keyName,+ addProfileKey_values,+ addProfileKey_domainName,+ addProfileKeyResponse_keyName,+ addProfileKeyResponse_values,+ addProfileKeyResponse_httpStatus,++ -- ** CreateDomain+ createDomain_deadLetterQueueUrl,+ createDomain_defaultEncryptionKey,+ createDomain_matching,+ createDomain_tags,+ createDomain_domainName,+ createDomain_defaultExpirationDays,+ createDomainResponse_deadLetterQueueUrl,+ createDomainResponse_defaultEncryptionKey,+ createDomainResponse_matching,+ createDomainResponse_tags,+ createDomainResponse_httpStatus,+ createDomainResponse_domainName,+ createDomainResponse_defaultExpirationDays,+ createDomainResponse_createdAt,+ createDomainResponse_lastUpdatedAt,++ -- ** CreateIntegrationWorkflow+ createIntegrationWorkflow_tags,+ createIntegrationWorkflow_domainName,+ createIntegrationWorkflow_workflowType,+ createIntegrationWorkflow_integrationConfig,+ createIntegrationWorkflow_objectTypeName,+ createIntegrationWorkflow_roleArn,+ createIntegrationWorkflowResponse_httpStatus,+ createIntegrationWorkflowResponse_workflowId,+ createIntegrationWorkflowResponse_message,++ -- ** CreateProfile+ createProfile_accountNumber,+ createProfile_additionalInformation,+ createProfile_address,+ createProfile_attributes,+ createProfile_billingAddress,+ createProfile_birthDate,+ createProfile_businessEmailAddress,+ createProfile_businessName,+ createProfile_businessPhoneNumber,+ createProfile_emailAddress,+ createProfile_firstName,+ createProfile_gender,+ createProfile_genderString,+ createProfile_homePhoneNumber,+ createProfile_lastName,+ createProfile_mailingAddress,+ createProfile_middleName,+ createProfile_mobilePhoneNumber,+ createProfile_partyType,+ createProfile_partyTypeString,+ createProfile_personalEmailAddress,+ createProfile_phoneNumber,+ createProfile_shippingAddress,+ createProfile_domainName,+ createProfileResponse_httpStatus,+ createProfileResponse_profileId,++ -- ** DeleteDomain+ deleteDomain_domainName,+ deleteDomainResponse_httpStatus,+ deleteDomainResponse_message,++ -- ** DeleteIntegration+ deleteIntegration_domainName,+ deleteIntegration_uri,+ deleteIntegrationResponse_httpStatus,+ deleteIntegrationResponse_message,++ -- ** DeleteProfile+ deleteProfile_profileId,+ deleteProfile_domainName,+ deleteProfileResponse_message,+ deleteProfileResponse_httpStatus,++ -- ** DeleteProfileKey+ deleteProfileKey_profileId,+ deleteProfileKey_keyName,+ deleteProfileKey_values,+ deleteProfileKey_domainName,+ deleteProfileKeyResponse_message,+ deleteProfileKeyResponse_httpStatus,++ -- ** DeleteProfileObject+ deleteProfileObject_profileId,+ deleteProfileObject_profileObjectUniqueKey,+ deleteProfileObject_objectTypeName,+ deleteProfileObject_domainName,+ deleteProfileObjectResponse_message,+ deleteProfileObjectResponse_httpStatus,++ -- ** DeleteProfileObjectType+ deleteProfileObjectType_domainName,+ deleteProfileObjectType_objectTypeName,+ deleteProfileObjectTypeResponse_httpStatus,+ deleteProfileObjectTypeResponse_message,++ -- ** DeleteWorkflow+ deleteWorkflow_domainName,+ deleteWorkflow_workflowId,+ deleteWorkflowResponse_httpStatus,++ -- ** GetAutoMergingPreview+ getAutoMergingPreview_minAllowedConfidenceScoreForMerging,+ getAutoMergingPreview_domainName,+ getAutoMergingPreview_consolidation,+ getAutoMergingPreview_conflictResolution,+ getAutoMergingPreviewResponse_numberOfMatchesInSample,+ getAutoMergingPreviewResponse_numberOfProfilesInSample,+ getAutoMergingPreviewResponse_numberOfProfilesWillBeMerged,+ getAutoMergingPreviewResponse_httpStatus,+ getAutoMergingPreviewResponse_domainName,++ -- ** GetDomain+ getDomain_domainName,+ getDomainResponse_deadLetterQueueUrl,+ getDomainResponse_defaultEncryptionKey,+ getDomainResponse_defaultExpirationDays,+ getDomainResponse_matching,+ getDomainResponse_stats,+ getDomainResponse_tags,+ getDomainResponse_httpStatus,+ getDomainResponse_domainName,+ getDomainResponse_createdAt,+ getDomainResponse_lastUpdatedAt,++ -- ** GetIdentityResolutionJob+ getIdentityResolutionJob_domainName,+ getIdentityResolutionJob_jobId,+ getIdentityResolutionJobResponse_autoMerging,+ getIdentityResolutionJobResponse_domainName,+ getIdentityResolutionJobResponse_exportingLocation,+ getIdentityResolutionJobResponse_jobEndTime,+ getIdentityResolutionJobResponse_jobExpirationTime,+ getIdentityResolutionJobResponse_jobId,+ getIdentityResolutionJobResponse_jobStartTime,+ getIdentityResolutionJobResponse_jobStats,+ getIdentityResolutionJobResponse_lastUpdatedAt,+ getIdentityResolutionJobResponse_message,+ getIdentityResolutionJobResponse_status,+ getIdentityResolutionJobResponse_httpStatus,++ -- ** GetIntegration+ getIntegration_domainName,+ getIntegration_uri,+ getIntegrationResponse_isUnstructured,+ getIntegrationResponse_objectTypeName,+ getIntegrationResponse_objectTypeNames,+ getIntegrationResponse_tags,+ getIntegrationResponse_workflowId,+ getIntegrationResponse_httpStatus,+ getIntegrationResponse_domainName,+ getIntegrationResponse_uri,+ getIntegrationResponse_createdAt,+ getIntegrationResponse_lastUpdatedAt,++ -- ** GetMatches+ getMatches_maxResults,+ getMatches_nextToken,+ getMatches_domainName,+ getMatchesResponse_matchGenerationDate,+ getMatchesResponse_matches,+ getMatchesResponse_nextToken,+ getMatchesResponse_potentialMatches,+ getMatchesResponse_httpStatus,++ -- ** GetProfileObjectType+ getProfileObjectType_domainName,+ getProfileObjectType_objectTypeName,+ getProfileObjectTypeResponse_allowProfileCreation,+ getProfileObjectTypeResponse_createdAt,+ getProfileObjectTypeResponse_encryptionKey,+ getProfileObjectTypeResponse_expirationDays,+ getProfileObjectTypeResponse_fields,+ getProfileObjectTypeResponse_keys,+ getProfileObjectTypeResponse_lastUpdatedAt,+ getProfileObjectTypeResponse_sourceLastUpdatedTimestampFormat,+ getProfileObjectTypeResponse_tags,+ getProfileObjectTypeResponse_templateId,+ getProfileObjectTypeResponse_httpStatus,+ getProfileObjectTypeResponse_objectTypeName,+ getProfileObjectTypeResponse_description,++ -- ** GetProfileObjectTypeTemplate+ getProfileObjectTypeTemplate_templateId,+ getProfileObjectTypeTemplateResponse_allowProfileCreation,+ getProfileObjectTypeTemplateResponse_fields,+ getProfileObjectTypeTemplateResponse_keys,+ getProfileObjectTypeTemplateResponse_sourceLastUpdatedTimestampFormat,+ getProfileObjectTypeTemplateResponse_sourceName,+ getProfileObjectTypeTemplateResponse_sourceObject,+ getProfileObjectTypeTemplateResponse_templateId,+ getProfileObjectTypeTemplateResponse_httpStatus,++ -- ** GetWorkflow+ getWorkflow_domainName,+ getWorkflow_workflowId,+ getWorkflowResponse_attributes,+ getWorkflowResponse_errorDescription,+ getWorkflowResponse_lastUpdatedAt,+ getWorkflowResponse_metrics,+ getWorkflowResponse_startDate,+ getWorkflowResponse_status,+ getWorkflowResponse_workflowId,+ getWorkflowResponse_workflowType,+ getWorkflowResponse_httpStatus,++ -- ** GetWorkflowSteps+ getWorkflowSteps_maxResults,+ getWorkflowSteps_nextToken,+ getWorkflowSteps_domainName,+ getWorkflowSteps_workflowId,+ getWorkflowStepsResponse_items,+ getWorkflowStepsResponse_nextToken,+ getWorkflowStepsResponse_workflowId,+ getWorkflowStepsResponse_workflowType,+ getWorkflowStepsResponse_httpStatus,++ -- ** ListAccountIntegrations+ listAccountIntegrations_includeHidden,+ listAccountIntegrations_maxResults,+ listAccountIntegrations_nextToken,+ listAccountIntegrations_uri,+ listAccountIntegrationsResponse_items,+ listAccountIntegrationsResponse_nextToken,+ listAccountIntegrationsResponse_httpStatus,++ -- ** ListDomains+ listDomains_maxResults,+ listDomains_nextToken,+ listDomainsResponse_items,+ listDomainsResponse_nextToken,+ listDomainsResponse_httpStatus,++ -- ** ListIdentityResolutionJobs+ listIdentityResolutionJobs_maxResults,+ listIdentityResolutionJobs_nextToken,+ listIdentityResolutionJobs_domainName,+ listIdentityResolutionJobsResponse_identityResolutionJobsList,+ listIdentityResolutionJobsResponse_nextToken,+ listIdentityResolutionJobsResponse_httpStatus,++ -- ** ListIntegrations+ listIntegrations_includeHidden,+ listIntegrations_maxResults,+ listIntegrations_nextToken,+ listIntegrations_domainName,+ listIntegrationsResponse_items,+ listIntegrationsResponse_nextToken,+ listIntegrationsResponse_httpStatus,++ -- ** ListProfileObjectTypeTemplates+ listProfileObjectTypeTemplates_maxResults,+ listProfileObjectTypeTemplates_nextToken,+ listProfileObjectTypeTemplatesResponse_items,+ listProfileObjectTypeTemplatesResponse_nextToken,+ listProfileObjectTypeTemplatesResponse_httpStatus,++ -- ** ListProfileObjectTypes+ listProfileObjectTypes_maxResults,+ listProfileObjectTypes_nextToken,+ listProfileObjectTypes_domainName,+ listProfileObjectTypesResponse_items,+ listProfileObjectTypesResponse_nextToken,+ listProfileObjectTypesResponse_httpStatus,++ -- ** ListProfileObjects+ listProfileObjects_maxResults,+ listProfileObjects_nextToken,+ listProfileObjects_objectFilter,+ listProfileObjects_domainName,+ listProfileObjects_objectTypeName,+ listProfileObjects_profileId,+ listProfileObjectsResponse_items,+ listProfileObjectsResponse_nextToken,+ listProfileObjectsResponse_httpStatus,++ -- ** ListTagsForResource+ listTagsForResource_resourceArn,+ listTagsForResourceResponse_tags,+ listTagsForResourceResponse_httpStatus,++ -- ** ListWorkflows+ listWorkflows_maxResults,+ listWorkflows_nextToken,+ listWorkflows_queryEndDate,+ listWorkflows_queryStartDate,+ listWorkflows_status,+ listWorkflows_workflowType,+ listWorkflows_domainName,+ listWorkflowsResponse_items,+ listWorkflowsResponse_nextToken,+ listWorkflowsResponse_httpStatus,++ -- ** MergeProfiles+ mergeProfiles_fieldSourceProfileIds,+ mergeProfiles_domainName,+ mergeProfiles_mainProfileId,+ mergeProfiles_profileIdsToBeMerged,+ mergeProfilesResponse_message,+ mergeProfilesResponse_httpStatus,++ -- ** PutIntegration+ putIntegration_flowDefinition,+ putIntegration_objectTypeName,+ putIntegration_objectTypeNames,+ putIntegration_tags,+ putIntegration_uri,+ putIntegration_domainName,+ putIntegrationResponse_isUnstructured,+ putIntegrationResponse_objectTypeName,+ putIntegrationResponse_objectTypeNames,+ putIntegrationResponse_tags,+ putIntegrationResponse_workflowId,+ putIntegrationResponse_httpStatus,+ putIntegrationResponse_domainName,+ putIntegrationResponse_uri,+ putIntegrationResponse_createdAt,+ putIntegrationResponse_lastUpdatedAt,++ -- ** PutProfileObject+ putProfileObject_objectTypeName,+ putProfileObject_object,+ putProfileObject_domainName,+ putProfileObjectResponse_profileObjectUniqueKey,+ putProfileObjectResponse_httpStatus,++ -- ** PutProfileObjectType+ putProfileObjectType_allowProfileCreation,+ putProfileObjectType_encryptionKey,+ putProfileObjectType_expirationDays,+ putProfileObjectType_fields,+ putProfileObjectType_keys,+ putProfileObjectType_sourceLastUpdatedTimestampFormat,+ putProfileObjectType_tags,+ putProfileObjectType_templateId,+ putProfileObjectType_domainName,+ putProfileObjectType_objectTypeName,+ putProfileObjectType_description,+ putProfileObjectTypeResponse_allowProfileCreation,+ putProfileObjectTypeResponse_createdAt,+ putProfileObjectTypeResponse_encryptionKey,+ putProfileObjectTypeResponse_expirationDays,+ putProfileObjectTypeResponse_fields,+ putProfileObjectTypeResponse_keys,+ putProfileObjectTypeResponse_lastUpdatedAt,+ putProfileObjectTypeResponse_sourceLastUpdatedTimestampFormat,+ putProfileObjectTypeResponse_tags,+ putProfileObjectTypeResponse_templateId,+ putProfileObjectTypeResponse_httpStatus,+ putProfileObjectTypeResponse_objectTypeName,+ putProfileObjectTypeResponse_description,++ -- ** SearchProfiles+ searchProfiles_additionalSearchKeys,+ searchProfiles_logicalOperator,+ searchProfiles_maxResults,+ searchProfiles_nextToken,+ searchProfiles_domainName,+ searchProfiles_keyName,+ searchProfiles_values,+ searchProfilesResponse_items,+ searchProfilesResponse_nextToken,+ searchProfilesResponse_httpStatus,++ -- ** TagResource+ tagResource_resourceArn,+ tagResource_tags,+ tagResourceResponse_httpStatus,++ -- ** UntagResource+ untagResource_resourceArn,+ untagResource_tagKeys,+ untagResourceResponse_httpStatus,++ -- ** UpdateDomain+ updateDomain_deadLetterQueueUrl,+ updateDomain_defaultEncryptionKey,+ updateDomain_defaultExpirationDays,+ updateDomain_matching,+ updateDomain_tags,+ updateDomain_domainName,+ updateDomainResponse_deadLetterQueueUrl,+ updateDomainResponse_defaultEncryptionKey,+ updateDomainResponse_defaultExpirationDays,+ updateDomainResponse_matching,+ updateDomainResponse_tags,+ updateDomainResponse_httpStatus,+ updateDomainResponse_domainName,+ updateDomainResponse_createdAt,+ updateDomainResponse_lastUpdatedAt,++ -- ** UpdateProfile+ updateProfile_accountNumber,+ updateProfile_additionalInformation,+ updateProfile_address,+ updateProfile_attributes,+ updateProfile_billingAddress,+ updateProfile_birthDate,+ updateProfile_businessEmailAddress,+ updateProfile_businessName,+ updateProfile_businessPhoneNumber,+ updateProfile_emailAddress,+ updateProfile_firstName,+ updateProfile_gender,+ updateProfile_genderString,+ updateProfile_homePhoneNumber,+ updateProfile_lastName,+ updateProfile_mailingAddress,+ updateProfile_middleName,+ updateProfile_mobilePhoneNumber,+ updateProfile_partyType,+ updateProfile_partyTypeString,+ updateProfile_personalEmailAddress,+ updateProfile_phoneNumber,+ updateProfile_shippingAddress,+ updateProfile_domainName,+ updateProfile_profileId,+ updateProfileResponse_httpStatus,+ updateProfileResponse_profileId,++ -- * Types++ -- ** AdditionalSearchKey+ additionalSearchKey_keyName,+ additionalSearchKey_values,++ -- ** Address+ address_address1,+ address_address2,+ address_address3,+ address_address4,+ address_city,+ address_country,+ address_county,+ address_postalCode,+ address_province,+ address_state,++ -- ** AppflowIntegration+ appflowIntegration_batches,+ appflowIntegration_flowDefinition,++ -- ** AppflowIntegrationWorkflowAttributes+ appflowIntegrationWorkflowAttributes_roleArn,+ appflowIntegrationWorkflowAttributes_sourceConnectorType,+ appflowIntegrationWorkflowAttributes_connectorProfileName,++ -- ** AppflowIntegrationWorkflowMetrics+ appflowIntegrationWorkflowMetrics_recordsProcessed,+ appflowIntegrationWorkflowMetrics_stepsCompleted,+ appflowIntegrationWorkflowMetrics_totalSteps,++ -- ** AppflowIntegrationWorkflowStep+ appflowIntegrationWorkflowStep_flowName,+ appflowIntegrationWorkflowStep_status,+ appflowIntegrationWorkflowStep_executionMessage,+ appflowIntegrationWorkflowStep_recordsProcessed,+ appflowIntegrationWorkflowStep_batchRecordsStartTime,+ appflowIntegrationWorkflowStep_batchRecordsEndTime,+ appflowIntegrationWorkflowStep_createdAt,+ appflowIntegrationWorkflowStep_lastUpdatedAt,++ -- ** AutoMerging+ autoMerging_conflictResolution,+ autoMerging_consolidation,+ autoMerging_minAllowedConfidenceScoreForMerging,+ autoMerging_enabled,++ -- ** Batch+ batch_startTime,+ batch_endTime,++ -- ** ConflictResolution+ conflictResolution_sourceName,+ conflictResolution_conflictResolvingModel,++ -- ** ConnectorOperator+ connectorOperator_marketo,+ connectorOperator_s3,+ connectorOperator_salesforce,+ connectorOperator_serviceNow,+ connectorOperator_zendesk,++ -- ** Consolidation+ consolidation_matchingAttributesList,++ -- ** DomainStats+ domainStats_meteringProfileCount,+ domainStats_objectCount,+ domainStats_profileCount,+ domainStats_totalSize,++ -- ** ExportingConfig+ exportingConfig_s3Exporting,++ -- ** ExportingLocation+ exportingLocation_s3Exporting,++ -- ** FieldSourceProfileIds+ fieldSourceProfileIds_accountNumber,+ fieldSourceProfileIds_additionalInformation,+ fieldSourceProfileIds_address,+ fieldSourceProfileIds_attributes,+ fieldSourceProfileIds_billingAddress,+ fieldSourceProfileIds_birthDate,+ fieldSourceProfileIds_businessEmailAddress,+ fieldSourceProfileIds_businessName,+ fieldSourceProfileIds_businessPhoneNumber,+ fieldSourceProfileIds_emailAddress,+ fieldSourceProfileIds_firstName,+ fieldSourceProfileIds_gender,+ fieldSourceProfileIds_homePhoneNumber,+ fieldSourceProfileIds_lastName,+ fieldSourceProfileIds_mailingAddress,+ fieldSourceProfileIds_middleName,+ fieldSourceProfileIds_mobilePhoneNumber,+ fieldSourceProfileIds_partyType,+ fieldSourceProfileIds_personalEmailAddress,+ fieldSourceProfileIds_phoneNumber,+ fieldSourceProfileIds_shippingAddress,++ -- ** FlowDefinition+ flowDefinition_description,+ flowDefinition_flowName,+ flowDefinition_kmsArn,+ flowDefinition_sourceFlowConfig,+ flowDefinition_tasks,+ flowDefinition_triggerConfig,++ -- ** FoundByKeyValue+ foundByKeyValue_keyName,+ foundByKeyValue_values,++ -- ** IdentityResolutionJob+ identityResolutionJob_domainName,+ identityResolutionJob_exportingLocation,+ identityResolutionJob_jobEndTime,+ identityResolutionJob_jobId,+ identityResolutionJob_jobStartTime,+ identityResolutionJob_jobStats,+ identityResolutionJob_message,+ identityResolutionJob_status,++ -- ** IncrementalPullConfig+ incrementalPullConfig_datetimeTypeFieldName,++ -- ** IntegrationConfig+ integrationConfig_appflowIntegration,++ -- ** JobSchedule+ jobSchedule_dayOfTheWeek,+ jobSchedule_time,++ -- ** JobStats+ jobStats_numberOfMatchesFound,+ jobStats_numberOfMergesDone,+ jobStats_numberOfProfilesReviewed,++ -- ** ListDomainItem+ listDomainItem_tags,+ listDomainItem_domainName,+ listDomainItem_createdAt,+ listDomainItem_lastUpdatedAt,++ -- ** ListIntegrationItem+ listIntegrationItem_isUnstructured,+ listIntegrationItem_objectTypeName,+ listIntegrationItem_objectTypeNames,+ listIntegrationItem_tags,+ listIntegrationItem_workflowId,+ listIntegrationItem_domainName,+ listIntegrationItem_uri,+ listIntegrationItem_createdAt,+ listIntegrationItem_lastUpdatedAt,++ -- ** ListProfileObjectTypeItem+ listProfileObjectTypeItem_createdAt,+ listProfileObjectTypeItem_lastUpdatedAt,+ listProfileObjectTypeItem_tags,+ listProfileObjectTypeItem_objectTypeName,+ listProfileObjectTypeItem_description,++ -- ** ListProfileObjectTypeTemplateItem+ listProfileObjectTypeTemplateItem_sourceName,+ listProfileObjectTypeTemplateItem_sourceObject,+ listProfileObjectTypeTemplateItem_templateId,++ -- ** ListProfileObjectsItem+ listProfileObjectsItem_object,+ listProfileObjectsItem_objectTypeName,+ listProfileObjectsItem_profileObjectUniqueKey,++ -- ** ListWorkflowsItem+ listWorkflowsItem_workflowType,+ listWorkflowsItem_workflowId,+ listWorkflowsItem_status,+ listWorkflowsItem_statusDescription,+ listWorkflowsItem_createdAt,+ listWorkflowsItem_lastUpdatedAt,++ -- ** MarketoSourceProperties+ marketoSourceProperties_object,++ -- ** MatchItem+ matchItem_confidenceScore,+ matchItem_matchId,+ matchItem_profileIds,++ -- ** MatchingRequest+ matchingRequest_autoMerging,+ matchingRequest_exportingConfig,+ matchingRequest_jobSchedule,+ matchingRequest_enabled,++ -- ** MatchingResponse+ matchingResponse_autoMerging,+ matchingResponse_enabled,+ matchingResponse_exportingConfig,+ matchingResponse_jobSchedule,++ -- ** ObjectFilter+ objectFilter_keyName,+ objectFilter_values,++ -- ** ObjectTypeField+ objectTypeField_contentType,+ objectTypeField_source,+ objectTypeField_target,++ -- ** ObjectTypeKey+ objectTypeKey_fieldNames,+ objectTypeKey_standardIdentifiers,++ -- ** Profile+ profile_accountNumber,+ profile_additionalInformation,+ profile_address,+ profile_attributes,+ profile_billingAddress,+ profile_birthDate,+ profile_businessEmailAddress,+ profile_businessName,+ profile_businessPhoneNumber,+ profile_emailAddress,+ profile_firstName,+ profile_foundByItems,+ profile_gender,+ profile_homePhoneNumber,+ profile_lastName,+ profile_mailingAddress,+ profile_middleName,+ profile_mobilePhoneNumber,+ profile_partyType,+ profile_personalEmailAddress,+ profile_phoneNumber,+ profile_profileId,+ profile_shippingAddress,++ -- ** S3ExportingConfig+ s3ExportingConfig_s3KeyName,+ s3ExportingConfig_s3BucketName,++ -- ** S3ExportingLocation+ s3ExportingLocation_s3BucketName,+ s3ExportingLocation_s3KeyName,++ -- ** S3SourceProperties+ s3SourceProperties_bucketPrefix,+ s3SourceProperties_bucketName,++ -- ** SalesforceSourceProperties+ salesforceSourceProperties_enableDynamicFieldUpdate,+ salesforceSourceProperties_includeDeletedRecords,+ salesforceSourceProperties_object,++ -- ** ScheduledTriggerProperties+ scheduledTriggerProperties_dataPullMode,+ scheduledTriggerProperties_firstExecutionFrom,+ scheduledTriggerProperties_scheduleEndTime,+ scheduledTriggerProperties_scheduleOffset,+ scheduledTriggerProperties_scheduleStartTime,+ scheduledTriggerProperties_timezone,+ scheduledTriggerProperties_scheduleExpression,++ -- ** ServiceNowSourceProperties+ serviceNowSourceProperties_object,++ -- ** SourceConnectorProperties+ sourceConnectorProperties_marketo,+ sourceConnectorProperties_s3,+ sourceConnectorProperties_salesforce,+ sourceConnectorProperties_serviceNow,+ sourceConnectorProperties_zendesk,++ -- ** SourceFlowConfig+ sourceFlowConfig_connectorProfileName,+ sourceFlowConfig_incrementalPullConfig,+ sourceFlowConfig_connectorType,+ sourceFlowConfig_sourceConnectorProperties,++ -- ** Task+ task_connectorOperator,+ task_destinationField,+ task_taskProperties,+ task_sourceFields,+ task_taskType,++ -- ** TriggerConfig+ triggerConfig_triggerProperties,+ triggerConfig_triggerType,++ -- ** TriggerProperties+ triggerProperties_scheduled,++ -- ** UpdateAddress+ updateAddress_address1,+ updateAddress_address2,+ updateAddress_address3,+ updateAddress_address4,+ updateAddress_city,+ updateAddress_country,+ updateAddress_county,+ updateAddress_postalCode,+ updateAddress_province,+ updateAddress_state,++ -- ** WorkflowAttributes+ workflowAttributes_appflowIntegration,++ -- ** WorkflowMetrics+ workflowMetrics_appflowIntegration,++ -- ** WorkflowStepItem+ workflowStepItem_appflowIntegration,++ -- ** ZendeskSourceProperties+ zendeskSourceProperties_object,+ )+where++import Amazonka.CustomerProfiles.AddProfileKey+import Amazonka.CustomerProfiles.CreateDomain+import Amazonka.CustomerProfiles.CreateIntegrationWorkflow+import Amazonka.CustomerProfiles.CreateProfile+import Amazonka.CustomerProfiles.DeleteDomain+import Amazonka.CustomerProfiles.DeleteIntegration+import Amazonka.CustomerProfiles.DeleteProfile+import Amazonka.CustomerProfiles.DeleteProfileKey+import Amazonka.CustomerProfiles.DeleteProfileObject+import Amazonka.CustomerProfiles.DeleteProfileObjectType+import Amazonka.CustomerProfiles.DeleteWorkflow+import Amazonka.CustomerProfiles.GetAutoMergingPreview+import Amazonka.CustomerProfiles.GetDomain+import Amazonka.CustomerProfiles.GetIdentityResolutionJob+import Amazonka.CustomerProfiles.GetIntegration+import Amazonka.CustomerProfiles.GetMatches+import Amazonka.CustomerProfiles.GetProfileObjectType+import Amazonka.CustomerProfiles.GetProfileObjectTypeTemplate+import Amazonka.CustomerProfiles.GetWorkflow+import Amazonka.CustomerProfiles.GetWorkflowSteps+import Amazonka.CustomerProfiles.ListAccountIntegrations+import Amazonka.CustomerProfiles.ListDomains+import Amazonka.CustomerProfiles.ListIdentityResolutionJobs+import Amazonka.CustomerProfiles.ListIntegrations+import Amazonka.CustomerProfiles.ListProfileObjectTypeTemplates+import Amazonka.CustomerProfiles.ListProfileObjectTypes+import Amazonka.CustomerProfiles.ListProfileObjects+import Amazonka.CustomerProfiles.ListTagsForResource+import Amazonka.CustomerProfiles.ListWorkflows+import Amazonka.CustomerProfiles.MergeProfiles+import Amazonka.CustomerProfiles.PutIntegration+import Amazonka.CustomerProfiles.PutProfileObject+import Amazonka.CustomerProfiles.PutProfileObjectType+import Amazonka.CustomerProfiles.SearchProfiles+import Amazonka.CustomerProfiles.TagResource+import Amazonka.CustomerProfiles.Types.AdditionalSearchKey+import Amazonka.CustomerProfiles.Types.Address+import Amazonka.CustomerProfiles.Types.AppflowIntegration+import Amazonka.CustomerProfiles.Types.AppflowIntegrationWorkflowAttributes+import Amazonka.CustomerProfiles.Types.AppflowIntegrationWorkflowMetrics+import Amazonka.CustomerProfiles.Types.AppflowIntegrationWorkflowStep+import Amazonka.CustomerProfiles.Types.AutoMerging+import Amazonka.CustomerProfiles.Types.Batch+import Amazonka.CustomerProfiles.Types.ConflictResolution+import Amazonka.CustomerProfiles.Types.ConnectorOperator+import Amazonka.CustomerProfiles.Types.Consolidation+import Amazonka.CustomerProfiles.Types.DomainStats+import Amazonka.CustomerProfiles.Types.ExportingConfig+import Amazonka.CustomerProfiles.Types.ExportingLocation+import Amazonka.CustomerProfiles.Types.FieldSourceProfileIds+import Amazonka.CustomerProfiles.Types.FlowDefinition+import Amazonka.CustomerProfiles.Types.FoundByKeyValue+import Amazonka.CustomerProfiles.Types.IdentityResolutionJob+import Amazonka.CustomerProfiles.Types.IncrementalPullConfig+import Amazonka.CustomerProfiles.Types.IntegrationConfig+import Amazonka.CustomerProfiles.Types.JobSchedule+import Amazonka.CustomerProfiles.Types.JobStats+import Amazonka.CustomerProfiles.Types.ListDomainItem+import Amazonka.CustomerProfiles.Types.ListIntegrationItem+import Amazonka.CustomerProfiles.Types.ListProfileObjectTypeItem+import Amazonka.CustomerProfiles.Types.ListProfileObjectTypeTemplateItem+import Amazonka.CustomerProfiles.Types.ListProfileObjectsItem+import Amazonka.CustomerProfiles.Types.ListWorkflowsItem+import Amazonka.CustomerProfiles.Types.MarketoSourceProperties+import Amazonka.CustomerProfiles.Types.MatchItem+import Amazonka.CustomerProfiles.Types.MatchingRequest+import Amazonka.CustomerProfiles.Types.MatchingResponse+import Amazonka.CustomerProfiles.Types.ObjectFilter+import Amazonka.CustomerProfiles.Types.ObjectTypeField+import Amazonka.CustomerProfiles.Types.ObjectTypeKey+import Amazonka.CustomerProfiles.Types.Profile+import Amazonka.CustomerProfiles.Types.S3ExportingConfig+import Amazonka.CustomerProfiles.Types.S3ExportingLocation+import Amazonka.CustomerProfiles.Types.S3SourceProperties+import Amazonka.CustomerProfiles.Types.SalesforceSourceProperties+import Amazonka.CustomerProfiles.Types.ScheduledTriggerProperties+import Amazonka.CustomerProfiles.Types.ServiceNowSourceProperties+import Amazonka.CustomerProfiles.Types.SourceConnectorProperties+import Amazonka.CustomerProfiles.Types.SourceFlowConfig+import Amazonka.CustomerProfiles.Types.Task+import Amazonka.CustomerProfiles.Types.TriggerConfig+import Amazonka.CustomerProfiles.Types.TriggerProperties+import Amazonka.CustomerProfiles.Types.UpdateAddress+import Amazonka.CustomerProfiles.Types.WorkflowAttributes+import Amazonka.CustomerProfiles.Types.WorkflowMetrics+import Amazonka.CustomerProfiles.Types.WorkflowStepItem+import Amazonka.CustomerProfiles.Types.ZendeskSourceProperties+import Amazonka.CustomerProfiles.UntagResource+import Amazonka.CustomerProfiles.UpdateDomain+import Amazonka.CustomerProfiles.UpdateProfile
+ gen/Amazonka/CustomerProfiles/ListAccountIntegrations.hs view
@@ -0,0 +1,229 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.CustomerProfiles.ListAccountIntegrations+-- 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 all of the integrations associated to a specific URI in the AWS+-- account.+module Amazonka.CustomerProfiles.ListAccountIntegrations+ ( -- * Creating a Request+ ListAccountIntegrations (..),+ newListAccountIntegrations,++ -- * Request Lenses+ listAccountIntegrations_includeHidden,+ listAccountIntegrations_maxResults,+ listAccountIntegrations_nextToken,+ listAccountIntegrations_uri,++ -- * Destructuring the Response+ ListAccountIntegrationsResponse (..),+ newListAccountIntegrationsResponse,++ -- * Response Lenses+ listAccountIntegrationsResponse_items,+ listAccountIntegrationsResponse_nextToken,+ listAccountIntegrationsResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CustomerProfiles.Types+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListAccountIntegrations' smart constructor.+data ListAccountIntegrations = ListAccountIntegrations'+ { -- | Boolean to indicate if hidden integration should be returned. Defaults+ -- to @False@.+ includeHidden :: Prelude.Maybe Prelude.Bool,+ -- | The maximum number of objects returned per page.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | The pagination token from the previous ListAccountIntegrations API call.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The URI of the S3 bucket or any other type of data source.+ uri :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListAccountIntegrations' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'includeHidden', 'listAccountIntegrations_includeHidden' - Boolean to indicate if hidden integration should be returned. Defaults+-- to @False@.+--+-- 'maxResults', 'listAccountIntegrations_maxResults' - The maximum number of objects returned per page.+--+-- 'nextToken', 'listAccountIntegrations_nextToken' - The pagination token from the previous ListAccountIntegrations API call.+--+-- 'uri', 'listAccountIntegrations_uri' - The URI of the S3 bucket or any other type of data source.+newListAccountIntegrations ::+ -- | 'uri'+ Prelude.Text ->+ ListAccountIntegrations+newListAccountIntegrations pUri_ =+ ListAccountIntegrations'+ { includeHidden =+ Prelude.Nothing,+ maxResults = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ uri = pUri_+ }++-- | Boolean to indicate if hidden integration should be returned. Defaults+-- to @False@.+listAccountIntegrations_includeHidden :: Lens.Lens' ListAccountIntegrations (Prelude.Maybe Prelude.Bool)+listAccountIntegrations_includeHidden = Lens.lens (\ListAccountIntegrations' {includeHidden} -> includeHidden) (\s@ListAccountIntegrations' {} a -> s {includeHidden = a} :: ListAccountIntegrations)++-- | The maximum number of objects returned per page.+listAccountIntegrations_maxResults :: Lens.Lens' ListAccountIntegrations (Prelude.Maybe Prelude.Natural)+listAccountIntegrations_maxResults = Lens.lens (\ListAccountIntegrations' {maxResults} -> maxResults) (\s@ListAccountIntegrations' {} a -> s {maxResults = a} :: ListAccountIntegrations)++-- | The pagination token from the previous ListAccountIntegrations API call.+listAccountIntegrations_nextToken :: Lens.Lens' ListAccountIntegrations (Prelude.Maybe Prelude.Text)+listAccountIntegrations_nextToken = Lens.lens (\ListAccountIntegrations' {nextToken} -> nextToken) (\s@ListAccountIntegrations' {} a -> s {nextToken = a} :: ListAccountIntegrations)++-- | The URI of the S3 bucket or any other type of data source.+listAccountIntegrations_uri :: Lens.Lens' ListAccountIntegrations Prelude.Text+listAccountIntegrations_uri = Lens.lens (\ListAccountIntegrations' {uri} -> uri) (\s@ListAccountIntegrations' {} a -> s {uri = a} :: ListAccountIntegrations)++instance Core.AWSRequest ListAccountIntegrations where+ type+ AWSResponse ListAccountIntegrations =+ ListAccountIntegrationsResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListAccountIntegrationsResponse'+ Prelude.<$> (x Data..?> "Items" Core..!@ Prelude.mempty)+ Prelude.<*> (x Data..?> "NextToken")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable ListAccountIntegrations where+ hashWithSalt _salt ListAccountIntegrations' {..} =+ _salt+ `Prelude.hashWithSalt` includeHidden+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` uri++instance Prelude.NFData ListAccountIntegrations where+ rnf ListAccountIntegrations' {..} =+ Prelude.rnf includeHidden+ `Prelude.seq` Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf uri++instance Data.ToHeaders ListAccountIntegrations where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON ListAccountIntegrations where+ toJSON ListAccountIntegrations' {..} =+ Data.object+ ( Prelude.catMaybes+ [Prelude.Just ("Uri" Data..= uri)]+ )++instance Data.ToPath ListAccountIntegrations where+ toPath = Prelude.const "/integrations"++instance Data.ToQuery ListAccountIntegrations where+ toQuery ListAccountIntegrations' {..} =+ Prelude.mconcat+ [ "include-hidden" Data.=: includeHidden,+ "max-results" Data.=: maxResults,+ "next-token" Data.=: nextToken+ ]++-- | /See:/ 'newListAccountIntegrationsResponse' smart constructor.+data ListAccountIntegrationsResponse = ListAccountIntegrationsResponse'+ { -- | The list of ListAccountIntegration instances.+ items :: Prelude.Maybe [ListIntegrationItem],+ -- | The pagination token from the previous ListAccountIntegrations API call.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListAccountIntegrationsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'items', 'listAccountIntegrationsResponse_items' - The list of ListAccountIntegration instances.+--+-- 'nextToken', 'listAccountIntegrationsResponse_nextToken' - The pagination token from the previous ListAccountIntegrations API call.+--+-- 'httpStatus', 'listAccountIntegrationsResponse_httpStatus' - The response's http status code.+newListAccountIntegrationsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListAccountIntegrationsResponse+newListAccountIntegrationsResponse pHttpStatus_ =+ ListAccountIntegrationsResponse'+ { items =+ Prelude.Nothing,+ nextToken = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The list of ListAccountIntegration instances.+listAccountIntegrationsResponse_items :: Lens.Lens' ListAccountIntegrationsResponse (Prelude.Maybe [ListIntegrationItem])+listAccountIntegrationsResponse_items = Lens.lens (\ListAccountIntegrationsResponse' {items} -> items) (\s@ListAccountIntegrationsResponse' {} a -> s {items = a} :: ListAccountIntegrationsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The pagination token from the previous ListAccountIntegrations API call.+listAccountIntegrationsResponse_nextToken :: Lens.Lens' ListAccountIntegrationsResponse (Prelude.Maybe Prelude.Text)+listAccountIntegrationsResponse_nextToken = Lens.lens (\ListAccountIntegrationsResponse' {nextToken} -> nextToken) (\s@ListAccountIntegrationsResponse' {} a -> s {nextToken = a} :: ListAccountIntegrationsResponse)++-- | The response's http status code.+listAccountIntegrationsResponse_httpStatus :: Lens.Lens' ListAccountIntegrationsResponse Prelude.Int+listAccountIntegrationsResponse_httpStatus = Lens.lens (\ListAccountIntegrationsResponse' {httpStatus} -> httpStatus) (\s@ListAccountIntegrationsResponse' {} a -> s {httpStatus = a} :: ListAccountIntegrationsResponse)++instance+ Prelude.NFData+ ListAccountIntegrationsResponse+ where+ rnf ListAccountIntegrationsResponse' {..} =+ Prelude.rnf items+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/CustomerProfiles/ListDomains.hs view
@@ -0,0 +1,185 @@+{-# 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.CustomerProfiles.ListDomains+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a list of all the domains for an AWS account that have been+-- created.+module Amazonka.CustomerProfiles.ListDomains+ ( -- * Creating a Request+ ListDomains (..),+ newListDomains,++ -- * Request Lenses+ listDomains_maxResults,+ listDomains_nextToken,++ -- * Destructuring the Response+ ListDomainsResponse (..),+ newListDomainsResponse,++ -- * Response Lenses+ listDomainsResponse_items,+ listDomainsResponse_nextToken,+ listDomainsResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CustomerProfiles.Types+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListDomains' smart constructor.+data ListDomains = ListDomains'+ { -- | The maximum number of objects returned per page.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | The pagination token from the previous ListDomain API call.+ nextToken :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListDomains' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'maxResults', 'listDomains_maxResults' - The maximum number of objects returned per page.+--+-- 'nextToken', 'listDomains_nextToken' - The pagination token from the previous ListDomain API call.+newListDomains ::+ ListDomains+newListDomains =+ ListDomains'+ { maxResults = Prelude.Nothing,+ nextToken = Prelude.Nothing+ }++-- | The maximum number of objects returned per page.+listDomains_maxResults :: Lens.Lens' ListDomains (Prelude.Maybe Prelude.Natural)+listDomains_maxResults = Lens.lens (\ListDomains' {maxResults} -> maxResults) (\s@ListDomains' {} a -> s {maxResults = a} :: ListDomains)++-- | The pagination token from the previous ListDomain API call.+listDomains_nextToken :: Lens.Lens' ListDomains (Prelude.Maybe Prelude.Text)+listDomains_nextToken = Lens.lens (\ListDomains' {nextToken} -> nextToken) (\s@ListDomains' {} a -> s {nextToken = a} :: ListDomains)++instance Core.AWSRequest ListDomains where+ type AWSResponse ListDomains = ListDomainsResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListDomainsResponse'+ Prelude.<$> (x Data..?> "Items" Core..!@ Prelude.mempty)+ Prelude.<*> (x Data..?> "NextToken")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable ListDomains where+ hashWithSalt _salt ListDomains' {..} =+ _salt+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListDomains where+ rnf ListDomains' {..} =+ Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListDomains where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath ListDomains where+ toPath = Prelude.const "/domains"++instance Data.ToQuery ListDomains where+ toQuery ListDomains' {..} =+ Prelude.mconcat+ [ "max-results" Data.=: maxResults,+ "next-token" Data.=: nextToken+ ]++-- | /See:/ 'newListDomainsResponse' smart constructor.+data ListDomainsResponse = ListDomainsResponse'+ { -- | The list of ListDomains instances.+ items :: Prelude.Maybe [ListDomainItem],+ -- | The pagination token from the previous ListDomains API call.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListDomainsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'items', 'listDomainsResponse_items' - The list of ListDomains instances.+--+-- 'nextToken', 'listDomainsResponse_nextToken' - The pagination token from the previous ListDomains API call.+--+-- 'httpStatus', 'listDomainsResponse_httpStatus' - The response's http status code.+newListDomainsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListDomainsResponse+newListDomainsResponse pHttpStatus_ =+ ListDomainsResponse'+ { items = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The list of ListDomains instances.+listDomainsResponse_items :: Lens.Lens' ListDomainsResponse (Prelude.Maybe [ListDomainItem])+listDomainsResponse_items = Lens.lens (\ListDomainsResponse' {items} -> items) (\s@ListDomainsResponse' {} a -> s {items = a} :: ListDomainsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The pagination token from the previous ListDomains API call.+listDomainsResponse_nextToken :: Lens.Lens' ListDomainsResponse (Prelude.Maybe Prelude.Text)+listDomainsResponse_nextToken = Lens.lens (\ListDomainsResponse' {nextToken} -> nextToken) (\s@ListDomainsResponse' {} a -> s {nextToken = a} :: ListDomainsResponse)++-- | The response's http status code.+listDomainsResponse_httpStatus :: Lens.Lens' ListDomainsResponse Prelude.Int+listDomainsResponse_httpStatus = Lens.lens (\ListDomainsResponse' {httpStatus} -> httpStatus) (\s@ListDomainsResponse' {} a -> s {httpStatus = a} :: ListDomainsResponse)++instance Prelude.NFData ListDomainsResponse where+ rnf ListDomainsResponse' {..} =+ Prelude.rnf items+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/CustomerProfiles/ListIdentityResolutionJobs.hs view
@@ -0,0 +1,223 @@+{-# 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.CustomerProfiles.ListIdentityResolutionJobs+-- 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 all of the Identity Resolution Jobs in your domain. The response+-- sorts the list by @JobStartTime@.+module Amazonka.CustomerProfiles.ListIdentityResolutionJobs+ ( -- * Creating a Request+ ListIdentityResolutionJobs (..),+ newListIdentityResolutionJobs,++ -- * Request Lenses+ listIdentityResolutionJobs_maxResults,+ listIdentityResolutionJobs_nextToken,+ listIdentityResolutionJobs_domainName,++ -- * Destructuring the Response+ ListIdentityResolutionJobsResponse (..),+ newListIdentityResolutionJobsResponse,++ -- * Response Lenses+ listIdentityResolutionJobsResponse_identityResolutionJobsList,+ listIdentityResolutionJobsResponse_nextToken,+ listIdentityResolutionJobsResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CustomerProfiles.Types+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListIdentityResolutionJobs' smart constructor.+data ListIdentityResolutionJobs = ListIdentityResolutionJobs'+ { -- | The maximum number of results to return per page.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | The token for the next set of results. Use the value returned in the+ -- previous response in the next request to retrieve the next set of+ -- results.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The unique name of the domain.+ domainName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListIdentityResolutionJobs' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'maxResults', 'listIdentityResolutionJobs_maxResults' - The maximum number of results to return per page.+--+-- 'nextToken', 'listIdentityResolutionJobs_nextToken' - The token for the next set of results. Use the value returned in the+-- previous response in the next request to retrieve the next set of+-- results.+--+-- 'domainName', 'listIdentityResolutionJobs_domainName' - The unique name of the domain.+newListIdentityResolutionJobs ::+ -- | 'domainName'+ Prelude.Text ->+ ListIdentityResolutionJobs+newListIdentityResolutionJobs pDomainName_ =+ ListIdentityResolutionJobs'+ { maxResults =+ Prelude.Nothing,+ nextToken = Prelude.Nothing,+ domainName = pDomainName_+ }++-- | The maximum number of results to return per page.+listIdentityResolutionJobs_maxResults :: Lens.Lens' ListIdentityResolutionJobs (Prelude.Maybe Prelude.Natural)+listIdentityResolutionJobs_maxResults = Lens.lens (\ListIdentityResolutionJobs' {maxResults} -> maxResults) (\s@ListIdentityResolutionJobs' {} a -> s {maxResults = a} :: ListIdentityResolutionJobs)++-- | The token for the next set of results. Use the value returned in the+-- previous response in the next request to retrieve the next set of+-- results.+listIdentityResolutionJobs_nextToken :: Lens.Lens' ListIdentityResolutionJobs (Prelude.Maybe Prelude.Text)+listIdentityResolutionJobs_nextToken = Lens.lens (\ListIdentityResolutionJobs' {nextToken} -> nextToken) (\s@ListIdentityResolutionJobs' {} a -> s {nextToken = a} :: ListIdentityResolutionJobs)++-- | The unique name of the domain.+listIdentityResolutionJobs_domainName :: Lens.Lens' ListIdentityResolutionJobs Prelude.Text+listIdentityResolutionJobs_domainName = Lens.lens (\ListIdentityResolutionJobs' {domainName} -> domainName) (\s@ListIdentityResolutionJobs' {} a -> s {domainName = a} :: ListIdentityResolutionJobs)++instance Core.AWSRequest ListIdentityResolutionJobs where+ type+ AWSResponse ListIdentityResolutionJobs =+ ListIdentityResolutionJobsResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListIdentityResolutionJobsResponse'+ Prelude.<$> ( x+ Data..?> "IdentityResolutionJobsList"+ Core..!@ Prelude.mempty+ )+ Prelude.<*> (x Data..?> "NextToken")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable ListIdentityResolutionJobs where+ hashWithSalt _salt ListIdentityResolutionJobs' {..} =+ _salt+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` domainName++instance Prelude.NFData ListIdentityResolutionJobs where+ rnf ListIdentityResolutionJobs' {..} =+ Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf domainName++instance Data.ToHeaders ListIdentityResolutionJobs where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath ListIdentityResolutionJobs where+ toPath ListIdentityResolutionJobs' {..} =+ Prelude.mconcat+ [ "/domains/",+ Data.toBS domainName,+ "/identity-resolution-jobs"+ ]++instance Data.ToQuery ListIdentityResolutionJobs where+ toQuery ListIdentityResolutionJobs' {..} =+ Prelude.mconcat+ [ "max-results" Data.=: maxResults,+ "next-token" Data.=: nextToken+ ]++-- | /See:/ 'newListIdentityResolutionJobsResponse' smart constructor.+data ListIdentityResolutionJobsResponse = ListIdentityResolutionJobsResponse'+ { -- | A list of Identity Resolution Jobs.+ identityResolutionJobsList :: Prelude.Maybe [IdentityResolutionJob],+ -- | If there are additional results, this is the token for the next set of+ -- results.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListIdentityResolutionJobsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'identityResolutionJobsList', 'listIdentityResolutionJobsResponse_identityResolutionJobsList' - A list of Identity Resolution Jobs.+--+-- 'nextToken', 'listIdentityResolutionJobsResponse_nextToken' - If there are additional results, this is the token for the next set of+-- results.+--+-- 'httpStatus', 'listIdentityResolutionJobsResponse_httpStatus' - The response's http status code.+newListIdentityResolutionJobsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListIdentityResolutionJobsResponse+newListIdentityResolutionJobsResponse pHttpStatus_ =+ ListIdentityResolutionJobsResponse'+ { identityResolutionJobsList =+ Prelude.Nothing,+ nextToken = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | A list of Identity Resolution Jobs.+listIdentityResolutionJobsResponse_identityResolutionJobsList :: Lens.Lens' ListIdentityResolutionJobsResponse (Prelude.Maybe [IdentityResolutionJob])+listIdentityResolutionJobsResponse_identityResolutionJobsList = Lens.lens (\ListIdentityResolutionJobsResponse' {identityResolutionJobsList} -> identityResolutionJobsList) (\s@ListIdentityResolutionJobsResponse' {} a -> s {identityResolutionJobsList = a} :: ListIdentityResolutionJobsResponse) Prelude.. Lens.mapping Lens.coerced++-- | If there are additional results, this is the token for the next set of+-- results.+listIdentityResolutionJobsResponse_nextToken :: Lens.Lens' ListIdentityResolutionJobsResponse (Prelude.Maybe Prelude.Text)+listIdentityResolutionJobsResponse_nextToken = Lens.lens (\ListIdentityResolutionJobsResponse' {nextToken} -> nextToken) (\s@ListIdentityResolutionJobsResponse' {} a -> s {nextToken = a} :: ListIdentityResolutionJobsResponse)++-- | The response's http status code.+listIdentityResolutionJobsResponse_httpStatus :: Lens.Lens' ListIdentityResolutionJobsResponse Prelude.Int+listIdentityResolutionJobsResponse_httpStatus = Lens.lens (\ListIdentityResolutionJobsResponse' {httpStatus} -> httpStatus) (\s@ListIdentityResolutionJobsResponse' {} a -> s {httpStatus = a} :: ListIdentityResolutionJobsResponse)++instance+ Prelude.NFData+ ListIdentityResolutionJobsResponse+ where+ rnf ListIdentityResolutionJobsResponse' {..} =+ Prelude.rnf identityResolutionJobsList+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/CustomerProfiles/ListIntegrations.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.CustomerProfiles.ListIntegrations+-- 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 all of the integrations in your domain.+module Amazonka.CustomerProfiles.ListIntegrations+ ( -- * Creating a Request+ ListIntegrations (..),+ newListIntegrations,++ -- * Request Lenses+ listIntegrations_includeHidden,+ listIntegrations_maxResults,+ listIntegrations_nextToken,+ listIntegrations_domainName,++ -- * Destructuring the Response+ ListIntegrationsResponse (..),+ newListIntegrationsResponse,++ -- * Response Lenses+ listIntegrationsResponse_items,+ listIntegrationsResponse_nextToken,+ listIntegrationsResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CustomerProfiles.Types+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListIntegrations' smart constructor.+data ListIntegrations = ListIntegrations'+ { -- | Boolean to indicate if hidden integration should be returned. Defaults+ -- to @False@.+ includeHidden :: Prelude.Maybe Prelude.Bool,+ -- | The maximum number of objects returned per page.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | The pagination token from the previous ListIntegrations API call.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The unique name of the domain.+ domainName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListIntegrations' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'includeHidden', 'listIntegrations_includeHidden' - Boolean to indicate if hidden integration should be returned. Defaults+-- to @False@.+--+-- 'maxResults', 'listIntegrations_maxResults' - The maximum number of objects returned per page.+--+-- 'nextToken', 'listIntegrations_nextToken' - The pagination token from the previous ListIntegrations API call.+--+-- 'domainName', 'listIntegrations_domainName' - The unique name of the domain.+newListIntegrations ::+ -- | 'domainName'+ Prelude.Text ->+ ListIntegrations+newListIntegrations pDomainName_ =+ ListIntegrations'+ { includeHidden = Prelude.Nothing,+ maxResults = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ domainName = pDomainName_+ }++-- | Boolean to indicate if hidden integration should be returned. Defaults+-- to @False@.+listIntegrations_includeHidden :: Lens.Lens' ListIntegrations (Prelude.Maybe Prelude.Bool)+listIntegrations_includeHidden = Lens.lens (\ListIntegrations' {includeHidden} -> includeHidden) (\s@ListIntegrations' {} a -> s {includeHidden = a} :: ListIntegrations)++-- | The maximum number of objects returned per page.+listIntegrations_maxResults :: Lens.Lens' ListIntegrations (Prelude.Maybe Prelude.Natural)+listIntegrations_maxResults = Lens.lens (\ListIntegrations' {maxResults} -> maxResults) (\s@ListIntegrations' {} a -> s {maxResults = a} :: ListIntegrations)++-- | The pagination token from the previous ListIntegrations API call.+listIntegrations_nextToken :: Lens.Lens' ListIntegrations (Prelude.Maybe Prelude.Text)+listIntegrations_nextToken = Lens.lens (\ListIntegrations' {nextToken} -> nextToken) (\s@ListIntegrations' {} a -> s {nextToken = a} :: ListIntegrations)++-- | The unique name of the domain.+listIntegrations_domainName :: Lens.Lens' ListIntegrations Prelude.Text+listIntegrations_domainName = Lens.lens (\ListIntegrations' {domainName} -> domainName) (\s@ListIntegrations' {} a -> s {domainName = a} :: ListIntegrations)++instance Core.AWSRequest ListIntegrations where+ type+ AWSResponse ListIntegrations =+ ListIntegrationsResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListIntegrationsResponse'+ Prelude.<$> (x Data..?> "Items" Core..!@ Prelude.mempty)+ Prelude.<*> (x Data..?> "NextToken")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable ListIntegrations where+ hashWithSalt _salt ListIntegrations' {..} =+ _salt+ `Prelude.hashWithSalt` includeHidden+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` domainName++instance Prelude.NFData ListIntegrations where+ rnf ListIntegrations' {..} =+ Prelude.rnf includeHidden+ `Prelude.seq` Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf domainName++instance Data.ToHeaders ListIntegrations where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath ListIntegrations where+ toPath ListIntegrations' {..} =+ Prelude.mconcat+ ["/domains/", Data.toBS domainName, "/integrations"]++instance Data.ToQuery ListIntegrations where+ toQuery ListIntegrations' {..} =+ Prelude.mconcat+ [ "include-hidden" Data.=: includeHidden,+ "max-results" Data.=: maxResults,+ "next-token" Data.=: nextToken+ ]++-- | /See:/ 'newListIntegrationsResponse' smart constructor.+data ListIntegrationsResponse = ListIntegrationsResponse'+ { -- | The list of ListIntegrations instances.+ items :: Prelude.Maybe [ListIntegrationItem],+ -- | The pagination token from the previous ListIntegrations API call.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListIntegrationsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'items', 'listIntegrationsResponse_items' - The list of ListIntegrations instances.+--+-- 'nextToken', 'listIntegrationsResponse_nextToken' - The pagination token from the previous ListIntegrations API call.+--+-- 'httpStatus', 'listIntegrationsResponse_httpStatus' - The response's http status code.+newListIntegrationsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListIntegrationsResponse+newListIntegrationsResponse pHttpStatus_ =+ ListIntegrationsResponse'+ { items = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The list of ListIntegrations instances.+listIntegrationsResponse_items :: Lens.Lens' ListIntegrationsResponse (Prelude.Maybe [ListIntegrationItem])+listIntegrationsResponse_items = Lens.lens (\ListIntegrationsResponse' {items} -> items) (\s@ListIntegrationsResponse' {} a -> s {items = a} :: ListIntegrationsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The pagination token from the previous ListIntegrations API call.+listIntegrationsResponse_nextToken :: Lens.Lens' ListIntegrationsResponse (Prelude.Maybe Prelude.Text)+listIntegrationsResponse_nextToken = Lens.lens (\ListIntegrationsResponse' {nextToken} -> nextToken) (\s@ListIntegrationsResponse' {} a -> s {nextToken = a} :: ListIntegrationsResponse)++-- | The response's http status code.+listIntegrationsResponse_httpStatus :: Lens.Lens' ListIntegrationsResponse Prelude.Int+listIntegrationsResponse_httpStatus = Lens.lens (\ListIntegrationsResponse' {httpStatus} -> httpStatus) (\s@ListIntegrationsResponse' {} a -> s {httpStatus = a} :: ListIntegrationsResponse)++instance Prelude.NFData ListIntegrationsResponse where+ rnf ListIntegrationsResponse' {..} =+ Prelude.rnf items+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/CustomerProfiles/ListProfileObjectTypeTemplates.hs view
@@ -0,0 +1,206 @@+{-# 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.CustomerProfiles.ListProfileObjectTypeTemplates+-- 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 all of the template information for object types.+module Amazonka.CustomerProfiles.ListProfileObjectTypeTemplates+ ( -- * Creating a Request+ ListProfileObjectTypeTemplates (..),+ newListProfileObjectTypeTemplates,++ -- * Request Lenses+ listProfileObjectTypeTemplates_maxResults,+ listProfileObjectTypeTemplates_nextToken,++ -- * Destructuring the Response+ ListProfileObjectTypeTemplatesResponse (..),+ newListProfileObjectTypeTemplatesResponse,++ -- * Response Lenses+ listProfileObjectTypeTemplatesResponse_items,+ listProfileObjectTypeTemplatesResponse_nextToken,+ listProfileObjectTypeTemplatesResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CustomerProfiles.Types+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListProfileObjectTypeTemplates' smart constructor.+data ListProfileObjectTypeTemplates = ListProfileObjectTypeTemplates'+ { -- | The maximum number of objects returned per page.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | The pagination token from the previous ListObjectTypeTemplates API call.+ nextToken :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListProfileObjectTypeTemplates' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'maxResults', 'listProfileObjectTypeTemplates_maxResults' - The maximum number of objects returned per page.+--+-- 'nextToken', 'listProfileObjectTypeTemplates_nextToken' - The pagination token from the previous ListObjectTypeTemplates API call.+newListProfileObjectTypeTemplates ::+ ListProfileObjectTypeTemplates+newListProfileObjectTypeTemplates =+ ListProfileObjectTypeTemplates'+ { maxResults =+ Prelude.Nothing,+ nextToken = Prelude.Nothing+ }++-- | The maximum number of objects returned per page.+listProfileObjectTypeTemplates_maxResults :: Lens.Lens' ListProfileObjectTypeTemplates (Prelude.Maybe Prelude.Natural)+listProfileObjectTypeTemplates_maxResults = Lens.lens (\ListProfileObjectTypeTemplates' {maxResults} -> maxResults) (\s@ListProfileObjectTypeTemplates' {} a -> s {maxResults = a} :: ListProfileObjectTypeTemplates)++-- | The pagination token from the previous ListObjectTypeTemplates API call.+listProfileObjectTypeTemplates_nextToken :: Lens.Lens' ListProfileObjectTypeTemplates (Prelude.Maybe Prelude.Text)+listProfileObjectTypeTemplates_nextToken = Lens.lens (\ListProfileObjectTypeTemplates' {nextToken} -> nextToken) (\s@ListProfileObjectTypeTemplates' {} a -> s {nextToken = a} :: ListProfileObjectTypeTemplates)++instance+ Core.AWSRequest+ ListProfileObjectTypeTemplates+ where+ type+ AWSResponse ListProfileObjectTypeTemplates =+ ListProfileObjectTypeTemplatesResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListProfileObjectTypeTemplatesResponse'+ Prelude.<$> (x Data..?> "Items" Core..!@ Prelude.mempty)+ Prelude.<*> (x Data..?> "NextToken")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance+ Prelude.Hashable+ ListProfileObjectTypeTemplates+ where+ hashWithSalt+ _salt+ ListProfileObjectTypeTemplates' {..} =+ _salt+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken++instance+ Prelude.NFData+ ListProfileObjectTypeTemplates+ where+ rnf ListProfileObjectTypeTemplates' {..} =+ Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken++instance+ Data.ToHeaders+ ListProfileObjectTypeTemplates+ where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath ListProfileObjectTypeTemplates where+ toPath = Prelude.const "/templates"++instance Data.ToQuery ListProfileObjectTypeTemplates where+ toQuery ListProfileObjectTypeTemplates' {..} =+ Prelude.mconcat+ [ "max-results" Data.=: maxResults,+ "next-token" Data.=: nextToken+ ]++-- | /See:/ 'newListProfileObjectTypeTemplatesResponse' smart constructor.+data ListProfileObjectTypeTemplatesResponse = ListProfileObjectTypeTemplatesResponse'+ { -- | The list of ListProfileObjectType template instances.+ items :: Prelude.Maybe [ListProfileObjectTypeTemplateItem],+ -- | The pagination token from the previous ListObjectTypeTemplates API call.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListProfileObjectTypeTemplatesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'items', 'listProfileObjectTypeTemplatesResponse_items' - The list of ListProfileObjectType template instances.+--+-- 'nextToken', 'listProfileObjectTypeTemplatesResponse_nextToken' - The pagination token from the previous ListObjectTypeTemplates API call.+--+-- 'httpStatus', 'listProfileObjectTypeTemplatesResponse_httpStatus' - The response's http status code.+newListProfileObjectTypeTemplatesResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListProfileObjectTypeTemplatesResponse+newListProfileObjectTypeTemplatesResponse+ pHttpStatus_ =+ ListProfileObjectTypeTemplatesResponse'+ { items =+ Prelude.Nothing,+ nextToken = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The list of ListProfileObjectType template instances.+listProfileObjectTypeTemplatesResponse_items :: Lens.Lens' ListProfileObjectTypeTemplatesResponse (Prelude.Maybe [ListProfileObjectTypeTemplateItem])+listProfileObjectTypeTemplatesResponse_items = Lens.lens (\ListProfileObjectTypeTemplatesResponse' {items} -> items) (\s@ListProfileObjectTypeTemplatesResponse' {} a -> s {items = a} :: ListProfileObjectTypeTemplatesResponse) Prelude.. Lens.mapping Lens.coerced++-- | The pagination token from the previous ListObjectTypeTemplates API call.+listProfileObjectTypeTemplatesResponse_nextToken :: Lens.Lens' ListProfileObjectTypeTemplatesResponse (Prelude.Maybe Prelude.Text)+listProfileObjectTypeTemplatesResponse_nextToken = Lens.lens (\ListProfileObjectTypeTemplatesResponse' {nextToken} -> nextToken) (\s@ListProfileObjectTypeTemplatesResponse' {} a -> s {nextToken = a} :: ListProfileObjectTypeTemplatesResponse)++-- | The response's http status code.+listProfileObjectTypeTemplatesResponse_httpStatus :: Lens.Lens' ListProfileObjectTypeTemplatesResponse Prelude.Int+listProfileObjectTypeTemplatesResponse_httpStatus = Lens.lens (\ListProfileObjectTypeTemplatesResponse' {httpStatus} -> httpStatus) (\s@ListProfileObjectTypeTemplatesResponse' {} a -> s {httpStatus = a} :: ListProfileObjectTypeTemplatesResponse)++instance+ Prelude.NFData+ ListProfileObjectTypeTemplatesResponse+ where+ rnf ListProfileObjectTypeTemplatesResponse' {..} =+ Prelude.rnf items+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/CustomerProfiles/ListProfileObjectTypes.hs view
@@ -0,0 +1,207 @@+{-# 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.CustomerProfiles.ListProfileObjectTypes+-- 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 all of the templates available within the service.+module Amazonka.CustomerProfiles.ListProfileObjectTypes+ ( -- * Creating a Request+ ListProfileObjectTypes (..),+ newListProfileObjectTypes,++ -- * Request Lenses+ listProfileObjectTypes_maxResults,+ listProfileObjectTypes_nextToken,+ listProfileObjectTypes_domainName,++ -- * Destructuring the Response+ ListProfileObjectTypesResponse (..),+ newListProfileObjectTypesResponse,++ -- * Response Lenses+ listProfileObjectTypesResponse_items,+ listProfileObjectTypesResponse_nextToken,+ listProfileObjectTypesResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CustomerProfiles.Types+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListProfileObjectTypes' smart constructor.+data ListProfileObjectTypes = ListProfileObjectTypes'+ { -- | The maximum number of objects returned per page.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | Identifies the next page of results to return.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The unique name of the domain.+ domainName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListProfileObjectTypes' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'maxResults', 'listProfileObjectTypes_maxResults' - The maximum number of objects returned per page.+--+-- 'nextToken', 'listProfileObjectTypes_nextToken' - Identifies the next page of results to return.+--+-- 'domainName', 'listProfileObjectTypes_domainName' - The unique name of the domain.+newListProfileObjectTypes ::+ -- | 'domainName'+ Prelude.Text ->+ ListProfileObjectTypes+newListProfileObjectTypes pDomainName_ =+ ListProfileObjectTypes'+ { maxResults =+ Prelude.Nothing,+ nextToken = Prelude.Nothing,+ domainName = pDomainName_+ }++-- | The maximum number of objects returned per page.+listProfileObjectTypes_maxResults :: Lens.Lens' ListProfileObjectTypes (Prelude.Maybe Prelude.Natural)+listProfileObjectTypes_maxResults = Lens.lens (\ListProfileObjectTypes' {maxResults} -> maxResults) (\s@ListProfileObjectTypes' {} a -> s {maxResults = a} :: ListProfileObjectTypes)++-- | Identifies the next page of results to return.+listProfileObjectTypes_nextToken :: Lens.Lens' ListProfileObjectTypes (Prelude.Maybe Prelude.Text)+listProfileObjectTypes_nextToken = Lens.lens (\ListProfileObjectTypes' {nextToken} -> nextToken) (\s@ListProfileObjectTypes' {} a -> s {nextToken = a} :: ListProfileObjectTypes)++-- | The unique name of the domain.+listProfileObjectTypes_domainName :: Lens.Lens' ListProfileObjectTypes Prelude.Text+listProfileObjectTypes_domainName = Lens.lens (\ListProfileObjectTypes' {domainName} -> domainName) (\s@ListProfileObjectTypes' {} a -> s {domainName = a} :: ListProfileObjectTypes)++instance Core.AWSRequest ListProfileObjectTypes where+ type+ AWSResponse ListProfileObjectTypes =+ ListProfileObjectTypesResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListProfileObjectTypesResponse'+ Prelude.<$> (x Data..?> "Items" Core..!@ Prelude.mempty)+ Prelude.<*> (x Data..?> "NextToken")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable ListProfileObjectTypes where+ hashWithSalt _salt ListProfileObjectTypes' {..} =+ _salt+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` domainName++instance Prelude.NFData ListProfileObjectTypes where+ rnf ListProfileObjectTypes' {..} =+ Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf domainName++instance Data.ToHeaders ListProfileObjectTypes where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath ListProfileObjectTypes where+ toPath ListProfileObjectTypes' {..} =+ Prelude.mconcat+ ["/domains/", Data.toBS domainName, "/object-types"]++instance Data.ToQuery ListProfileObjectTypes where+ toQuery ListProfileObjectTypes' {..} =+ Prelude.mconcat+ [ "max-results" Data.=: maxResults,+ "next-token" Data.=: nextToken+ ]++-- | /See:/ 'newListProfileObjectTypesResponse' smart constructor.+data ListProfileObjectTypesResponse = ListProfileObjectTypesResponse'+ { -- | The list of ListProfileObjectTypes instances.+ items :: Prelude.Maybe [ListProfileObjectTypeItem],+ -- | Identifies the next page of results to return.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListProfileObjectTypesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'items', 'listProfileObjectTypesResponse_items' - The list of ListProfileObjectTypes instances.+--+-- 'nextToken', 'listProfileObjectTypesResponse_nextToken' - Identifies the next page of results to return.+--+-- 'httpStatus', 'listProfileObjectTypesResponse_httpStatus' - The response's http status code.+newListProfileObjectTypesResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListProfileObjectTypesResponse+newListProfileObjectTypesResponse pHttpStatus_ =+ ListProfileObjectTypesResponse'+ { items =+ Prelude.Nothing,+ nextToken = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The list of ListProfileObjectTypes instances.+listProfileObjectTypesResponse_items :: Lens.Lens' ListProfileObjectTypesResponse (Prelude.Maybe [ListProfileObjectTypeItem])+listProfileObjectTypesResponse_items = Lens.lens (\ListProfileObjectTypesResponse' {items} -> items) (\s@ListProfileObjectTypesResponse' {} a -> s {items = a} :: ListProfileObjectTypesResponse) Prelude.. Lens.mapping Lens.coerced++-- | Identifies the next page of results to return.+listProfileObjectTypesResponse_nextToken :: Lens.Lens' ListProfileObjectTypesResponse (Prelude.Maybe Prelude.Text)+listProfileObjectTypesResponse_nextToken = Lens.lens (\ListProfileObjectTypesResponse' {nextToken} -> nextToken) (\s@ListProfileObjectTypesResponse' {} a -> s {nextToken = a} :: ListProfileObjectTypesResponse)++-- | The response's http status code.+listProfileObjectTypesResponse_httpStatus :: Lens.Lens' ListProfileObjectTypesResponse Prelude.Int+listProfileObjectTypesResponse_httpStatus = Lens.lens (\ListProfileObjectTypesResponse' {httpStatus} -> httpStatus) (\s@ListProfileObjectTypesResponse' {} a -> s {httpStatus = a} :: ListProfileObjectTypesResponse)++instance+ Prelude.NFData+ ListProfileObjectTypesResponse+ where+ rnf ListProfileObjectTypesResponse' {..} =+ Prelude.rnf items+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/CustomerProfiles/ListProfileObjects.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.CustomerProfiles.ListProfileObjects+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a list of objects associated with a profile of a given+-- ProfileObjectType.+module Amazonka.CustomerProfiles.ListProfileObjects+ ( -- * Creating a Request+ ListProfileObjects (..),+ newListProfileObjects,++ -- * Request Lenses+ listProfileObjects_maxResults,+ listProfileObjects_nextToken,+ listProfileObjects_objectFilter,+ listProfileObjects_domainName,+ listProfileObjects_objectTypeName,+ listProfileObjects_profileId,++ -- * Destructuring the Response+ ListProfileObjectsResponse (..),+ newListProfileObjectsResponse,++ -- * Response Lenses+ listProfileObjectsResponse_items,+ listProfileObjectsResponse_nextToken,+ listProfileObjectsResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CustomerProfiles.Types+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListProfileObjects' smart constructor.+data ListProfileObjects = ListProfileObjects'+ { -- | The maximum number of objects returned per page.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | The pagination token from the previous call to ListProfileObjects.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | Applies a filter to the response to include profile objects with the+ -- specified index values. This filter is only supported for ObjectTypeName+ -- _asset, _case and _order.+ objectFilter :: Prelude.Maybe ObjectFilter,+ -- | The unique name of the domain.+ domainName :: Prelude.Text,+ -- | The name of the profile object type.+ objectTypeName :: Prelude.Text,+ -- | The unique identifier of a customer profile.+ profileId :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListProfileObjects' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'maxResults', 'listProfileObjects_maxResults' - The maximum number of objects returned per page.+--+-- 'nextToken', 'listProfileObjects_nextToken' - The pagination token from the previous call to ListProfileObjects.+--+-- 'objectFilter', 'listProfileObjects_objectFilter' - Applies a filter to the response to include profile objects with the+-- specified index values. This filter is only supported for ObjectTypeName+-- _asset, _case and _order.+--+-- 'domainName', 'listProfileObjects_domainName' - The unique name of the domain.+--+-- 'objectTypeName', 'listProfileObjects_objectTypeName' - The name of the profile object type.+--+-- 'profileId', 'listProfileObjects_profileId' - The unique identifier of a customer profile.+newListProfileObjects ::+ -- | 'domainName'+ Prelude.Text ->+ -- | 'objectTypeName'+ Prelude.Text ->+ -- | 'profileId'+ Prelude.Text ->+ ListProfileObjects+newListProfileObjects+ pDomainName_+ pObjectTypeName_+ pProfileId_ =+ ListProfileObjects'+ { maxResults = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ objectFilter = Prelude.Nothing,+ domainName = pDomainName_,+ objectTypeName = pObjectTypeName_,+ profileId = pProfileId_+ }++-- | The maximum number of objects returned per page.+listProfileObjects_maxResults :: Lens.Lens' ListProfileObjects (Prelude.Maybe Prelude.Natural)+listProfileObjects_maxResults = Lens.lens (\ListProfileObjects' {maxResults} -> maxResults) (\s@ListProfileObjects' {} a -> s {maxResults = a} :: ListProfileObjects)++-- | The pagination token from the previous call to ListProfileObjects.+listProfileObjects_nextToken :: Lens.Lens' ListProfileObjects (Prelude.Maybe Prelude.Text)+listProfileObjects_nextToken = Lens.lens (\ListProfileObjects' {nextToken} -> nextToken) (\s@ListProfileObjects' {} a -> s {nextToken = a} :: ListProfileObjects)++-- | Applies a filter to the response to include profile objects with the+-- specified index values. This filter is only supported for ObjectTypeName+-- _asset, _case and _order.+listProfileObjects_objectFilter :: Lens.Lens' ListProfileObjects (Prelude.Maybe ObjectFilter)+listProfileObjects_objectFilter = Lens.lens (\ListProfileObjects' {objectFilter} -> objectFilter) (\s@ListProfileObjects' {} a -> s {objectFilter = a} :: ListProfileObjects)++-- | The unique name of the domain.+listProfileObjects_domainName :: Lens.Lens' ListProfileObjects Prelude.Text+listProfileObjects_domainName = Lens.lens (\ListProfileObjects' {domainName} -> domainName) (\s@ListProfileObjects' {} a -> s {domainName = a} :: ListProfileObjects)++-- | The name of the profile object type.+listProfileObjects_objectTypeName :: Lens.Lens' ListProfileObjects Prelude.Text+listProfileObjects_objectTypeName = Lens.lens (\ListProfileObjects' {objectTypeName} -> objectTypeName) (\s@ListProfileObjects' {} a -> s {objectTypeName = a} :: ListProfileObjects)++-- | The unique identifier of a customer profile.+listProfileObjects_profileId :: Lens.Lens' ListProfileObjects Prelude.Text+listProfileObjects_profileId = Lens.lens (\ListProfileObjects' {profileId} -> profileId) (\s@ListProfileObjects' {} a -> s {profileId = a} :: ListProfileObjects)++instance Core.AWSRequest ListProfileObjects where+ type+ AWSResponse ListProfileObjects =+ ListProfileObjectsResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListProfileObjectsResponse'+ Prelude.<$> (x Data..?> "Items" Core..!@ Prelude.mempty)+ Prelude.<*> (x Data..?> "NextToken")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable ListProfileObjects where+ hashWithSalt _salt ListProfileObjects' {..} =+ _salt+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` objectFilter+ `Prelude.hashWithSalt` domainName+ `Prelude.hashWithSalt` objectTypeName+ `Prelude.hashWithSalt` profileId++instance Prelude.NFData ListProfileObjects where+ rnf ListProfileObjects' {..} =+ Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf objectFilter+ `Prelude.seq` Prelude.rnf domainName+ `Prelude.seq` Prelude.rnf objectTypeName+ `Prelude.seq` Prelude.rnf profileId++instance Data.ToHeaders ListProfileObjects where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON ListProfileObjects where+ toJSON ListProfileObjects' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("ObjectFilter" Data..=) Prelude.<$> objectFilter,+ Prelude.Just+ ("ObjectTypeName" Data..= objectTypeName),+ Prelude.Just ("ProfileId" Data..= profileId)+ ]+ )++instance Data.ToPath ListProfileObjects where+ toPath ListProfileObjects' {..} =+ Prelude.mconcat+ [ "/domains/",+ Data.toBS domainName,+ "/profiles/objects"+ ]++instance Data.ToQuery ListProfileObjects where+ toQuery ListProfileObjects' {..} =+ Prelude.mconcat+ [ "max-results" Data.=: maxResults,+ "next-token" Data.=: nextToken+ ]++-- | /See:/ 'newListProfileObjectsResponse' smart constructor.+data ListProfileObjectsResponse = ListProfileObjectsResponse'+ { -- | The list of ListProfileObject instances.+ items :: Prelude.Maybe [ListProfileObjectsItem],+ -- | The pagination token from the previous call to ListProfileObjects.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListProfileObjectsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'items', 'listProfileObjectsResponse_items' - The list of ListProfileObject instances.+--+-- 'nextToken', 'listProfileObjectsResponse_nextToken' - The pagination token from the previous call to ListProfileObjects.+--+-- 'httpStatus', 'listProfileObjectsResponse_httpStatus' - The response's http status code.+newListProfileObjectsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListProfileObjectsResponse+newListProfileObjectsResponse pHttpStatus_ =+ ListProfileObjectsResponse'+ { items =+ Prelude.Nothing,+ nextToken = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The list of ListProfileObject instances.+listProfileObjectsResponse_items :: Lens.Lens' ListProfileObjectsResponse (Prelude.Maybe [ListProfileObjectsItem])+listProfileObjectsResponse_items = Lens.lens (\ListProfileObjectsResponse' {items} -> items) (\s@ListProfileObjectsResponse' {} a -> s {items = a} :: ListProfileObjectsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The pagination token from the previous call to ListProfileObjects.+listProfileObjectsResponse_nextToken :: Lens.Lens' ListProfileObjectsResponse (Prelude.Maybe Prelude.Text)+listProfileObjectsResponse_nextToken = Lens.lens (\ListProfileObjectsResponse' {nextToken} -> nextToken) (\s@ListProfileObjectsResponse' {} a -> s {nextToken = a} :: ListProfileObjectsResponse)++-- | The response's http status code.+listProfileObjectsResponse_httpStatus :: Lens.Lens' ListProfileObjectsResponse Prelude.Int+listProfileObjectsResponse_httpStatus = Lens.lens (\ListProfileObjectsResponse' {httpStatus} -> httpStatus) (\s@ListProfileObjectsResponse' {} a -> s {httpStatus = a} :: ListProfileObjectsResponse)++instance Prelude.NFData ListProfileObjectsResponse where+ rnf ListProfileObjectsResponse' {..} =+ Prelude.rnf items+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/CustomerProfiles/ListTagsForResource.hs view
@@ -0,0 +1,161 @@+{-# 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.CustomerProfiles.ListTagsForResource+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Displays the tags associated with an Amazon Connect Customer Profiles+-- resource. In Connect Customer Profiles, domains, profile object types,+-- and integrations can be tagged.+module Amazonka.CustomerProfiles.ListTagsForResource+ ( -- * Creating a Request+ ListTagsForResource (..),+ newListTagsForResource,++ -- * Request Lenses+ listTagsForResource_resourceArn,++ -- * Destructuring the Response+ ListTagsForResourceResponse (..),+ newListTagsForResourceResponse,++ -- * Response Lenses+ listTagsForResourceResponse_tags,+ listTagsForResourceResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CustomerProfiles.Types+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListTagsForResource' smart constructor.+data ListTagsForResource = ListTagsForResource'+ { -- | The ARN of the resource for which you want to view tags.+ resourceArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListTagsForResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceArn', 'listTagsForResource_resourceArn' - The ARN of the resource for which you want to view tags.+newListTagsForResource ::+ -- | 'resourceArn'+ Prelude.Text ->+ ListTagsForResource+newListTagsForResource pResourceArn_ =+ ListTagsForResource' {resourceArn = pResourceArn_}++-- | The ARN of the resource for which you want to view tags.+listTagsForResource_resourceArn :: Lens.Lens' ListTagsForResource Prelude.Text+listTagsForResource_resourceArn = Lens.lens (\ListTagsForResource' {resourceArn} -> resourceArn) (\s@ListTagsForResource' {} a -> s {resourceArn = a} :: ListTagsForResource)++instance Core.AWSRequest ListTagsForResource where+ type+ AWSResponse ListTagsForResource =+ ListTagsForResourceResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListTagsForResourceResponse'+ Prelude.<$> (x Data..?> "tags" Core..!@ Prelude.mempty)+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable ListTagsForResource where+ hashWithSalt _salt ListTagsForResource' {..} =+ _salt `Prelude.hashWithSalt` resourceArn++instance Prelude.NFData ListTagsForResource where+ rnf ListTagsForResource' {..} =+ Prelude.rnf resourceArn++instance Data.ToHeaders ListTagsForResource where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath ListTagsForResource where+ toPath ListTagsForResource' {..} =+ Prelude.mconcat ["/tags/", Data.toBS resourceArn]++instance Data.ToQuery ListTagsForResource where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListTagsForResourceResponse' smart constructor.+data ListTagsForResourceResponse = ListTagsForResourceResponse'+ { -- | The tags used to organize, track, or control access for this resource.+ tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListTagsForResourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'tags', 'listTagsForResourceResponse_tags' - The tags used to organize, track, or control access for this resource.+--+-- 'httpStatus', 'listTagsForResourceResponse_httpStatus' - The response's http status code.+newListTagsForResourceResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListTagsForResourceResponse+newListTagsForResourceResponse pHttpStatus_ =+ ListTagsForResourceResponse'+ { tags =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The tags used to organize, track, or control access for this resource.+listTagsForResourceResponse_tags :: Lens.Lens' ListTagsForResourceResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+listTagsForResourceResponse_tags = Lens.lens (\ListTagsForResourceResponse' {tags} -> tags) (\s@ListTagsForResourceResponse' {} a -> s {tags = a} :: ListTagsForResourceResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listTagsForResourceResponse_httpStatus :: Lens.Lens' ListTagsForResourceResponse Prelude.Int+listTagsForResourceResponse_httpStatus = Lens.lens (\ListTagsForResourceResponse' {httpStatus} -> httpStatus) (\s@ListTagsForResourceResponse' {} a -> s {httpStatus = a} :: ListTagsForResourceResponse)++instance Prelude.NFData ListTagsForResourceResponse where+ rnf ListTagsForResourceResponse' {..} =+ Prelude.rnf tags+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/CustomerProfiles/ListWorkflows.hs view
@@ -0,0 +1,271 @@+{-# 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.CustomerProfiles.ListWorkflows+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Query to list all workflows.+module Amazonka.CustomerProfiles.ListWorkflows+ ( -- * Creating a Request+ ListWorkflows (..),+ newListWorkflows,++ -- * Request Lenses+ listWorkflows_maxResults,+ listWorkflows_nextToken,+ listWorkflows_queryEndDate,+ listWorkflows_queryStartDate,+ listWorkflows_status,+ listWorkflows_workflowType,+ listWorkflows_domainName,++ -- * Destructuring the Response+ ListWorkflowsResponse (..),+ newListWorkflowsResponse,++ -- * Response Lenses+ listWorkflowsResponse_items,+ listWorkflowsResponse_nextToken,+ listWorkflowsResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CustomerProfiles.Types+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListWorkflows' smart constructor.+data ListWorkflows = ListWorkflows'+ { -- | The maximum number of results to return per page.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | The token for the next set of results. Use the value returned in the+ -- previous response in the next request to retrieve the next set of+ -- results.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | Retrieve workflows ended after timestamp.+ queryEndDate :: Prelude.Maybe Data.POSIX,+ -- | Retrieve workflows started after timestamp.+ queryStartDate :: Prelude.Maybe Data.POSIX,+ -- | Status of workflow execution.+ status :: Prelude.Maybe Status,+ -- | The type of workflow. The only supported value is APPFLOW_INTEGRATION.+ workflowType :: Prelude.Maybe WorkflowType,+ -- | The unique name of the domain.+ domainName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListWorkflows' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'maxResults', 'listWorkflows_maxResults' - The maximum number of results to return per page.+--+-- 'nextToken', 'listWorkflows_nextToken' - The token for the next set of results. Use the value returned in the+-- previous response in the next request to retrieve the next set of+-- results.+--+-- 'queryEndDate', 'listWorkflows_queryEndDate' - Retrieve workflows ended after timestamp.+--+-- 'queryStartDate', 'listWorkflows_queryStartDate' - Retrieve workflows started after timestamp.+--+-- 'status', 'listWorkflows_status' - Status of workflow execution.+--+-- 'workflowType', 'listWorkflows_workflowType' - The type of workflow. The only supported value is APPFLOW_INTEGRATION.+--+-- 'domainName', 'listWorkflows_domainName' - The unique name of the domain.+newListWorkflows ::+ -- | 'domainName'+ Prelude.Text ->+ ListWorkflows+newListWorkflows pDomainName_ =+ ListWorkflows'+ { maxResults = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ queryEndDate = Prelude.Nothing,+ queryStartDate = Prelude.Nothing,+ status = Prelude.Nothing,+ workflowType = Prelude.Nothing,+ domainName = pDomainName_+ }++-- | The maximum number of results to return per page.+listWorkflows_maxResults :: Lens.Lens' ListWorkflows (Prelude.Maybe Prelude.Natural)+listWorkflows_maxResults = Lens.lens (\ListWorkflows' {maxResults} -> maxResults) (\s@ListWorkflows' {} a -> s {maxResults = a} :: ListWorkflows)++-- | The token for the next set of results. Use the value returned in the+-- previous response in the next request to retrieve the next set of+-- results.+listWorkflows_nextToken :: Lens.Lens' ListWorkflows (Prelude.Maybe Prelude.Text)+listWorkflows_nextToken = Lens.lens (\ListWorkflows' {nextToken} -> nextToken) (\s@ListWorkflows' {} a -> s {nextToken = a} :: ListWorkflows)++-- | Retrieve workflows ended after timestamp.+listWorkflows_queryEndDate :: Lens.Lens' ListWorkflows (Prelude.Maybe Prelude.UTCTime)+listWorkflows_queryEndDate = Lens.lens (\ListWorkflows' {queryEndDate} -> queryEndDate) (\s@ListWorkflows' {} a -> s {queryEndDate = a} :: ListWorkflows) Prelude.. Lens.mapping Data._Time++-- | Retrieve workflows started after timestamp.+listWorkflows_queryStartDate :: Lens.Lens' ListWorkflows (Prelude.Maybe Prelude.UTCTime)+listWorkflows_queryStartDate = Lens.lens (\ListWorkflows' {queryStartDate} -> queryStartDate) (\s@ListWorkflows' {} a -> s {queryStartDate = a} :: ListWorkflows) Prelude.. Lens.mapping Data._Time++-- | Status of workflow execution.+listWorkflows_status :: Lens.Lens' ListWorkflows (Prelude.Maybe Status)+listWorkflows_status = Lens.lens (\ListWorkflows' {status} -> status) (\s@ListWorkflows' {} a -> s {status = a} :: ListWorkflows)++-- | The type of workflow. The only supported value is APPFLOW_INTEGRATION.+listWorkflows_workflowType :: Lens.Lens' ListWorkflows (Prelude.Maybe WorkflowType)+listWorkflows_workflowType = Lens.lens (\ListWorkflows' {workflowType} -> workflowType) (\s@ListWorkflows' {} a -> s {workflowType = a} :: ListWorkflows)++-- | The unique name of the domain.+listWorkflows_domainName :: Lens.Lens' ListWorkflows Prelude.Text+listWorkflows_domainName = Lens.lens (\ListWorkflows' {domainName} -> domainName) (\s@ListWorkflows' {} a -> s {domainName = a} :: ListWorkflows)++instance Core.AWSRequest ListWorkflows where+ type+ AWSResponse ListWorkflows =+ ListWorkflowsResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListWorkflowsResponse'+ Prelude.<$> (x Data..?> "Items" Core..!@ Prelude.mempty)+ Prelude.<*> (x Data..?> "NextToken")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable ListWorkflows where+ hashWithSalt _salt ListWorkflows' {..} =+ _salt+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` queryEndDate+ `Prelude.hashWithSalt` queryStartDate+ `Prelude.hashWithSalt` status+ `Prelude.hashWithSalt` workflowType+ `Prelude.hashWithSalt` domainName++instance Prelude.NFData ListWorkflows where+ rnf ListWorkflows' {..} =+ Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf queryEndDate+ `Prelude.seq` Prelude.rnf queryStartDate+ `Prelude.seq` Prelude.rnf status+ `Prelude.seq` Prelude.rnf workflowType+ `Prelude.seq` Prelude.rnf domainName++instance Data.ToHeaders ListWorkflows where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON ListWorkflows where+ toJSON ListWorkflows' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("QueryEndDate" Data..=) Prelude.<$> queryEndDate,+ ("QueryStartDate" Data..=)+ Prelude.<$> queryStartDate,+ ("Status" Data..=) Prelude.<$> status,+ ("WorkflowType" Data..=) Prelude.<$> workflowType+ ]+ )++instance Data.ToPath ListWorkflows where+ toPath ListWorkflows' {..} =+ Prelude.mconcat+ ["/domains/", Data.toBS domainName, "/workflows"]++instance Data.ToQuery ListWorkflows where+ toQuery ListWorkflows' {..} =+ Prelude.mconcat+ [ "max-results" Data.=: maxResults,+ "next-token" Data.=: nextToken+ ]++-- | /See:/ 'newListWorkflowsResponse' smart constructor.+data ListWorkflowsResponse = ListWorkflowsResponse'+ { -- | List containing workflow details.+ items :: Prelude.Maybe [ListWorkflowsItem],+ -- | If there are additional results, this is the token for the next set of+ -- results.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListWorkflowsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'items', 'listWorkflowsResponse_items' - List containing workflow details.+--+-- 'nextToken', 'listWorkflowsResponse_nextToken' - If there are additional results, this is the token for the next set of+-- results.+--+-- 'httpStatus', 'listWorkflowsResponse_httpStatus' - The response's http status code.+newListWorkflowsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListWorkflowsResponse+newListWorkflowsResponse pHttpStatus_ =+ ListWorkflowsResponse'+ { items = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | List containing workflow details.+listWorkflowsResponse_items :: Lens.Lens' ListWorkflowsResponse (Prelude.Maybe [ListWorkflowsItem])+listWorkflowsResponse_items = Lens.lens (\ListWorkflowsResponse' {items} -> items) (\s@ListWorkflowsResponse' {} a -> s {items = a} :: ListWorkflowsResponse) Prelude.. Lens.mapping Lens.coerced++-- | If there are additional results, this is the token for the next set of+-- results.+listWorkflowsResponse_nextToken :: Lens.Lens' ListWorkflowsResponse (Prelude.Maybe Prelude.Text)+listWorkflowsResponse_nextToken = Lens.lens (\ListWorkflowsResponse' {nextToken} -> nextToken) (\s@ListWorkflowsResponse' {} a -> s {nextToken = a} :: ListWorkflowsResponse)++-- | The response's http status code.+listWorkflowsResponse_httpStatus :: Lens.Lens' ListWorkflowsResponse Prelude.Int+listWorkflowsResponse_httpStatus = Lens.lens (\ListWorkflowsResponse' {httpStatus} -> httpStatus) (\s@ListWorkflowsResponse' {} a -> s {httpStatus = a} :: ListWorkflowsResponse)++instance Prelude.NFData ListWorkflowsResponse where+ rnf ListWorkflowsResponse' {..} =+ Prelude.rnf items+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/CustomerProfiles/MergeProfiles.hs view
@@ -0,0 +1,263 @@+{-# 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.CustomerProfiles.MergeProfiles+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Runs an AWS Lambda job that does the following:+--+-- 1. All the profileKeys in the @ProfileToBeMerged@ will be moved to the+-- main profile.+--+-- 2. All the objects in the @ProfileToBeMerged@ will be moved to the main+-- profile.+--+-- 3. All the @ProfileToBeMerged@ will be deleted at the end.+--+-- 4. All the profileKeys in the @ProfileIdsToBeMerged@ will be moved to+-- the main profile.+--+-- 5. Standard fields are merged as follows:+--+-- 1. Fields are always \"union\"-ed if there are no conflicts in+-- standard fields or attributeKeys.+--+-- 2. When there are conflicting fields:+--+-- 1. If no @SourceProfileIds@ entry is specified, the main+-- Profile value is always taken.+--+-- 2. If a @SourceProfileIds@ entry is specified, the specified+-- profileId is always taken, even if it is a NULL value.+--+-- You can use MergeProfiles together with+-- <https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_GetMatches.html GetMatches>,+-- which returns potentially matching profiles, or use it with the results+-- of another matching system. After profiles have been merged, they cannot+-- be separated (unmerged).+module Amazonka.CustomerProfiles.MergeProfiles+ ( -- * Creating a Request+ MergeProfiles (..),+ newMergeProfiles,++ -- * Request Lenses+ mergeProfiles_fieldSourceProfileIds,+ mergeProfiles_domainName,+ mergeProfiles_mainProfileId,+ mergeProfiles_profileIdsToBeMerged,++ -- * Destructuring the Response+ MergeProfilesResponse (..),+ newMergeProfilesResponse,++ -- * Response Lenses+ mergeProfilesResponse_message,+ mergeProfilesResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CustomerProfiles.Types+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newMergeProfiles' smart constructor.+data MergeProfiles = MergeProfiles'+ { -- | The identifiers of the fields in the profile that has the information+ -- you want to apply to the merge. For example, say you want to merge+ -- EmailAddress from Profile1 into MainProfile. This would be the+ -- identifier of the EmailAddress field in Profile1.+ fieldSourceProfileIds :: Prelude.Maybe FieldSourceProfileIds,+ -- | The unique name of the domain.+ domainName :: Prelude.Text,+ -- | The identifier of the profile to be taken.+ mainProfileId :: Prelude.Text,+ -- | The identifier of the profile to be merged into MainProfileId.+ profileIdsToBeMerged :: Prelude.NonEmpty Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'MergeProfiles' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'fieldSourceProfileIds', 'mergeProfiles_fieldSourceProfileIds' - The identifiers of the fields in the profile that has the information+-- you want to apply to the merge. For example, say you want to merge+-- EmailAddress from Profile1 into MainProfile. This would be the+-- identifier of the EmailAddress field in Profile1.+--+-- 'domainName', 'mergeProfiles_domainName' - The unique name of the domain.+--+-- 'mainProfileId', 'mergeProfiles_mainProfileId' - The identifier of the profile to be taken.+--+-- 'profileIdsToBeMerged', 'mergeProfiles_profileIdsToBeMerged' - The identifier of the profile to be merged into MainProfileId.+newMergeProfiles ::+ -- | 'domainName'+ Prelude.Text ->+ -- | 'mainProfileId'+ Prelude.Text ->+ -- | 'profileIdsToBeMerged'+ Prelude.NonEmpty Prelude.Text ->+ MergeProfiles+newMergeProfiles+ pDomainName_+ pMainProfileId_+ pProfileIdsToBeMerged_ =+ MergeProfiles'+ { fieldSourceProfileIds =+ Prelude.Nothing,+ domainName = pDomainName_,+ mainProfileId = pMainProfileId_,+ profileIdsToBeMerged =+ Lens.coerced Lens.# pProfileIdsToBeMerged_+ }++-- | The identifiers of the fields in the profile that has the information+-- you want to apply to the merge. For example, say you want to merge+-- EmailAddress from Profile1 into MainProfile. This would be the+-- identifier of the EmailAddress field in Profile1.+mergeProfiles_fieldSourceProfileIds :: Lens.Lens' MergeProfiles (Prelude.Maybe FieldSourceProfileIds)+mergeProfiles_fieldSourceProfileIds = Lens.lens (\MergeProfiles' {fieldSourceProfileIds} -> fieldSourceProfileIds) (\s@MergeProfiles' {} a -> s {fieldSourceProfileIds = a} :: MergeProfiles)++-- | The unique name of the domain.+mergeProfiles_domainName :: Lens.Lens' MergeProfiles Prelude.Text+mergeProfiles_domainName = Lens.lens (\MergeProfiles' {domainName} -> domainName) (\s@MergeProfiles' {} a -> s {domainName = a} :: MergeProfiles)++-- | The identifier of the profile to be taken.+mergeProfiles_mainProfileId :: Lens.Lens' MergeProfiles Prelude.Text+mergeProfiles_mainProfileId = Lens.lens (\MergeProfiles' {mainProfileId} -> mainProfileId) (\s@MergeProfiles' {} a -> s {mainProfileId = a} :: MergeProfiles)++-- | The identifier of the profile to be merged into MainProfileId.+mergeProfiles_profileIdsToBeMerged :: Lens.Lens' MergeProfiles (Prelude.NonEmpty Prelude.Text)+mergeProfiles_profileIdsToBeMerged = Lens.lens (\MergeProfiles' {profileIdsToBeMerged} -> profileIdsToBeMerged) (\s@MergeProfiles' {} a -> s {profileIdsToBeMerged = a} :: MergeProfiles) Prelude.. Lens.coerced++instance Core.AWSRequest MergeProfiles where+ type+ AWSResponse MergeProfiles =+ MergeProfilesResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ MergeProfilesResponse'+ Prelude.<$> (x Data..?> "Message")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable MergeProfiles where+ hashWithSalt _salt MergeProfiles' {..} =+ _salt+ `Prelude.hashWithSalt` fieldSourceProfileIds+ `Prelude.hashWithSalt` domainName+ `Prelude.hashWithSalt` mainProfileId+ `Prelude.hashWithSalt` profileIdsToBeMerged++instance Prelude.NFData MergeProfiles where+ rnf MergeProfiles' {..} =+ Prelude.rnf fieldSourceProfileIds+ `Prelude.seq` Prelude.rnf domainName+ `Prelude.seq` Prelude.rnf mainProfileId+ `Prelude.seq` Prelude.rnf profileIdsToBeMerged++instance Data.ToHeaders MergeProfiles where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON MergeProfiles where+ toJSON MergeProfiles' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("FieldSourceProfileIds" Data..=)+ Prelude.<$> fieldSourceProfileIds,+ Prelude.Just ("MainProfileId" Data..= mainProfileId),+ Prelude.Just+ ( "ProfileIdsToBeMerged"+ Data..= profileIdsToBeMerged+ )+ ]+ )++instance Data.ToPath MergeProfiles where+ toPath MergeProfiles' {..} =+ Prelude.mconcat+ [ "/domains/",+ Data.toBS domainName,+ "/profiles/objects/merge"+ ]++instance Data.ToQuery MergeProfiles where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newMergeProfilesResponse' smart constructor.+data MergeProfilesResponse = MergeProfilesResponse'+ { -- | A message that indicates the merge request is complete.+ message :: 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 'MergeProfilesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'message', 'mergeProfilesResponse_message' - A message that indicates the merge request is complete.+--+-- 'httpStatus', 'mergeProfilesResponse_httpStatus' - The response's http status code.+newMergeProfilesResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ MergeProfilesResponse+newMergeProfilesResponse pHttpStatus_ =+ MergeProfilesResponse'+ { message = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | A message that indicates the merge request is complete.+mergeProfilesResponse_message :: Lens.Lens' MergeProfilesResponse (Prelude.Maybe Prelude.Text)+mergeProfilesResponse_message = Lens.lens (\MergeProfilesResponse' {message} -> message) (\s@MergeProfilesResponse' {} a -> s {message = a} :: MergeProfilesResponse)++-- | The response's http status code.+mergeProfilesResponse_httpStatus :: Lens.Lens' MergeProfilesResponse Prelude.Int+mergeProfilesResponse_httpStatus = Lens.lens (\MergeProfilesResponse' {httpStatus} -> httpStatus) (\s@MergeProfilesResponse' {} a -> s {httpStatus = a} :: MergeProfilesResponse)++instance Prelude.NFData MergeProfilesResponse where+ rnf MergeProfilesResponse' {..} =+ Prelude.rnf message+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/CustomerProfiles/PutIntegration.hs view
@@ -0,0 +1,403 @@+{-# 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.CustomerProfiles.PutIntegration+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Adds an integration between the service and a third-party service, which+-- includes Amazon AppFlow and Amazon Connect.+--+-- An integration can belong to only one domain.+--+-- To add or remove tags on an existing Integration, see+-- <https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_TagResource.html TagResource>+-- \/+-- <https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_UntagResource.html UntagResource>.+module Amazonka.CustomerProfiles.PutIntegration+ ( -- * Creating a Request+ PutIntegration (..),+ newPutIntegration,++ -- * Request Lenses+ putIntegration_flowDefinition,+ putIntegration_objectTypeName,+ putIntegration_objectTypeNames,+ putIntegration_tags,+ putIntegration_uri,+ putIntegration_domainName,++ -- * Destructuring the Response+ PutIntegrationResponse (..),+ newPutIntegrationResponse,++ -- * Response Lenses+ putIntegrationResponse_isUnstructured,+ putIntegrationResponse_objectTypeName,+ putIntegrationResponse_objectTypeNames,+ putIntegrationResponse_tags,+ putIntegrationResponse_workflowId,+ putIntegrationResponse_httpStatus,+ putIntegrationResponse_domainName,+ putIntegrationResponse_uri,+ putIntegrationResponse_createdAt,+ putIntegrationResponse_lastUpdatedAt,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CustomerProfiles.Types+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newPutIntegration' smart constructor.+data PutIntegration = PutIntegration'+ { -- | The configuration that controls how Customer Profiles retrieves data+ -- from the source.+ flowDefinition :: Prelude.Maybe FlowDefinition,+ -- | The name of the profile object type.+ objectTypeName :: Prelude.Maybe Prelude.Text,+ -- | A map in which each key is an event type from an external application+ -- such as Segment or Shopify, and each value is an @ObjectTypeName@+ -- (template) used to ingest the event. It supports the following event+ -- types: @SegmentIdentify@, @ShopifyCreateCustomers@,+ -- @ShopifyUpdateCustomers@, @ShopifyCreateDraftOrders@,+ -- @ShopifyUpdateDraftOrders@, @ShopifyCreateOrders@, and+ -- @ShopifyUpdatedOrders@.+ objectTypeNames :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | The tags used to organize, track, or control access for this resource.+ tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | The URI of the S3 bucket or any other type of data source.+ uri :: Prelude.Maybe Prelude.Text,+ -- | The unique name of the domain.+ domainName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutIntegration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'flowDefinition', 'putIntegration_flowDefinition' - The configuration that controls how Customer Profiles retrieves data+-- from the source.+--+-- 'objectTypeName', 'putIntegration_objectTypeName' - The name of the profile object type.+--+-- 'objectTypeNames', 'putIntegration_objectTypeNames' - A map in which each key is an event type from an external application+-- such as Segment or Shopify, and each value is an @ObjectTypeName@+-- (template) used to ingest the event. It supports the following event+-- types: @SegmentIdentify@, @ShopifyCreateCustomers@,+-- @ShopifyUpdateCustomers@, @ShopifyCreateDraftOrders@,+-- @ShopifyUpdateDraftOrders@, @ShopifyCreateOrders@, and+-- @ShopifyUpdatedOrders@.+--+-- 'tags', 'putIntegration_tags' - The tags used to organize, track, or control access for this resource.+--+-- 'uri', 'putIntegration_uri' - The URI of the S3 bucket or any other type of data source.+--+-- 'domainName', 'putIntegration_domainName' - The unique name of the domain.+newPutIntegration ::+ -- | 'domainName'+ Prelude.Text ->+ PutIntegration+newPutIntegration pDomainName_ =+ PutIntegration'+ { flowDefinition = Prelude.Nothing,+ objectTypeName = Prelude.Nothing,+ objectTypeNames = Prelude.Nothing,+ tags = Prelude.Nothing,+ uri = Prelude.Nothing,+ domainName = pDomainName_+ }++-- | The configuration that controls how Customer Profiles retrieves data+-- from the source.+putIntegration_flowDefinition :: Lens.Lens' PutIntegration (Prelude.Maybe FlowDefinition)+putIntegration_flowDefinition = Lens.lens (\PutIntegration' {flowDefinition} -> flowDefinition) (\s@PutIntegration' {} a -> s {flowDefinition = a} :: PutIntegration)++-- | The name of the profile object type.+putIntegration_objectTypeName :: Lens.Lens' PutIntegration (Prelude.Maybe Prelude.Text)+putIntegration_objectTypeName = Lens.lens (\PutIntegration' {objectTypeName} -> objectTypeName) (\s@PutIntegration' {} a -> s {objectTypeName = a} :: PutIntegration)++-- | A map in which each key is an event type from an external application+-- such as Segment or Shopify, and each value is an @ObjectTypeName@+-- (template) used to ingest the event. It supports the following event+-- types: @SegmentIdentify@, @ShopifyCreateCustomers@,+-- @ShopifyUpdateCustomers@, @ShopifyCreateDraftOrders@,+-- @ShopifyUpdateDraftOrders@, @ShopifyCreateOrders@, and+-- @ShopifyUpdatedOrders@.+putIntegration_objectTypeNames :: Lens.Lens' PutIntegration (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+putIntegration_objectTypeNames = Lens.lens (\PutIntegration' {objectTypeNames} -> objectTypeNames) (\s@PutIntegration' {} a -> s {objectTypeNames = a} :: PutIntegration) Prelude.. Lens.mapping Lens.coerced++-- | The tags used to organize, track, or control access for this resource.+putIntegration_tags :: Lens.Lens' PutIntegration (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+putIntegration_tags = Lens.lens (\PutIntegration' {tags} -> tags) (\s@PutIntegration' {} a -> s {tags = a} :: PutIntegration) Prelude.. Lens.mapping Lens.coerced++-- | The URI of the S3 bucket or any other type of data source.+putIntegration_uri :: Lens.Lens' PutIntegration (Prelude.Maybe Prelude.Text)+putIntegration_uri = Lens.lens (\PutIntegration' {uri} -> uri) (\s@PutIntegration' {} a -> s {uri = a} :: PutIntegration)++-- | The unique name of the domain.+putIntegration_domainName :: Lens.Lens' PutIntegration Prelude.Text+putIntegration_domainName = Lens.lens (\PutIntegration' {domainName} -> domainName) (\s@PutIntegration' {} a -> s {domainName = a} :: PutIntegration)++instance Core.AWSRequest PutIntegration where+ type+ AWSResponse PutIntegration =+ PutIntegrationResponse+ request overrides =+ Request.putJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ PutIntegrationResponse'+ Prelude.<$> (x Data..?> "IsUnstructured")+ Prelude.<*> (x Data..?> "ObjectTypeName")+ Prelude.<*> ( x+ Data..?> "ObjectTypeNames"+ Core..!@ Prelude.mempty+ )+ Prelude.<*> (x Data..?> "Tags" Core..!@ Prelude.mempty)+ Prelude.<*> (x Data..?> "WorkflowId")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> (x Data..:> "DomainName")+ Prelude.<*> (x Data..:> "Uri")+ Prelude.<*> (x Data..:> "CreatedAt")+ Prelude.<*> (x Data..:> "LastUpdatedAt")+ )++instance Prelude.Hashable PutIntegration where+ hashWithSalt _salt PutIntegration' {..} =+ _salt+ `Prelude.hashWithSalt` flowDefinition+ `Prelude.hashWithSalt` objectTypeName+ `Prelude.hashWithSalt` objectTypeNames+ `Prelude.hashWithSalt` tags+ `Prelude.hashWithSalt` uri+ `Prelude.hashWithSalt` domainName++instance Prelude.NFData PutIntegration where+ rnf PutIntegration' {..} =+ Prelude.rnf flowDefinition+ `Prelude.seq` Prelude.rnf objectTypeName+ `Prelude.seq` Prelude.rnf objectTypeNames+ `Prelude.seq` Prelude.rnf tags+ `Prelude.seq` Prelude.rnf uri+ `Prelude.seq` Prelude.rnf domainName++instance Data.ToHeaders PutIntegration where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON PutIntegration where+ toJSON PutIntegration' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("FlowDefinition" Data..=)+ Prelude.<$> flowDefinition,+ ("ObjectTypeName" Data..=)+ Prelude.<$> objectTypeName,+ ("ObjectTypeNames" Data..=)+ Prelude.<$> objectTypeNames,+ ("Tags" Data..=) Prelude.<$> tags,+ ("Uri" Data..=) Prelude.<$> uri+ ]+ )++instance Data.ToPath PutIntegration where+ toPath PutIntegration' {..} =+ Prelude.mconcat+ ["/domains/", Data.toBS domainName, "/integrations"]++instance Data.ToQuery PutIntegration where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newPutIntegrationResponse' smart constructor.+data PutIntegrationResponse = PutIntegrationResponse'+ { -- | Boolean to indicate if the Flow associated with the Integration is+ -- created via Appflow console or with ObjectTypeName equals _unstructured+ -- via API\/CLI in flowDefinition+ isUnstructured :: Prelude.Maybe Prelude.Bool,+ -- | The name of the profile object type.+ objectTypeName :: Prelude.Maybe Prelude.Text,+ -- | A map in which each key is an event type from an external application+ -- such as Segment or Shopify, and each value is an @ObjectTypeName@+ -- (template) used to ingest the event. It supports the following event+ -- types: @SegmentIdentify@, @ShopifyCreateCustomers@,+ -- @ShopifyUpdateCustomers@, @ShopifyCreateDraftOrders@,+ -- @ShopifyUpdateDraftOrders@, @ShopifyCreateOrders@, and+ -- @ShopifyUpdatedOrders@.+ objectTypeNames :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | The tags used to organize, track, or control access for this resource.+ tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | Unique identifier for the workflow.+ workflowId :: Prelude.Maybe Prelude.Text,+ -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | The unique name of the domain.+ domainName :: Prelude.Text,+ -- | The URI of the S3 bucket or any other type of data source.+ uri :: Prelude.Text,+ -- | The timestamp of when the domain was created.+ createdAt :: Data.POSIX,+ -- | The timestamp of when the domain was most recently edited.+ lastUpdatedAt :: Data.POSIX+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutIntegrationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'isUnstructured', 'putIntegrationResponse_isUnstructured' - Boolean to indicate if the Flow associated with the Integration is+-- created via Appflow console or with ObjectTypeName equals _unstructured+-- via API\/CLI in flowDefinition+--+-- 'objectTypeName', 'putIntegrationResponse_objectTypeName' - The name of the profile object type.+--+-- 'objectTypeNames', 'putIntegrationResponse_objectTypeNames' - A map in which each key is an event type from an external application+-- such as Segment or Shopify, and each value is an @ObjectTypeName@+-- (template) used to ingest the event. It supports the following event+-- types: @SegmentIdentify@, @ShopifyCreateCustomers@,+-- @ShopifyUpdateCustomers@, @ShopifyCreateDraftOrders@,+-- @ShopifyUpdateDraftOrders@, @ShopifyCreateOrders@, and+-- @ShopifyUpdatedOrders@.+--+-- 'tags', 'putIntegrationResponse_tags' - The tags used to organize, track, or control access for this resource.+--+-- 'workflowId', 'putIntegrationResponse_workflowId' - Unique identifier for the workflow.+--+-- 'httpStatus', 'putIntegrationResponse_httpStatus' - The response's http status code.+--+-- 'domainName', 'putIntegrationResponse_domainName' - The unique name of the domain.+--+-- 'uri', 'putIntegrationResponse_uri' - The URI of the S3 bucket or any other type of data source.+--+-- 'createdAt', 'putIntegrationResponse_createdAt' - The timestamp of when the domain was created.+--+-- 'lastUpdatedAt', 'putIntegrationResponse_lastUpdatedAt' - The timestamp of when the domain was most recently edited.+newPutIntegrationResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ -- | 'domainName'+ Prelude.Text ->+ -- | 'uri'+ Prelude.Text ->+ -- | 'createdAt'+ Prelude.UTCTime ->+ -- | 'lastUpdatedAt'+ Prelude.UTCTime ->+ PutIntegrationResponse+newPutIntegrationResponse+ pHttpStatus_+ pDomainName_+ pUri_+ pCreatedAt_+ pLastUpdatedAt_ =+ PutIntegrationResponse'+ { isUnstructured =+ Prelude.Nothing,+ objectTypeName = Prelude.Nothing,+ objectTypeNames = Prelude.Nothing,+ tags = Prelude.Nothing,+ workflowId = Prelude.Nothing,+ httpStatus = pHttpStatus_,+ domainName = pDomainName_,+ uri = pUri_,+ createdAt = Data._Time Lens.# pCreatedAt_,+ lastUpdatedAt = Data._Time Lens.# pLastUpdatedAt_+ }++-- | Boolean to indicate if the Flow associated with the Integration is+-- created via Appflow console or with ObjectTypeName equals _unstructured+-- via API\/CLI in flowDefinition+putIntegrationResponse_isUnstructured :: Lens.Lens' PutIntegrationResponse (Prelude.Maybe Prelude.Bool)+putIntegrationResponse_isUnstructured = Lens.lens (\PutIntegrationResponse' {isUnstructured} -> isUnstructured) (\s@PutIntegrationResponse' {} a -> s {isUnstructured = a} :: PutIntegrationResponse)++-- | The name of the profile object type.+putIntegrationResponse_objectTypeName :: Lens.Lens' PutIntegrationResponse (Prelude.Maybe Prelude.Text)+putIntegrationResponse_objectTypeName = Lens.lens (\PutIntegrationResponse' {objectTypeName} -> objectTypeName) (\s@PutIntegrationResponse' {} a -> s {objectTypeName = a} :: PutIntegrationResponse)++-- | A map in which each key is an event type from an external application+-- such as Segment or Shopify, and each value is an @ObjectTypeName@+-- (template) used to ingest the event. It supports the following event+-- types: @SegmentIdentify@, @ShopifyCreateCustomers@,+-- @ShopifyUpdateCustomers@, @ShopifyCreateDraftOrders@,+-- @ShopifyUpdateDraftOrders@, @ShopifyCreateOrders@, and+-- @ShopifyUpdatedOrders@.+putIntegrationResponse_objectTypeNames :: Lens.Lens' PutIntegrationResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+putIntegrationResponse_objectTypeNames = Lens.lens (\PutIntegrationResponse' {objectTypeNames} -> objectTypeNames) (\s@PutIntegrationResponse' {} a -> s {objectTypeNames = a} :: PutIntegrationResponse) Prelude.. Lens.mapping Lens.coerced++-- | The tags used to organize, track, or control access for this resource.+putIntegrationResponse_tags :: Lens.Lens' PutIntegrationResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+putIntegrationResponse_tags = Lens.lens (\PutIntegrationResponse' {tags} -> tags) (\s@PutIntegrationResponse' {} a -> s {tags = a} :: PutIntegrationResponse) Prelude.. Lens.mapping Lens.coerced++-- | Unique identifier for the workflow.+putIntegrationResponse_workflowId :: Lens.Lens' PutIntegrationResponse (Prelude.Maybe Prelude.Text)+putIntegrationResponse_workflowId = Lens.lens (\PutIntegrationResponse' {workflowId} -> workflowId) (\s@PutIntegrationResponse' {} a -> s {workflowId = a} :: PutIntegrationResponse)++-- | The response's http status code.+putIntegrationResponse_httpStatus :: Lens.Lens' PutIntegrationResponse Prelude.Int+putIntegrationResponse_httpStatus = Lens.lens (\PutIntegrationResponse' {httpStatus} -> httpStatus) (\s@PutIntegrationResponse' {} a -> s {httpStatus = a} :: PutIntegrationResponse)++-- | The unique name of the domain.+putIntegrationResponse_domainName :: Lens.Lens' PutIntegrationResponse Prelude.Text+putIntegrationResponse_domainName = Lens.lens (\PutIntegrationResponse' {domainName} -> domainName) (\s@PutIntegrationResponse' {} a -> s {domainName = a} :: PutIntegrationResponse)++-- | The URI of the S3 bucket or any other type of data source.+putIntegrationResponse_uri :: Lens.Lens' PutIntegrationResponse Prelude.Text+putIntegrationResponse_uri = Lens.lens (\PutIntegrationResponse' {uri} -> uri) (\s@PutIntegrationResponse' {} a -> s {uri = a} :: PutIntegrationResponse)++-- | The timestamp of when the domain was created.+putIntegrationResponse_createdAt :: Lens.Lens' PutIntegrationResponse Prelude.UTCTime+putIntegrationResponse_createdAt = Lens.lens (\PutIntegrationResponse' {createdAt} -> createdAt) (\s@PutIntegrationResponse' {} a -> s {createdAt = a} :: PutIntegrationResponse) Prelude.. Data._Time++-- | The timestamp of when the domain was most recently edited.+putIntegrationResponse_lastUpdatedAt :: Lens.Lens' PutIntegrationResponse Prelude.UTCTime+putIntegrationResponse_lastUpdatedAt = Lens.lens (\PutIntegrationResponse' {lastUpdatedAt} -> lastUpdatedAt) (\s@PutIntegrationResponse' {} a -> s {lastUpdatedAt = a} :: PutIntegrationResponse) Prelude.. Data._Time++instance Prelude.NFData PutIntegrationResponse where+ rnf PutIntegrationResponse' {..} =+ Prelude.rnf isUnstructured+ `Prelude.seq` Prelude.rnf objectTypeName+ `Prelude.seq` Prelude.rnf objectTypeNames+ `Prelude.seq` Prelude.rnf tags+ `Prelude.seq` Prelude.rnf workflowId+ `Prelude.seq` Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf domainName+ `Prelude.seq` Prelude.rnf uri+ `Prelude.seq` Prelude.rnf createdAt+ `Prelude.seq` Prelude.rnf lastUpdatedAt
+ gen/Amazonka/CustomerProfiles/PutProfileObject.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.CustomerProfiles.PutProfileObject+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Adds additional objects to customer profiles of a given ObjectType.+--+-- When adding a specific profile object, like a Contact Record, an+-- inferred profile can get created if it is not mapped to an existing+-- profile. The resulting profile will only have a phone number populated+-- in the standard ProfileObject. Any additional Contact Records with the+-- same phone number will be mapped to the same inferred profile.+--+-- When a ProfileObject is created and if a ProfileObjectType already+-- exists for the ProfileObject, it will provide data to a standard profile+-- depending on the ProfileObjectType definition.+--+-- PutProfileObject needs an ObjectType, which can be created using+-- PutProfileObjectType.+module Amazonka.CustomerProfiles.PutProfileObject+ ( -- * Creating a Request+ PutProfileObject (..),+ newPutProfileObject,++ -- * Request Lenses+ putProfileObject_objectTypeName,+ putProfileObject_object,+ putProfileObject_domainName,++ -- * Destructuring the Response+ PutProfileObjectResponse (..),+ newPutProfileObjectResponse,++ -- * Response Lenses+ putProfileObjectResponse_profileObjectUniqueKey,+ putProfileObjectResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CustomerProfiles.Types+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newPutProfileObject' smart constructor.+data PutProfileObject = PutProfileObject'+ { -- | The name of the profile object type.+ objectTypeName :: Prelude.Text,+ -- | A string that is serialized from a JSON object.+ object' :: Prelude.Text,+ -- | The unique name of the domain.+ domainName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutProfileObject' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'objectTypeName', 'putProfileObject_objectTypeName' - The name of the profile object type.+--+-- 'object'', 'putProfileObject_object' - A string that is serialized from a JSON object.+--+-- 'domainName', 'putProfileObject_domainName' - The unique name of the domain.+newPutProfileObject ::+ -- | 'objectTypeName'+ Prelude.Text ->+ -- | 'object''+ Prelude.Text ->+ -- | 'domainName'+ Prelude.Text ->+ PutProfileObject+newPutProfileObject+ pObjectTypeName_+ pObject_+ pDomainName_ =+ PutProfileObject'+ { objectTypeName =+ pObjectTypeName_,+ object' = pObject_,+ domainName = pDomainName_+ }++-- | The name of the profile object type.+putProfileObject_objectTypeName :: Lens.Lens' PutProfileObject Prelude.Text+putProfileObject_objectTypeName = Lens.lens (\PutProfileObject' {objectTypeName} -> objectTypeName) (\s@PutProfileObject' {} a -> s {objectTypeName = a} :: PutProfileObject)++-- | A string that is serialized from a JSON object.+putProfileObject_object :: Lens.Lens' PutProfileObject Prelude.Text+putProfileObject_object = Lens.lens (\PutProfileObject' {object'} -> object') (\s@PutProfileObject' {} a -> s {object' = a} :: PutProfileObject)++-- | The unique name of the domain.+putProfileObject_domainName :: Lens.Lens' PutProfileObject Prelude.Text+putProfileObject_domainName = Lens.lens (\PutProfileObject' {domainName} -> domainName) (\s@PutProfileObject' {} a -> s {domainName = a} :: PutProfileObject)++instance Core.AWSRequest PutProfileObject where+ type+ AWSResponse PutProfileObject =+ PutProfileObjectResponse+ request overrides =+ Request.putJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ PutProfileObjectResponse'+ Prelude.<$> (x Data..?> "ProfileObjectUniqueKey")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable PutProfileObject where+ hashWithSalt _salt PutProfileObject' {..} =+ _salt+ `Prelude.hashWithSalt` objectTypeName+ `Prelude.hashWithSalt` object'+ `Prelude.hashWithSalt` domainName++instance Prelude.NFData PutProfileObject where+ rnf PutProfileObject' {..} =+ Prelude.rnf objectTypeName+ `Prelude.seq` Prelude.rnf object'+ `Prelude.seq` Prelude.rnf domainName++instance Data.ToHeaders PutProfileObject where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON PutProfileObject where+ toJSON PutProfileObject' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just+ ("ObjectTypeName" Data..= objectTypeName),+ Prelude.Just ("Object" Data..= object')+ ]+ )++instance Data.ToPath PutProfileObject where+ toPath PutProfileObject' {..} =+ Prelude.mconcat+ [ "/domains/",+ Data.toBS domainName,+ "/profiles/objects"+ ]++instance Data.ToQuery PutProfileObject where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newPutProfileObjectResponse' smart constructor.+data PutProfileObjectResponse = PutProfileObjectResponse'+ { -- | The unique identifier of the profile object generated by the service.+ profileObjectUniqueKey :: 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 'PutProfileObjectResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'profileObjectUniqueKey', 'putProfileObjectResponse_profileObjectUniqueKey' - The unique identifier of the profile object generated by the service.+--+-- 'httpStatus', 'putProfileObjectResponse_httpStatus' - The response's http status code.+newPutProfileObjectResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ PutProfileObjectResponse+newPutProfileObjectResponse pHttpStatus_ =+ PutProfileObjectResponse'+ { profileObjectUniqueKey =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The unique identifier of the profile object generated by the service.+putProfileObjectResponse_profileObjectUniqueKey :: Lens.Lens' PutProfileObjectResponse (Prelude.Maybe Prelude.Text)+putProfileObjectResponse_profileObjectUniqueKey = Lens.lens (\PutProfileObjectResponse' {profileObjectUniqueKey} -> profileObjectUniqueKey) (\s@PutProfileObjectResponse' {} a -> s {profileObjectUniqueKey = a} :: PutProfileObjectResponse)++-- | The response's http status code.+putProfileObjectResponse_httpStatus :: Lens.Lens' PutProfileObjectResponse Prelude.Int+putProfileObjectResponse_httpStatus = Lens.lens (\PutProfileObjectResponse' {httpStatus} -> httpStatus) (\s@PutProfileObjectResponse' {} a -> s {httpStatus = a} :: PutProfileObjectResponse)++instance Prelude.NFData PutProfileObjectResponse where+ rnf PutProfileObjectResponse' {..} =+ Prelude.rnf profileObjectUniqueKey+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/CustomerProfiles/PutProfileObjectType.hs view
@@ -0,0 +1,529 @@+{-# 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.CustomerProfiles.PutProfileObjectType+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Defines a ProfileObjectType.+--+-- To add or remove tags on an existing ObjectType, see+-- <https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_TagResource.html TagResource>\/<https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_UntagResource.html UntagResource>.+module Amazonka.CustomerProfiles.PutProfileObjectType+ ( -- * Creating a Request+ PutProfileObjectType (..),+ newPutProfileObjectType,++ -- * Request Lenses+ putProfileObjectType_allowProfileCreation,+ putProfileObjectType_encryptionKey,+ putProfileObjectType_expirationDays,+ putProfileObjectType_fields,+ putProfileObjectType_keys,+ putProfileObjectType_sourceLastUpdatedTimestampFormat,+ putProfileObjectType_tags,+ putProfileObjectType_templateId,+ putProfileObjectType_domainName,+ putProfileObjectType_objectTypeName,+ putProfileObjectType_description,++ -- * Destructuring the Response+ PutProfileObjectTypeResponse (..),+ newPutProfileObjectTypeResponse,++ -- * Response Lenses+ putProfileObjectTypeResponse_allowProfileCreation,+ putProfileObjectTypeResponse_createdAt,+ putProfileObjectTypeResponse_encryptionKey,+ putProfileObjectTypeResponse_expirationDays,+ putProfileObjectTypeResponse_fields,+ putProfileObjectTypeResponse_keys,+ putProfileObjectTypeResponse_lastUpdatedAt,+ putProfileObjectTypeResponse_sourceLastUpdatedTimestampFormat,+ putProfileObjectTypeResponse_tags,+ putProfileObjectTypeResponse_templateId,+ putProfileObjectTypeResponse_httpStatus,+ putProfileObjectTypeResponse_objectTypeName,+ putProfileObjectTypeResponse_description,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CustomerProfiles.Types+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newPutProfileObjectType' smart constructor.+data PutProfileObjectType = PutProfileObjectType'+ { -- | Indicates whether a profile should be created when data is received if+ -- one doesn’t exist for an object of this type. The default is @FALSE@. If+ -- the AllowProfileCreation flag is set to @FALSE@, then the service tries+ -- to fetch a standard profile and associate this object with the profile.+ -- If it is set to @TRUE@, and if no match is found, then the service+ -- creates a new standard profile.+ allowProfileCreation :: Prelude.Maybe Prelude.Bool,+ -- | The customer-provided key to encrypt the profile object that will be+ -- created in this profile object type.+ encryptionKey :: Prelude.Maybe Prelude.Text,+ -- | The number of days until the data in the object expires.+ expirationDays :: Prelude.Maybe Prelude.Natural,+ -- | A map of the name and ObjectType field.+ fields :: Prelude.Maybe (Prelude.HashMap Prelude.Text ObjectTypeField),+ -- | A list of unique keys that can be used to map data to the profile.+ keys :: Prelude.Maybe (Prelude.HashMap Prelude.Text [ObjectTypeKey]),+ -- | The format of your @sourceLastUpdatedTimestamp@ that was previously set+ -- up.+ sourceLastUpdatedTimestampFormat :: Prelude.Maybe Prelude.Text,+ -- | The tags used to organize, track, or control access for this resource.+ tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | A unique identifier for the object template. For some attributes in the+ -- request, the service will use the default value from the object template+ -- when TemplateId is present. If these attributes are present in the+ -- request, the service may return a @BadRequestException@. These+ -- attributes include: AllowProfileCreation,+ -- SourceLastUpdatedTimestampFormat, Fields, and Keys. For example, if+ -- AllowProfileCreation is set to true when TemplateId is set, the service+ -- may return a @BadRequestException@.+ templateId :: Prelude.Maybe Prelude.Text,+ -- | The unique name of the domain.+ domainName :: Prelude.Text,+ -- | The name of the profile object type.+ objectTypeName :: Prelude.Text,+ -- | Description of the profile object type.+ description :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutProfileObjectType' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'allowProfileCreation', 'putProfileObjectType_allowProfileCreation' - Indicates whether a profile should be created when data is received if+-- one doesn’t exist for an object of this type. The default is @FALSE@. If+-- the AllowProfileCreation flag is set to @FALSE@, then the service tries+-- to fetch a standard profile and associate this object with the profile.+-- If it is set to @TRUE@, and if no match is found, then the service+-- creates a new standard profile.+--+-- 'encryptionKey', 'putProfileObjectType_encryptionKey' - The customer-provided key to encrypt the profile object that will be+-- created in this profile object type.+--+-- 'expirationDays', 'putProfileObjectType_expirationDays' - The number of days until the data in the object expires.+--+-- 'fields', 'putProfileObjectType_fields' - A map of the name and ObjectType field.+--+-- 'keys', 'putProfileObjectType_keys' - A list of unique keys that can be used to map data to the profile.+--+-- 'sourceLastUpdatedTimestampFormat', 'putProfileObjectType_sourceLastUpdatedTimestampFormat' - The format of your @sourceLastUpdatedTimestamp@ that was previously set+-- up.+--+-- 'tags', 'putProfileObjectType_tags' - The tags used to organize, track, or control access for this resource.+--+-- 'templateId', 'putProfileObjectType_templateId' - A unique identifier for the object template. For some attributes in the+-- request, the service will use the default value from the object template+-- when TemplateId is present. If these attributes are present in the+-- request, the service may return a @BadRequestException@. These+-- attributes include: AllowProfileCreation,+-- SourceLastUpdatedTimestampFormat, Fields, and Keys. For example, if+-- AllowProfileCreation is set to true when TemplateId is set, the service+-- may return a @BadRequestException@.+--+-- 'domainName', 'putProfileObjectType_domainName' - The unique name of the domain.+--+-- 'objectTypeName', 'putProfileObjectType_objectTypeName' - The name of the profile object type.+--+-- 'description', 'putProfileObjectType_description' - Description of the profile object type.+newPutProfileObjectType ::+ -- | 'domainName'+ Prelude.Text ->+ -- | 'objectTypeName'+ Prelude.Text ->+ -- | 'description'+ Prelude.Text ->+ PutProfileObjectType+newPutProfileObjectType+ pDomainName_+ pObjectTypeName_+ pDescription_ =+ PutProfileObjectType'+ { allowProfileCreation =+ Prelude.Nothing,+ encryptionKey = Prelude.Nothing,+ expirationDays = Prelude.Nothing,+ fields = Prelude.Nothing,+ keys = Prelude.Nothing,+ sourceLastUpdatedTimestampFormat = Prelude.Nothing,+ tags = Prelude.Nothing,+ templateId = Prelude.Nothing,+ domainName = pDomainName_,+ objectTypeName = pObjectTypeName_,+ description = pDescription_+ }++-- | Indicates whether a profile should be created when data is received if+-- one doesn’t exist for an object of this type. The default is @FALSE@. If+-- the AllowProfileCreation flag is set to @FALSE@, then the service tries+-- to fetch a standard profile and associate this object with the profile.+-- If it is set to @TRUE@, and if no match is found, then the service+-- creates a new standard profile.+putProfileObjectType_allowProfileCreation :: Lens.Lens' PutProfileObjectType (Prelude.Maybe Prelude.Bool)+putProfileObjectType_allowProfileCreation = Lens.lens (\PutProfileObjectType' {allowProfileCreation} -> allowProfileCreation) (\s@PutProfileObjectType' {} a -> s {allowProfileCreation = a} :: PutProfileObjectType)++-- | The customer-provided key to encrypt the profile object that will be+-- created in this profile object type.+putProfileObjectType_encryptionKey :: Lens.Lens' PutProfileObjectType (Prelude.Maybe Prelude.Text)+putProfileObjectType_encryptionKey = Lens.lens (\PutProfileObjectType' {encryptionKey} -> encryptionKey) (\s@PutProfileObjectType' {} a -> s {encryptionKey = a} :: PutProfileObjectType)++-- | The number of days until the data in the object expires.+putProfileObjectType_expirationDays :: Lens.Lens' PutProfileObjectType (Prelude.Maybe Prelude.Natural)+putProfileObjectType_expirationDays = Lens.lens (\PutProfileObjectType' {expirationDays} -> expirationDays) (\s@PutProfileObjectType' {} a -> s {expirationDays = a} :: PutProfileObjectType)++-- | A map of the name and ObjectType field.+putProfileObjectType_fields :: Lens.Lens' PutProfileObjectType (Prelude.Maybe (Prelude.HashMap Prelude.Text ObjectTypeField))+putProfileObjectType_fields = Lens.lens (\PutProfileObjectType' {fields} -> fields) (\s@PutProfileObjectType' {} a -> s {fields = a} :: PutProfileObjectType) Prelude.. Lens.mapping Lens.coerced++-- | A list of unique keys that can be used to map data to the profile.+putProfileObjectType_keys :: Lens.Lens' PutProfileObjectType (Prelude.Maybe (Prelude.HashMap Prelude.Text [ObjectTypeKey]))+putProfileObjectType_keys = Lens.lens (\PutProfileObjectType' {keys} -> keys) (\s@PutProfileObjectType' {} a -> s {keys = a} :: PutProfileObjectType) Prelude.. Lens.mapping Lens.coerced++-- | The format of your @sourceLastUpdatedTimestamp@ that was previously set+-- up.+putProfileObjectType_sourceLastUpdatedTimestampFormat :: Lens.Lens' PutProfileObjectType (Prelude.Maybe Prelude.Text)+putProfileObjectType_sourceLastUpdatedTimestampFormat = Lens.lens (\PutProfileObjectType' {sourceLastUpdatedTimestampFormat} -> sourceLastUpdatedTimestampFormat) (\s@PutProfileObjectType' {} a -> s {sourceLastUpdatedTimestampFormat = a} :: PutProfileObjectType)++-- | The tags used to organize, track, or control access for this resource.+putProfileObjectType_tags :: Lens.Lens' PutProfileObjectType (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+putProfileObjectType_tags = Lens.lens (\PutProfileObjectType' {tags} -> tags) (\s@PutProfileObjectType' {} a -> s {tags = a} :: PutProfileObjectType) Prelude.. Lens.mapping Lens.coerced++-- | A unique identifier for the object template. For some attributes in the+-- request, the service will use the default value from the object template+-- when TemplateId is present. If these attributes are present in the+-- request, the service may return a @BadRequestException@. These+-- attributes include: AllowProfileCreation,+-- SourceLastUpdatedTimestampFormat, Fields, and Keys. For example, if+-- AllowProfileCreation is set to true when TemplateId is set, the service+-- may return a @BadRequestException@.+putProfileObjectType_templateId :: Lens.Lens' PutProfileObjectType (Prelude.Maybe Prelude.Text)+putProfileObjectType_templateId = Lens.lens (\PutProfileObjectType' {templateId} -> templateId) (\s@PutProfileObjectType' {} a -> s {templateId = a} :: PutProfileObjectType)++-- | The unique name of the domain.+putProfileObjectType_domainName :: Lens.Lens' PutProfileObjectType Prelude.Text+putProfileObjectType_domainName = Lens.lens (\PutProfileObjectType' {domainName} -> domainName) (\s@PutProfileObjectType' {} a -> s {domainName = a} :: PutProfileObjectType)++-- | The name of the profile object type.+putProfileObjectType_objectTypeName :: Lens.Lens' PutProfileObjectType Prelude.Text+putProfileObjectType_objectTypeName = Lens.lens (\PutProfileObjectType' {objectTypeName} -> objectTypeName) (\s@PutProfileObjectType' {} a -> s {objectTypeName = a} :: PutProfileObjectType)++-- | Description of the profile object type.+putProfileObjectType_description :: Lens.Lens' PutProfileObjectType Prelude.Text+putProfileObjectType_description = Lens.lens (\PutProfileObjectType' {description} -> description) (\s@PutProfileObjectType' {} a -> s {description = a} :: PutProfileObjectType)++instance Core.AWSRequest PutProfileObjectType where+ type+ AWSResponse PutProfileObjectType =+ PutProfileObjectTypeResponse+ request overrides =+ Request.putJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ PutProfileObjectTypeResponse'+ Prelude.<$> (x Data..?> "AllowProfileCreation")+ Prelude.<*> (x Data..?> "CreatedAt")+ Prelude.<*> (x Data..?> "EncryptionKey")+ Prelude.<*> (x Data..?> "ExpirationDays")+ Prelude.<*> (x Data..?> "Fields" Core..!@ Prelude.mempty)+ Prelude.<*> (x Data..?> "Keys" Core..!@ Prelude.mempty)+ Prelude.<*> (x Data..?> "LastUpdatedAt")+ Prelude.<*> (x Data..?> "SourceLastUpdatedTimestampFormat")+ Prelude.<*> (x Data..?> "Tags" Core..!@ Prelude.mempty)+ Prelude.<*> (x Data..?> "TemplateId")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> (x Data..:> "ObjectTypeName")+ Prelude.<*> (x Data..:> "Description")+ )++instance Prelude.Hashable PutProfileObjectType where+ hashWithSalt _salt PutProfileObjectType' {..} =+ _salt+ `Prelude.hashWithSalt` allowProfileCreation+ `Prelude.hashWithSalt` encryptionKey+ `Prelude.hashWithSalt` expirationDays+ `Prelude.hashWithSalt` fields+ `Prelude.hashWithSalt` keys+ `Prelude.hashWithSalt` sourceLastUpdatedTimestampFormat+ `Prelude.hashWithSalt` tags+ `Prelude.hashWithSalt` templateId+ `Prelude.hashWithSalt` domainName+ `Prelude.hashWithSalt` objectTypeName+ `Prelude.hashWithSalt` description++instance Prelude.NFData PutProfileObjectType where+ rnf PutProfileObjectType' {..} =+ Prelude.rnf allowProfileCreation+ `Prelude.seq` Prelude.rnf encryptionKey+ `Prelude.seq` Prelude.rnf expirationDays+ `Prelude.seq` Prelude.rnf fields+ `Prelude.seq` Prelude.rnf keys+ `Prelude.seq` Prelude.rnf sourceLastUpdatedTimestampFormat+ `Prelude.seq` Prelude.rnf tags+ `Prelude.seq` Prelude.rnf templateId+ `Prelude.seq` Prelude.rnf domainName+ `Prelude.seq` Prelude.rnf objectTypeName+ `Prelude.seq` Prelude.rnf description++instance Data.ToHeaders PutProfileObjectType where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON PutProfileObjectType where+ toJSON PutProfileObjectType' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("AllowProfileCreation" Data..=)+ Prelude.<$> allowProfileCreation,+ ("EncryptionKey" Data..=) Prelude.<$> encryptionKey,+ ("ExpirationDays" Data..=)+ Prelude.<$> expirationDays,+ ("Fields" Data..=) Prelude.<$> fields,+ ("Keys" Data..=) Prelude.<$> keys,+ ("SourceLastUpdatedTimestampFormat" Data..=)+ Prelude.<$> sourceLastUpdatedTimestampFormat,+ ("Tags" Data..=) Prelude.<$> tags,+ ("TemplateId" Data..=) Prelude.<$> templateId,+ Prelude.Just ("Description" Data..= description)+ ]+ )++instance Data.ToPath PutProfileObjectType where+ toPath PutProfileObjectType' {..} =+ Prelude.mconcat+ [ "/domains/",+ Data.toBS domainName,+ "/object-types/",+ Data.toBS objectTypeName+ ]++instance Data.ToQuery PutProfileObjectType where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newPutProfileObjectTypeResponse' smart constructor.+data PutProfileObjectTypeResponse = PutProfileObjectTypeResponse'+ { -- | Indicates whether a profile should be created when data is received if+ -- one doesn’t exist for an object of this type. The default is @FALSE@. If+ -- the AllowProfileCreation flag is set to @FALSE@, then the service tries+ -- to fetch a standard profile and associate this object with the profile.+ -- If it is set to @TRUE@, and if no match is found, then the service+ -- creates a new standard profile.+ allowProfileCreation :: Prelude.Maybe Prelude.Bool,+ -- | The timestamp of when the domain was created.+ createdAt :: Prelude.Maybe Data.POSIX,+ -- | The customer-provided key to encrypt the profile object that will be+ -- created in this profile object type.+ encryptionKey :: Prelude.Maybe Prelude.Text,+ -- | The number of days until the data in the object expires.+ expirationDays :: Prelude.Maybe Prelude.Natural,+ -- | A map of the name and ObjectType field.+ fields :: Prelude.Maybe (Prelude.HashMap Prelude.Text ObjectTypeField),+ -- | A list of unique keys that can be used to map data to the profile.+ keys :: Prelude.Maybe (Prelude.HashMap Prelude.Text [ObjectTypeKey]),+ -- | The timestamp of when the domain was most recently edited.+ lastUpdatedAt :: Prelude.Maybe Data.POSIX,+ -- | The format of your @sourceLastUpdatedTimestamp@ that was previously set+ -- up in fields that were parsed using+ -- <https://docs.oracle.com/javase/10/docs/api/java/text/SimpleDateFormat.html SimpleDateFormat>.+ -- If you have @sourceLastUpdatedTimestamp@ in your field, you must set up+ -- @sourceLastUpdatedTimestampFormat@.+ sourceLastUpdatedTimestampFormat :: Prelude.Maybe Prelude.Text,+ -- | The tags used to organize, track, or control access for this resource.+ tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | A unique identifier for the object template.+ templateId :: Prelude.Maybe Prelude.Text,+ -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | The name of the profile object type.+ objectTypeName :: Prelude.Text,+ -- | Description of the profile object type.+ description :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutProfileObjectTypeResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'allowProfileCreation', 'putProfileObjectTypeResponse_allowProfileCreation' - Indicates whether a profile should be created when data is received if+-- one doesn’t exist for an object of this type. The default is @FALSE@. If+-- the AllowProfileCreation flag is set to @FALSE@, then the service tries+-- to fetch a standard profile and associate this object with the profile.+-- If it is set to @TRUE@, and if no match is found, then the service+-- creates a new standard profile.+--+-- 'createdAt', 'putProfileObjectTypeResponse_createdAt' - The timestamp of when the domain was created.+--+-- 'encryptionKey', 'putProfileObjectTypeResponse_encryptionKey' - The customer-provided key to encrypt the profile object that will be+-- created in this profile object type.+--+-- 'expirationDays', 'putProfileObjectTypeResponse_expirationDays' - The number of days until the data in the object expires.+--+-- 'fields', 'putProfileObjectTypeResponse_fields' - A map of the name and ObjectType field.+--+-- 'keys', 'putProfileObjectTypeResponse_keys' - A list of unique keys that can be used to map data to the profile.+--+-- 'lastUpdatedAt', 'putProfileObjectTypeResponse_lastUpdatedAt' - The timestamp of when the domain was most recently edited.+--+-- 'sourceLastUpdatedTimestampFormat', 'putProfileObjectTypeResponse_sourceLastUpdatedTimestampFormat' - The format of your @sourceLastUpdatedTimestamp@ that was previously set+-- up in fields that were parsed using+-- <https://docs.oracle.com/javase/10/docs/api/java/text/SimpleDateFormat.html SimpleDateFormat>.+-- If you have @sourceLastUpdatedTimestamp@ in your field, you must set up+-- @sourceLastUpdatedTimestampFormat@.+--+-- 'tags', 'putProfileObjectTypeResponse_tags' - The tags used to organize, track, or control access for this resource.+--+-- 'templateId', 'putProfileObjectTypeResponse_templateId' - A unique identifier for the object template.+--+-- 'httpStatus', 'putProfileObjectTypeResponse_httpStatus' - The response's http status code.+--+-- 'objectTypeName', 'putProfileObjectTypeResponse_objectTypeName' - The name of the profile object type.+--+-- 'description', 'putProfileObjectTypeResponse_description' - Description of the profile object type.+newPutProfileObjectTypeResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ -- | 'objectTypeName'+ Prelude.Text ->+ -- | 'description'+ Prelude.Text ->+ PutProfileObjectTypeResponse+newPutProfileObjectTypeResponse+ pHttpStatus_+ pObjectTypeName_+ pDescription_ =+ PutProfileObjectTypeResponse'+ { allowProfileCreation =+ Prelude.Nothing,+ createdAt = Prelude.Nothing,+ encryptionKey = Prelude.Nothing,+ expirationDays = Prelude.Nothing,+ fields = Prelude.Nothing,+ keys = Prelude.Nothing,+ lastUpdatedAt = Prelude.Nothing,+ sourceLastUpdatedTimestampFormat =+ Prelude.Nothing,+ tags = Prelude.Nothing,+ templateId = Prelude.Nothing,+ httpStatus = pHttpStatus_,+ objectTypeName = pObjectTypeName_,+ description = pDescription_+ }++-- | Indicates whether a profile should be created when data is received if+-- one doesn’t exist for an object of this type. The default is @FALSE@. If+-- the AllowProfileCreation flag is set to @FALSE@, then the service tries+-- to fetch a standard profile and associate this object with the profile.+-- If it is set to @TRUE@, and if no match is found, then the service+-- creates a new standard profile.+putProfileObjectTypeResponse_allowProfileCreation :: Lens.Lens' PutProfileObjectTypeResponse (Prelude.Maybe Prelude.Bool)+putProfileObjectTypeResponse_allowProfileCreation = Lens.lens (\PutProfileObjectTypeResponse' {allowProfileCreation} -> allowProfileCreation) (\s@PutProfileObjectTypeResponse' {} a -> s {allowProfileCreation = a} :: PutProfileObjectTypeResponse)++-- | The timestamp of when the domain was created.+putProfileObjectTypeResponse_createdAt :: Lens.Lens' PutProfileObjectTypeResponse (Prelude.Maybe Prelude.UTCTime)+putProfileObjectTypeResponse_createdAt = Lens.lens (\PutProfileObjectTypeResponse' {createdAt} -> createdAt) (\s@PutProfileObjectTypeResponse' {} a -> s {createdAt = a} :: PutProfileObjectTypeResponse) Prelude.. Lens.mapping Data._Time++-- | The customer-provided key to encrypt the profile object that will be+-- created in this profile object type.+putProfileObjectTypeResponse_encryptionKey :: Lens.Lens' PutProfileObjectTypeResponse (Prelude.Maybe Prelude.Text)+putProfileObjectTypeResponse_encryptionKey = Lens.lens (\PutProfileObjectTypeResponse' {encryptionKey} -> encryptionKey) (\s@PutProfileObjectTypeResponse' {} a -> s {encryptionKey = a} :: PutProfileObjectTypeResponse)++-- | The number of days until the data in the object expires.+putProfileObjectTypeResponse_expirationDays :: Lens.Lens' PutProfileObjectTypeResponse (Prelude.Maybe Prelude.Natural)+putProfileObjectTypeResponse_expirationDays = Lens.lens (\PutProfileObjectTypeResponse' {expirationDays} -> expirationDays) (\s@PutProfileObjectTypeResponse' {} a -> s {expirationDays = a} :: PutProfileObjectTypeResponse)++-- | A map of the name and ObjectType field.+putProfileObjectTypeResponse_fields :: Lens.Lens' PutProfileObjectTypeResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text ObjectTypeField))+putProfileObjectTypeResponse_fields = Lens.lens (\PutProfileObjectTypeResponse' {fields} -> fields) (\s@PutProfileObjectTypeResponse' {} a -> s {fields = a} :: PutProfileObjectTypeResponse) Prelude.. Lens.mapping Lens.coerced++-- | A list of unique keys that can be used to map data to the profile.+putProfileObjectTypeResponse_keys :: Lens.Lens' PutProfileObjectTypeResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text [ObjectTypeKey]))+putProfileObjectTypeResponse_keys = Lens.lens (\PutProfileObjectTypeResponse' {keys} -> keys) (\s@PutProfileObjectTypeResponse' {} a -> s {keys = a} :: PutProfileObjectTypeResponse) Prelude.. Lens.mapping Lens.coerced++-- | The timestamp of when the domain was most recently edited.+putProfileObjectTypeResponse_lastUpdatedAt :: Lens.Lens' PutProfileObjectTypeResponse (Prelude.Maybe Prelude.UTCTime)+putProfileObjectTypeResponse_lastUpdatedAt = Lens.lens (\PutProfileObjectTypeResponse' {lastUpdatedAt} -> lastUpdatedAt) (\s@PutProfileObjectTypeResponse' {} a -> s {lastUpdatedAt = a} :: PutProfileObjectTypeResponse) Prelude.. Lens.mapping Data._Time++-- | The format of your @sourceLastUpdatedTimestamp@ that was previously set+-- up in fields that were parsed using+-- <https://docs.oracle.com/javase/10/docs/api/java/text/SimpleDateFormat.html SimpleDateFormat>.+-- If you have @sourceLastUpdatedTimestamp@ in your field, you must set up+-- @sourceLastUpdatedTimestampFormat@.+putProfileObjectTypeResponse_sourceLastUpdatedTimestampFormat :: Lens.Lens' PutProfileObjectTypeResponse (Prelude.Maybe Prelude.Text)+putProfileObjectTypeResponse_sourceLastUpdatedTimestampFormat = Lens.lens (\PutProfileObjectTypeResponse' {sourceLastUpdatedTimestampFormat} -> sourceLastUpdatedTimestampFormat) (\s@PutProfileObjectTypeResponse' {} a -> s {sourceLastUpdatedTimestampFormat = a} :: PutProfileObjectTypeResponse)++-- | The tags used to organize, track, or control access for this resource.+putProfileObjectTypeResponse_tags :: Lens.Lens' PutProfileObjectTypeResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+putProfileObjectTypeResponse_tags = Lens.lens (\PutProfileObjectTypeResponse' {tags} -> tags) (\s@PutProfileObjectTypeResponse' {} a -> s {tags = a} :: PutProfileObjectTypeResponse) Prelude.. Lens.mapping Lens.coerced++-- | A unique identifier for the object template.+putProfileObjectTypeResponse_templateId :: Lens.Lens' PutProfileObjectTypeResponse (Prelude.Maybe Prelude.Text)+putProfileObjectTypeResponse_templateId = Lens.lens (\PutProfileObjectTypeResponse' {templateId} -> templateId) (\s@PutProfileObjectTypeResponse' {} a -> s {templateId = a} :: PutProfileObjectTypeResponse)++-- | The response's http status code.+putProfileObjectTypeResponse_httpStatus :: Lens.Lens' PutProfileObjectTypeResponse Prelude.Int+putProfileObjectTypeResponse_httpStatus = Lens.lens (\PutProfileObjectTypeResponse' {httpStatus} -> httpStatus) (\s@PutProfileObjectTypeResponse' {} a -> s {httpStatus = a} :: PutProfileObjectTypeResponse)++-- | The name of the profile object type.+putProfileObjectTypeResponse_objectTypeName :: Lens.Lens' PutProfileObjectTypeResponse Prelude.Text+putProfileObjectTypeResponse_objectTypeName = Lens.lens (\PutProfileObjectTypeResponse' {objectTypeName} -> objectTypeName) (\s@PutProfileObjectTypeResponse' {} a -> s {objectTypeName = a} :: PutProfileObjectTypeResponse)++-- | Description of the profile object type.+putProfileObjectTypeResponse_description :: Lens.Lens' PutProfileObjectTypeResponse Prelude.Text+putProfileObjectTypeResponse_description = Lens.lens (\PutProfileObjectTypeResponse' {description} -> description) (\s@PutProfileObjectTypeResponse' {} a -> s {description = a} :: PutProfileObjectTypeResponse)++instance Prelude.NFData PutProfileObjectTypeResponse where+ rnf PutProfileObjectTypeResponse' {..} =+ Prelude.rnf allowProfileCreation+ `Prelude.seq` Prelude.rnf createdAt+ `Prelude.seq` Prelude.rnf encryptionKey+ `Prelude.seq` Prelude.rnf expirationDays+ `Prelude.seq` Prelude.rnf fields+ `Prelude.seq` Prelude.rnf keys+ `Prelude.seq` Prelude.rnf lastUpdatedAt+ `Prelude.seq` Prelude.rnf sourceLastUpdatedTimestampFormat+ `Prelude.seq` Prelude.rnf tags+ `Prelude.seq` Prelude.rnf templateId+ `Prelude.seq` Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf objectTypeName+ `Prelude.seq` Prelude.rnf description
+ gen/Amazonka/CustomerProfiles/SearchProfiles.hs view
@@ -0,0 +1,363 @@+{-# 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.CustomerProfiles.SearchProfiles+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Searches for profiles within a specific domain using one or more+-- predefined search keys (e.g., _fullName, _phone, _email, _account, etc.)+-- and\/or custom-defined search keys. A search key is a data type pair+-- that consists of a @KeyName@ and @Values@ list.+--+-- This operation supports searching for profiles with a minimum of 1+-- key-value(s) pair and up to 5 key-value(s) pairs using either @AND@ or+-- @OR@ logic.+module Amazonka.CustomerProfiles.SearchProfiles+ ( -- * Creating a Request+ SearchProfiles (..),+ newSearchProfiles,++ -- * Request Lenses+ searchProfiles_additionalSearchKeys,+ searchProfiles_logicalOperator,+ searchProfiles_maxResults,+ searchProfiles_nextToken,+ searchProfiles_domainName,+ searchProfiles_keyName,+ searchProfiles_values,++ -- * Destructuring the Response+ SearchProfilesResponse (..),+ newSearchProfilesResponse,++ -- * Response Lenses+ searchProfilesResponse_items,+ searchProfilesResponse_nextToken,+ searchProfilesResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CustomerProfiles.Types+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newSearchProfiles' smart constructor.+data SearchProfiles = SearchProfiles'+ { -- | A list of @AdditionalSearchKey@ objects that are each searchable+ -- identifiers of a profile. Each @AdditionalSearchKey@ object contains a+ -- @KeyName@ and a list of @Values@ associated with that specific key+ -- (i.e., a key-value(s) pair). These additional search keys will be used+ -- in conjunction with the @LogicalOperator@ and the required @KeyName@ and+ -- @Values@ parameters to search for profiles that satisfy the search+ -- criteria.+ additionalSearchKeys :: Prelude.Maybe (Prelude.NonEmpty AdditionalSearchKey),+ -- | Relationship between all specified search keys that will be used to+ -- search for profiles. This includes the required @KeyName@ and @Values@+ -- parameters as well as any key-value(s) pairs specified in the+ -- @AdditionalSearchKeys@ list.+ --+ -- This parameter influences which profiles will be returned in the+ -- response in the following manner:+ --+ -- - @AND@ - The response only includes profiles that match all of the+ -- search keys.+ --+ -- - @OR@ - The response includes profiles that match at least one of the+ -- search keys.+ --+ -- The @OR@ relationship is the default behavior if this parameter is not+ -- included in the request.+ logicalOperator :: Prelude.Maybe LogicalOperator,+ -- | The maximum number of objects returned per page.+ --+ -- The default is 20 if this parameter is not included in the request.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | The pagination token from the previous SearchProfiles API call.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The unique name of the domain.+ domainName :: Prelude.Text,+ -- | A searchable identifier of a customer profile. The predefined keys you+ -- can use to search include: _account, _profileId, _assetId, _caseId,+ -- _orderId, _fullName, _phone, _email, _ctrContactId, _marketoLeadId,+ -- _salesforceAccountId, _salesforceContactId, _salesforceAssetId,+ -- _zendeskUserId, _zendeskExternalId, _zendeskTicketId,+ -- _serviceNowSystemId, _serviceNowIncidentId, _segmentUserId,+ -- _shopifyCustomerId, _shopifyOrderId.+ keyName :: Prelude.Text,+ -- | A list of key values.+ values :: [Prelude.Text]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SearchProfiles' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'additionalSearchKeys', 'searchProfiles_additionalSearchKeys' - A list of @AdditionalSearchKey@ objects that are each searchable+-- identifiers of a profile. Each @AdditionalSearchKey@ object contains a+-- @KeyName@ and a list of @Values@ associated with that specific key+-- (i.e., a key-value(s) pair). These additional search keys will be used+-- in conjunction with the @LogicalOperator@ and the required @KeyName@ and+-- @Values@ parameters to search for profiles that satisfy the search+-- criteria.+--+-- 'logicalOperator', 'searchProfiles_logicalOperator' - Relationship between all specified search keys that will be used to+-- search for profiles. This includes the required @KeyName@ and @Values@+-- parameters as well as any key-value(s) pairs specified in the+-- @AdditionalSearchKeys@ list.+--+-- This parameter influences which profiles will be returned in the+-- response in the following manner:+--+-- - @AND@ - The response only includes profiles that match all of the+-- search keys.+--+-- - @OR@ - The response includes profiles that match at least one of the+-- search keys.+--+-- The @OR@ relationship is the default behavior if this parameter is not+-- included in the request.+--+-- 'maxResults', 'searchProfiles_maxResults' - The maximum number of objects returned per page.+--+-- The default is 20 if this parameter is not included in the request.+--+-- 'nextToken', 'searchProfiles_nextToken' - The pagination token from the previous SearchProfiles API call.+--+-- 'domainName', 'searchProfiles_domainName' - The unique name of the domain.+--+-- 'keyName', 'searchProfiles_keyName' - A searchable identifier of a customer profile. The predefined keys you+-- can use to search include: _account, _profileId, _assetId, _caseId,+-- _orderId, _fullName, _phone, _email, _ctrContactId, _marketoLeadId,+-- _salesforceAccountId, _salesforceContactId, _salesforceAssetId,+-- _zendeskUserId, _zendeskExternalId, _zendeskTicketId,+-- _serviceNowSystemId, _serviceNowIncidentId, _segmentUserId,+-- _shopifyCustomerId, _shopifyOrderId.+--+-- 'values', 'searchProfiles_values' - A list of key values.+newSearchProfiles ::+ -- | 'domainName'+ Prelude.Text ->+ -- | 'keyName'+ Prelude.Text ->+ SearchProfiles+newSearchProfiles pDomainName_ pKeyName_ =+ SearchProfiles'+ { additionalSearchKeys =+ Prelude.Nothing,+ logicalOperator = Prelude.Nothing,+ maxResults = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ domainName = pDomainName_,+ keyName = pKeyName_,+ values = Prelude.mempty+ }++-- | A list of @AdditionalSearchKey@ objects that are each searchable+-- identifiers of a profile. Each @AdditionalSearchKey@ object contains a+-- @KeyName@ and a list of @Values@ associated with that specific key+-- (i.e., a key-value(s) pair). These additional search keys will be used+-- in conjunction with the @LogicalOperator@ and the required @KeyName@ and+-- @Values@ parameters to search for profiles that satisfy the search+-- criteria.+searchProfiles_additionalSearchKeys :: Lens.Lens' SearchProfiles (Prelude.Maybe (Prelude.NonEmpty AdditionalSearchKey))+searchProfiles_additionalSearchKeys = Lens.lens (\SearchProfiles' {additionalSearchKeys} -> additionalSearchKeys) (\s@SearchProfiles' {} a -> s {additionalSearchKeys = a} :: SearchProfiles) Prelude.. Lens.mapping Lens.coerced++-- | Relationship between all specified search keys that will be used to+-- search for profiles. This includes the required @KeyName@ and @Values@+-- parameters as well as any key-value(s) pairs specified in the+-- @AdditionalSearchKeys@ list.+--+-- This parameter influences which profiles will be returned in the+-- response in the following manner:+--+-- - @AND@ - The response only includes profiles that match all of the+-- search keys.+--+-- - @OR@ - The response includes profiles that match at least one of the+-- search keys.+--+-- The @OR@ relationship is the default behavior if this parameter is not+-- included in the request.+searchProfiles_logicalOperator :: Lens.Lens' SearchProfiles (Prelude.Maybe LogicalOperator)+searchProfiles_logicalOperator = Lens.lens (\SearchProfiles' {logicalOperator} -> logicalOperator) (\s@SearchProfiles' {} a -> s {logicalOperator = a} :: SearchProfiles)++-- | The maximum number of objects returned per page.+--+-- The default is 20 if this parameter is not included in the request.+searchProfiles_maxResults :: Lens.Lens' SearchProfiles (Prelude.Maybe Prelude.Natural)+searchProfiles_maxResults = Lens.lens (\SearchProfiles' {maxResults} -> maxResults) (\s@SearchProfiles' {} a -> s {maxResults = a} :: SearchProfiles)++-- | The pagination token from the previous SearchProfiles API call.+searchProfiles_nextToken :: Lens.Lens' SearchProfiles (Prelude.Maybe Prelude.Text)+searchProfiles_nextToken = Lens.lens (\SearchProfiles' {nextToken} -> nextToken) (\s@SearchProfiles' {} a -> s {nextToken = a} :: SearchProfiles)++-- | The unique name of the domain.+searchProfiles_domainName :: Lens.Lens' SearchProfiles Prelude.Text+searchProfiles_domainName = Lens.lens (\SearchProfiles' {domainName} -> domainName) (\s@SearchProfiles' {} a -> s {domainName = a} :: SearchProfiles)++-- | A searchable identifier of a customer profile. The predefined keys you+-- can use to search include: _account, _profileId, _assetId, _caseId,+-- _orderId, _fullName, _phone, _email, _ctrContactId, _marketoLeadId,+-- _salesforceAccountId, _salesforceContactId, _salesforceAssetId,+-- _zendeskUserId, _zendeskExternalId, _zendeskTicketId,+-- _serviceNowSystemId, _serviceNowIncidentId, _segmentUserId,+-- _shopifyCustomerId, _shopifyOrderId.+searchProfiles_keyName :: Lens.Lens' SearchProfiles Prelude.Text+searchProfiles_keyName = Lens.lens (\SearchProfiles' {keyName} -> keyName) (\s@SearchProfiles' {} a -> s {keyName = a} :: SearchProfiles)++-- | A list of key values.+searchProfiles_values :: Lens.Lens' SearchProfiles [Prelude.Text]+searchProfiles_values = Lens.lens (\SearchProfiles' {values} -> values) (\s@SearchProfiles' {} a -> s {values = a} :: SearchProfiles) Prelude.. Lens.coerced++instance Core.AWSRequest SearchProfiles where+ type+ AWSResponse SearchProfiles =+ SearchProfilesResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ SearchProfilesResponse'+ Prelude.<$> (x Data..?> "Items" Core..!@ Prelude.mempty)+ Prelude.<*> (x Data..?> "NextToken")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable SearchProfiles where+ hashWithSalt _salt SearchProfiles' {..} =+ _salt+ `Prelude.hashWithSalt` additionalSearchKeys+ `Prelude.hashWithSalt` logicalOperator+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` domainName+ `Prelude.hashWithSalt` keyName+ `Prelude.hashWithSalt` values++instance Prelude.NFData SearchProfiles where+ rnf SearchProfiles' {..} =+ Prelude.rnf additionalSearchKeys+ `Prelude.seq` Prelude.rnf logicalOperator+ `Prelude.seq` Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf domainName+ `Prelude.seq` Prelude.rnf keyName+ `Prelude.seq` Prelude.rnf values++instance Data.ToHeaders SearchProfiles where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON SearchProfiles where+ toJSON SearchProfiles' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("AdditionalSearchKeys" Data..=)+ Prelude.<$> additionalSearchKeys,+ ("LogicalOperator" Data..=)+ Prelude.<$> logicalOperator,+ Prelude.Just ("KeyName" Data..= keyName),+ Prelude.Just ("Values" Data..= values)+ ]+ )++instance Data.ToPath SearchProfiles where+ toPath SearchProfiles' {..} =+ Prelude.mconcat+ [ "/domains/",+ Data.toBS domainName,+ "/profiles/search"+ ]++instance Data.ToQuery SearchProfiles where+ toQuery SearchProfiles' {..} =+ Prelude.mconcat+ [ "max-results" Data.=: maxResults,+ "next-token" Data.=: nextToken+ ]++-- | /See:/ 'newSearchProfilesResponse' smart constructor.+data SearchProfilesResponse = SearchProfilesResponse'+ { -- | The list of Profiles matching the search criteria.+ items :: Prelude.Maybe [Profile],+ -- | The pagination token from the previous SearchProfiles API call.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SearchProfilesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'items', 'searchProfilesResponse_items' - The list of Profiles matching the search criteria.+--+-- 'nextToken', 'searchProfilesResponse_nextToken' - The pagination token from the previous SearchProfiles API call.+--+-- 'httpStatus', 'searchProfilesResponse_httpStatus' - The response's http status code.+newSearchProfilesResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ SearchProfilesResponse+newSearchProfilesResponse pHttpStatus_ =+ SearchProfilesResponse'+ { items = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The list of Profiles matching the search criteria.+searchProfilesResponse_items :: Lens.Lens' SearchProfilesResponse (Prelude.Maybe [Profile])+searchProfilesResponse_items = Lens.lens (\SearchProfilesResponse' {items} -> items) (\s@SearchProfilesResponse' {} a -> s {items = a} :: SearchProfilesResponse) Prelude.. Lens.mapping Lens.coerced++-- | The pagination token from the previous SearchProfiles API call.+searchProfilesResponse_nextToken :: Lens.Lens' SearchProfilesResponse (Prelude.Maybe Prelude.Text)+searchProfilesResponse_nextToken = Lens.lens (\SearchProfilesResponse' {nextToken} -> nextToken) (\s@SearchProfilesResponse' {} a -> s {nextToken = a} :: SearchProfilesResponse)++-- | The response's http status code.+searchProfilesResponse_httpStatus :: Lens.Lens' SearchProfilesResponse Prelude.Int+searchProfilesResponse_httpStatus = Lens.lens (\SearchProfilesResponse' {httpStatus} -> httpStatus) (\s@SearchProfilesResponse' {} a -> s {httpStatus = a} :: SearchProfilesResponse)++instance Prelude.NFData SearchProfilesResponse where+ rnf SearchProfilesResponse' {..} =+ Prelude.rnf items+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/CustomerProfiles/TagResource.hs view
@@ -0,0 +1,179 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.CustomerProfiles.TagResource+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Assigns one or more tags (key-value pairs) to the specified Amazon+-- Connect Customer Profiles resource. Tags can help you organize and+-- categorize your resources. You can also use them to scope user+-- permissions by granting a user permission to access or change only+-- resources with certain tag values. In Connect Customer Profiles,+-- domains, profile object types, and integrations can be tagged.+--+-- Tags don\'t have any semantic meaning to AWS and are interpreted+-- strictly as strings of characters.+--+-- You can use the TagResource action with a resource that already has+-- tags. If you specify a new tag key, this tag is appended to the list of+-- tags associated with the resource. If you specify a tag key that is+-- already associated with the resource, the new tag value that you specify+-- replaces the previous value for that tag.+--+-- You can associate as many as 50 tags with a resource.+module Amazonka.CustomerProfiles.TagResource+ ( -- * Creating a Request+ TagResource (..),+ newTagResource,++ -- * Request Lenses+ tagResource_resourceArn,+ tagResource_tags,++ -- * Destructuring the Response+ TagResourceResponse (..),+ newTagResourceResponse,++ -- * Response Lenses+ tagResourceResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CustomerProfiles.Types+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newTagResource' smart constructor.+data TagResource = TagResource'+ { -- | The ARN of the resource that you\'re adding tags to.+ resourceArn :: Prelude.Text,+ -- | The tags used to organize, track, or control access for this resource.+ tags :: Prelude.HashMap Prelude.Text Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TagResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceArn', 'tagResource_resourceArn' - The ARN of the resource that you\'re adding tags to.+--+-- 'tags', 'tagResource_tags' - The tags used to organize, track, or control access for this resource.+newTagResource ::+ -- | 'resourceArn'+ Prelude.Text ->+ TagResource+newTagResource pResourceArn_ =+ TagResource'+ { resourceArn = pResourceArn_,+ tags = Prelude.mempty+ }++-- | The ARN of the resource that you\'re adding tags to.+tagResource_resourceArn :: Lens.Lens' TagResource Prelude.Text+tagResource_resourceArn = Lens.lens (\TagResource' {resourceArn} -> resourceArn) (\s@TagResource' {} a -> s {resourceArn = a} :: TagResource)++-- | The tags used to organize, track, or control access for this resource.+tagResource_tags :: Lens.Lens' TagResource (Prelude.HashMap Prelude.Text Prelude.Text)+tagResource_tags = Lens.lens (\TagResource' {tags} -> tags) (\s@TagResource' {} a -> s {tags = a} :: TagResource) Prelude.. Lens.coerced++instance Core.AWSRequest TagResource where+ type AWSResponse TagResource = TagResourceResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveEmpty+ ( \s h x ->+ TagResourceResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable TagResource where+ hashWithSalt _salt TagResource' {..} =+ _salt+ `Prelude.hashWithSalt` resourceArn+ `Prelude.hashWithSalt` tags++instance Prelude.NFData TagResource where+ rnf TagResource' {..} =+ Prelude.rnf resourceArn+ `Prelude.seq` Prelude.rnf tags++instance Data.ToHeaders TagResource where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON TagResource where+ toJSON TagResource' {..} =+ Data.object+ ( Prelude.catMaybes+ [Prelude.Just ("tags" Data..= tags)]+ )++instance Data.ToPath TagResource where+ toPath TagResource' {..} =+ Prelude.mconcat ["/tags/", Data.toBS resourceArn]++instance Data.ToQuery TagResource where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newTagResourceResponse' smart constructor.+data TagResourceResponse = TagResourceResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TagResourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'tagResourceResponse_httpStatus' - The response's http status code.+newTagResourceResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ TagResourceResponse+newTagResourceResponse pHttpStatus_ =+ TagResourceResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+tagResourceResponse_httpStatus :: Lens.Lens' TagResourceResponse Prelude.Int+tagResourceResponse_httpStatus = Lens.lens (\TagResourceResponse' {httpStatus} -> httpStatus) (\s@TagResourceResponse' {} a -> s {httpStatus = a} :: TagResourceResponse)++instance Prelude.NFData TagResourceResponse where+ rnf TagResourceResponse' {..} = Prelude.rnf httpStatus
+ gen/Amazonka/CustomerProfiles/Types.hs view
@@ -0,0 +1,694 @@+{-# 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.CustomerProfiles.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.CustomerProfiles.Types+ ( -- * Service Configuration+ defaultService,++ -- * Errors+ _AccessDeniedException,+ _BadRequestException,+ _InternalServerException,+ _ResourceNotFoundException,+ _ThrottlingException,++ -- * ConflictResolvingModel+ ConflictResolvingModel (..),++ -- * DataPullMode+ DataPullMode (..),++ -- * FieldContentType+ FieldContentType (..),++ -- * Gender+ Gender (..),++ -- * IdentityResolutionJobStatus+ IdentityResolutionJobStatus (..),++ -- * JobScheduleDayOfTheWeek+ JobScheduleDayOfTheWeek (..),++ -- * LogicalOperator+ LogicalOperator (..),++ -- * MarketoConnectorOperator+ MarketoConnectorOperator (..),++ -- * OperatorPropertiesKeys+ OperatorPropertiesKeys (..),++ -- * PartyType+ PartyType (..),++ -- * S3ConnectorOperator+ S3ConnectorOperator (..),++ -- * SalesforceConnectorOperator+ SalesforceConnectorOperator (..),++ -- * ServiceNowConnectorOperator+ ServiceNowConnectorOperator (..),++ -- * SourceConnectorType+ SourceConnectorType (..),++ -- * StandardIdentifier+ StandardIdentifier (..),++ -- * Status+ Status (..),++ -- * TaskType+ TaskType (..),++ -- * TriggerType+ TriggerType (..),++ -- * WorkflowType+ WorkflowType (..),++ -- * ZendeskConnectorOperator+ ZendeskConnectorOperator (..),++ -- * AdditionalSearchKey+ AdditionalSearchKey (..),+ newAdditionalSearchKey,+ additionalSearchKey_keyName,+ additionalSearchKey_values,++ -- * Address+ Address (..),+ newAddress,+ address_address1,+ address_address2,+ address_address3,+ address_address4,+ address_city,+ address_country,+ address_county,+ address_postalCode,+ address_province,+ address_state,++ -- * AppflowIntegration+ AppflowIntegration (..),+ newAppflowIntegration,+ appflowIntegration_batches,+ appflowIntegration_flowDefinition,++ -- * AppflowIntegrationWorkflowAttributes+ AppflowIntegrationWorkflowAttributes (..),+ newAppflowIntegrationWorkflowAttributes,+ appflowIntegrationWorkflowAttributes_roleArn,+ appflowIntegrationWorkflowAttributes_sourceConnectorType,+ appflowIntegrationWorkflowAttributes_connectorProfileName,++ -- * AppflowIntegrationWorkflowMetrics+ AppflowIntegrationWorkflowMetrics (..),+ newAppflowIntegrationWorkflowMetrics,+ appflowIntegrationWorkflowMetrics_recordsProcessed,+ appflowIntegrationWorkflowMetrics_stepsCompleted,+ appflowIntegrationWorkflowMetrics_totalSteps,++ -- * AppflowIntegrationWorkflowStep+ AppflowIntegrationWorkflowStep (..),+ newAppflowIntegrationWorkflowStep,+ appflowIntegrationWorkflowStep_flowName,+ appflowIntegrationWorkflowStep_status,+ appflowIntegrationWorkflowStep_executionMessage,+ appflowIntegrationWorkflowStep_recordsProcessed,+ appflowIntegrationWorkflowStep_batchRecordsStartTime,+ appflowIntegrationWorkflowStep_batchRecordsEndTime,+ appflowIntegrationWorkflowStep_createdAt,+ appflowIntegrationWorkflowStep_lastUpdatedAt,++ -- * AutoMerging+ AutoMerging (..),+ newAutoMerging,+ autoMerging_conflictResolution,+ autoMerging_consolidation,+ autoMerging_minAllowedConfidenceScoreForMerging,+ autoMerging_enabled,++ -- * Batch+ Batch (..),+ newBatch,+ batch_startTime,+ batch_endTime,++ -- * ConflictResolution+ ConflictResolution (..),+ newConflictResolution,+ conflictResolution_sourceName,+ conflictResolution_conflictResolvingModel,++ -- * ConnectorOperator+ ConnectorOperator (..),+ newConnectorOperator,+ connectorOperator_marketo,+ connectorOperator_s3,+ connectorOperator_salesforce,+ connectorOperator_serviceNow,+ connectorOperator_zendesk,++ -- * Consolidation+ Consolidation (..),+ newConsolidation,+ consolidation_matchingAttributesList,++ -- * DomainStats+ DomainStats (..),+ newDomainStats,+ domainStats_meteringProfileCount,+ domainStats_objectCount,+ domainStats_profileCount,+ domainStats_totalSize,++ -- * ExportingConfig+ ExportingConfig (..),+ newExportingConfig,+ exportingConfig_s3Exporting,++ -- * ExportingLocation+ ExportingLocation (..),+ newExportingLocation,+ exportingLocation_s3Exporting,++ -- * FieldSourceProfileIds+ FieldSourceProfileIds (..),+ newFieldSourceProfileIds,+ fieldSourceProfileIds_accountNumber,+ fieldSourceProfileIds_additionalInformation,+ fieldSourceProfileIds_address,+ fieldSourceProfileIds_attributes,+ fieldSourceProfileIds_billingAddress,+ fieldSourceProfileIds_birthDate,+ fieldSourceProfileIds_businessEmailAddress,+ fieldSourceProfileIds_businessName,+ fieldSourceProfileIds_businessPhoneNumber,+ fieldSourceProfileIds_emailAddress,+ fieldSourceProfileIds_firstName,+ fieldSourceProfileIds_gender,+ fieldSourceProfileIds_homePhoneNumber,+ fieldSourceProfileIds_lastName,+ fieldSourceProfileIds_mailingAddress,+ fieldSourceProfileIds_middleName,+ fieldSourceProfileIds_mobilePhoneNumber,+ fieldSourceProfileIds_partyType,+ fieldSourceProfileIds_personalEmailAddress,+ fieldSourceProfileIds_phoneNumber,+ fieldSourceProfileIds_shippingAddress,++ -- * FlowDefinition+ FlowDefinition (..),+ newFlowDefinition,+ flowDefinition_description,+ flowDefinition_flowName,+ flowDefinition_kmsArn,+ flowDefinition_sourceFlowConfig,+ flowDefinition_tasks,+ flowDefinition_triggerConfig,++ -- * FoundByKeyValue+ FoundByKeyValue (..),+ newFoundByKeyValue,+ foundByKeyValue_keyName,+ foundByKeyValue_values,++ -- * IdentityResolutionJob+ IdentityResolutionJob (..),+ newIdentityResolutionJob,+ identityResolutionJob_domainName,+ identityResolutionJob_exportingLocation,+ identityResolutionJob_jobEndTime,+ identityResolutionJob_jobId,+ identityResolutionJob_jobStartTime,+ identityResolutionJob_jobStats,+ identityResolutionJob_message,+ identityResolutionJob_status,++ -- * IncrementalPullConfig+ IncrementalPullConfig (..),+ newIncrementalPullConfig,+ incrementalPullConfig_datetimeTypeFieldName,++ -- * IntegrationConfig+ IntegrationConfig (..),+ newIntegrationConfig,+ integrationConfig_appflowIntegration,++ -- * JobSchedule+ JobSchedule (..),+ newJobSchedule,+ jobSchedule_dayOfTheWeek,+ jobSchedule_time,++ -- * JobStats+ JobStats (..),+ newJobStats,+ jobStats_numberOfMatchesFound,+ jobStats_numberOfMergesDone,+ jobStats_numberOfProfilesReviewed,++ -- * ListDomainItem+ ListDomainItem (..),+ newListDomainItem,+ listDomainItem_tags,+ listDomainItem_domainName,+ listDomainItem_createdAt,+ listDomainItem_lastUpdatedAt,++ -- * ListIntegrationItem+ ListIntegrationItem (..),+ newListIntegrationItem,+ listIntegrationItem_isUnstructured,+ listIntegrationItem_objectTypeName,+ listIntegrationItem_objectTypeNames,+ listIntegrationItem_tags,+ listIntegrationItem_workflowId,+ listIntegrationItem_domainName,+ listIntegrationItem_uri,+ listIntegrationItem_createdAt,+ listIntegrationItem_lastUpdatedAt,++ -- * ListProfileObjectTypeItem+ ListProfileObjectTypeItem (..),+ newListProfileObjectTypeItem,+ listProfileObjectTypeItem_createdAt,+ listProfileObjectTypeItem_lastUpdatedAt,+ listProfileObjectTypeItem_tags,+ listProfileObjectTypeItem_objectTypeName,+ listProfileObjectTypeItem_description,++ -- * ListProfileObjectTypeTemplateItem+ ListProfileObjectTypeTemplateItem (..),+ newListProfileObjectTypeTemplateItem,+ listProfileObjectTypeTemplateItem_sourceName,+ listProfileObjectTypeTemplateItem_sourceObject,+ listProfileObjectTypeTemplateItem_templateId,++ -- * ListProfileObjectsItem+ ListProfileObjectsItem (..),+ newListProfileObjectsItem,+ listProfileObjectsItem_object,+ listProfileObjectsItem_objectTypeName,+ listProfileObjectsItem_profileObjectUniqueKey,++ -- * ListWorkflowsItem+ ListWorkflowsItem (..),+ newListWorkflowsItem,+ listWorkflowsItem_workflowType,+ listWorkflowsItem_workflowId,+ listWorkflowsItem_status,+ listWorkflowsItem_statusDescription,+ listWorkflowsItem_createdAt,+ listWorkflowsItem_lastUpdatedAt,++ -- * MarketoSourceProperties+ MarketoSourceProperties (..),+ newMarketoSourceProperties,+ marketoSourceProperties_object,++ -- * MatchItem+ MatchItem (..),+ newMatchItem,+ matchItem_confidenceScore,+ matchItem_matchId,+ matchItem_profileIds,++ -- * MatchingRequest+ MatchingRequest (..),+ newMatchingRequest,+ matchingRequest_autoMerging,+ matchingRequest_exportingConfig,+ matchingRequest_jobSchedule,+ matchingRequest_enabled,++ -- * MatchingResponse+ MatchingResponse (..),+ newMatchingResponse,+ matchingResponse_autoMerging,+ matchingResponse_enabled,+ matchingResponse_exportingConfig,+ matchingResponse_jobSchedule,++ -- * ObjectFilter+ ObjectFilter (..),+ newObjectFilter,+ objectFilter_keyName,+ objectFilter_values,++ -- * ObjectTypeField+ ObjectTypeField (..),+ newObjectTypeField,+ objectTypeField_contentType,+ objectTypeField_source,+ objectTypeField_target,++ -- * ObjectTypeKey+ ObjectTypeKey (..),+ newObjectTypeKey,+ objectTypeKey_fieldNames,+ objectTypeKey_standardIdentifiers,++ -- * Profile+ Profile (..),+ newProfile,+ profile_accountNumber,+ profile_additionalInformation,+ profile_address,+ profile_attributes,+ profile_billingAddress,+ profile_birthDate,+ profile_businessEmailAddress,+ profile_businessName,+ profile_businessPhoneNumber,+ profile_emailAddress,+ profile_firstName,+ profile_foundByItems,+ profile_gender,+ profile_homePhoneNumber,+ profile_lastName,+ profile_mailingAddress,+ profile_middleName,+ profile_mobilePhoneNumber,+ profile_partyType,+ profile_personalEmailAddress,+ profile_phoneNumber,+ profile_profileId,+ profile_shippingAddress,++ -- * S3ExportingConfig+ S3ExportingConfig (..),+ newS3ExportingConfig,+ s3ExportingConfig_s3KeyName,+ s3ExportingConfig_s3BucketName,++ -- * S3ExportingLocation+ S3ExportingLocation (..),+ newS3ExportingLocation,+ s3ExportingLocation_s3BucketName,+ s3ExportingLocation_s3KeyName,++ -- * S3SourceProperties+ S3SourceProperties (..),+ newS3SourceProperties,+ s3SourceProperties_bucketPrefix,+ s3SourceProperties_bucketName,++ -- * SalesforceSourceProperties+ SalesforceSourceProperties (..),+ newSalesforceSourceProperties,+ salesforceSourceProperties_enableDynamicFieldUpdate,+ salesforceSourceProperties_includeDeletedRecords,+ salesforceSourceProperties_object,++ -- * ScheduledTriggerProperties+ ScheduledTriggerProperties (..),+ newScheduledTriggerProperties,+ scheduledTriggerProperties_dataPullMode,+ scheduledTriggerProperties_firstExecutionFrom,+ scheduledTriggerProperties_scheduleEndTime,+ scheduledTriggerProperties_scheduleOffset,+ scheduledTriggerProperties_scheduleStartTime,+ scheduledTriggerProperties_timezone,+ scheduledTriggerProperties_scheduleExpression,++ -- * ServiceNowSourceProperties+ ServiceNowSourceProperties (..),+ newServiceNowSourceProperties,+ serviceNowSourceProperties_object,++ -- * SourceConnectorProperties+ SourceConnectorProperties (..),+ newSourceConnectorProperties,+ sourceConnectorProperties_marketo,+ sourceConnectorProperties_s3,+ sourceConnectorProperties_salesforce,+ sourceConnectorProperties_serviceNow,+ sourceConnectorProperties_zendesk,++ -- * SourceFlowConfig+ SourceFlowConfig (..),+ newSourceFlowConfig,+ sourceFlowConfig_connectorProfileName,+ sourceFlowConfig_incrementalPullConfig,+ sourceFlowConfig_connectorType,+ sourceFlowConfig_sourceConnectorProperties,++ -- * Task+ Task (..),+ newTask,+ task_connectorOperator,+ task_destinationField,+ task_taskProperties,+ task_sourceFields,+ task_taskType,++ -- * TriggerConfig+ TriggerConfig (..),+ newTriggerConfig,+ triggerConfig_triggerProperties,+ triggerConfig_triggerType,++ -- * TriggerProperties+ TriggerProperties (..),+ newTriggerProperties,+ triggerProperties_scheduled,++ -- * UpdateAddress+ UpdateAddress (..),+ newUpdateAddress,+ updateAddress_address1,+ updateAddress_address2,+ updateAddress_address3,+ updateAddress_address4,+ updateAddress_city,+ updateAddress_country,+ updateAddress_county,+ updateAddress_postalCode,+ updateAddress_province,+ updateAddress_state,++ -- * WorkflowAttributes+ WorkflowAttributes (..),+ newWorkflowAttributes,+ workflowAttributes_appflowIntegration,++ -- * WorkflowMetrics+ WorkflowMetrics (..),+ newWorkflowMetrics,+ workflowMetrics_appflowIntegration,++ -- * WorkflowStepItem+ WorkflowStepItem (..),+ newWorkflowStepItem,+ workflowStepItem_appflowIntegration,++ -- * ZendeskSourceProperties+ ZendeskSourceProperties (..),+ newZendeskSourceProperties,+ zendeskSourceProperties_object,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CustomerProfiles.Types.AdditionalSearchKey+import Amazonka.CustomerProfiles.Types.Address+import Amazonka.CustomerProfiles.Types.AppflowIntegration+import Amazonka.CustomerProfiles.Types.AppflowIntegrationWorkflowAttributes+import Amazonka.CustomerProfiles.Types.AppflowIntegrationWorkflowMetrics+import Amazonka.CustomerProfiles.Types.AppflowIntegrationWorkflowStep+import Amazonka.CustomerProfiles.Types.AutoMerging+import Amazonka.CustomerProfiles.Types.Batch+import Amazonka.CustomerProfiles.Types.ConflictResolution+import Amazonka.CustomerProfiles.Types.ConflictResolvingModel+import Amazonka.CustomerProfiles.Types.ConnectorOperator+import Amazonka.CustomerProfiles.Types.Consolidation+import Amazonka.CustomerProfiles.Types.DataPullMode+import Amazonka.CustomerProfiles.Types.DomainStats+import Amazonka.CustomerProfiles.Types.ExportingConfig+import Amazonka.CustomerProfiles.Types.ExportingLocation+import Amazonka.CustomerProfiles.Types.FieldContentType+import Amazonka.CustomerProfiles.Types.FieldSourceProfileIds+import Amazonka.CustomerProfiles.Types.FlowDefinition+import Amazonka.CustomerProfiles.Types.FoundByKeyValue+import Amazonka.CustomerProfiles.Types.Gender+import Amazonka.CustomerProfiles.Types.IdentityResolutionJob+import Amazonka.CustomerProfiles.Types.IdentityResolutionJobStatus+import Amazonka.CustomerProfiles.Types.IncrementalPullConfig+import Amazonka.CustomerProfiles.Types.IntegrationConfig+import Amazonka.CustomerProfiles.Types.JobSchedule+import Amazonka.CustomerProfiles.Types.JobScheduleDayOfTheWeek+import Amazonka.CustomerProfiles.Types.JobStats+import Amazonka.CustomerProfiles.Types.ListDomainItem+import Amazonka.CustomerProfiles.Types.ListIntegrationItem+import Amazonka.CustomerProfiles.Types.ListProfileObjectTypeItem+import Amazonka.CustomerProfiles.Types.ListProfileObjectTypeTemplateItem+import Amazonka.CustomerProfiles.Types.ListProfileObjectsItem+import Amazonka.CustomerProfiles.Types.ListWorkflowsItem+import Amazonka.CustomerProfiles.Types.LogicalOperator+import Amazonka.CustomerProfiles.Types.MarketoConnectorOperator+import Amazonka.CustomerProfiles.Types.MarketoSourceProperties+import Amazonka.CustomerProfiles.Types.MatchItem+import Amazonka.CustomerProfiles.Types.MatchingRequest+import Amazonka.CustomerProfiles.Types.MatchingResponse+import Amazonka.CustomerProfiles.Types.ObjectFilter+import Amazonka.CustomerProfiles.Types.ObjectTypeField+import Amazonka.CustomerProfiles.Types.ObjectTypeKey+import Amazonka.CustomerProfiles.Types.OperatorPropertiesKeys+import Amazonka.CustomerProfiles.Types.PartyType+import Amazonka.CustomerProfiles.Types.Profile+import Amazonka.CustomerProfiles.Types.S3ConnectorOperator+import Amazonka.CustomerProfiles.Types.S3ExportingConfig+import Amazonka.CustomerProfiles.Types.S3ExportingLocation+import Amazonka.CustomerProfiles.Types.S3SourceProperties+import Amazonka.CustomerProfiles.Types.SalesforceConnectorOperator+import Amazonka.CustomerProfiles.Types.SalesforceSourceProperties+import Amazonka.CustomerProfiles.Types.ScheduledTriggerProperties+import Amazonka.CustomerProfiles.Types.ServiceNowConnectorOperator+import Amazonka.CustomerProfiles.Types.ServiceNowSourceProperties+import Amazonka.CustomerProfiles.Types.SourceConnectorProperties+import Amazonka.CustomerProfiles.Types.SourceConnectorType+import Amazonka.CustomerProfiles.Types.SourceFlowConfig+import Amazonka.CustomerProfiles.Types.StandardIdentifier+import Amazonka.CustomerProfiles.Types.Status+import Amazonka.CustomerProfiles.Types.Task+import Amazonka.CustomerProfiles.Types.TaskType+import Amazonka.CustomerProfiles.Types.TriggerConfig+import Amazonka.CustomerProfiles.Types.TriggerProperties+import Amazonka.CustomerProfiles.Types.TriggerType+import Amazonka.CustomerProfiles.Types.UpdateAddress+import Amazonka.CustomerProfiles.Types.WorkflowAttributes+import Amazonka.CustomerProfiles.Types.WorkflowMetrics+import Amazonka.CustomerProfiles.Types.WorkflowStepItem+import Amazonka.CustomerProfiles.Types.WorkflowType+import Amazonka.CustomerProfiles.Types.ZendeskConnectorOperator+import Amazonka.CustomerProfiles.Types.ZendeskSourceProperties+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Sign.V4 as Sign++-- | API version @2020-08-15@ of the Amazon Connect Customer Profiles SDK configuration.+defaultService :: Core.Service+defaultService =+ Core.Service+ { Core.abbrev = "CustomerProfiles",+ Core.signer = Sign.v4,+ Core.endpointPrefix = "profile",+ Core.signingName = "profile",+ Core.version = "2020-08-15",+ Core.s3AddressingStyle = Core.S3AddressingStyleAuto,+ Core.endpoint = Core.defaultEndpoint defaultService,+ Core.timeout = Prelude.Just 70,+ Core.check = Core.statusSuccess,+ Core.error = Core.parseJSONError "CustomerProfiles",+ 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 do not have sufficient access to perform this action.+_AccessDeniedException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_AccessDeniedException =+ Core._MatchServiceError+ defaultService+ "AccessDeniedException"+ Prelude.. Core.hasStatus 403++-- | The input you provided is invalid.+_BadRequestException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_BadRequestException =+ Core._MatchServiceError+ defaultService+ "BadRequestException"+ Prelude.. Core.hasStatus 400++-- | An internal service error occurred.+_InternalServerException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InternalServerException =+ Core._MatchServiceError+ defaultService+ "InternalServerException"+ Prelude.. Core.hasStatus 500++-- | The requested resource does not exist, or access was denied.+_ResourceNotFoundException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ResourceNotFoundException =+ Core._MatchServiceError+ defaultService+ "ResourceNotFoundException"+ Prelude.. Core.hasStatus 404++-- | You exceeded the maximum number of requests.+_ThrottlingException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ThrottlingException =+ Core._MatchServiceError+ defaultService+ "ThrottlingException"+ Prelude.. Core.hasStatus 429
+ gen/Amazonka/CustomerProfiles/Types/AdditionalSearchKey.hs view
@@ -0,0 +1,92 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.CustomerProfiles.Types.AdditionalSearchKey+-- 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.CustomerProfiles.Types.AdditionalSearchKey where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | A data type pair that consists of a @KeyName@ and @Values@ list that is+-- used in conjunction with the+-- <https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_SearchProfiles.html#customerprofiles-SearchProfiles-request-KeyName KeyName>+-- and+-- <https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_SearchProfiles.html#customerprofiles-SearchProfiles-request-Values Values>+-- parameters to search for profiles using the+-- <https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_SearchProfiles.html SearchProfiles>+-- API.+--+-- /See:/ 'newAdditionalSearchKey' smart constructor.+data AdditionalSearchKey = AdditionalSearchKey'+ { -- | A searchable identifier of a customer profile.+ keyName :: Prelude.Text,+ -- | A list of key values.+ values :: [Prelude.Text]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AdditionalSearchKey' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'keyName', 'additionalSearchKey_keyName' - A searchable identifier of a customer profile.+--+-- 'values', 'additionalSearchKey_values' - A list of key values.+newAdditionalSearchKey ::+ -- | 'keyName'+ Prelude.Text ->+ AdditionalSearchKey+newAdditionalSearchKey pKeyName_ =+ AdditionalSearchKey'+ { keyName = pKeyName_,+ values = Prelude.mempty+ }++-- | A searchable identifier of a customer profile.+additionalSearchKey_keyName :: Lens.Lens' AdditionalSearchKey Prelude.Text+additionalSearchKey_keyName = Lens.lens (\AdditionalSearchKey' {keyName} -> keyName) (\s@AdditionalSearchKey' {} a -> s {keyName = a} :: AdditionalSearchKey)++-- | A list of key values.+additionalSearchKey_values :: Lens.Lens' AdditionalSearchKey [Prelude.Text]+additionalSearchKey_values = Lens.lens (\AdditionalSearchKey' {values} -> values) (\s@AdditionalSearchKey' {} a -> s {values = a} :: AdditionalSearchKey) Prelude.. Lens.coerced++instance Prelude.Hashable AdditionalSearchKey where+ hashWithSalt _salt AdditionalSearchKey' {..} =+ _salt+ `Prelude.hashWithSalt` keyName+ `Prelude.hashWithSalt` values++instance Prelude.NFData AdditionalSearchKey where+ rnf AdditionalSearchKey' {..} =+ Prelude.rnf keyName+ `Prelude.seq` Prelude.rnf values++instance Data.ToJSON AdditionalSearchKey where+ toJSON AdditionalSearchKey' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just ("KeyName" Data..= keyName),+ Prelude.Just ("Values" Data..= values)+ ]+ )
+ gen/Amazonka/CustomerProfiles/Types/Address.hs view
@@ -0,0 +1,198 @@+{-# 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.CustomerProfiles.Types.Address+-- 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.CustomerProfiles.Types.Address where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | A generic address associated with the customer that is not mailing,+-- shipping, or billing.+--+-- /See:/ 'newAddress' smart constructor.+data Address = Address'+ { -- | The first line of a customer address.+ address1 :: Prelude.Maybe Prelude.Text,+ -- | The second line of a customer address.+ address2 :: Prelude.Maybe Prelude.Text,+ -- | The third line of a customer address.+ address3 :: Prelude.Maybe Prelude.Text,+ -- | The fourth line of a customer address.+ address4 :: Prelude.Maybe Prelude.Text,+ -- | The city in which a customer lives.+ city :: Prelude.Maybe Prelude.Text,+ -- | The country in which a customer lives.+ country :: Prelude.Maybe Prelude.Text,+ -- | The county in which a customer lives.+ county :: Prelude.Maybe Prelude.Text,+ -- | The postal code of a customer address.+ postalCode :: Prelude.Maybe Prelude.Text,+ -- | The province in which a customer lives.+ province :: Prelude.Maybe Prelude.Text,+ -- | The state in which a customer lives.+ state :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Address' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'address1', 'address_address1' - The first line of a customer address.+--+-- 'address2', 'address_address2' - The second line of a customer address.+--+-- 'address3', 'address_address3' - The third line of a customer address.+--+-- 'address4', 'address_address4' - The fourth line of a customer address.+--+-- 'city', 'address_city' - The city in which a customer lives.+--+-- 'country', 'address_country' - The country in which a customer lives.+--+-- 'county', 'address_county' - The county in which a customer lives.+--+-- 'postalCode', 'address_postalCode' - The postal code of a customer address.+--+-- 'province', 'address_province' - The province in which a customer lives.+--+-- 'state', 'address_state' - The state in which a customer lives.+newAddress ::+ Address+newAddress =+ Address'+ { address1 = Prelude.Nothing,+ address2 = Prelude.Nothing,+ address3 = Prelude.Nothing,+ address4 = Prelude.Nothing,+ city = Prelude.Nothing,+ country = Prelude.Nothing,+ county = Prelude.Nothing,+ postalCode = Prelude.Nothing,+ province = Prelude.Nothing,+ state = Prelude.Nothing+ }++-- | The first line of a customer address.+address_address1 :: Lens.Lens' Address (Prelude.Maybe Prelude.Text)+address_address1 = Lens.lens (\Address' {address1} -> address1) (\s@Address' {} a -> s {address1 = a} :: Address)++-- | The second line of a customer address.+address_address2 :: Lens.Lens' Address (Prelude.Maybe Prelude.Text)+address_address2 = Lens.lens (\Address' {address2} -> address2) (\s@Address' {} a -> s {address2 = a} :: Address)++-- | The third line of a customer address.+address_address3 :: Lens.Lens' Address (Prelude.Maybe Prelude.Text)+address_address3 = Lens.lens (\Address' {address3} -> address3) (\s@Address' {} a -> s {address3 = a} :: Address)++-- | The fourth line of a customer address.+address_address4 :: Lens.Lens' Address (Prelude.Maybe Prelude.Text)+address_address4 = Lens.lens (\Address' {address4} -> address4) (\s@Address' {} a -> s {address4 = a} :: Address)++-- | The city in which a customer lives.+address_city :: Lens.Lens' Address (Prelude.Maybe Prelude.Text)+address_city = Lens.lens (\Address' {city} -> city) (\s@Address' {} a -> s {city = a} :: Address)++-- | The country in which a customer lives.+address_country :: Lens.Lens' Address (Prelude.Maybe Prelude.Text)+address_country = Lens.lens (\Address' {country} -> country) (\s@Address' {} a -> s {country = a} :: Address)++-- | The county in which a customer lives.+address_county :: Lens.Lens' Address (Prelude.Maybe Prelude.Text)+address_county = Lens.lens (\Address' {county} -> county) (\s@Address' {} a -> s {county = a} :: Address)++-- | The postal code of a customer address.+address_postalCode :: Lens.Lens' Address (Prelude.Maybe Prelude.Text)+address_postalCode = Lens.lens (\Address' {postalCode} -> postalCode) (\s@Address' {} a -> s {postalCode = a} :: Address)++-- | The province in which a customer lives.+address_province :: Lens.Lens' Address (Prelude.Maybe Prelude.Text)+address_province = Lens.lens (\Address' {province} -> province) (\s@Address' {} a -> s {province = a} :: Address)++-- | The state in which a customer lives.+address_state :: Lens.Lens' Address (Prelude.Maybe Prelude.Text)+address_state = Lens.lens (\Address' {state} -> state) (\s@Address' {} a -> s {state = a} :: Address)++instance Data.FromJSON Address where+ parseJSON =+ Data.withObject+ "Address"+ ( \x ->+ Address'+ Prelude.<$> (x Data..:? "Address1")+ Prelude.<*> (x Data..:? "Address2")+ Prelude.<*> (x Data..:? "Address3")+ Prelude.<*> (x Data..:? "Address4")+ Prelude.<*> (x Data..:? "City")+ Prelude.<*> (x Data..:? "Country")+ Prelude.<*> (x Data..:? "County")+ Prelude.<*> (x Data..:? "PostalCode")+ Prelude.<*> (x Data..:? "Province")+ Prelude.<*> (x Data..:? "State")+ )++instance Prelude.Hashable Address where+ hashWithSalt _salt Address' {..} =+ _salt+ `Prelude.hashWithSalt` address1+ `Prelude.hashWithSalt` address2+ `Prelude.hashWithSalt` address3+ `Prelude.hashWithSalt` address4+ `Prelude.hashWithSalt` city+ `Prelude.hashWithSalt` country+ `Prelude.hashWithSalt` county+ `Prelude.hashWithSalt` postalCode+ `Prelude.hashWithSalt` province+ `Prelude.hashWithSalt` state++instance Prelude.NFData Address where+ rnf Address' {..} =+ Prelude.rnf address1+ `Prelude.seq` Prelude.rnf address2+ `Prelude.seq` Prelude.rnf address3+ `Prelude.seq` Prelude.rnf address4+ `Prelude.seq` Prelude.rnf city+ `Prelude.seq` Prelude.rnf country+ `Prelude.seq` Prelude.rnf county+ `Prelude.seq` Prelude.rnf postalCode+ `Prelude.seq` Prelude.rnf province+ `Prelude.seq` Prelude.rnf state++instance Data.ToJSON Address where+ toJSON Address' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("Address1" Data..=) Prelude.<$> address1,+ ("Address2" Data..=) Prelude.<$> address2,+ ("Address3" Data..=) Prelude.<$> address3,+ ("Address4" Data..=) Prelude.<$> address4,+ ("City" Data..=) Prelude.<$> city,+ ("Country" Data..=) Prelude.<$> country,+ ("County" Data..=) Prelude.<$> county,+ ("PostalCode" Data..=) Prelude.<$> postalCode,+ ("Province" Data..=) Prelude.<$> province,+ ("State" Data..=) Prelude.<$> state+ ]+ )
+ gen/Amazonka/CustomerProfiles/Types/AppflowIntegration.hs view
@@ -0,0 +1,87 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.CustomerProfiles.Types.AppflowIntegration+-- 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.CustomerProfiles.Types.AppflowIntegration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CustomerProfiles.Types.Batch+import Amazonka.CustomerProfiles.Types.FlowDefinition+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Details for workflow of type @APPFLOW_INTEGRATION@.+--+-- /See:/ 'newAppflowIntegration' smart constructor.+data AppflowIntegration = AppflowIntegration'+ { -- | Batches in workflow of type @APPFLOW_INTEGRATION@.+ batches :: Prelude.Maybe [Batch],+ flowDefinition :: FlowDefinition+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AppflowIntegration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'batches', 'appflowIntegration_batches' - Batches in workflow of type @APPFLOW_INTEGRATION@.+--+-- 'flowDefinition', 'appflowIntegration_flowDefinition' - Undocumented member.+newAppflowIntegration ::+ -- | 'flowDefinition'+ FlowDefinition ->+ AppflowIntegration+newAppflowIntegration pFlowDefinition_ =+ AppflowIntegration'+ { batches = Prelude.Nothing,+ flowDefinition = pFlowDefinition_+ }++-- | Batches in workflow of type @APPFLOW_INTEGRATION@.+appflowIntegration_batches :: Lens.Lens' AppflowIntegration (Prelude.Maybe [Batch])+appflowIntegration_batches = Lens.lens (\AppflowIntegration' {batches} -> batches) (\s@AppflowIntegration' {} a -> s {batches = a} :: AppflowIntegration) Prelude.. Lens.mapping Lens.coerced++-- | Undocumented member.+appflowIntegration_flowDefinition :: Lens.Lens' AppflowIntegration FlowDefinition+appflowIntegration_flowDefinition = Lens.lens (\AppflowIntegration' {flowDefinition} -> flowDefinition) (\s@AppflowIntegration' {} a -> s {flowDefinition = a} :: AppflowIntegration)++instance Prelude.Hashable AppflowIntegration where+ hashWithSalt _salt AppflowIntegration' {..} =+ _salt+ `Prelude.hashWithSalt` batches+ `Prelude.hashWithSalt` flowDefinition++instance Prelude.NFData AppflowIntegration where+ rnf AppflowIntegration' {..} =+ Prelude.rnf batches+ `Prelude.seq` Prelude.rnf flowDefinition++instance Data.ToJSON AppflowIntegration where+ toJSON AppflowIntegration' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("Batches" Data..=) Prelude.<$> batches,+ Prelude.Just+ ("FlowDefinition" Data..= flowDefinition)+ ]+ )
+ gen/Amazonka/CustomerProfiles/Types/AppflowIntegrationWorkflowAttributes.hs view
@@ -0,0 +1,127 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.CustomerProfiles.Types.AppflowIntegrationWorkflowAttributes+-- 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.CustomerProfiles.Types.AppflowIntegrationWorkflowAttributes where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CustomerProfiles.Types.SourceConnectorType+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Structure holding all @APPFLOW_INTEGRATION@ specific workflow+-- attributes.+--+-- /See:/ 'newAppflowIntegrationWorkflowAttributes' smart constructor.+data AppflowIntegrationWorkflowAttributes = AppflowIntegrationWorkflowAttributes'+ { -- | The Amazon Resource Name (ARN) of the IAM role. Customer Profiles+ -- assumes this role to create resources on your behalf as part of workflow+ -- execution.+ roleArn :: Prelude.Maybe Prelude.Text,+ -- | Specifies the source connector type, such as Salesforce, ServiceNow, and+ -- Marketo. Indicates source of ingestion.+ sourceConnectorType :: SourceConnectorType,+ -- | The name of the AppFlow connector profile used for ingestion.+ connectorProfileName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AppflowIntegrationWorkflowAttributes' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'roleArn', 'appflowIntegrationWorkflowAttributes_roleArn' - The Amazon Resource Name (ARN) of the IAM role. Customer Profiles+-- assumes this role to create resources on your behalf as part of workflow+-- execution.+--+-- 'sourceConnectorType', 'appflowIntegrationWorkflowAttributes_sourceConnectorType' - Specifies the source connector type, such as Salesforce, ServiceNow, and+-- Marketo. Indicates source of ingestion.+--+-- 'connectorProfileName', 'appflowIntegrationWorkflowAttributes_connectorProfileName' - The name of the AppFlow connector profile used for ingestion.+newAppflowIntegrationWorkflowAttributes ::+ -- | 'sourceConnectorType'+ SourceConnectorType ->+ -- | 'connectorProfileName'+ Prelude.Text ->+ AppflowIntegrationWorkflowAttributes+newAppflowIntegrationWorkflowAttributes+ pSourceConnectorType_+ pConnectorProfileName_ =+ AppflowIntegrationWorkflowAttributes'+ { roleArn =+ Prelude.Nothing,+ sourceConnectorType =+ pSourceConnectorType_,+ connectorProfileName =+ pConnectorProfileName_+ }++-- | The Amazon Resource Name (ARN) of the IAM role. Customer Profiles+-- assumes this role to create resources on your behalf as part of workflow+-- execution.+appflowIntegrationWorkflowAttributes_roleArn :: Lens.Lens' AppflowIntegrationWorkflowAttributes (Prelude.Maybe Prelude.Text)+appflowIntegrationWorkflowAttributes_roleArn = Lens.lens (\AppflowIntegrationWorkflowAttributes' {roleArn} -> roleArn) (\s@AppflowIntegrationWorkflowAttributes' {} a -> s {roleArn = a} :: AppflowIntegrationWorkflowAttributes)++-- | Specifies the source connector type, such as Salesforce, ServiceNow, and+-- Marketo. Indicates source of ingestion.+appflowIntegrationWorkflowAttributes_sourceConnectorType :: Lens.Lens' AppflowIntegrationWorkflowAttributes SourceConnectorType+appflowIntegrationWorkflowAttributes_sourceConnectorType = Lens.lens (\AppflowIntegrationWorkflowAttributes' {sourceConnectorType} -> sourceConnectorType) (\s@AppflowIntegrationWorkflowAttributes' {} a -> s {sourceConnectorType = a} :: AppflowIntegrationWorkflowAttributes)++-- | The name of the AppFlow connector profile used for ingestion.+appflowIntegrationWorkflowAttributes_connectorProfileName :: Lens.Lens' AppflowIntegrationWorkflowAttributes Prelude.Text+appflowIntegrationWorkflowAttributes_connectorProfileName = Lens.lens (\AppflowIntegrationWorkflowAttributes' {connectorProfileName} -> connectorProfileName) (\s@AppflowIntegrationWorkflowAttributes' {} a -> s {connectorProfileName = a} :: AppflowIntegrationWorkflowAttributes)++instance+ Data.FromJSON+ AppflowIntegrationWorkflowAttributes+ where+ parseJSON =+ Data.withObject+ "AppflowIntegrationWorkflowAttributes"+ ( \x ->+ AppflowIntegrationWorkflowAttributes'+ Prelude.<$> (x Data..:? "RoleArn")+ Prelude.<*> (x Data..: "SourceConnectorType")+ Prelude.<*> (x Data..: "ConnectorProfileName")+ )++instance+ Prelude.Hashable+ AppflowIntegrationWorkflowAttributes+ where+ hashWithSalt+ _salt+ AppflowIntegrationWorkflowAttributes' {..} =+ _salt+ `Prelude.hashWithSalt` roleArn+ `Prelude.hashWithSalt` sourceConnectorType+ `Prelude.hashWithSalt` connectorProfileName++instance+ Prelude.NFData+ AppflowIntegrationWorkflowAttributes+ where+ rnf AppflowIntegrationWorkflowAttributes' {..} =+ Prelude.rnf roleArn+ `Prelude.seq` Prelude.rnf sourceConnectorType+ `Prelude.seq` Prelude.rnf connectorProfileName
+ gen/Amazonka/CustomerProfiles/Types/AppflowIntegrationWorkflowMetrics.hs view
@@ -0,0 +1,117 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.CustomerProfiles.Types.AppflowIntegrationWorkflowMetrics+-- 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.CustomerProfiles.Types.AppflowIntegrationWorkflowMetrics 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++-- | Workflow specific execution metrics for @APPFLOW_INTEGRATION@ workflow.+--+-- /See:/ 'newAppflowIntegrationWorkflowMetrics' smart constructor.+data AppflowIntegrationWorkflowMetrics = AppflowIntegrationWorkflowMetrics'+ { -- | Number of records processed in @APPFLOW_INTEGRATION@ workflow.+ recordsProcessed :: Prelude.Integer,+ -- | Total steps completed in @APPFLOW_INTEGRATION@ workflow.+ stepsCompleted :: Prelude.Integer,+ -- | Total steps in @APPFLOW_INTEGRATION@ workflow.+ totalSteps :: Prelude.Integer+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AppflowIntegrationWorkflowMetrics' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'recordsProcessed', 'appflowIntegrationWorkflowMetrics_recordsProcessed' - Number of records processed in @APPFLOW_INTEGRATION@ workflow.+--+-- 'stepsCompleted', 'appflowIntegrationWorkflowMetrics_stepsCompleted' - Total steps completed in @APPFLOW_INTEGRATION@ workflow.+--+-- 'totalSteps', 'appflowIntegrationWorkflowMetrics_totalSteps' - Total steps in @APPFLOW_INTEGRATION@ workflow.+newAppflowIntegrationWorkflowMetrics ::+ -- | 'recordsProcessed'+ Prelude.Integer ->+ -- | 'stepsCompleted'+ Prelude.Integer ->+ -- | 'totalSteps'+ Prelude.Integer ->+ AppflowIntegrationWorkflowMetrics+newAppflowIntegrationWorkflowMetrics+ pRecordsProcessed_+ pStepsCompleted_+ pTotalSteps_ =+ AppflowIntegrationWorkflowMetrics'+ { recordsProcessed =+ pRecordsProcessed_,+ stepsCompleted = pStepsCompleted_,+ totalSteps = pTotalSteps_+ }++-- | Number of records processed in @APPFLOW_INTEGRATION@ workflow.+appflowIntegrationWorkflowMetrics_recordsProcessed :: Lens.Lens' AppflowIntegrationWorkflowMetrics Prelude.Integer+appflowIntegrationWorkflowMetrics_recordsProcessed = Lens.lens (\AppflowIntegrationWorkflowMetrics' {recordsProcessed} -> recordsProcessed) (\s@AppflowIntegrationWorkflowMetrics' {} a -> s {recordsProcessed = a} :: AppflowIntegrationWorkflowMetrics)++-- | Total steps completed in @APPFLOW_INTEGRATION@ workflow.+appflowIntegrationWorkflowMetrics_stepsCompleted :: Lens.Lens' AppflowIntegrationWorkflowMetrics Prelude.Integer+appflowIntegrationWorkflowMetrics_stepsCompleted = Lens.lens (\AppflowIntegrationWorkflowMetrics' {stepsCompleted} -> stepsCompleted) (\s@AppflowIntegrationWorkflowMetrics' {} a -> s {stepsCompleted = a} :: AppflowIntegrationWorkflowMetrics)++-- | Total steps in @APPFLOW_INTEGRATION@ workflow.+appflowIntegrationWorkflowMetrics_totalSteps :: Lens.Lens' AppflowIntegrationWorkflowMetrics Prelude.Integer+appflowIntegrationWorkflowMetrics_totalSteps = Lens.lens (\AppflowIntegrationWorkflowMetrics' {totalSteps} -> totalSteps) (\s@AppflowIntegrationWorkflowMetrics' {} a -> s {totalSteps = a} :: AppflowIntegrationWorkflowMetrics)++instance+ Data.FromJSON+ AppflowIntegrationWorkflowMetrics+ where+ parseJSON =+ Data.withObject+ "AppflowIntegrationWorkflowMetrics"+ ( \x ->+ AppflowIntegrationWorkflowMetrics'+ Prelude.<$> (x Data..: "RecordsProcessed")+ Prelude.<*> (x Data..: "StepsCompleted")+ Prelude.<*> (x Data..: "TotalSteps")+ )++instance+ Prelude.Hashable+ AppflowIntegrationWorkflowMetrics+ where+ hashWithSalt+ _salt+ AppflowIntegrationWorkflowMetrics' {..} =+ _salt+ `Prelude.hashWithSalt` recordsProcessed+ `Prelude.hashWithSalt` stepsCompleted+ `Prelude.hashWithSalt` totalSteps++instance+ Prelude.NFData+ AppflowIntegrationWorkflowMetrics+ where+ rnf AppflowIntegrationWorkflowMetrics' {..} =+ Prelude.rnf recordsProcessed+ `Prelude.seq` Prelude.rnf stepsCompleted+ `Prelude.seq` Prelude.rnf totalSteps
+ gen/Amazonka/CustomerProfiles/Types/AppflowIntegrationWorkflowStep.hs view
@@ -0,0 +1,213 @@+{-# 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.CustomerProfiles.Types.AppflowIntegrationWorkflowStep+-- 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.CustomerProfiles.Types.AppflowIntegrationWorkflowStep where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CustomerProfiles.Types.Status+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Workflow step details for @APPFLOW_INTEGRATION@ workflow.+--+-- /See:/ 'newAppflowIntegrationWorkflowStep' smart constructor.+data AppflowIntegrationWorkflowStep = AppflowIntegrationWorkflowStep'+ { -- | Name of the flow created during execution of workflow step.+ -- @APPFLOW_INTEGRATION@ workflow type creates an appflow flow during+ -- workflow step execution on the customers behalf.+ flowName :: Prelude.Text,+ -- | Workflow step status for @APPFLOW_INTEGRATION@ workflow.+ status :: Status,+ -- | Message indicating execution of workflow step for @APPFLOW_INTEGRATION@+ -- workflow.+ executionMessage :: Prelude.Text,+ -- | Total number of records processed during execution of workflow step for+ -- @APPFLOW_INTEGRATION@ workflow.+ recordsProcessed :: Prelude.Integer,+ -- | Start datetime of records pulled in batch during execution of workflow+ -- step for @APPFLOW_INTEGRATION@ workflow.+ batchRecordsStartTime :: Prelude.Text,+ -- | End datetime of records pulled in batch during execution of workflow+ -- step for @APPFLOW_INTEGRATION@ workflow.+ batchRecordsEndTime :: Prelude.Text,+ -- | Creation timestamp of workflow step for @APPFLOW_INTEGRATION@ workflow.+ createdAt :: Data.POSIX,+ -- | Last updated timestamp for workflow step for @APPFLOW_INTEGRATION@+ -- workflow.+ lastUpdatedAt :: Data.POSIX+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AppflowIntegrationWorkflowStep' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'flowName', 'appflowIntegrationWorkflowStep_flowName' - Name of the flow created during execution of workflow step.+-- @APPFLOW_INTEGRATION@ workflow type creates an appflow flow during+-- workflow step execution on the customers behalf.+--+-- 'status', 'appflowIntegrationWorkflowStep_status' - Workflow step status for @APPFLOW_INTEGRATION@ workflow.+--+-- 'executionMessage', 'appflowIntegrationWorkflowStep_executionMessage' - Message indicating execution of workflow step for @APPFLOW_INTEGRATION@+-- workflow.+--+-- 'recordsProcessed', 'appflowIntegrationWorkflowStep_recordsProcessed' - Total number of records processed during execution of workflow step for+-- @APPFLOW_INTEGRATION@ workflow.+--+-- 'batchRecordsStartTime', 'appflowIntegrationWorkflowStep_batchRecordsStartTime' - Start datetime of records pulled in batch during execution of workflow+-- step for @APPFLOW_INTEGRATION@ workflow.+--+-- 'batchRecordsEndTime', 'appflowIntegrationWorkflowStep_batchRecordsEndTime' - End datetime of records pulled in batch during execution of workflow+-- step for @APPFLOW_INTEGRATION@ workflow.+--+-- 'createdAt', 'appflowIntegrationWorkflowStep_createdAt' - Creation timestamp of workflow step for @APPFLOW_INTEGRATION@ workflow.+--+-- 'lastUpdatedAt', 'appflowIntegrationWorkflowStep_lastUpdatedAt' - Last updated timestamp for workflow step for @APPFLOW_INTEGRATION@+-- workflow.+newAppflowIntegrationWorkflowStep ::+ -- | 'flowName'+ Prelude.Text ->+ -- | 'status'+ Status ->+ -- | 'executionMessage'+ Prelude.Text ->+ -- | 'recordsProcessed'+ Prelude.Integer ->+ -- | 'batchRecordsStartTime'+ Prelude.Text ->+ -- | 'batchRecordsEndTime'+ Prelude.Text ->+ -- | 'createdAt'+ Prelude.UTCTime ->+ -- | 'lastUpdatedAt'+ Prelude.UTCTime ->+ AppflowIntegrationWorkflowStep+newAppflowIntegrationWorkflowStep+ pFlowName_+ pStatus_+ pExecutionMessage_+ pRecordsProcessed_+ pBatchRecordsStartTime_+ pBatchRecordsEndTime_+ pCreatedAt_+ pLastUpdatedAt_ =+ AppflowIntegrationWorkflowStep'+ { flowName =+ pFlowName_,+ status = pStatus_,+ executionMessage = pExecutionMessage_,+ recordsProcessed = pRecordsProcessed_,+ batchRecordsStartTime =+ pBatchRecordsStartTime_,+ batchRecordsEndTime = pBatchRecordsEndTime_,+ createdAt = Data._Time Lens.# pCreatedAt_,+ lastUpdatedAt =+ Data._Time Lens.# pLastUpdatedAt_+ }++-- | Name of the flow created during execution of workflow step.+-- @APPFLOW_INTEGRATION@ workflow type creates an appflow flow during+-- workflow step execution on the customers behalf.+appflowIntegrationWorkflowStep_flowName :: Lens.Lens' AppflowIntegrationWorkflowStep Prelude.Text+appflowIntegrationWorkflowStep_flowName = Lens.lens (\AppflowIntegrationWorkflowStep' {flowName} -> flowName) (\s@AppflowIntegrationWorkflowStep' {} a -> s {flowName = a} :: AppflowIntegrationWorkflowStep)++-- | Workflow step status for @APPFLOW_INTEGRATION@ workflow.+appflowIntegrationWorkflowStep_status :: Lens.Lens' AppflowIntegrationWorkflowStep Status+appflowIntegrationWorkflowStep_status = Lens.lens (\AppflowIntegrationWorkflowStep' {status} -> status) (\s@AppflowIntegrationWorkflowStep' {} a -> s {status = a} :: AppflowIntegrationWorkflowStep)++-- | Message indicating execution of workflow step for @APPFLOW_INTEGRATION@+-- workflow.+appflowIntegrationWorkflowStep_executionMessage :: Lens.Lens' AppflowIntegrationWorkflowStep Prelude.Text+appflowIntegrationWorkflowStep_executionMessage = Lens.lens (\AppflowIntegrationWorkflowStep' {executionMessage} -> executionMessage) (\s@AppflowIntegrationWorkflowStep' {} a -> s {executionMessage = a} :: AppflowIntegrationWorkflowStep)++-- | Total number of records processed during execution of workflow step for+-- @APPFLOW_INTEGRATION@ workflow.+appflowIntegrationWorkflowStep_recordsProcessed :: Lens.Lens' AppflowIntegrationWorkflowStep Prelude.Integer+appflowIntegrationWorkflowStep_recordsProcessed = Lens.lens (\AppflowIntegrationWorkflowStep' {recordsProcessed} -> recordsProcessed) (\s@AppflowIntegrationWorkflowStep' {} a -> s {recordsProcessed = a} :: AppflowIntegrationWorkflowStep)++-- | Start datetime of records pulled in batch during execution of workflow+-- step for @APPFLOW_INTEGRATION@ workflow.+appflowIntegrationWorkflowStep_batchRecordsStartTime :: Lens.Lens' AppflowIntegrationWorkflowStep Prelude.Text+appflowIntegrationWorkflowStep_batchRecordsStartTime = Lens.lens (\AppflowIntegrationWorkflowStep' {batchRecordsStartTime} -> batchRecordsStartTime) (\s@AppflowIntegrationWorkflowStep' {} a -> s {batchRecordsStartTime = a} :: AppflowIntegrationWorkflowStep)++-- | End datetime of records pulled in batch during execution of workflow+-- step for @APPFLOW_INTEGRATION@ workflow.+appflowIntegrationWorkflowStep_batchRecordsEndTime :: Lens.Lens' AppflowIntegrationWorkflowStep Prelude.Text+appflowIntegrationWorkflowStep_batchRecordsEndTime = Lens.lens (\AppflowIntegrationWorkflowStep' {batchRecordsEndTime} -> batchRecordsEndTime) (\s@AppflowIntegrationWorkflowStep' {} a -> s {batchRecordsEndTime = a} :: AppflowIntegrationWorkflowStep)++-- | Creation timestamp of workflow step for @APPFLOW_INTEGRATION@ workflow.+appflowIntegrationWorkflowStep_createdAt :: Lens.Lens' AppflowIntegrationWorkflowStep Prelude.UTCTime+appflowIntegrationWorkflowStep_createdAt = Lens.lens (\AppflowIntegrationWorkflowStep' {createdAt} -> createdAt) (\s@AppflowIntegrationWorkflowStep' {} a -> s {createdAt = a} :: AppflowIntegrationWorkflowStep) Prelude.. Data._Time++-- | Last updated timestamp for workflow step for @APPFLOW_INTEGRATION@+-- workflow.+appflowIntegrationWorkflowStep_lastUpdatedAt :: Lens.Lens' AppflowIntegrationWorkflowStep Prelude.UTCTime+appflowIntegrationWorkflowStep_lastUpdatedAt = Lens.lens (\AppflowIntegrationWorkflowStep' {lastUpdatedAt} -> lastUpdatedAt) (\s@AppflowIntegrationWorkflowStep' {} a -> s {lastUpdatedAt = a} :: AppflowIntegrationWorkflowStep) Prelude.. Data._Time++instance Data.FromJSON AppflowIntegrationWorkflowStep where+ parseJSON =+ Data.withObject+ "AppflowIntegrationWorkflowStep"+ ( \x ->+ AppflowIntegrationWorkflowStep'+ Prelude.<$> (x Data..: "FlowName")+ Prelude.<*> (x Data..: "Status")+ Prelude.<*> (x Data..: "ExecutionMessage")+ Prelude.<*> (x Data..: "RecordsProcessed")+ Prelude.<*> (x Data..: "BatchRecordsStartTime")+ Prelude.<*> (x Data..: "BatchRecordsEndTime")+ Prelude.<*> (x Data..: "CreatedAt")+ Prelude.<*> (x Data..: "LastUpdatedAt")+ )++instance+ Prelude.Hashable+ AppflowIntegrationWorkflowStep+ where+ hashWithSalt+ _salt+ AppflowIntegrationWorkflowStep' {..} =+ _salt+ `Prelude.hashWithSalt` flowName+ `Prelude.hashWithSalt` status+ `Prelude.hashWithSalt` executionMessage+ `Prelude.hashWithSalt` recordsProcessed+ `Prelude.hashWithSalt` batchRecordsStartTime+ `Prelude.hashWithSalt` batchRecordsEndTime+ `Prelude.hashWithSalt` createdAt+ `Prelude.hashWithSalt` lastUpdatedAt++instance+ Prelude.NFData+ AppflowIntegrationWorkflowStep+ where+ rnf AppflowIntegrationWorkflowStep' {..} =+ Prelude.rnf flowName+ `Prelude.seq` Prelude.rnf status+ `Prelude.seq` Prelude.rnf executionMessage+ `Prelude.seq` Prelude.rnf recordsProcessed+ `Prelude.seq` Prelude.rnf batchRecordsStartTime+ `Prelude.seq` Prelude.rnf batchRecordsEndTime+ `Prelude.seq` Prelude.rnf createdAt+ `Prelude.seq` Prelude.rnf lastUpdatedAt
+ gen/Amazonka/CustomerProfiles/Types/AutoMerging.hs view
@@ -0,0 +1,150 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.CustomerProfiles.Types.AutoMerging+-- 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.CustomerProfiles.Types.AutoMerging where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CustomerProfiles.Types.ConflictResolution+import Amazonka.CustomerProfiles.Types.Consolidation+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Configuration settings for how to perform the auto-merging of profiles.+--+-- /See:/ 'newAutoMerging' smart constructor.+data AutoMerging = AutoMerging'+ { -- | How the auto-merging process should resolve conflicts between different+ -- profiles. For example, if Profile A and Profile B have the same+ -- @FirstName@ and @LastName@ (and that is the matching criteria), which+ -- @EmailAddress@ should be used?+ conflictResolution :: Prelude.Maybe ConflictResolution,+ -- | A list of matching attributes that represent matching criteria. If two+ -- profiles meet at least one of the requirements in the matching+ -- attributes list, they will be merged.+ consolidation :: Prelude.Maybe Consolidation,+ -- | A number between 0 and 1 that represents the minimum confidence score+ -- required for profiles within a matching group to be merged during the+ -- auto-merge process. A higher score means higher similarity required to+ -- merge profiles.+ minAllowedConfidenceScoreForMerging :: Prelude.Maybe Prelude.Double,+ -- | The flag that enables the auto-merging of duplicate profiles.+ enabled :: Prelude.Bool+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AutoMerging' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'conflictResolution', 'autoMerging_conflictResolution' - How the auto-merging process should resolve conflicts between different+-- profiles. For example, if Profile A and Profile B have the same+-- @FirstName@ and @LastName@ (and that is the matching criteria), which+-- @EmailAddress@ should be used?+--+-- 'consolidation', 'autoMerging_consolidation' - A list of matching attributes that represent matching criteria. If two+-- profiles meet at least one of the requirements in the matching+-- attributes list, they will be merged.+--+-- 'minAllowedConfidenceScoreForMerging', 'autoMerging_minAllowedConfidenceScoreForMerging' - A number between 0 and 1 that represents the minimum confidence score+-- required for profiles within a matching group to be merged during the+-- auto-merge process. A higher score means higher similarity required to+-- merge profiles.+--+-- 'enabled', 'autoMerging_enabled' - The flag that enables the auto-merging of duplicate profiles.+newAutoMerging ::+ -- | 'enabled'+ Prelude.Bool ->+ AutoMerging+newAutoMerging pEnabled_ =+ AutoMerging'+ { conflictResolution = Prelude.Nothing,+ consolidation = Prelude.Nothing,+ minAllowedConfidenceScoreForMerging =+ Prelude.Nothing,+ enabled = pEnabled_+ }++-- | How the auto-merging process should resolve conflicts between different+-- profiles. For example, if Profile A and Profile B have the same+-- @FirstName@ and @LastName@ (and that is the matching criteria), which+-- @EmailAddress@ should be used?+autoMerging_conflictResolution :: Lens.Lens' AutoMerging (Prelude.Maybe ConflictResolution)+autoMerging_conflictResolution = Lens.lens (\AutoMerging' {conflictResolution} -> conflictResolution) (\s@AutoMerging' {} a -> s {conflictResolution = a} :: AutoMerging)++-- | A list of matching attributes that represent matching criteria. If two+-- profiles meet at least one of the requirements in the matching+-- attributes list, they will be merged.+autoMerging_consolidation :: Lens.Lens' AutoMerging (Prelude.Maybe Consolidation)+autoMerging_consolidation = Lens.lens (\AutoMerging' {consolidation} -> consolidation) (\s@AutoMerging' {} a -> s {consolidation = a} :: AutoMerging)++-- | A number between 0 and 1 that represents the minimum confidence score+-- required for profiles within a matching group to be merged during the+-- auto-merge process. A higher score means higher similarity required to+-- merge profiles.+autoMerging_minAllowedConfidenceScoreForMerging :: Lens.Lens' AutoMerging (Prelude.Maybe Prelude.Double)+autoMerging_minAllowedConfidenceScoreForMerging = Lens.lens (\AutoMerging' {minAllowedConfidenceScoreForMerging} -> minAllowedConfidenceScoreForMerging) (\s@AutoMerging' {} a -> s {minAllowedConfidenceScoreForMerging = a} :: AutoMerging)++-- | The flag that enables the auto-merging of duplicate profiles.+autoMerging_enabled :: Lens.Lens' AutoMerging Prelude.Bool+autoMerging_enabled = Lens.lens (\AutoMerging' {enabled} -> enabled) (\s@AutoMerging' {} a -> s {enabled = a} :: AutoMerging)++instance Data.FromJSON AutoMerging where+ parseJSON =+ Data.withObject+ "AutoMerging"+ ( \x ->+ AutoMerging'+ Prelude.<$> (x Data..:? "ConflictResolution")+ Prelude.<*> (x Data..:? "Consolidation")+ Prelude.<*> (x Data..:? "MinAllowedConfidenceScoreForMerging")+ Prelude.<*> (x Data..: "Enabled")+ )++instance Prelude.Hashable AutoMerging where+ hashWithSalt _salt AutoMerging' {..} =+ _salt+ `Prelude.hashWithSalt` conflictResolution+ `Prelude.hashWithSalt` consolidation+ `Prelude.hashWithSalt` minAllowedConfidenceScoreForMerging+ `Prelude.hashWithSalt` enabled++instance Prelude.NFData AutoMerging where+ rnf AutoMerging' {..} =+ Prelude.rnf conflictResolution+ `Prelude.seq` Prelude.rnf consolidation+ `Prelude.seq` Prelude.rnf minAllowedConfidenceScoreForMerging+ `Prelude.seq` Prelude.rnf enabled++instance Data.ToJSON AutoMerging where+ toJSON AutoMerging' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("ConflictResolution" Data..=)+ Prelude.<$> conflictResolution,+ ("Consolidation" Data..=) Prelude.<$> consolidation,+ ("MinAllowedConfidenceScoreForMerging" Data..=)+ Prelude.<$> minAllowedConfidenceScoreForMerging,+ Prelude.Just ("Enabled" Data..= enabled)+ ]+ )
+ gen/Amazonka/CustomerProfiles/Types/Batch.hs view
@@ -0,0 +1,89 @@+{-# 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.CustomerProfiles.Types.Batch+-- 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.CustomerProfiles.Types.Batch 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++-- | Batch defines the boundaries for ingestion for each step in+-- @APPFLOW_INTEGRATION@ workflow. @APPFLOW_INTEGRATION@ workflow splits+-- ingestion based on these boundaries.+--+-- /See:/ 'newBatch' smart constructor.+data Batch = Batch'+ { -- | Start time of batch to split ingestion.+ startTime :: Data.POSIX,+ -- | End time of batch to split ingestion.+ endTime :: Data.POSIX+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Batch' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'startTime', 'batch_startTime' - Start time of batch to split ingestion.+--+-- 'endTime', 'batch_endTime' - End time of batch to split ingestion.+newBatch ::+ -- | 'startTime'+ Prelude.UTCTime ->+ -- | 'endTime'+ Prelude.UTCTime ->+ Batch+newBatch pStartTime_ pEndTime_ =+ Batch'+ { startTime = Data._Time Lens.# pStartTime_,+ endTime = Data._Time Lens.# pEndTime_+ }++-- | Start time of batch to split ingestion.+batch_startTime :: Lens.Lens' Batch Prelude.UTCTime+batch_startTime = Lens.lens (\Batch' {startTime} -> startTime) (\s@Batch' {} a -> s {startTime = a} :: Batch) Prelude.. Data._Time++-- | End time of batch to split ingestion.+batch_endTime :: Lens.Lens' Batch Prelude.UTCTime+batch_endTime = Lens.lens (\Batch' {endTime} -> endTime) (\s@Batch' {} a -> s {endTime = a} :: Batch) Prelude.. Data._Time++instance Prelude.Hashable Batch where+ hashWithSalt _salt Batch' {..} =+ _salt+ `Prelude.hashWithSalt` startTime+ `Prelude.hashWithSalt` endTime++instance Prelude.NFData Batch where+ rnf Batch' {..} =+ Prelude.rnf startTime+ `Prelude.seq` Prelude.rnf endTime++instance Data.ToJSON Batch where+ toJSON Batch' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just ("StartTime" Data..= startTime),+ Prelude.Just ("EndTime" Data..= endTime)+ ]+ )
+ gen/Amazonka/CustomerProfiles/Types/ConflictResolution.hs view
@@ -0,0 +1,127 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.CustomerProfiles.Types.ConflictResolution+-- 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.CustomerProfiles.Types.ConflictResolution where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CustomerProfiles.Types.ConflictResolvingModel+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | How the auto-merging process should resolve conflicts between different+-- profiles.+--+-- /See:/ 'newConflictResolution' smart constructor.+data ConflictResolution = ConflictResolution'+ { -- | The @ObjectType@ name that is used to resolve profile merging conflicts+ -- when choosing @SOURCE@ as the @ConflictResolvingModel@.+ sourceName :: Prelude.Maybe Prelude.Text,+ -- | How the auto-merging process should resolve conflicts between different+ -- profiles.+ --+ -- - @RECENCY@: Uses the data that was most recently updated.+ --+ -- - @SOURCE@: Uses the data from a specific source. For example, if a+ -- company has been aquired or two departments have merged, data from+ -- the specified source is used. If two duplicate profiles are from the+ -- same source, then @RECENCY@ is used again.+ conflictResolvingModel :: ConflictResolvingModel+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ConflictResolution' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'sourceName', 'conflictResolution_sourceName' - The @ObjectType@ name that is used to resolve profile merging conflicts+-- when choosing @SOURCE@ as the @ConflictResolvingModel@.+--+-- 'conflictResolvingModel', 'conflictResolution_conflictResolvingModel' - How the auto-merging process should resolve conflicts between different+-- profiles.+--+-- - @RECENCY@: Uses the data that was most recently updated.+--+-- - @SOURCE@: Uses the data from a specific source. For example, if a+-- company has been aquired or two departments have merged, data from+-- the specified source is used. If two duplicate profiles are from the+-- same source, then @RECENCY@ is used again.+newConflictResolution ::+ -- | 'conflictResolvingModel'+ ConflictResolvingModel ->+ ConflictResolution+newConflictResolution pConflictResolvingModel_ =+ ConflictResolution'+ { sourceName = Prelude.Nothing,+ conflictResolvingModel = pConflictResolvingModel_+ }++-- | The @ObjectType@ name that is used to resolve profile merging conflicts+-- when choosing @SOURCE@ as the @ConflictResolvingModel@.+conflictResolution_sourceName :: Lens.Lens' ConflictResolution (Prelude.Maybe Prelude.Text)+conflictResolution_sourceName = Lens.lens (\ConflictResolution' {sourceName} -> sourceName) (\s@ConflictResolution' {} a -> s {sourceName = a} :: ConflictResolution)++-- | How the auto-merging process should resolve conflicts between different+-- profiles.+--+-- - @RECENCY@: Uses the data that was most recently updated.+--+-- - @SOURCE@: Uses the data from a specific source. For example, if a+-- company has been aquired or two departments have merged, data from+-- the specified source is used. If two duplicate profiles are from the+-- same source, then @RECENCY@ is used again.+conflictResolution_conflictResolvingModel :: Lens.Lens' ConflictResolution ConflictResolvingModel+conflictResolution_conflictResolvingModel = Lens.lens (\ConflictResolution' {conflictResolvingModel} -> conflictResolvingModel) (\s@ConflictResolution' {} a -> s {conflictResolvingModel = a} :: ConflictResolution)++instance Data.FromJSON ConflictResolution where+ parseJSON =+ Data.withObject+ "ConflictResolution"+ ( \x ->+ ConflictResolution'+ Prelude.<$> (x Data..:? "SourceName")+ Prelude.<*> (x Data..: "ConflictResolvingModel")+ )++instance Prelude.Hashable ConflictResolution where+ hashWithSalt _salt ConflictResolution' {..} =+ _salt+ `Prelude.hashWithSalt` sourceName+ `Prelude.hashWithSalt` conflictResolvingModel++instance Prelude.NFData ConflictResolution where+ rnf ConflictResolution' {..} =+ Prelude.rnf sourceName+ `Prelude.seq` Prelude.rnf conflictResolvingModel++instance Data.ToJSON ConflictResolution where+ toJSON ConflictResolution' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("SourceName" Data..=) Prelude.<$> sourceName,+ Prelude.Just+ ( "ConflictResolvingModel"+ Data..= conflictResolvingModel+ )+ ]+ )
+ gen/Amazonka/CustomerProfiles/Types/ConflictResolvingModel.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.CustomerProfiles.Types.ConflictResolvingModel+-- 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.CustomerProfiles.Types.ConflictResolvingModel+ ( ConflictResolvingModel+ ( ..,+ ConflictResolvingModel_RECENCY,+ ConflictResolvingModel_SOURCE+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ConflictResolvingModel = ConflictResolvingModel'+ { fromConflictResolvingModel ::+ 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 ConflictResolvingModel_RECENCY :: ConflictResolvingModel+pattern ConflictResolvingModel_RECENCY = ConflictResolvingModel' "RECENCY"++pattern ConflictResolvingModel_SOURCE :: ConflictResolvingModel+pattern ConflictResolvingModel_SOURCE = ConflictResolvingModel' "SOURCE"++{-# COMPLETE+ ConflictResolvingModel_RECENCY,+ ConflictResolvingModel_SOURCE,+ ConflictResolvingModel'+ #-}
+ gen/Amazonka/CustomerProfiles/Types/ConnectorOperator.hs view
@@ -0,0 +1,124 @@+{-# 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.CustomerProfiles.Types.ConnectorOperator+-- 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.CustomerProfiles.Types.ConnectorOperator where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CustomerProfiles.Types.MarketoConnectorOperator+import Amazonka.CustomerProfiles.Types.S3ConnectorOperator+import Amazonka.CustomerProfiles.Types.SalesforceConnectorOperator+import Amazonka.CustomerProfiles.Types.ServiceNowConnectorOperator+import Amazonka.CustomerProfiles.Types.ZendeskConnectorOperator+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The operation to be performed on the provided source fields.+--+-- /See:/ 'newConnectorOperator' smart constructor.+data ConnectorOperator = ConnectorOperator'+ { -- | The operation to be performed on the provided Marketo source fields.+ marketo :: Prelude.Maybe MarketoConnectorOperator,+ -- | The operation to be performed on the provided Amazon S3 source fields.+ s3 :: Prelude.Maybe S3ConnectorOperator,+ -- | The operation to be performed on the provided Salesforce source fields.+ salesforce :: Prelude.Maybe SalesforceConnectorOperator,+ -- | The operation to be performed on the provided ServiceNow source fields.+ serviceNow :: Prelude.Maybe ServiceNowConnectorOperator,+ -- | The operation to be performed on the provided Zendesk source fields.+ zendesk :: Prelude.Maybe ZendeskConnectorOperator+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ConnectorOperator' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'marketo', 'connectorOperator_marketo' - The operation to be performed on the provided Marketo source fields.+--+-- 's3', 'connectorOperator_s3' - The operation to be performed on the provided Amazon S3 source fields.+--+-- 'salesforce', 'connectorOperator_salesforce' - The operation to be performed on the provided Salesforce source fields.+--+-- 'serviceNow', 'connectorOperator_serviceNow' - The operation to be performed on the provided ServiceNow source fields.+--+-- 'zendesk', 'connectorOperator_zendesk' - The operation to be performed on the provided Zendesk source fields.+newConnectorOperator ::+ ConnectorOperator+newConnectorOperator =+ ConnectorOperator'+ { marketo = Prelude.Nothing,+ s3 = Prelude.Nothing,+ salesforce = Prelude.Nothing,+ serviceNow = Prelude.Nothing,+ zendesk = Prelude.Nothing+ }++-- | The operation to be performed on the provided Marketo source fields.+connectorOperator_marketo :: Lens.Lens' ConnectorOperator (Prelude.Maybe MarketoConnectorOperator)+connectorOperator_marketo = Lens.lens (\ConnectorOperator' {marketo} -> marketo) (\s@ConnectorOperator' {} a -> s {marketo = a} :: ConnectorOperator)++-- | The operation to be performed on the provided Amazon S3 source fields.+connectorOperator_s3 :: Lens.Lens' ConnectorOperator (Prelude.Maybe S3ConnectorOperator)+connectorOperator_s3 = Lens.lens (\ConnectorOperator' {s3} -> s3) (\s@ConnectorOperator' {} a -> s {s3 = a} :: ConnectorOperator)++-- | The operation to be performed on the provided Salesforce source fields.+connectorOperator_salesforce :: Lens.Lens' ConnectorOperator (Prelude.Maybe SalesforceConnectorOperator)+connectorOperator_salesforce = Lens.lens (\ConnectorOperator' {salesforce} -> salesforce) (\s@ConnectorOperator' {} a -> s {salesforce = a} :: ConnectorOperator)++-- | The operation to be performed on the provided ServiceNow source fields.+connectorOperator_serviceNow :: Lens.Lens' ConnectorOperator (Prelude.Maybe ServiceNowConnectorOperator)+connectorOperator_serviceNow = Lens.lens (\ConnectorOperator' {serviceNow} -> serviceNow) (\s@ConnectorOperator' {} a -> s {serviceNow = a} :: ConnectorOperator)++-- | The operation to be performed on the provided Zendesk source fields.+connectorOperator_zendesk :: Lens.Lens' ConnectorOperator (Prelude.Maybe ZendeskConnectorOperator)+connectorOperator_zendesk = Lens.lens (\ConnectorOperator' {zendesk} -> zendesk) (\s@ConnectorOperator' {} a -> s {zendesk = a} :: ConnectorOperator)++instance Prelude.Hashable ConnectorOperator where+ hashWithSalt _salt ConnectorOperator' {..} =+ _salt+ `Prelude.hashWithSalt` marketo+ `Prelude.hashWithSalt` s3+ `Prelude.hashWithSalt` salesforce+ `Prelude.hashWithSalt` serviceNow+ `Prelude.hashWithSalt` zendesk++instance Prelude.NFData ConnectorOperator where+ rnf ConnectorOperator' {..} =+ Prelude.rnf marketo+ `Prelude.seq` Prelude.rnf s3+ `Prelude.seq` Prelude.rnf salesforce+ `Prelude.seq` Prelude.rnf serviceNow+ `Prelude.seq` Prelude.rnf zendesk++instance Data.ToJSON ConnectorOperator where+ toJSON ConnectorOperator' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("Marketo" Data..=) Prelude.<$> marketo,+ ("S3" Data..=) Prelude.<$> s3,+ ("Salesforce" Data..=) Prelude.<$> salesforce,+ ("ServiceNow" Data..=) Prelude.<$> serviceNow,+ ("Zendesk" Data..=) Prelude.<$> zendesk+ ]+ )
+ gen/Amazonka/CustomerProfiles/Types/Consolidation.hs view
@@ -0,0 +1,85 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.CustomerProfiles.Types.Consolidation+-- 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.CustomerProfiles.Types.Consolidation 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 matching criteria to be used during the auto-merging process.+--+-- /See:/ 'newConsolidation' smart constructor.+data Consolidation = Consolidation'+ { -- | A list of matching criteria.+ matchingAttributesList :: Prelude.NonEmpty (Prelude.NonEmpty Prelude.Text)+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Consolidation' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'matchingAttributesList', 'consolidation_matchingAttributesList' - A list of matching criteria.+newConsolidation ::+ -- | 'matchingAttributesList'+ Prelude.NonEmpty (Prelude.NonEmpty Prelude.Text) ->+ Consolidation+newConsolidation pMatchingAttributesList_ =+ Consolidation'+ { matchingAttributesList =+ Lens.coerced Lens.# pMatchingAttributesList_+ }++-- | A list of matching criteria.+consolidation_matchingAttributesList :: Lens.Lens' Consolidation (Prelude.NonEmpty (Prelude.NonEmpty Prelude.Text))+consolidation_matchingAttributesList = Lens.lens (\Consolidation' {matchingAttributesList} -> matchingAttributesList) (\s@Consolidation' {} a -> s {matchingAttributesList = a} :: Consolidation) Prelude.. Lens.coerced++instance Data.FromJSON Consolidation where+ parseJSON =+ Data.withObject+ "Consolidation"+ ( \x ->+ Consolidation'+ Prelude.<$> (x Data..: "MatchingAttributesList")+ )++instance Prelude.Hashable Consolidation where+ hashWithSalt _salt Consolidation' {..} =+ _salt `Prelude.hashWithSalt` matchingAttributesList++instance Prelude.NFData Consolidation where+ rnf Consolidation' {..} =+ Prelude.rnf matchingAttributesList++instance Data.ToJSON Consolidation where+ toJSON Consolidation' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just+ ( "MatchingAttributesList"+ Data..= matchingAttributesList+ )+ ]+ )
+ gen/Amazonka/CustomerProfiles/Types/DataPullMode.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.CustomerProfiles.Types.DataPullMode+-- 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.CustomerProfiles.Types.DataPullMode+ ( DataPullMode+ ( ..,+ DataPullMode_Complete,+ DataPullMode_Incremental+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype DataPullMode = DataPullMode'+ { fromDataPullMode ::+ 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 DataPullMode_Complete :: DataPullMode+pattern DataPullMode_Complete = DataPullMode' "Complete"++pattern DataPullMode_Incremental :: DataPullMode+pattern DataPullMode_Incremental = DataPullMode' "Incremental"++{-# COMPLETE+ DataPullMode_Complete,+ DataPullMode_Incremental,+ DataPullMode'+ #-}
+ gen/Amazonka/CustomerProfiles/Types/DomainStats.hs view
@@ -0,0 +1,118 @@+{-# 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.CustomerProfiles.Types.DomainStats+-- 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.CustomerProfiles.Types.DomainStats 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++-- | Usage-specific statistics about the domain.+--+-- /See:/ 'newDomainStats' smart constructor.+data DomainStats = DomainStats'+ { -- | The number of profiles that you are currently paying for in the domain.+ -- If you have more than 100 objects associated with a single profile, that+ -- profile counts as two profiles. If you have more than 200 objects, that+ -- profile counts as three, and so on.+ meteringProfileCount :: Prelude.Maybe Prelude.Integer,+ -- | The total number of objects in domain.+ objectCount :: Prelude.Maybe Prelude.Integer,+ -- | The total number of profiles currently in the domain.+ profileCount :: Prelude.Maybe Prelude.Integer,+ -- | The total size, in bytes, of all objects in the domain.+ totalSize :: Prelude.Maybe Prelude.Integer+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DomainStats' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'meteringProfileCount', 'domainStats_meteringProfileCount' - The number of profiles that you are currently paying for in the domain.+-- If you have more than 100 objects associated with a single profile, that+-- profile counts as two profiles. If you have more than 200 objects, that+-- profile counts as three, and so on.+--+-- 'objectCount', 'domainStats_objectCount' - The total number of objects in domain.+--+-- 'profileCount', 'domainStats_profileCount' - The total number of profiles currently in the domain.+--+-- 'totalSize', 'domainStats_totalSize' - The total size, in bytes, of all objects in the domain.+newDomainStats ::+ DomainStats+newDomainStats =+ DomainStats'+ { meteringProfileCount =+ Prelude.Nothing,+ objectCount = Prelude.Nothing,+ profileCount = Prelude.Nothing,+ totalSize = Prelude.Nothing+ }++-- | The number of profiles that you are currently paying for in the domain.+-- If you have more than 100 objects associated with a single profile, that+-- profile counts as two profiles. If you have more than 200 objects, that+-- profile counts as three, and so on.+domainStats_meteringProfileCount :: Lens.Lens' DomainStats (Prelude.Maybe Prelude.Integer)+domainStats_meteringProfileCount = Lens.lens (\DomainStats' {meteringProfileCount} -> meteringProfileCount) (\s@DomainStats' {} a -> s {meteringProfileCount = a} :: DomainStats)++-- | The total number of objects in domain.+domainStats_objectCount :: Lens.Lens' DomainStats (Prelude.Maybe Prelude.Integer)+domainStats_objectCount = Lens.lens (\DomainStats' {objectCount} -> objectCount) (\s@DomainStats' {} a -> s {objectCount = a} :: DomainStats)++-- | The total number of profiles currently in the domain.+domainStats_profileCount :: Lens.Lens' DomainStats (Prelude.Maybe Prelude.Integer)+domainStats_profileCount = Lens.lens (\DomainStats' {profileCount} -> profileCount) (\s@DomainStats' {} a -> s {profileCount = a} :: DomainStats)++-- | The total size, in bytes, of all objects in the domain.+domainStats_totalSize :: Lens.Lens' DomainStats (Prelude.Maybe Prelude.Integer)+domainStats_totalSize = Lens.lens (\DomainStats' {totalSize} -> totalSize) (\s@DomainStats' {} a -> s {totalSize = a} :: DomainStats)++instance Data.FromJSON DomainStats where+ parseJSON =+ Data.withObject+ "DomainStats"+ ( \x ->+ DomainStats'+ Prelude.<$> (x Data..:? "MeteringProfileCount")+ Prelude.<*> (x Data..:? "ObjectCount")+ Prelude.<*> (x Data..:? "ProfileCount")+ Prelude.<*> (x Data..:? "TotalSize")+ )++instance Prelude.Hashable DomainStats where+ hashWithSalt _salt DomainStats' {..} =+ _salt+ `Prelude.hashWithSalt` meteringProfileCount+ `Prelude.hashWithSalt` objectCount+ `Prelude.hashWithSalt` profileCount+ `Prelude.hashWithSalt` totalSize++instance Prelude.NFData DomainStats where+ rnf DomainStats' {..} =+ Prelude.rnf meteringProfileCount+ `Prelude.seq` Prelude.rnf objectCount+ `Prelude.seq` Prelude.rnf profileCount+ `Prelude.seq` Prelude.rnf totalSize
+ gen/Amazonka/CustomerProfiles/Types/ExportingConfig.hs view
@@ -0,0 +1,82 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.CustomerProfiles.Types.ExportingConfig+-- 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.CustomerProfiles.Types.ExportingConfig where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CustomerProfiles.Types.S3ExportingConfig+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Configuration information about the S3 bucket where Identity Resolution+-- Jobs writes result files.+--+-- You need to give Customer Profiles service principal write permission to+-- your S3 bucket. Otherwise, you\'ll get an exception in the API response.+-- For an example policy, see+-- <https://docs.aws.amazon.com/connect/latest/adminguide/cross-service-confused-deputy-prevention.html#customer-profiles-cross-service Amazon Connect Customer Profiles cross-service confused deputy prevention>.+--+-- /See:/ 'newExportingConfig' smart constructor.+data ExportingConfig = ExportingConfig'+ { -- | The S3 location where Identity Resolution Jobs write result files.+ s3Exporting :: Prelude.Maybe S3ExportingConfig+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ExportingConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 's3Exporting', 'exportingConfig_s3Exporting' - The S3 location where Identity Resolution Jobs write result files.+newExportingConfig ::+ ExportingConfig+newExportingConfig =+ ExportingConfig' {s3Exporting = Prelude.Nothing}++-- | The S3 location where Identity Resolution Jobs write result files.+exportingConfig_s3Exporting :: Lens.Lens' ExportingConfig (Prelude.Maybe S3ExportingConfig)+exportingConfig_s3Exporting = Lens.lens (\ExportingConfig' {s3Exporting} -> s3Exporting) (\s@ExportingConfig' {} a -> s {s3Exporting = a} :: ExportingConfig)++instance Data.FromJSON ExportingConfig where+ parseJSON =+ Data.withObject+ "ExportingConfig"+ ( \x ->+ ExportingConfig'+ Prelude.<$> (x Data..:? "S3Exporting")+ )++instance Prelude.Hashable ExportingConfig where+ hashWithSalt _salt ExportingConfig' {..} =+ _salt `Prelude.hashWithSalt` s3Exporting++instance Prelude.NFData ExportingConfig where+ rnf ExportingConfig' {..} = Prelude.rnf s3Exporting++instance Data.ToJSON ExportingConfig where+ toJSON ExportingConfig' {..} =+ Data.object+ ( Prelude.catMaybes+ [("S3Exporting" Data..=) Prelude.<$> s3Exporting]+ )
+ gen/Amazonka/CustomerProfiles/Types/ExportingLocation.hs view
@@ -0,0 +1,72 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.CustomerProfiles.Types.ExportingLocation+-- 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.CustomerProfiles.Types.ExportingLocation where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CustomerProfiles.Types.S3ExportingLocation+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The S3 location where Identity Resolution Jobs write result files.+--+-- /See:/ 'newExportingLocation' smart constructor.+data ExportingLocation = ExportingLocation'+ { -- | Information about the S3 location where Identity Resolution Jobs write+ -- result files.+ s3Exporting :: Prelude.Maybe S3ExportingLocation+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ExportingLocation' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 's3Exporting', 'exportingLocation_s3Exporting' - Information about the S3 location where Identity Resolution Jobs write+-- result files.+newExportingLocation ::+ ExportingLocation+newExportingLocation =+ ExportingLocation' {s3Exporting = Prelude.Nothing}++-- | Information about the S3 location where Identity Resolution Jobs write+-- result files.+exportingLocation_s3Exporting :: Lens.Lens' ExportingLocation (Prelude.Maybe S3ExportingLocation)+exportingLocation_s3Exporting = Lens.lens (\ExportingLocation' {s3Exporting} -> s3Exporting) (\s@ExportingLocation' {} a -> s {s3Exporting = a} :: ExportingLocation)++instance Data.FromJSON ExportingLocation where+ parseJSON =+ Data.withObject+ "ExportingLocation"+ ( \x ->+ ExportingLocation'+ Prelude.<$> (x Data..:? "S3Exporting")+ )++instance Prelude.Hashable ExportingLocation where+ hashWithSalt _salt ExportingLocation' {..} =+ _salt `Prelude.hashWithSalt` s3Exporting++instance Prelude.NFData ExportingLocation where+ rnf ExportingLocation' {..} = Prelude.rnf s3Exporting
+ gen/Amazonka/CustomerProfiles/Types/FieldContentType.hs view
@@ -0,0 +1,86 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.CustomerProfiles.Types.FieldContentType+-- 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.CustomerProfiles.Types.FieldContentType+ ( FieldContentType+ ( ..,+ FieldContentType_EMAIL_ADDRESS,+ FieldContentType_NAME,+ FieldContentType_NUMBER,+ FieldContentType_PHONE_NUMBER,+ FieldContentType_STRING+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype FieldContentType = FieldContentType'+ { fromFieldContentType ::+ 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 FieldContentType_EMAIL_ADDRESS :: FieldContentType+pattern FieldContentType_EMAIL_ADDRESS = FieldContentType' "EMAIL_ADDRESS"++pattern FieldContentType_NAME :: FieldContentType+pattern FieldContentType_NAME = FieldContentType' "NAME"++pattern FieldContentType_NUMBER :: FieldContentType+pattern FieldContentType_NUMBER = FieldContentType' "NUMBER"++pattern FieldContentType_PHONE_NUMBER :: FieldContentType+pattern FieldContentType_PHONE_NUMBER = FieldContentType' "PHONE_NUMBER"++pattern FieldContentType_STRING :: FieldContentType+pattern FieldContentType_STRING = FieldContentType' "STRING"++{-# COMPLETE+ FieldContentType_EMAIL_ADDRESS,+ FieldContentType_NAME,+ FieldContentType_NUMBER,+ FieldContentType_PHONE_NUMBER,+ FieldContentType_STRING,+ FieldContentType'+ #-}
+ gen/Amazonka/CustomerProfiles/Types/FieldSourceProfileIds.hs view
@@ -0,0 +1,321 @@+{-# 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.CustomerProfiles.Types.FieldSourceProfileIds+-- 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.CustomerProfiles.Types.FieldSourceProfileIds where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | A duplicate customer profile that is to be merged into a main profile.+--+-- /See:/ 'newFieldSourceProfileIds' smart constructor.+data FieldSourceProfileIds = FieldSourceProfileIds'+ { -- | A unique identifier for the account number field to be merged.+ accountNumber :: Prelude.Maybe Prelude.Text,+ -- | A unique identifier for the additional information field to be merged.+ additionalInformation :: Prelude.Maybe Prelude.Text,+ -- | A unique identifier for the party type field to be merged.+ address :: Prelude.Maybe Prelude.Text,+ -- | A unique identifier for the attributes field to be merged.+ attributes :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | A unique identifier for the billing type field to be merged.+ billingAddress :: Prelude.Maybe Prelude.Text,+ -- | A unique identifier for the birthdate field to be merged.+ birthDate :: Prelude.Maybe Prelude.Text,+ -- | A unique identifier for the party type field to be merged.+ businessEmailAddress :: Prelude.Maybe Prelude.Text,+ -- | A unique identifier for the business name field to be merged.+ businessName :: Prelude.Maybe Prelude.Text,+ -- | A unique identifier for the business phone number field to be merged.+ businessPhoneNumber :: Prelude.Maybe Prelude.Text,+ -- | A unique identifier for the email address field to be merged.+ emailAddress :: Prelude.Maybe Prelude.Text,+ -- | A unique identifier for the first name field to be merged.+ firstName :: Prelude.Maybe Prelude.Text,+ -- | A unique identifier for the gender field to be merged.+ gender :: Prelude.Maybe Prelude.Text,+ -- | A unique identifier for the home phone number field to be merged.+ homePhoneNumber :: Prelude.Maybe Prelude.Text,+ -- | A unique identifier for the last name field to be merged.+ lastName :: Prelude.Maybe Prelude.Text,+ -- | A unique identifier for the mailing address field to be merged.+ mailingAddress :: Prelude.Maybe Prelude.Text,+ -- | A unique identifier for the middle name field to be merged.+ middleName :: Prelude.Maybe Prelude.Text,+ -- | A unique identifier for the mobile phone number field to be merged.+ mobilePhoneNumber :: Prelude.Maybe Prelude.Text,+ -- | A unique identifier for the party type field to be merged.+ partyType :: Prelude.Maybe Prelude.Text,+ -- | A unique identifier for the personal email address field to be merged.+ personalEmailAddress :: Prelude.Maybe Prelude.Text,+ -- | A unique identifier for the phone number field to be merged.+ phoneNumber :: Prelude.Maybe Prelude.Text,+ -- | A unique identifier for the shipping address field to be merged.+ shippingAddress :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'FieldSourceProfileIds' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accountNumber', 'fieldSourceProfileIds_accountNumber' - A unique identifier for the account number field to be merged.+--+-- 'additionalInformation', 'fieldSourceProfileIds_additionalInformation' - A unique identifier for the additional information field to be merged.+--+-- 'address', 'fieldSourceProfileIds_address' - A unique identifier for the party type field to be merged.+--+-- 'attributes', 'fieldSourceProfileIds_attributes' - A unique identifier for the attributes field to be merged.+--+-- 'billingAddress', 'fieldSourceProfileIds_billingAddress' - A unique identifier for the billing type field to be merged.+--+-- 'birthDate', 'fieldSourceProfileIds_birthDate' - A unique identifier for the birthdate field to be merged.+--+-- 'businessEmailAddress', 'fieldSourceProfileIds_businessEmailAddress' - A unique identifier for the party type field to be merged.+--+-- 'businessName', 'fieldSourceProfileIds_businessName' - A unique identifier for the business name field to be merged.+--+-- 'businessPhoneNumber', 'fieldSourceProfileIds_businessPhoneNumber' - A unique identifier for the business phone number field to be merged.+--+-- 'emailAddress', 'fieldSourceProfileIds_emailAddress' - A unique identifier for the email address field to be merged.+--+-- 'firstName', 'fieldSourceProfileIds_firstName' - A unique identifier for the first name field to be merged.+--+-- 'gender', 'fieldSourceProfileIds_gender' - A unique identifier for the gender field to be merged.+--+-- 'homePhoneNumber', 'fieldSourceProfileIds_homePhoneNumber' - A unique identifier for the home phone number field to be merged.+--+-- 'lastName', 'fieldSourceProfileIds_lastName' - A unique identifier for the last name field to be merged.+--+-- 'mailingAddress', 'fieldSourceProfileIds_mailingAddress' - A unique identifier for the mailing address field to be merged.+--+-- 'middleName', 'fieldSourceProfileIds_middleName' - A unique identifier for the middle name field to be merged.+--+-- 'mobilePhoneNumber', 'fieldSourceProfileIds_mobilePhoneNumber' - A unique identifier for the mobile phone number field to be merged.+--+-- 'partyType', 'fieldSourceProfileIds_partyType' - A unique identifier for the party type field to be merged.+--+-- 'personalEmailAddress', 'fieldSourceProfileIds_personalEmailAddress' - A unique identifier for the personal email address field to be merged.+--+-- 'phoneNumber', 'fieldSourceProfileIds_phoneNumber' - A unique identifier for the phone number field to be merged.+--+-- 'shippingAddress', 'fieldSourceProfileIds_shippingAddress' - A unique identifier for the shipping address field to be merged.+newFieldSourceProfileIds ::+ FieldSourceProfileIds+newFieldSourceProfileIds =+ FieldSourceProfileIds'+ { accountNumber =+ Prelude.Nothing,+ additionalInformation = Prelude.Nothing,+ address = Prelude.Nothing,+ attributes = Prelude.Nothing,+ billingAddress = Prelude.Nothing,+ birthDate = Prelude.Nothing,+ businessEmailAddress = Prelude.Nothing,+ businessName = Prelude.Nothing,+ businessPhoneNumber = Prelude.Nothing,+ emailAddress = Prelude.Nothing,+ firstName = Prelude.Nothing,+ gender = Prelude.Nothing,+ homePhoneNumber = Prelude.Nothing,+ lastName = Prelude.Nothing,+ mailingAddress = Prelude.Nothing,+ middleName = Prelude.Nothing,+ mobilePhoneNumber = Prelude.Nothing,+ partyType = Prelude.Nothing,+ personalEmailAddress = Prelude.Nothing,+ phoneNumber = Prelude.Nothing,+ shippingAddress = Prelude.Nothing+ }++-- | A unique identifier for the account number field to be merged.+fieldSourceProfileIds_accountNumber :: Lens.Lens' FieldSourceProfileIds (Prelude.Maybe Prelude.Text)+fieldSourceProfileIds_accountNumber = Lens.lens (\FieldSourceProfileIds' {accountNumber} -> accountNumber) (\s@FieldSourceProfileIds' {} a -> s {accountNumber = a} :: FieldSourceProfileIds)++-- | A unique identifier for the additional information field to be merged.+fieldSourceProfileIds_additionalInformation :: Lens.Lens' FieldSourceProfileIds (Prelude.Maybe Prelude.Text)+fieldSourceProfileIds_additionalInformation = Lens.lens (\FieldSourceProfileIds' {additionalInformation} -> additionalInformation) (\s@FieldSourceProfileIds' {} a -> s {additionalInformation = a} :: FieldSourceProfileIds)++-- | A unique identifier for the party type field to be merged.+fieldSourceProfileIds_address :: Lens.Lens' FieldSourceProfileIds (Prelude.Maybe Prelude.Text)+fieldSourceProfileIds_address = Lens.lens (\FieldSourceProfileIds' {address} -> address) (\s@FieldSourceProfileIds' {} a -> s {address = a} :: FieldSourceProfileIds)++-- | A unique identifier for the attributes field to be merged.+fieldSourceProfileIds_attributes :: Lens.Lens' FieldSourceProfileIds (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+fieldSourceProfileIds_attributes = Lens.lens (\FieldSourceProfileIds' {attributes} -> attributes) (\s@FieldSourceProfileIds' {} a -> s {attributes = a} :: FieldSourceProfileIds) Prelude.. Lens.mapping Lens.coerced++-- | A unique identifier for the billing type field to be merged.+fieldSourceProfileIds_billingAddress :: Lens.Lens' FieldSourceProfileIds (Prelude.Maybe Prelude.Text)+fieldSourceProfileIds_billingAddress = Lens.lens (\FieldSourceProfileIds' {billingAddress} -> billingAddress) (\s@FieldSourceProfileIds' {} a -> s {billingAddress = a} :: FieldSourceProfileIds)++-- | A unique identifier for the birthdate field to be merged.+fieldSourceProfileIds_birthDate :: Lens.Lens' FieldSourceProfileIds (Prelude.Maybe Prelude.Text)+fieldSourceProfileIds_birthDate = Lens.lens (\FieldSourceProfileIds' {birthDate} -> birthDate) (\s@FieldSourceProfileIds' {} a -> s {birthDate = a} :: FieldSourceProfileIds)++-- | A unique identifier for the party type field to be merged.+fieldSourceProfileIds_businessEmailAddress :: Lens.Lens' FieldSourceProfileIds (Prelude.Maybe Prelude.Text)+fieldSourceProfileIds_businessEmailAddress = Lens.lens (\FieldSourceProfileIds' {businessEmailAddress} -> businessEmailAddress) (\s@FieldSourceProfileIds' {} a -> s {businessEmailAddress = a} :: FieldSourceProfileIds)++-- | A unique identifier for the business name field to be merged.+fieldSourceProfileIds_businessName :: Lens.Lens' FieldSourceProfileIds (Prelude.Maybe Prelude.Text)+fieldSourceProfileIds_businessName = Lens.lens (\FieldSourceProfileIds' {businessName} -> businessName) (\s@FieldSourceProfileIds' {} a -> s {businessName = a} :: FieldSourceProfileIds)++-- | A unique identifier for the business phone number field to be merged.+fieldSourceProfileIds_businessPhoneNumber :: Lens.Lens' FieldSourceProfileIds (Prelude.Maybe Prelude.Text)+fieldSourceProfileIds_businessPhoneNumber = Lens.lens (\FieldSourceProfileIds' {businessPhoneNumber} -> businessPhoneNumber) (\s@FieldSourceProfileIds' {} a -> s {businessPhoneNumber = a} :: FieldSourceProfileIds)++-- | A unique identifier for the email address field to be merged.+fieldSourceProfileIds_emailAddress :: Lens.Lens' FieldSourceProfileIds (Prelude.Maybe Prelude.Text)+fieldSourceProfileIds_emailAddress = Lens.lens (\FieldSourceProfileIds' {emailAddress} -> emailAddress) (\s@FieldSourceProfileIds' {} a -> s {emailAddress = a} :: FieldSourceProfileIds)++-- | A unique identifier for the first name field to be merged.+fieldSourceProfileIds_firstName :: Lens.Lens' FieldSourceProfileIds (Prelude.Maybe Prelude.Text)+fieldSourceProfileIds_firstName = Lens.lens (\FieldSourceProfileIds' {firstName} -> firstName) (\s@FieldSourceProfileIds' {} a -> s {firstName = a} :: FieldSourceProfileIds)++-- | A unique identifier for the gender field to be merged.+fieldSourceProfileIds_gender :: Lens.Lens' FieldSourceProfileIds (Prelude.Maybe Prelude.Text)+fieldSourceProfileIds_gender = Lens.lens (\FieldSourceProfileIds' {gender} -> gender) (\s@FieldSourceProfileIds' {} a -> s {gender = a} :: FieldSourceProfileIds)++-- | A unique identifier for the home phone number field to be merged.+fieldSourceProfileIds_homePhoneNumber :: Lens.Lens' FieldSourceProfileIds (Prelude.Maybe Prelude.Text)+fieldSourceProfileIds_homePhoneNumber = Lens.lens (\FieldSourceProfileIds' {homePhoneNumber} -> homePhoneNumber) (\s@FieldSourceProfileIds' {} a -> s {homePhoneNumber = a} :: FieldSourceProfileIds)++-- | A unique identifier for the last name field to be merged.+fieldSourceProfileIds_lastName :: Lens.Lens' FieldSourceProfileIds (Prelude.Maybe Prelude.Text)+fieldSourceProfileIds_lastName = Lens.lens (\FieldSourceProfileIds' {lastName} -> lastName) (\s@FieldSourceProfileIds' {} a -> s {lastName = a} :: FieldSourceProfileIds)++-- | A unique identifier for the mailing address field to be merged.+fieldSourceProfileIds_mailingAddress :: Lens.Lens' FieldSourceProfileIds (Prelude.Maybe Prelude.Text)+fieldSourceProfileIds_mailingAddress = Lens.lens (\FieldSourceProfileIds' {mailingAddress} -> mailingAddress) (\s@FieldSourceProfileIds' {} a -> s {mailingAddress = a} :: FieldSourceProfileIds)++-- | A unique identifier for the middle name field to be merged.+fieldSourceProfileIds_middleName :: Lens.Lens' FieldSourceProfileIds (Prelude.Maybe Prelude.Text)+fieldSourceProfileIds_middleName = Lens.lens (\FieldSourceProfileIds' {middleName} -> middleName) (\s@FieldSourceProfileIds' {} a -> s {middleName = a} :: FieldSourceProfileIds)++-- | A unique identifier for the mobile phone number field to be merged.+fieldSourceProfileIds_mobilePhoneNumber :: Lens.Lens' FieldSourceProfileIds (Prelude.Maybe Prelude.Text)+fieldSourceProfileIds_mobilePhoneNumber = Lens.lens (\FieldSourceProfileIds' {mobilePhoneNumber} -> mobilePhoneNumber) (\s@FieldSourceProfileIds' {} a -> s {mobilePhoneNumber = a} :: FieldSourceProfileIds)++-- | A unique identifier for the party type field to be merged.+fieldSourceProfileIds_partyType :: Lens.Lens' FieldSourceProfileIds (Prelude.Maybe Prelude.Text)+fieldSourceProfileIds_partyType = Lens.lens (\FieldSourceProfileIds' {partyType} -> partyType) (\s@FieldSourceProfileIds' {} a -> s {partyType = a} :: FieldSourceProfileIds)++-- | A unique identifier for the personal email address field to be merged.+fieldSourceProfileIds_personalEmailAddress :: Lens.Lens' FieldSourceProfileIds (Prelude.Maybe Prelude.Text)+fieldSourceProfileIds_personalEmailAddress = Lens.lens (\FieldSourceProfileIds' {personalEmailAddress} -> personalEmailAddress) (\s@FieldSourceProfileIds' {} a -> s {personalEmailAddress = a} :: FieldSourceProfileIds)++-- | A unique identifier for the phone number field to be merged.+fieldSourceProfileIds_phoneNumber :: Lens.Lens' FieldSourceProfileIds (Prelude.Maybe Prelude.Text)+fieldSourceProfileIds_phoneNumber = Lens.lens (\FieldSourceProfileIds' {phoneNumber} -> phoneNumber) (\s@FieldSourceProfileIds' {} a -> s {phoneNumber = a} :: FieldSourceProfileIds)++-- | A unique identifier for the shipping address field to be merged.+fieldSourceProfileIds_shippingAddress :: Lens.Lens' FieldSourceProfileIds (Prelude.Maybe Prelude.Text)+fieldSourceProfileIds_shippingAddress = Lens.lens (\FieldSourceProfileIds' {shippingAddress} -> shippingAddress) (\s@FieldSourceProfileIds' {} a -> s {shippingAddress = a} :: FieldSourceProfileIds)++instance Prelude.Hashable FieldSourceProfileIds where+ hashWithSalt _salt FieldSourceProfileIds' {..} =+ _salt+ `Prelude.hashWithSalt` accountNumber+ `Prelude.hashWithSalt` additionalInformation+ `Prelude.hashWithSalt` address+ `Prelude.hashWithSalt` attributes+ `Prelude.hashWithSalt` billingAddress+ `Prelude.hashWithSalt` birthDate+ `Prelude.hashWithSalt` businessEmailAddress+ `Prelude.hashWithSalt` businessName+ `Prelude.hashWithSalt` businessPhoneNumber+ `Prelude.hashWithSalt` emailAddress+ `Prelude.hashWithSalt` firstName+ `Prelude.hashWithSalt` gender+ `Prelude.hashWithSalt` homePhoneNumber+ `Prelude.hashWithSalt` lastName+ `Prelude.hashWithSalt` mailingAddress+ `Prelude.hashWithSalt` middleName+ `Prelude.hashWithSalt` mobilePhoneNumber+ `Prelude.hashWithSalt` partyType+ `Prelude.hashWithSalt` personalEmailAddress+ `Prelude.hashWithSalt` phoneNumber+ `Prelude.hashWithSalt` shippingAddress++instance Prelude.NFData FieldSourceProfileIds where+ rnf FieldSourceProfileIds' {..} =+ Prelude.rnf accountNumber+ `Prelude.seq` Prelude.rnf additionalInformation+ `Prelude.seq` Prelude.rnf address+ `Prelude.seq` Prelude.rnf attributes+ `Prelude.seq` Prelude.rnf billingAddress+ `Prelude.seq` Prelude.rnf birthDate+ `Prelude.seq` Prelude.rnf businessEmailAddress+ `Prelude.seq` Prelude.rnf businessName+ `Prelude.seq` Prelude.rnf businessPhoneNumber+ `Prelude.seq` Prelude.rnf emailAddress+ `Prelude.seq` Prelude.rnf firstName+ `Prelude.seq` Prelude.rnf gender+ `Prelude.seq` Prelude.rnf homePhoneNumber+ `Prelude.seq` Prelude.rnf lastName+ `Prelude.seq` Prelude.rnf mailingAddress+ `Prelude.seq` Prelude.rnf middleName+ `Prelude.seq` Prelude.rnf mobilePhoneNumber+ `Prelude.seq` Prelude.rnf partyType+ `Prelude.seq` Prelude.rnf personalEmailAddress+ `Prelude.seq` Prelude.rnf phoneNumber+ `Prelude.seq` Prelude.rnf shippingAddress++instance Data.ToJSON FieldSourceProfileIds where+ toJSON FieldSourceProfileIds' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("AccountNumber" Data..=) Prelude.<$> accountNumber,+ ("AdditionalInformation" Data..=)+ Prelude.<$> additionalInformation,+ ("Address" Data..=) Prelude.<$> address,+ ("Attributes" Data..=) Prelude.<$> attributes,+ ("BillingAddress" Data..=)+ Prelude.<$> billingAddress,+ ("BirthDate" Data..=) Prelude.<$> birthDate,+ ("BusinessEmailAddress" Data..=)+ Prelude.<$> businessEmailAddress,+ ("BusinessName" Data..=) Prelude.<$> businessName,+ ("BusinessPhoneNumber" Data..=)+ Prelude.<$> businessPhoneNumber,+ ("EmailAddress" Data..=) Prelude.<$> emailAddress,+ ("FirstName" Data..=) Prelude.<$> firstName,+ ("Gender" Data..=) Prelude.<$> gender,+ ("HomePhoneNumber" Data..=)+ Prelude.<$> homePhoneNumber,+ ("LastName" Data..=) Prelude.<$> lastName,+ ("MailingAddress" Data..=)+ Prelude.<$> mailingAddress,+ ("MiddleName" Data..=) Prelude.<$> middleName,+ ("MobilePhoneNumber" Data..=)+ Prelude.<$> mobilePhoneNumber,+ ("PartyType" Data..=) Prelude.<$> partyType,+ ("PersonalEmailAddress" Data..=)+ Prelude.<$> personalEmailAddress,+ ("PhoneNumber" Data..=) Prelude.<$> phoneNumber,+ ("ShippingAddress" Data..=)+ Prelude.<$> shippingAddress+ ]+ )
+ gen/Amazonka/CustomerProfiles/Types/FlowDefinition.hs view
@@ -0,0 +1,162 @@+{-# 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.CustomerProfiles.Types.FlowDefinition+-- 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.CustomerProfiles.Types.FlowDefinition where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CustomerProfiles.Types.SourceFlowConfig+import Amazonka.CustomerProfiles.Types.Task+import Amazonka.CustomerProfiles.Types.TriggerConfig+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The configurations that control how Customer Profiles retrieves data+-- from the source, Amazon AppFlow. Customer Profiles uses this information+-- to create an AppFlow flow on behalf of customers.+--+-- /See:/ 'newFlowDefinition' smart constructor.+data FlowDefinition = FlowDefinition'+ { -- | A description of the flow you want to create.+ description :: Prelude.Maybe Prelude.Text,+ -- | The specified name of the flow. Use underscores (_) or hyphens (-) only.+ -- Spaces are not allowed.+ flowName :: Prelude.Text,+ -- | The Amazon Resource Name of the AWS Key Management Service (KMS) key you+ -- provide for encryption.+ kmsArn :: Prelude.Text,+ -- | The configuration that controls how Customer Profiles retrieves data+ -- from the source.+ sourceFlowConfig :: SourceFlowConfig,+ -- | A list of tasks that Customer Profiles performs while transferring the+ -- data in the flow run.+ tasks :: [Task],+ -- | The trigger settings that determine how and when the flow runs.+ triggerConfig :: TriggerConfig+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'FlowDefinition' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'description', 'flowDefinition_description' - A description of the flow you want to create.+--+-- 'flowName', 'flowDefinition_flowName' - The specified name of the flow. Use underscores (_) or hyphens (-) only.+-- Spaces are not allowed.+--+-- 'kmsArn', 'flowDefinition_kmsArn' - The Amazon Resource Name of the AWS Key Management Service (KMS) key you+-- provide for encryption.+--+-- 'sourceFlowConfig', 'flowDefinition_sourceFlowConfig' - The configuration that controls how Customer Profiles retrieves data+-- from the source.+--+-- 'tasks', 'flowDefinition_tasks' - A list of tasks that Customer Profiles performs while transferring the+-- data in the flow run.+--+-- 'triggerConfig', 'flowDefinition_triggerConfig' - The trigger settings that determine how and when the flow runs.+newFlowDefinition ::+ -- | 'flowName'+ Prelude.Text ->+ -- | 'kmsArn'+ Prelude.Text ->+ -- | 'sourceFlowConfig'+ SourceFlowConfig ->+ -- | 'triggerConfig'+ TriggerConfig ->+ FlowDefinition+newFlowDefinition+ pFlowName_+ pKmsArn_+ pSourceFlowConfig_+ pTriggerConfig_ =+ FlowDefinition'+ { description = Prelude.Nothing,+ flowName = pFlowName_,+ kmsArn = pKmsArn_,+ sourceFlowConfig = pSourceFlowConfig_,+ tasks = Prelude.mempty,+ triggerConfig = pTriggerConfig_+ }++-- | A description of the flow you want to create.+flowDefinition_description :: Lens.Lens' FlowDefinition (Prelude.Maybe Prelude.Text)+flowDefinition_description = Lens.lens (\FlowDefinition' {description} -> description) (\s@FlowDefinition' {} a -> s {description = a} :: FlowDefinition)++-- | The specified name of the flow. Use underscores (_) or hyphens (-) only.+-- Spaces are not allowed.+flowDefinition_flowName :: Lens.Lens' FlowDefinition Prelude.Text+flowDefinition_flowName = Lens.lens (\FlowDefinition' {flowName} -> flowName) (\s@FlowDefinition' {} a -> s {flowName = a} :: FlowDefinition)++-- | The Amazon Resource Name of the AWS Key Management Service (KMS) key you+-- provide for encryption.+flowDefinition_kmsArn :: Lens.Lens' FlowDefinition Prelude.Text+flowDefinition_kmsArn = Lens.lens (\FlowDefinition' {kmsArn} -> kmsArn) (\s@FlowDefinition' {} a -> s {kmsArn = a} :: FlowDefinition)++-- | The configuration that controls how Customer Profiles retrieves data+-- from the source.+flowDefinition_sourceFlowConfig :: Lens.Lens' FlowDefinition SourceFlowConfig+flowDefinition_sourceFlowConfig = Lens.lens (\FlowDefinition' {sourceFlowConfig} -> sourceFlowConfig) (\s@FlowDefinition' {} a -> s {sourceFlowConfig = a} :: FlowDefinition)++-- | A list of tasks that Customer Profiles performs while transferring the+-- data in the flow run.+flowDefinition_tasks :: Lens.Lens' FlowDefinition [Task]+flowDefinition_tasks = Lens.lens (\FlowDefinition' {tasks} -> tasks) (\s@FlowDefinition' {} a -> s {tasks = a} :: FlowDefinition) Prelude.. Lens.coerced++-- | The trigger settings that determine how and when the flow runs.+flowDefinition_triggerConfig :: Lens.Lens' FlowDefinition TriggerConfig+flowDefinition_triggerConfig = Lens.lens (\FlowDefinition' {triggerConfig} -> triggerConfig) (\s@FlowDefinition' {} a -> s {triggerConfig = a} :: FlowDefinition)++instance Prelude.Hashable FlowDefinition where+ hashWithSalt _salt FlowDefinition' {..} =+ _salt+ `Prelude.hashWithSalt` description+ `Prelude.hashWithSalt` flowName+ `Prelude.hashWithSalt` kmsArn+ `Prelude.hashWithSalt` sourceFlowConfig+ `Prelude.hashWithSalt` tasks+ `Prelude.hashWithSalt` triggerConfig++instance Prelude.NFData FlowDefinition where+ rnf FlowDefinition' {..} =+ Prelude.rnf description+ `Prelude.seq` Prelude.rnf flowName+ `Prelude.seq` Prelude.rnf kmsArn+ `Prelude.seq` Prelude.rnf sourceFlowConfig+ `Prelude.seq` Prelude.rnf tasks+ `Prelude.seq` Prelude.rnf triggerConfig++instance Data.ToJSON FlowDefinition where+ toJSON FlowDefinition' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("Description" Data..=) Prelude.<$> description,+ Prelude.Just ("FlowName" Data..= flowName),+ Prelude.Just ("KmsArn" Data..= kmsArn),+ Prelude.Just+ ("SourceFlowConfig" Data..= sourceFlowConfig),+ Prelude.Just ("Tasks" Data..= tasks),+ Prelude.Just+ ("TriggerConfig" Data..= triggerConfig)+ ]+ )
+ gen/Amazonka/CustomerProfiles/Types/FoundByKeyValue.hs view
@@ -0,0 +1,87 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.CustomerProfiles.Types.FoundByKeyValue+-- 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.CustomerProfiles.Types.FoundByKeyValue where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | A data type pair that consists of a @KeyName@ and @Values@ list that+-- were used to find a profile returned in response to a+-- <https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_SearchProfiles.html SearchProfiles>+-- request.+--+-- /See:/ 'newFoundByKeyValue' smart constructor.+data FoundByKeyValue = FoundByKeyValue'+ { -- | A searchable identifier of a customer profile.+ keyName :: Prelude.Maybe Prelude.Text,+ -- | A list of key values.+ values :: Prelude.Maybe [Prelude.Text]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'FoundByKeyValue' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'keyName', 'foundByKeyValue_keyName' - A searchable identifier of a customer profile.+--+-- 'values', 'foundByKeyValue_values' - A list of key values.+newFoundByKeyValue ::+ FoundByKeyValue+newFoundByKeyValue =+ FoundByKeyValue'+ { keyName = Prelude.Nothing,+ values = Prelude.Nothing+ }++-- | A searchable identifier of a customer profile.+foundByKeyValue_keyName :: Lens.Lens' FoundByKeyValue (Prelude.Maybe Prelude.Text)+foundByKeyValue_keyName = Lens.lens (\FoundByKeyValue' {keyName} -> keyName) (\s@FoundByKeyValue' {} a -> s {keyName = a} :: FoundByKeyValue)++-- | A list of key values.+foundByKeyValue_values :: Lens.Lens' FoundByKeyValue (Prelude.Maybe [Prelude.Text])+foundByKeyValue_values = Lens.lens (\FoundByKeyValue' {values} -> values) (\s@FoundByKeyValue' {} a -> s {values = a} :: FoundByKeyValue) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON FoundByKeyValue where+ parseJSON =+ Data.withObject+ "FoundByKeyValue"+ ( \x ->+ FoundByKeyValue'+ Prelude.<$> (x Data..:? "KeyName")+ Prelude.<*> (x Data..:? "Values" Data..!= Prelude.mempty)+ )++instance Prelude.Hashable FoundByKeyValue where+ hashWithSalt _salt FoundByKeyValue' {..} =+ _salt+ `Prelude.hashWithSalt` keyName+ `Prelude.hashWithSalt` values++instance Prelude.NFData FoundByKeyValue where+ rnf FoundByKeyValue' {..} =+ Prelude.rnf keyName+ `Prelude.seq` Prelude.rnf values
+ gen/Amazonka/CustomerProfiles/Types/Gender.hs view
@@ -0,0 +1,73 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.CustomerProfiles.Types.Gender+-- 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.CustomerProfiles.Types.Gender+ ( Gender+ ( ..,+ Gender_FEMALE,+ Gender_MALE,+ Gender_UNSPECIFIED+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype Gender = Gender' {fromGender :: 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 Gender_FEMALE :: Gender+pattern Gender_FEMALE = Gender' "FEMALE"++pattern Gender_MALE :: Gender+pattern Gender_MALE = Gender' "MALE"++pattern Gender_UNSPECIFIED :: Gender+pattern Gender_UNSPECIFIED = Gender' "UNSPECIFIED"++{-# COMPLETE+ Gender_FEMALE,+ Gender_MALE,+ Gender_UNSPECIFIED,+ Gender'+ #-}
+ gen/Amazonka/CustomerProfiles/Types/IdentityResolutionJob.hs view
@@ -0,0 +1,229 @@+{-# 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.CustomerProfiles.Types.IdentityResolutionJob+-- 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.CustomerProfiles.Types.IdentityResolutionJob where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CustomerProfiles.Types.ExportingLocation+import Amazonka.CustomerProfiles.Types.IdentityResolutionJobStatus+import Amazonka.CustomerProfiles.Types.JobStats+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Information about the Identity Resolution Job.+--+-- /See:/ 'newIdentityResolutionJob' smart constructor.+data IdentityResolutionJob = IdentityResolutionJob'+ { -- | The unique name of the domain.+ domainName :: Prelude.Maybe Prelude.Text,+ -- | The S3 location where the Identity Resolution Job writes result files.+ exportingLocation :: Prelude.Maybe ExportingLocation,+ -- | The timestamp of when the job was completed.+ jobEndTime :: Prelude.Maybe Data.POSIX,+ -- | The unique identifier of the Identity Resolution Job.+ jobId :: Prelude.Maybe Prelude.Text,+ -- | The timestamp of when the job was started or will be started.+ jobStartTime :: Prelude.Maybe Data.POSIX,+ -- | Statistics about an Identity Resolution Job.+ jobStats :: Prelude.Maybe JobStats,+ -- | The error messages that are generated when the Identity Resolution Job+ -- runs.+ message :: Prelude.Maybe Prelude.Text,+ -- | The status of the Identity Resolution Job.+ --+ -- - @PENDING@: The Identity Resolution Job is scheduled but has not+ -- started yet. If you turn off the Identity Resolution feature in your+ -- domain, jobs in the @PENDING@ state are deleted.+ --+ -- - @PREPROCESSING@: The Identity Resolution Job is loading your data.+ --+ -- - @FIND_MATCHING@: The Identity Resolution Job is using the machine+ -- learning model to identify profiles that belong to the same matching+ -- group.+ --+ -- - @MERGING@: The Identity Resolution Job is merging duplicate+ -- profiles.+ --+ -- - @COMPLETED@: The Identity Resolution Job completed successfully.+ --+ -- - @PARTIAL_SUCCESS@: There\'s a system error and not all of the data+ -- is merged. The Identity Resolution Job writes a message indicating+ -- the source of the problem.+ --+ -- - @FAILED@: The Identity Resolution Job did not merge any data. It+ -- writes a message indicating the source of the problem.+ status :: Prelude.Maybe IdentityResolutionJobStatus+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'IdentityResolutionJob' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'domainName', 'identityResolutionJob_domainName' - The unique name of the domain.+--+-- 'exportingLocation', 'identityResolutionJob_exportingLocation' - The S3 location where the Identity Resolution Job writes result files.+--+-- 'jobEndTime', 'identityResolutionJob_jobEndTime' - The timestamp of when the job was completed.+--+-- 'jobId', 'identityResolutionJob_jobId' - The unique identifier of the Identity Resolution Job.+--+-- 'jobStartTime', 'identityResolutionJob_jobStartTime' - The timestamp of when the job was started or will be started.+--+-- 'jobStats', 'identityResolutionJob_jobStats' - Statistics about an Identity Resolution Job.+--+-- 'message', 'identityResolutionJob_message' - The error messages that are generated when the Identity Resolution Job+-- runs.+--+-- 'status', 'identityResolutionJob_status' - The status of the Identity Resolution Job.+--+-- - @PENDING@: The Identity Resolution Job is scheduled but has not+-- started yet. If you turn off the Identity Resolution feature in your+-- domain, jobs in the @PENDING@ state are deleted.+--+-- - @PREPROCESSING@: The Identity Resolution Job is loading your data.+--+-- - @FIND_MATCHING@: The Identity Resolution Job is using the machine+-- learning model to identify profiles that belong to the same matching+-- group.+--+-- - @MERGING@: The Identity Resolution Job is merging duplicate+-- profiles.+--+-- - @COMPLETED@: The Identity Resolution Job completed successfully.+--+-- - @PARTIAL_SUCCESS@: There\'s a system error and not all of the data+-- is merged. The Identity Resolution Job writes a message indicating+-- the source of the problem.+--+-- - @FAILED@: The Identity Resolution Job did not merge any data. It+-- writes a message indicating the source of the problem.+newIdentityResolutionJob ::+ IdentityResolutionJob+newIdentityResolutionJob =+ IdentityResolutionJob'+ { domainName =+ Prelude.Nothing,+ exportingLocation = Prelude.Nothing,+ jobEndTime = Prelude.Nothing,+ jobId = Prelude.Nothing,+ jobStartTime = Prelude.Nothing,+ jobStats = Prelude.Nothing,+ message = Prelude.Nothing,+ status = Prelude.Nothing+ }++-- | The unique name of the domain.+identityResolutionJob_domainName :: Lens.Lens' IdentityResolutionJob (Prelude.Maybe Prelude.Text)+identityResolutionJob_domainName = Lens.lens (\IdentityResolutionJob' {domainName} -> domainName) (\s@IdentityResolutionJob' {} a -> s {domainName = a} :: IdentityResolutionJob)++-- | The S3 location where the Identity Resolution Job writes result files.+identityResolutionJob_exportingLocation :: Lens.Lens' IdentityResolutionJob (Prelude.Maybe ExportingLocation)+identityResolutionJob_exportingLocation = Lens.lens (\IdentityResolutionJob' {exportingLocation} -> exportingLocation) (\s@IdentityResolutionJob' {} a -> s {exportingLocation = a} :: IdentityResolutionJob)++-- | The timestamp of when the job was completed.+identityResolutionJob_jobEndTime :: Lens.Lens' IdentityResolutionJob (Prelude.Maybe Prelude.UTCTime)+identityResolutionJob_jobEndTime = Lens.lens (\IdentityResolutionJob' {jobEndTime} -> jobEndTime) (\s@IdentityResolutionJob' {} a -> s {jobEndTime = a} :: IdentityResolutionJob) Prelude.. Lens.mapping Data._Time++-- | The unique identifier of the Identity Resolution Job.+identityResolutionJob_jobId :: Lens.Lens' IdentityResolutionJob (Prelude.Maybe Prelude.Text)+identityResolutionJob_jobId = Lens.lens (\IdentityResolutionJob' {jobId} -> jobId) (\s@IdentityResolutionJob' {} a -> s {jobId = a} :: IdentityResolutionJob)++-- | The timestamp of when the job was started or will be started.+identityResolutionJob_jobStartTime :: Lens.Lens' IdentityResolutionJob (Prelude.Maybe Prelude.UTCTime)+identityResolutionJob_jobStartTime = Lens.lens (\IdentityResolutionJob' {jobStartTime} -> jobStartTime) (\s@IdentityResolutionJob' {} a -> s {jobStartTime = a} :: IdentityResolutionJob) Prelude.. Lens.mapping Data._Time++-- | Statistics about an Identity Resolution Job.+identityResolutionJob_jobStats :: Lens.Lens' IdentityResolutionJob (Prelude.Maybe JobStats)+identityResolutionJob_jobStats = Lens.lens (\IdentityResolutionJob' {jobStats} -> jobStats) (\s@IdentityResolutionJob' {} a -> s {jobStats = a} :: IdentityResolutionJob)++-- | The error messages that are generated when the Identity Resolution Job+-- runs.+identityResolutionJob_message :: Lens.Lens' IdentityResolutionJob (Prelude.Maybe Prelude.Text)+identityResolutionJob_message = Lens.lens (\IdentityResolutionJob' {message} -> message) (\s@IdentityResolutionJob' {} a -> s {message = a} :: IdentityResolutionJob)++-- | The status of the Identity Resolution Job.+--+-- - @PENDING@: The Identity Resolution Job is scheduled but has not+-- started yet. If you turn off the Identity Resolution feature in your+-- domain, jobs in the @PENDING@ state are deleted.+--+-- - @PREPROCESSING@: The Identity Resolution Job is loading your data.+--+-- - @FIND_MATCHING@: The Identity Resolution Job is using the machine+-- learning model to identify profiles that belong to the same matching+-- group.+--+-- - @MERGING@: The Identity Resolution Job is merging duplicate+-- profiles.+--+-- - @COMPLETED@: The Identity Resolution Job completed successfully.+--+-- - @PARTIAL_SUCCESS@: There\'s a system error and not all of the data+-- is merged. The Identity Resolution Job writes a message indicating+-- the source of the problem.+--+-- - @FAILED@: The Identity Resolution Job did not merge any data. It+-- writes a message indicating the source of the problem.+identityResolutionJob_status :: Lens.Lens' IdentityResolutionJob (Prelude.Maybe IdentityResolutionJobStatus)+identityResolutionJob_status = Lens.lens (\IdentityResolutionJob' {status} -> status) (\s@IdentityResolutionJob' {} a -> s {status = a} :: IdentityResolutionJob)++instance Data.FromJSON IdentityResolutionJob where+ parseJSON =+ Data.withObject+ "IdentityResolutionJob"+ ( \x ->+ IdentityResolutionJob'+ Prelude.<$> (x Data..:? "DomainName")+ Prelude.<*> (x Data..:? "ExportingLocation")+ Prelude.<*> (x Data..:? "JobEndTime")+ Prelude.<*> (x Data..:? "JobId")+ Prelude.<*> (x Data..:? "JobStartTime")+ Prelude.<*> (x Data..:? "JobStats")+ Prelude.<*> (x Data..:? "Message")+ Prelude.<*> (x Data..:? "Status")+ )++instance Prelude.Hashable IdentityResolutionJob where+ hashWithSalt _salt IdentityResolutionJob' {..} =+ _salt+ `Prelude.hashWithSalt` domainName+ `Prelude.hashWithSalt` exportingLocation+ `Prelude.hashWithSalt` jobEndTime+ `Prelude.hashWithSalt` jobId+ `Prelude.hashWithSalt` jobStartTime+ `Prelude.hashWithSalt` jobStats+ `Prelude.hashWithSalt` message+ `Prelude.hashWithSalt` status++instance Prelude.NFData IdentityResolutionJob where+ rnf IdentityResolutionJob' {..} =+ Prelude.rnf domainName+ `Prelude.seq` Prelude.rnf exportingLocation+ `Prelude.seq` Prelude.rnf jobEndTime+ `Prelude.seq` Prelude.rnf jobId+ `Prelude.seq` Prelude.rnf jobStartTime+ `Prelude.seq` Prelude.rnf jobStats+ `Prelude.seq` Prelude.rnf message+ `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/CustomerProfiles/Types/IdentityResolutionJobStatus.hs view
@@ -0,0 +1,96 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.CustomerProfiles.Types.IdentityResolutionJobStatus+-- 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.CustomerProfiles.Types.IdentityResolutionJobStatus+ ( IdentityResolutionJobStatus+ ( ..,+ IdentityResolutionJobStatus_COMPLETED,+ IdentityResolutionJobStatus_FAILED,+ IdentityResolutionJobStatus_FIND_MATCHING,+ IdentityResolutionJobStatus_MERGING,+ IdentityResolutionJobStatus_PARTIAL_SUCCESS,+ IdentityResolutionJobStatus_PENDING,+ IdentityResolutionJobStatus_PREPROCESSING+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype IdentityResolutionJobStatus = IdentityResolutionJobStatus'+ { fromIdentityResolutionJobStatus ::+ 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 IdentityResolutionJobStatus_COMPLETED :: IdentityResolutionJobStatus+pattern IdentityResolutionJobStatus_COMPLETED = IdentityResolutionJobStatus' "COMPLETED"++pattern IdentityResolutionJobStatus_FAILED :: IdentityResolutionJobStatus+pattern IdentityResolutionJobStatus_FAILED = IdentityResolutionJobStatus' "FAILED"++pattern IdentityResolutionJobStatus_FIND_MATCHING :: IdentityResolutionJobStatus+pattern IdentityResolutionJobStatus_FIND_MATCHING = IdentityResolutionJobStatus' "FIND_MATCHING"++pattern IdentityResolutionJobStatus_MERGING :: IdentityResolutionJobStatus+pattern IdentityResolutionJobStatus_MERGING = IdentityResolutionJobStatus' "MERGING"++pattern IdentityResolutionJobStatus_PARTIAL_SUCCESS :: IdentityResolutionJobStatus+pattern IdentityResolutionJobStatus_PARTIAL_SUCCESS = IdentityResolutionJobStatus' "PARTIAL_SUCCESS"++pattern IdentityResolutionJobStatus_PENDING :: IdentityResolutionJobStatus+pattern IdentityResolutionJobStatus_PENDING = IdentityResolutionJobStatus' "PENDING"++pattern IdentityResolutionJobStatus_PREPROCESSING :: IdentityResolutionJobStatus+pattern IdentityResolutionJobStatus_PREPROCESSING = IdentityResolutionJobStatus' "PREPROCESSING"++{-# COMPLETE+ IdentityResolutionJobStatus_COMPLETED,+ IdentityResolutionJobStatus_FAILED,+ IdentityResolutionJobStatus_FIND_MATCHING,+ IdentityResolutionJobStatus_MERGING,+ IdentityResolutionJobStatus_PARTIAL_SUCCESS,+ IdentityResolutionJobStatus_PENDING,+ IdentityResolutionJobStatus_PREPROCESSING,+ IdentityResolutionJobStatus'+ #-}
+ gen/Amazonka/CustomerProfiles/Types/IncrementalPullConfig.hs view
@@ -0,0 +1,76 @@+{-# 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.CustomerProfiles.Types.IncrementalPullConfig+-- 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.CustomerProfiles.Types.IncrementalPullConfig 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++-- | Specifies the configuration used when importing incremental records from+-- the source.+--+-- /See:/ 'newIncrementalPullConfig' smart constructor.+data IncrementalPullConfig = IncrementalPullConfig'+ { -- | A field that specifies the date time or timestamp field as the criteria+ -- to use when importing incremental records from the source.+ datetimeTypeFieldName :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'IncrementalPullConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'datetimeTypeFieldName', 'incrementalPullConfig_datetimeTypeFieldName' - A field that specifies the date time or timestamp field as the criteria+-- to use when importing incremental records from the source.+newIncrementalPullConfig ::+ IncrementalPullConfig+newIncrementalPullConfig =+ IncrementalPullConfig'+ { datetimeTypeFieldName =+ Prelude.Nothing+ }++-- | A field that specifies the date time or timestamp field as the criteria+-- to use when importing incremental records from the source.+incrementalPullConfig_datetimeTypeFieldName :: Lens.Lens' IncrementalPullConfig (Prelude.Maybe Prelude.Text)+incrementalPullConfig_datetimeTypeFieldName = Lens.lens (\IncrementalPullConfig' {datetimeTypeFieldName} -> datetimeTypeFieldName) (\s@IncrementalPullConfig' {} a -> s {datetimeTypeFieldName = a} :: IncrementalPullConfig)++instance Prelude.Hashable IncrementalPullConfig where+ hashWithSalt _salt IncrementalPullConfig' {..} =+ _salt `Prelude.hashWithSalt` datetimeTypeFieldName++instance Prelude.NFData IncrementalPullConfig where+ rnf IncrementalPullConfig' {..} =+ Prelude.rnf datetimeTypeFieldName++instance Data.ToJSON IncrementalPullConfig where+ toJSON IncrementalPullConfig' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("DatetimeTypeFieldName" Data..=)+ Prelude.<$> datetimeTypeFieldName+ ]+ )
+ gen/Amazonka/CustomerProfiles/Types/IntegrationConfig.hs view
@@ -0,0 +1,73 @@+{-# 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.CustomerProfiles.Types.IntegrationConfig+-- 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.CustomerProfiles.Types.IntegrationConfig where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CustomerProfiles.Types.AppflowIntegration+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Configuration data for integration workflow.+--+-- /See:/ 'newIntegrationConfig' smart constructor.+data IntegrationConfig = IntegrationConfig'+ { -- | Configuration data for @APPFLOW_INTEGRATION@ workflow type.+ appflowIntegration :: Prelude.Maybe AppflowIntegration+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'IntegrationConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'appflowIntegration', 'integrationConfig_appflowIntegration' - Configuration data for @APPFLOW_INTEGRATION@ workflow type.+newIntegrationConfig ::+ IntegrationConfig+newIntegrationConfig =+ IntegrationConfig'+ { appflowIntegration =+ Prelude.Nothing+ }++-- | Configuration data for @APPFLOW_INTEGRATION@ workflow type.+integrationConfig_appflowIntegration :: Lens.Lens' IntegrationConfig (Prelude.Maybe AppflowIntegration)+integrationConfig_appflowIntegration = Lens.lens (\IntegrationConfig' {appflowIntegration} -> appflowIntegration) (\s@IntegrationConfig' {} a -> s {appflowIntegration = a} :: IntegrationConfig)++instance Prelude.Hashable IntegrationConfig where+ hashWithSalt _salt IntegrationConfig' {..} =+ _salt `Prelude.hashWithSalt` appflowIntegration++instance Prelude.NFData IntegrationConfig where+ rnf IntegrationConfig' {..} =+ Prelude.rnf appflowIntegration++instance Data.ToJSON IntegrationConfig where+ toJSON IntegrationConfig' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("AppflowIntegration" Data..=)+ Prelude.<$> appflowIntegration+ ]+ )
+ gen/Amazonka/CustomerProfiles/Types/JobSchedule.hs view
@@ -0,0 +1,99 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.CustomerProfiles.Types.JobSchedule+-- 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.CustomerProfiles.Types.JobSchedule where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CustomerProfiles.Types.JobScheduleDayOfTheWeek+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The day and time when do you want to start the Identity Resolution Job+-- every week.+--+-- /See:/ 'newJobSchedule' smart constructor.+data JobSchedule = JobSchedule'+ { -- | The day when the Identity Resolution Job should run every week.+ dayOfTheWeek :: JobScheduleDayOfTheWeek,+ -- | The time when the Identity Resolution Job should run every week.+ time :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'JobSchedule' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dayOfTheWeek', 'jobSchedule_dayOfTheWeek' - The day when the Identity Resolution Job should run every week.+--+-- 'time', 'jobSchedule_time' - The time when the Identity Resolution Job should run every week.+newJobSchedule ::+ -- | 'dayOfTheWeek'+ JobScheduleDayOfTheWeek ->+ -- | 'time'+ Prelude.Text ->+ JobSchedule+newJobSchedule pDayOfTheWeek_ pTime_ =+ JobSchedule'+ { dayOfTheWeek = pDayOfTheWeek_,+ time = pTime_+ }++-- | The day when the Identity Resolution Job should run every week.+jobSchedule_dayOfTheWeek :: Lens.Lens' JobSchedule JobScheduleDayOfTheWeek+jobSchedule_dayOfTheWeek = Lens.lens (\JobSchedule' {dayOfTheWeek} -> dayOfTheWeek) (\s@JobSchedule' {} a -> s {dayOfTheWeek = a} :: JobSchedule)++-- | The time when the Identity Resolution Job should run every week.+jobSchedule_time :: Lens.Lens' JobSchedule Prelude.Text+jobSchedule_time = Lens.lens (\JobSchedule' {time} -> time) (\s@JobSchedule' {} a -> s {time = a} :: JobSchedule)++instance Data.FromJSON JobSchedule where+ parseJSON =+ Data.withObject+ "JobSchedule"+ ( \x ->+ JobSchedule'+ Prelude.<$> (x Data..: "DayOfTheWeek")+ Prelude.<*> (x Data..: "Time")+ )++instance Prelude.Hashable JobSchedule where+ hashWithSalt _salt JobSchedule' {..} =+ _salt+ `Prelude.hashWithSalt` dayOfTheWeek+ `Prelude.hashWithSalt` time++instance Prelude.NFData JobSchedule where+ rnf JobSchedule' {..} =+ Prelude.rnf dayOfTheWeek+ `Prelude.seq` Prelude.rnf time++instance Data.ToJSON JobSchedule where+ toJSON JobSchedule' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just ("DayOfTheWeek" Data..= dayOfTheWeek),+ Prelude.Just ("Time" Data..= time)+ ]+ )
+ gen/Amazonka/CustomerProfiles/Types/JobScheduleDayOfTheWeek.hs view
@@ -0,0 +1,96 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.CustomerProfiles.Types.JobScheduleDayOfTheWeek+-- 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.CustomerProfiles.Types.JobScheduleDayOfTheWeek+ ( JobScheduleDayOfTheWeek+ ( ..,+ JobScheduleDayOfTheWeek_FRIDAY,+ JobScheduleDayOfTheWeek_MONDAY,+ JobScheduleDayOfTheWeek_SATURDAY,+ JobScheduleDayOfTheWeek_SUNDAY,+ JobScheduleDayOfTheWeek_THURSDAY,+ JobScheduleDayOfTheWeek_TUESDAY,+ JobScheduleDayOfTheWeek_WEDNESDAY+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype JobScheduleDayOfTheWeek = JobScheduleDayOfTheWeek'+ { fromJobScheduleDayOfTheWeek ::+ 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 JobScheduleDayOfTheWeek_FRIDAY :: JobScheduleDayOfTheWeek+pattern JobScheduleDayOfTheWeek_FRIDAY = JobScheduleDayOfTheWeek' "FRIDAY"++pattern JobScheduleDayOfTheWeek_MONDAY :: JobScheduleDayOfTheWeek+pattern JobScheduleDayOfTheWeek_MONDAY = JobScheduleDayOfTheWeek' "MONDAY"++pattern JobScheduleDayOfTheWeek_SATURDAY :: JobScheduleDayOfTheWeek+pattern JobScheduleDayOfTheWeek_SATURDAY = JobScheduleDayOfTheWeek' "SATURDAY"++pattern JobScheduleDayOfTheWeek_SUNDAY :: JobScheduleDayOfTheWeek+pattern JobScheduleDayOfTheWeek_SUNDAY = JobScheduleDayOfTheWeek' "SUNDAY"++pattern JobScheduleDayOfTheWeek_THURSDAY :: JobScheduleDayOfTheWeek+pattern JobScheduleDayOfTheWeek_THURSDAY = JobScheduleDayOfTheWeek' "THURSDAY"++pattern JobScheduleDayOfTheWeek_TUESDAY :: JobScheduleDayOfTheWeek+pattern JobScheduleDayOfTheWeek_TUESDAY = JobScheduleDayOfTheWeek' "TUESDAY"++pattern JobScheduleDayOfTheWeek_WEDNESDAY :: JobScheduleDayOfTheWeek+pattern JobScheduleDayOfTheWeek_WEDNESDAY = JobScheduleDayOfTheWeek' "WEDNESDAY"++{-# COMPLETE+ JobScheduleDayOfTheWeek_FRIDAY,+ JobScheduleDayOfTheWeek_MONDAY,+ JobScheduleDayOfTheWeek_SATURDAY,+ JobScheduleDayOfTheWeek_SUNDAY,+ JobScheduleDayOfTheWeek_THURSDAY,+ JobScheduleDayOfTheWeek_TUESDAY,+ JobScheduleDayOfTheWeek_WEDNESDAY,+ JobScheduleDayOfTheWeek'+ #-}
+ gen/Amazonka/CustomerProfiles/Types/JobStats.hs view
@@ -0,0 +1,96 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.CustomerProfiles.Types.JobStats+-- 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.CustomerProfiles.Types.JobStats 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++-- | Statistics about the Identity Resolution Job.+--+-- /See:/ 'newJobStats' smart constructor.+data JobStats = JobStats'+ { -- | The number of matches found.+ numberOfMatchesFound :: Prelude.Maybe Prelude.Integer,+ -- | The number of merges completed.+ numberOfMergesDone :: Prelude.Maybe Prelude.Integer,+ -- | The number of profiles reviewed.+ numberOfProfilesReviewed :: Prelude.Maybe Prelude.Integer+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'JobStats' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'numberOfMatchesFound', 'jobStats_numberOfMatchesFound' - The number of matches found.+--+-- 'numberOfMergesDone', 'jobStats_numberOfMergesDone' - The number of merges completed.+--+-- 'numberOfProfilesReviewed', 'jobStats_numberOfProfilesReviewed' - The number of profiles reviewed.+newJobStats ::+ JobStats+newJobStats =+ JobStats'+ { numberOfMatchesFound = Prelude.Nothing,+ numberOfMergesDone = Prelude.Nothing,+ numberOfProfilesReviewed = Prelude.Nothing+ }++-- | The number of matches found.+jobStats_numberOfMatchesFound :: Lens.Lens' JobStats (Prelude.Maybe Prelude.Integer)+jobStats_numberOfMatchesFound = Lens.lens (\JobStats' {numberOfMatchesFound} -> numberOfMatchesFound) (\s@JobStats' {} a -> s {numberOfMatchesFound = a} :: JobStats)++-- | The number of merges completed.+jobStats_numberOfMergesDone :: Lens.Lens' JobStats (Prelude.Maybe Prelude.Integer)+jobStats_numberOfMergesDone = Lens.lens (\JobStats' {numberOfMergesDone} -> numberOfMergesDone) (\s@JobStats' {} a -> s {numberOfMergesDone = a} :: JobStats)++-- | The number of profiles reviewed.+jobStats_numberOfProfilesReviewed :: Lens.Lens' JobStats (Prelude.Maybe Prelude.Integer)+jobStats_numberOfProfilesReviewed = Lens.lens (\JobStats' {numberOfProfilesReviewed} -> numberOfProfilesReviewed) (\s@JobStats' {} a -> s {numberOfProfilesReviewed = a} :: JobStats)++instance Data.FromJSON JobStats where+ parseJSON =+ Data.withObject+ "JobStats"+ ( \x ->+ JobStats'+ Prelude.<$> (x Data..:? "NumberOfMatchesFound")+ Prelude.<*> (x Data..:? "NumberOfMergesDone")+ Prelude.<*> (x Data..:? "NumberOfProfilesReviewed")+ )++instance Prelude.Hashable JobStats where+ hashWithSalt _salt JobStats' {..} =+ _salt+ `Prelude.hashWithSalt` numberOfMatchesFound+ `Prelude.hashWithSalt` numberOfMergesDone+ `Prelude.hashWithSalt` numberOfProfilesReviewed++instance Prelude.NFData JobStats where+ rnf JobStats' {..} =+ Prelude.rnf numberOfMatchesFound+ `Prelude.seq` Prelude.rnf numberOfMergesDone+ `Prelude.seq` Prelude.rnf numberOfProfilesReviewed
+ gen/Amazonka/CustomerProfiles/Types/ListDomainItem.hs view
@@ -0,0 +1,117 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.CustomerProfiles.Types.ListDomainItem+-- 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.CustomerProfiles.Types.ListDomainItem where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | An object in a list that represents a domain.+--+-- /See:/ 'newListDomainItem' smart constructor.+data ListDomainItem = ListDomainItem'+ { -- | The tags used to organize, track, or control access for this resource.+ tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | The unique name of the domain.+ domainName :: Prelude.Text,+ -- | The timestamp of when the domain was created.+ createdAt :: Data.POSIX,+ -- | The timestamp of when the domain was most recently edited.+ lastUpdatedAt :: Data.POSIX+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListDomainItem' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'tags', 'listDomainItem_tags' - The tags used to organize, track, or control access for this resource.+--+-- 'domainName', 'listDomainItem_domainName' - The unique name of the domain.+--+-- 'createdAt', 'listDomainItem_createdAt' - The timestamp of when the domain was created.+--+-- 'lastUpdatedAt', 'listDomainItem_lastUpdatedAt' - The timestamp of when the domain was most recently edited.+newListDomainItem ::+ -- | 'domainName'+ Prelude.Text ->+ -- | 'createdAt'+ Prelude.UTCTime ->+ -- | 'lastUpdatedAt'+ Prelude.UTCTime ->+ ListDomainItem+newListDomainItem+ pDomainName_+ pCreatedAt_+ pLastUpdatedAt_ =+ ListDomainItem'+ { tags = Prelude.Nothing,+ domainName = pDomainName_,+ createdAt = Data._Time Lens.# pCreatedAt_,+ lastUpdatedAt = Data._Time Lens.# pLastUpdatedAt_+ }++-- | The tags used to organize, track, or control access for this resource.+listDomainItem_tags :: Lens.Lens' ListDomainItem (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+listDomainItem_tags = Lens.lens (\ListDomainItem' {tags} -> tags) (\s@ListDomainItem' {} a -> s {tags = a} :: ListDomainItem) Prelude.. Lens.mapping Lens.coerced++-- | The unique name of the domain.+listDomainItem_domainName :: Lens.Lens' ListDomainItem Prelude.Text+listDomainItem_domainName = Lens.lens (\ListDomainItem' {domainName} -> domainName) (\s@ListDomainItem' {} a -> s {domainName = a} :: ListDomainItem)++-- | The timestamp of when the domain was created.+listDomainItem_createdAt :: Lens.Lens' ListDomainItem Prelude.UTCTime+listDomainItem_createdAt = Lens.lens (\ListDomainItem' {createdAt} -> createdAt) (\s@ListDomainItem' {} a -> s {createdAt = a} :: ListDomainItem) Prelude.. Data._Time++-- | The timestamp of when the domain was most recently edited.+listDomainItem_lastUpdatedAt :: Lens.Lens' ListDomainItem Prelude.UTCTime+listDomainItem_lastUpdatedAt = Lens.lens (\ListDomainItem' {lastUpdatedAt} -> lastUpdatedAt) (\s@ListDomainItem' {} a -> s {lastUpdatedAt = a} :: ListDomainItem) Prelude.. Data._Time++instance Data.FromJSON ListDomainItem where+ parseJSON =+ Data.withObject+ "ListDomainItem"+ ( \x ->+ ListDomainItem'+ Prelude.<$> (x Data..:? "Tags" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..: "DomainName")+ Prelude.<*> (x Data..: "CreatedAt")+ Prelude.<*> (x Data..: "LastUpdatedAt")+ )++instance Prelude.Hashable ListDomainItem where+ hashWithSalt _salt ListDomainItem' {..} =+ _salt+ `Prelude.hashWithSalt` tags+ `Prelude.hashWithSalt` domainName+ `Prelude.hashWithSalt` createdAt+ `Prelude.hashWithSalt` lastUpdatedAt++instance Prelude.NFData ListDomainItem where+ rnf ListDomainItem' {..} =+ Prelude.rnf tags+ `Prelude.seq` Prelude.rnf domainName+ `Prelude.seq` Prelude.rnf createdAt+ `Prelude.seq` Prelude.rnf lastUpdatedAt
+ gen/Amazonka/CustomerProfiles/Types/ListIntegrationItem.hs view
@@ -0,0 +1,208 @@+{-# 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.CustomerProfiles.Types.ListIntegrationItem+-- 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.CustomerProfiles.Types.ListIntegrationItem where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | An integration in list of integrations.+--+-- /See:/ 'newListIntegrationItem' smart constructor.+data ListIntegrationItem = ListIntegrationItem'+ { -- | Boolean to indicate if the Flow associated with the Integration is+ -- created via Appflow console or with ObjectTypeName equals _unstructured+ -- via API\/CLI in flowDefinition+ isUnstructured :: Prelude.Maybe Prelude.Bool,+ -- | The name of the profile object type.+ objectTypeName :: Prelude.Maybe Prelude.Text,+ -- | A map in which each key is an event type from an external application+ -- such as Segment or Shopify, and each value is an @ObjectTypeName@+ -- (template) used to ingest the event. It supports the following event+ -- types: @SegmentIdentify@, @ShopifyCreateCustomers@,+ -- @ShopifyUpdateCustomers@, @ShopifyCreateDraftOrders@,+ -- @ShopifyUpdateDraftOrders@, @ShopifyCreateOrders@, and+ -- @ShopifyUpdatedOrders@.+ objectTypeNames :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | The tags used to organize, track, or control access for this resource.+ tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | Unique identifier for the workflow.+ workflowId :: Prelude.Maybe Prelude.Text,+ -- | The unique name of the domain.+ domainName :: Prelude.Text,+ -- | The URI of the S3 bucket or any other type of data source.+ uri :: Prelude.Text,+ -- | The timestamp of when the domain was created.+ createdAt :: Data.POSIX,+ -- | The timestamp of when the domain was most recently edited.+ lastUpdatedAt :: Data.POSIX+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListIntegrationItem' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'isUnstructured', 'listIntegrationItem_isUnstructured' - Boolean to indicate if the Flow associated with the Integration is+-- created via Appflow console or with ObjectTypeName equals _unstructured+-- via API\/CLI in flowDefinition+--+-- 'objectTypeName', 'listIntegrationItem_objectTypeName' - The name of the profile object type.+--+-- 'objectTypeNames', 'listIntegrationItem_objectTypeNames' - A map in which each key is an event type from an external application+-- such as Segment or Shopify, and each value is an @ObjectTypeName@+-- (template) used to ingest the event. It supports the following event+-- types: @SegmentIdentify@, @ShopifyCreateCustomers@,+-- @ShopifyUpdateCustomers@, @ShopifyCreateDraftOrders@,+-- @ShopifyUpdateDraftOrders@, @ShopifyCreateOrders@, and+-- @ShopifyUpdatedOrders@.+--+-- 'tags', 'listIntegrationItem_tags' - The tags used to organize, track, or control access for this resource.+--+-- 'workflowId', 'listIntegrationItem_workflowId' - Unique identifier for the workflow.+--+-- 'domainName', 'listIntegrationItem_domainName' - The unique name of the domain.+--+-- 'uri', 'listIntegrationItem_uri' - The URI of the S3 bucket or any other type of data source.+--+-- 'createdAt', 'listIntegrationItem_createdAt' - The timestamp of when the domain was created.+--+-- 'lastUpdatedAt', 'listIntegrationItem_lastUpdatedAt' - The timestamp of when the domain was most recently edited.+newListIntegrationItem ::+ -- | 'domainName'+ Prelude.Text ->+ -- | 'uri'+ Prelude.Text ->+ -- | 'createdAt'+ Prelude.UTCTime ->+ -- | 'lastUpdatedAt'+ Prelude.UTCTime ->+ ListIntegrationItem+newListIntegrationItem+ pDomainName_+ pUri_+ pCreatedAt_+ pLastUpdatedAt_ =+ ListIntegrationItem'+ { isUnstructured =+ Prelude.Nothing,+ objectTypeName = Prelude.Nothing,+ objectTypeNames = Prelude.Nothing,+ tags = Prelude.Nothing,+ workflowId = Prelude.Nothing,+ domainName = pDomainName_,+ uri = pUri_,+ createdAt = Data._Time Lens.# pCreatedAt_,+ lastUpdatedAt = Data._Time Lens.# pLastUpdatedAt_+ }++-- | Boolean to indicate if the Flow associated with the Integration is+-- created via Appflow console or with ObjectTypeName equals _unstructured+-- via API\/CLI in flowDefinition+listIntegrationItem_isUnstructured :: Lens.Lens' ListIntegrationItem (Prelude.Maybe Prelude.Bool)+listIntegrationItem_isUnstructured = Lens.lens (\ListIntegrationItem' {isUnstructured} -> isUnstructured) (\s@ListIntegrationItem' {} a -> s {isUnstructured = a} :: ListIntegrationItem)++-- | The name of the profile object type.+listIntegrationItem_objectTypeName :: Lens.Lens' ListIntegrationItem (Prelude.Maybe Prelude.Text)+listIntegrationItem_objectTypeName = Lens.lens (\ListIntegrationItem' {objectTypeName} -> objectTypeName) (\s@ListIntegrationItem' {} a -> s {objectTypeName = a} :: ListIntegrationItem)++-- | A map in which each key is an event type from an external application+-- such as Segment or Shopify, and each value is an @ObjectTypeName@+-- (template) used to ingest the event. It supports the following event+-- types: @SegmentIdentify@, @ShopifyCreateCustomers@,+-- @ShopifyUpdateCustomers@, @ShopifyCreateDraftOrders@,+-- @ShopifyUpdateDraftOrders@, @ShopifyCreateOrders@, and+-- @ShopifyUpdatedOrders@.+listIntegrationItem_objectTypeNames :: Lens.Lens' ListIntegrationItem (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+listIntegrationItem_objectTypeNames = Lens.lens (\ListIntegrationItem' {objectTypeNames} -> objectTypeNames) (\s@ListIntegrationItem' {} a -> s {objectTypeNames = a} :: ListIntegrationItem) Prelude.. Lens.mapping Lens.coerced++-- | The tags used to organize, track, or control access for this resource.+listIntegrationItem_tags :: Lens.Lens' ListIntegrationItem (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+listIntegrationItem_tags = Lens.lens (\ListIntegrationItem' {tags} -> tags) (\s@ListIntegrationItem' {} a -> s {tags = a} :: ListIntegrationItem) Prelude.. Lens.mapping Lens.coerced++-- | Unique identifier for the workflow.+listIntegrationItem_workflowId :: Lens.Lens' ListIntegrationItem (Prelude.Maybe Prelude.Text)+listIntegrationItem_workflowId = Lens.lens (\ListIntegrationItem' {workflowId} -> workflowId) (\s@ListIntegrationItem' {} a -> s {workflowId = a} :: ListIntegrationItem)++-- | The unique name of the domain.+listIntegrationItem_domainName :: Lens.Lens' ListIntegrationItem Prelude.Text+listIntegrationItem_domainName = Lens.lens (\ListIntegrationItem' {domainName} -> domainName) (\s@ListIntegrationItem' {} a -> s {domainName = a} :: ListIntegrationItem)++-- | The URI of the S3 bucket or any other type of data source.+listIntegrationItem_uri :: Lens.Lens' ListIntegrationItem Prelude.Text+listIntegrationItem_uri = Lens.lens (\ListIntegrationItem' {uri} -> uri) (\s@ListIntegrationItem' {} a -> s {uri = a} :: ListIntegrationItem)++-- | The timestamp of when the domain was created.+listIntegrationItem_createdAt :: Lens.Lens' ListIntegrationItem Prelude.UTCTime+listIntegrationItem_createdAt = Lens.lens (\ListIntegrationItem' {createdAt} -> createdAt) (\s@ListIntegrationItem' {} a -> s {createdAt = a} :: ListIntegrationItem) Prelude.. Data._Time++-- | The timestamp of when the domain was most recently edited.+listIntegrationItem_lastUpdatedAt :: Lens.Lens' ListIntegrationItem Prelude.UTCTime+listIntegrationItem_lastUpdatedAt = Lens.lens (\ListIntegrationItem' {lastUpdatedAt} -> lastUpdatedAt) (\s@ListIntegrationItem' {} a -> s {lastUpdatedAt = a} :: ListIntegrationItem) Prelude.. Data._Time++instance Data.FromJSON ListIntegrationItem where+ parseJSON =+ Data.withObject+ "ListIntegrationItem"+ ( \x ->+ ListIntegrationItem'+ Prelude.<$> (x Data..:? "IsUnstructured")+ Prelude.<*> (x Data..:? "ObjectTypeName")+ Prelude.<*> ( x+ Data..:? "ObjectTypeNames"+ Data..!= Prelude.mempty+ )+ Prelude.<*> (x Data..:? "Tags" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "WorkflowId")+ Prelude.<*> (x Data..: "DomainName")+ Prelude.<*> (x Data..: "Uri")+ Prelude.<*> (x Data..: "CreatedAt")+ Prelude.<*> (x Data..: "LastUpdatedAt")+ )++instance Prelude.Hashable ListIntegrationItem where+ hashWithSalt _salt ListIntegrationItem' {..} =+ _salt+ `Prelude.hashWithSalt` isUnstructured+ `Prelude.hashWithSalt` objectTypeName+ `Prelude.hashWithSalt` objectTypeNames+ `Prelude.hashWithSalt` tags+ `Prelude.hashWithSalt` workflowId+ `Prelude.hashWithSalt` domainName+ `Prelude.hashWithSalt` uri+ `Prelude.hashWithSalt` createdAt+ `Prelude.hashWithSalt` lastUpdatedAt++instance Prelude.NFData ListIntegrationItem where+ rnf ListIntegrationItem' {..} =+ Prelude.rnf isUnstructured+ `Prelude.seq` Prelude.rnf objectTypeName+ `Prelude.seq` Prelude.rnf objectTypeNames+ `Prelude.seq` Prelude.rnf tags+ `Prelude.seq` Prelude.rnf workflowId+ `Prelude.seq` Prelude.rnf domainName+ `Prelude.seq` Prelude.rnf uri+ `Prelude.seq` Prelude.rnf createdAt+ `Prelude.seq` Prelude.rnf lastUpdatedAt
+ gen/Amazonka/CustomerProfiles/Types/ListProfileObjectTypeItem.hs view
@@ -0,0 +1,127 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.CustomerProfiles.Types.ListProfileObjectTypeItem+-- 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.CustomerProfiles.Types.ListProfileObjectTypeItem where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | A ProfileObjectType instance.+--+-- /See:/ 'newListProfileObjectTypeItem' smart constructor.+data ListProfileObjectTypeItem = ListProfileObjectTypeItem'+ { -- | The timestamp of when the domain was created.+ createdAt :: Prelude.Maybe Data.POSIX,+ -- | The timestamp of when the domain was most recently edited.+ lastUpdatedAt :: Prelude.Maybe Data.POSIX,+ -- | The tags used to organize, track, or control access for this resource.+ tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | The name of the profile object type.+ objectTypeName :: Prelude.Text,+ -- | Description of the profile object type.+ description :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListProfileObjectTypeItem' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'createdAt', 'listProfileObjectTypeItem_createdAt' - The timestamp of when the domain was created.+--+-- 'lastUpdatedAt', 'listProfileObjectTypeItem_lastUpdatedAt' - The timestamp of when the domain was most recently edited.+--+-- 'tags', 'listProfileObjectTypeItem_tags' - The tags used to organize, track, or control access for this resource.+--+-- 'objectTypeName', 'listProfileObjectTypeItem_objectTypeName' - The name of the profile object type.+--+-- 'description', 'listProfileObjectTypeItem_description' - Description of the profile object type.+newListProfileObjectTypeItem ::+ -- | 'objectTypeName'+ Prelude.Text ->+ -- | 'description'+ Prelude.Text ->+ ListProfileObjectTypeItem+newListProfileObjectTypeItem+ pObjectTypeName_+ pDescription_ =+ ListProfileObjectTypeItem'+ { createdAt =+ Prelude.Nothing,+ lastUpdatedAt = Prelude.Nothing,+ tags = Prelude.Nothing,+ objectTypeName = pObjectTypeName_,+ description = pDescription_+ }++-- | The timestamp of when the domain was created.+listProfileObjectTypeItem_createdAt :: Lens.Lens' ListProfileObjectTypeItem (Prelude.Maybe Prelude.UTCTime)+listProfileObjectTypeItem_createdAt = Lens.lens (\ListProfileObjectTypeItem' {createdAt} -> createdAt) (\s@ListProfileObjectTypeItem' {} a -> s {createdAt = a} :: ListProfileObjectTypeItem) Prelude.. Lens.mapping Data._Time++-- | The timestamp of when the domain was most recently edited.+listProfileObjectTypeItem_lastUpdatedAt :: Lens.Lens' ListProfileObjectTypeItem (Prelude.Maybe Prelude.UTCTime)+listProfileObjectTypeItem_lastUpdatedAt = Lens.lens (\ListProfileObjectTypeItem' {lastUpdatedAt} -> lastUpdatedAt) (\s@ListProfileObjectTypeItem' {} a -> s {lastUpdatedAt = a} :: ListProfileObjectTypeItem) Prelude.. Lens.mapping Data._Time++-- | The tags used to organize, track, or control access for this resource.+listProfileObjectTypeItem_tags :: Lens.Lens' ListProfileObjectTypeItem (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+listProfileObjectTypeItem_tags = Lens.lens (\ListProfileObjectTypeItem' {tags} -> tags) (\s@ListProfileObjectTypeItem' {} a -> s {tags = a} :: ListProfileObjectTypeItem) Prelude.. Lens.mapping Lens.coerced++-- | The name of the profile object type.+listProfileObjectTypeItem_objectTypeName :: Lens.Lens' ListProfileObjectTypeItem Prelude.Text+listProfileObjectTypeItem_objectTypeName = Lens.lens (\ListProfileObjectTypeItem' {objectTypeName} -> objectTypeName) (\s@ListProfileObjectTypeItem' {} a -> s {objectTypeName = a} :: ListProfileObjectTypeItem)++-- | Description of the profile object type.+listProfileObjectTypeItem_description :: Lens.Lens' ListProfileObjectTypeItem Prelude.Text+listProfileObjectTypeItem_description = Lens.lens (\ListProfileObjectTypeItem' {description} -> description) (\s@ListProfileObjectTypeItem' {} a -> s {description = a} :: ListProfileObjectTypeItem)++instance Data.FromJSON ListProfileObjectTypeItem where+ parseJSON =+ Data.withObject+ "ListProfileObjectTypeItem"+ ( \x ->+ ListProfileObjectTypeItem'+ Prelude.<$> (x Data..:? "CreatedAt")+ Prelude.<*> (x Data..:? "LastUpdatedAt")+ Prelude.<*> (x Data..:? "Tags" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..: "ObjectTypeName")+ Prelude.<*> (x Data..: "Description")+ )++instance Prelude.Hashable ListProfileObjectTypeItem where+ hashWithSalt _salt ListProfileObjectTypeItem' {..} =+ _salt+ `Prelude.hashWithSalt` createdAt+ `Prelude.hashWithSalt` lastUpdatedAt+ `Prelude.hashWithSalt` tags+ `Prelude.hashWithSalt` objectTypeName+ `Prelude.hashWithSalt` description++instance Prelude.NFData ListProfileObjectTypeItem where+ rnf ListProfileObjectTypeItem' {..} =+ Prelude.rnf createdAt+ `Prelude.seq` Prelude.rnf lastUpdatedAt+ `Prelude.seq` Prelude.rnf tags+ `Prelude.seq` Prelude.rnf objectTypeName+ `Prelude.seq` Prelude.rnf description
+ gen/Amazonka/CustomerProfiles/Types/ListProfileObjectTypeTemplateItem.hs view
@@ -0,0 +1,108 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.CustomerProfiles.Types.ListProfileObjectTypeTemplateItem+-- 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.CustomerProfiles.Types.ListProfileObjectTypeTemplateItem where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | A ProfileObjectTypeTemplate in a list of ProfileObjectTypeTemplates.+--+-- /See:/ 'newListProfileObjectTypeTemplateItem' smart constructor.+data ListProfileObjectTypeTemplateItem = ListProfileObjectTypeTemplateItem'+ { -- | The name of the source of the object template.+ sourceName :: Prelude.Maybe Prelude.Text,+ -- | The source of the object template.+ sourceObject :: Prelude.Maybe Prelude.Text,+ -- | A unique identifier for the object template.+ templateId :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListProfileObjectTypeTemplateItem' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'sourceName', 'listProfileObjectTypeTemplateItem_sourceName' - The name of the source of the object template.+--+-- 'sourceObject', 'listProfileObjectTypeTemplateItem_sourceObject' - The source of the object template.+--+-- 'templateId', 'listProfileObjectTypeTemplateItem_templateId' - A unique identifier for the object template.+newListProfileObjectTypeTemplateItem ::+ ListProfileObjectTypeTemplateItem+newListProfileObjectTypeTemplateItem =+ ListProfileObjectTypeTemplateItem'+ { sourceName =+ Prelude.Nothing,+ sourceObject = Prelude.Nothing,+ templateId = Prelude.Nothing+ }++-- | The name of the source of the object template.+listProfileObjectTypeTemplateItem_sourceName :: Lens.Lens' ListProfileObjectTypeTemplateItem (Prelude.Maybe Prelude.Text)+listProfileObjectTypeTemplateItem_sourceName = Lens.lens (\ListProfileObjectTypeTemplateItem' {sourceName} -> sourceName) (\s@ListProfileObjectTypeTemplateItem' {} a -> s {sourceName = a} :: ListProfileObjectTypeTemplateItem)++-- | The source of the object template.+listProfileObjectTypeTemplateItem_sourceObject :: Lens.Lens' ListProfileObjectTypeTemplateItem (Prelude.Maybe Prelude.Text)+listProfileObjectTypeTemplateItem_sourceObject = Lens.lens (\ListProfileObjectTypeTemplateItem' {sourceObject} -> sourceObject) (\s@ListProfileObjectTypeTemplateItem' {} a -> s {sourceObject = a} :: ListProfileObjectTypeTemplateItem)++-- | A unique identifier for the object template.+listProfileObjectTypeTemplateItem_templateId :: Lens.Lens' ListProfileObjectTypeTemplateItem (Prelude.Maybe Prelude.Text)+listProfileObjectTypeTemplateItem_templateId = Lens.lens (\ListProfileObjectTypeTemplateItem' {templateId} -> templateId) (\s@ListProfileObjectTypeTemplateItem' {} a -> s {templateId = a} :: ListProfileObjectTypeTemplateItem)++instance+ Data.FromJSON+ ListProfileObjectTypeTemplateItem+ where+ parseJSON =+ Data.withObject+ "ListProfileObjectTypeTemplateItem"+ ( \x ->+ ListProfileObjectTypeTemplateItem'+ Prelude.<$> (x Data..:? "SourceName")+ Prelude.<*> (x Data..:? "SourceObject")+ Prelude.<*> (x Data..:? "TemplateId")+ )++instance+ Prelude.Hashable+ ListProfileObjectTypeTemplateItem+ where+ hashWithSalt+ _salt+ ListProfileObjectTypeTemplateItem' {..} =+ _salt+ `Prelude.hashWithSalt` sourceName+ `Prelude.hashWithSalt` sourceObject+ `Prelude.hashWithSalt` templateId++instance+ Prelude.NFData+ ListProfileObjectTypeTemplateItem+ where+ rnf ListProfileObjectTypeTemplateItem' {..} =+ Prelude.rnf sourceName+ `Prelude.seq` Prelude.rnf sourceObject+ `Prelude.seq` Prelude.rnf templateId
+ gen/Amazonka/CustomerProfiles/Types/ListProfileObjectsItem.hs view
@@ -0,0 +1,99 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.CustomerProfiles.Types.ListProfileObjectsItem+-- 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.CustomerProfiles.Types.ListProfileObjectsItem where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | A ProfileObject in a list of ProfileObjects.+--+-- /See:/ 'newListProfileObjectsItem' smart constructor.+data ListProfileObjectsItem = ListProfileObjectsItem'+ { -- | A JSON representation of a ProfileObject that belongs to a profile.+ object' :: Prelude.Maybe Prelude.Text,+ -- | Specifies the kind of object being added to a profile, such as+ -- \"Salesforce-Account.\"+ objectTypeName :: Prelude.Maybe Prelude.Text,+ -- | The unique identifier of the ProfileObject generated by the service.+ profileObjectUniqueKey :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListProfileObjectsItem' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'object'', 'listProfileObjectsItem_object' - A JSON representation of a ProfileObject that belongs to a profile.+--+-- 'objectTypeName', 'listProfileObjectsItem_objectTypeName' - Specifies the kind of object being added to a profile, such as+-- \"Salesforce-Account.\"+--+-- 'profileObjectUniqueKey', 'listProfileObjectsItem_profileObjectUniqueKey' - The unique identifier of the ProfileObject generated by the service.+newListProfileObjectsItem ::+ ListProfileObjectsItem+newListProfileObjectsItem =+ ListProfileObjectsItem'+ { object' = Prelude.Nothing,+ objectTypeName = Prelude.Nothing,+ profileObjectUniqueKey = Prelude.Nothing+ }++-- | A JSON representation of a ProfileObject that belongs to a profile.+listProfileObjectsItem_object :: Lens.Lens' ListProfileObjectsItem (Prelude.Maybe Prelude.Text)+listProfileObjectsItem_object = Lens.lens (\ListProfileObjectsItem' {object'} -> object') (\s@ListProfileObjectsItem' {} a -> s {object' = a} :: ListProfileObjectsItem)++-- | Specifies the kind of object being added to a profile, such as+-- \"Salesforce-Account.\"+listProfileObjectsItem_objectTypeName :: Lens.Lens' ListProfileObjectsItem (Prelude.Maybe Prelude.Text)+listProfileObjectsItem_objectTypeName = Lens.lens (\ListProfileObjectsItem' {objectTypeName} -> objectTypeName) (\s@ListProfileObjectsItem' {} a -> s {objectTypeName = a} :: ListProfileObjectsItem)++-- | The unique identifier of the ProfileObject generated by the service.+listProfileObjectsItem_profileObjectUniqueKey :: Lens.Lens' ListProfileObjectsItem (Prelude.Maybe Prelude.Text)+listProfileObjectsItem_profileObjectUniqueKey = Lens.lens (\ListProfileObjectsItem' {profileObjectUniqueKey} -> profileObjectUniqueKey) (\s@ListProfileObjectsItem' {} a -> s {profileObjectUniqueKey = a} :: ListProfileObjectsItem)++instance Data.FromJSON ListProfileObjectsItem where+ parseJSON =+ Data.withObject+ "ListProfileObjectsItem"+ ( \x ->+ ListProfileObjectsItem'+ Prelude.<$> (x Data..:? "Object")+ Prelude.<*> (x Data..:? "ObjectTypeName")+ Prelude.<*> (x Data..:? "ProfileObjectUniqueKey")+ )++instance Prelude.Hashable ListProfileObjectsItem where+ hashWithSalt _salt ListProfileObjectsItem' {..} =+ _salt+ `Prelude.hashWithSalt` object'+ `Prelude.hashWithSalt` objectTypeName+ `Prelude.hashWithSalt` profileObjectUniqueKey++instance Prelude.NFData ListProfileObjectsItem where+ rnf ListProfileObjectsItem' {..} =+ Prelude.rnf object'+ `Prelude.seq` Prelude.rnf objectTypeName+ `Prelude.seq` Prelude.rnf profileObjectUniqueKey
+ gen/Amazonka/CustomerProfiles/Types/ListWorkflowsItem.hs view
@@ -0,0 +1,152 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.CustomerProfiles.Types.ListWorkflowsItem+-- 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.CustomerProfiles.Types.ListWorkflowsItem where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CustomerProfiles.Types.Status+import Amazonka.CustomerProfiles.Types.WorkflowType+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | A workflow in list of workflows.+--+-- /See:/ 'newListWorkflowsItem' smart constructor.+data ListWorkflowsItem = ListWorkflowsItem'+ { -- | The type of workflow. The only supported value is APPFLOW_INTEGRATION.+ workflowType :: WorkflowType,+ -- | Unique identifier for the workflow.+ workflowId :: Prelude.Text,+ -- | Status of workflow execution.+ status :: Status,+ -- | Description for workflow execution status.+ statusDescription :: Prelude.Text,+ -- | Creation timestamp for workflow.+ createdAt :: Data.POSIX,+ -- | Last updated timestamp for workflow.+ lastUpdatedAt :: Data.POSIX+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListWorkflowsItem' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'workflowType', 'listWorkflowsItem_workflowType' - The type of workflow. The only supported value is APPFLOW_INTEGRATION.+--+-- 'workflowId', 'listWorkflowsItem_workflowId' - Unique identifier for the workflow.+--+-- 'status', 'listWorkflowsItem_status' - Status of workflow execution.+--+-- 'statusDescription', 'listWorkflowsItem_statusDescription' - Description for workflow execution status.+--+-- 'createdAt', 'listWorkflowsItem_createdAt' - Creation timestamp for workflow.+--+-- 'lastUpdatedAt', 'listWorkflowsItem_lastUpdatedAt' - Last updated timestamp for workflow.+newListWorkflowsItem ::+ -- | 'workflowType'+ WorkflowType ->+ -- | 'workflowId'+ Prelude.Text ->+ -- | 'status'+ Status ->+ -- | 'statusDescription'+ Prelude.Text ->+ -- | 'createdAt'+ Prelude.UTCTime ->+ -- | 'lastUpdatedAt'+ Prelude.UTCTime ->+ ListWorkflowsItem+newListWorkflowsItem+ pWorkflowType_+ pWorkflowId_+ pStatus_+ pStatusDescription_+ pCreatedAt_+ pLastUpdatedAt_ =+ ListWorkflowsItem'+ { workflowType = pWorkflowType_,+ workflowId = pWorkflowId_,+ status = pStatus_,+ statusDescription = pStatusDescription_,+ createdAt = Data._Time Lens.# pCreatedAt_,+ lastUpdatedAt = Data._Time Lens.# pLastUpdatedAt_+ }++-- | The type of workflow. The only supported value is APPFLOW_INTEGRATION.+listWorkflowsItem_workflowType :: Lens.Lens' ListWorkflowsItem WorkflowType+listWorkflowsItem_workflowType = Lens.lens (\ListWorkflowsItem' {workflowType} -> workflowType) (\s@ListWorkflowsItem' {} a -> s {workflowType = a} :: ListWorkflowsItem)++-- | Unique identifier for the workflow.+listWorkflowsItem_workflowId :: Lens.Lens' ListWorkflowsItem Prelude.Text+listWorkflowsItem_workflowId = Lens.lens (\ListWorkflowsItem' {workflowId} -> workflowId) (\s@ListWorkflowsItem' {} a -> s {workflowId = a} :: ListWorkflowsItem)++-- | Status of workflow execution.+listWorkflowsItem_status :: Lens.Lens' ListWorkflowsItem Status+listWorkflowsItem_status = Lens.lens (\ListWorkflowsItem' {status} -> status) (\s@ListWorkflowsItem' {} a -> s {status = a} :: ListWorkflowsItem)++-- | Description for workflow execution status.+listWorkflowsItem_statusDescription :: Lens.Lens' ListWorkflowsItem Prelude.Text+listWorkflowsItem_statusDescription = Lens.lens (\ListWorkflowsItem' {statusDescription} -> statusDescription) (\s@ListWorkflowsItem' {} a -> s {statusDescription = a} :: ListWorkflowsItem)++-- | Creation timestamp for workflow.+listWorkflowsItem_createdAt :: Lens.Lens' ListWorkflowsItem Prelude.UTCTime+listWorkflowsItem_createdAt = Lens.lens (\ListWorkflowsItem' {createdAt} -> createdAt) (\s@ListWorkflowsItem' {} a -> s {createdAt = a} :: ListWorkflowsItem) Prelude.. Data._Time++-- | Last updated timestamp for workflow.+listWorkflowsItem_lastUpdatedAt :: Lens.Lens' ListWorkflowsItem Prelude.UTCTime+listWorkflowsItem_lastUpdatedAt = Lens.lens (\ListWorkflowsItem' {lastUpdatedAt} -> lastUpdatedAt) (\s@ListWorkflowsItem' {} a -> s {lastUpdatedAt = a} :: ListWorkflowsItem) Prelude.. Data._Time++instance Data.FromJSON ListWorkflowsItem where+ parseJSON =+ Data.withObject+ "ListWorkflowsItem"+ ( \x ->+ ListWorkflowsItem'+ Prelude.<$> (x Data..: "WorkflowType")+ Prelude.<*> (x Data..: "WorkflowId")+ Prelude.<*> (x Data..: "Status")+ Prelude.<*> (x Data..: "StatusDescription")+ Prelude.<*> (x Data..: "CreatedAt")+ Prelude.<*> (x Data..: "LastUpdatedAt")+ )++instance Prelude.Hashable ListWorkflowsItem where+ hashWithSalt _salt ListWorkflowsItem' {..} =+ _salt+ `Prelude.hashWithSalt` workflowType+ `Prelude.hashWithSalt` workflowId+ `Prelude.hashWithSalt` status+ `Prelude.hashWithSalt` statusDescription+ `Prelude.hashWithSalt` createdAt+ `Prelude.hashWithSalt` lastUpdatedAt++instance Prelude.NFData ListWorkflowsItem where+ rnf ListWorkflowsItem' {..} =+ Prelude.rnf workflowType+ `Prelude.seq` Prelude.rnf workflowId+ `Prelude.seq` Prelude.rnf status+ `Prelude.seq` Prelude.rnf statusDescription+ `Prelude.seq` Prelude.rnf createdAt+ `Prelude.seq` Prelude.rnf lastUpdatedAt
+ gen/Amazonka/CustomerProfiles/Types/LogicalOperator.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.CustomerProfiles.Types.LogicalOperator+-- 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.CustomerProfiles.Types.LogicalOperator+ ( LogicalOperator+ ( ..,+ LogicalOperator_AND,+ LogicalOperator_OR+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype LogicalOperator = LogicalOperator'+ { fromLogicalOperator ::+ 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 LogicalOperator_AND :: LogicalOperator+pattern LogicalOperator_AND = LogicalOperator' "AND"++pattern LogicalOperator_OR :: LogicalOperator+pattern LogicalOperator_OR = LogicalOperator' "OR"++{-# COMPLETE+ LogicalOperator_AND,+ LogicalOperator_OR,+ LogicalOperator'+ #-}
+ gen/Amazonka/CustomerProfiles/Types/MarketoConnectorOperator.hs view
@@ -0,0 +1,141 @@+{-# 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.CustomerProfiles.Types.MarketoConnectorOperator+-- 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.CustomerProfiles.Types.MarketoConnectorOperator+ ( MarketoConnectorOperator+ ( ..,+ MarketoConnectorOperator_ADDITION,+ MarketoConnectorOperator_BETWEEN,+ MarketoConnectorOperator_DIVISION,+ MarketoConnectorOperator_GREATER_THAN,+ MarketoConnectorOperator_LESS_THAN,+ MarketoConnectorOperator_MASK_ALL,+ MarketoConnectorOperator_MASK_FIRST_N,+ MarketoConnectorOperator_MASK_LAST_N,+ MarketoConnectorOperator_MULTIPLICATION,+ MarketoConnectorOperator_NO_OP,+ MarketoConnectorOperator_PROJECTION,+ MarketoConnectorOperator_SUBTRACTION,+ MarketoConnectorOperator_VALIDATE_NON_NEGATIVE,+ MarketoConnectorOperator_VALIDATE_NON_NULL,+ MarketoConnectorOperator_VALIDATE_NON_ZERO,+ MarketoConnectorOperator_VALIDATE_NUMERIC+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype MarketoConnectorOperator = MarketoConnectorOperator'+ { fromMarketoConnectorOperator ::+ 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 MarketoConnectorOperator_ADDITION :: MarketoConnectorOperator+pattern MarketoConnectorOperator_ADDITION = MarketoConnectorOperator' "ADDITION"++pattern MarketoConnectorOperator_BETWEEN :: MarketoConnectorOperator+pattern MarketoConnectorOperator_BETWEEN = MarketoConnectorOperator' "BETWEEN"++pattern MarketoConnectorOperator_DIVISION :: MarketoConnectorOperator+pattern MarketoConnectorOperator_DIVISION = MarketoConnectorOperator' "DIVISION"++pattern MarketoConnectorOperator_GREATER_THAN :: MarketoConnectorOperator+pattern MarketoConnectorOperator_GREATER_THAN = MarketoConnectorOperator' "GREATER_THAN"++pattern MarketoConnectorOperator_LESS_THAN :: MarketoConnectorOperator+pattern MarketoConnectorOperator_LESS_THAN = MarketoConnectorOperator' "LESS_THAN"++pattern MarketoConnectorOperator_MASK_ALL :: MarketoConnectorOperator+pattern MarketoConnectorOperator_MASK_ALL = MarketoConnectorOperator' "MASK_ALL"++pattern MarketoConnectorOperator_MASK_FIRST_N :: MarketoConnectorOperator+pattern MarketoConnectorOperator_MASK_FIRST_N = MarketoConnectorOperator' "MASK_FIRST_N"++pattern MarketoConnectorOperator_MASK_LAST_N :: MarketoConnectorOperator+pattern MarketoConnectorOperator_MASK_LAST_N = MarketoConnectorOperator' "MASK_LAST_N"++pattern MarketoConnectorOperator_MULTIPLICATION :: MarketoConnectorOperator+pattern MarketoConnectorOperator_MULTIPLICATION = MarketoConnectorOperator' "MULTIPLICATION"++pattern MarketoConnectorOperator_NO_OP :: MarketoConnectorOperator+pattern MarketoConnectorOperator_NO_OP = MarketoConnectorOperator' "NO_OP"++pattern MarketoConnectorOperator_PROJECTION :: MarketoConnectorOperator+pattern MarketoConnectorOperator_PROJECTION = MarketoConnectorOperator' "PROJECTION"++pattern MarketoConnectorOperator_SUBTRACTION :: MarketoConnectorOperator+pattern MarketoConnectorOperator_SUBTRACTION = MarketoConnectorOperator' "SUBTRACTION"++pattern MarketoConnectorOperator_VALIDATE_NON_NEGATIVE :: MarketoConnectorOperator+pattern MarketoConnectorOperator_VALIDATE_NON_NEGATIVE = MarketoConnectorOperator' "VALIDATE_NON_NEGATIVE"++pattern MarketoConnectorOperator_VALIDATE_NON_NULL :: MarketoConnectorOperator+pattern MarketoConnectorOperator_VALIDATE_NON_NULL = MarketoConnectorOperator' "VALIDATE_NON_NULL"++pattern MarketoConnectorOperator_VALIDATE_NON_ZERO :: MarketoConnectorOperator+pattern MarketoConnectorOperator_VALIDATE_NON_ZERO = MarketoConnectorOperator' "VALIDATE_NON_ZERO"++pattern MarketoConnectorOperator_VALIDATE_NUMERIC :: MarketoConnectorOperator+pattern MarketoConnectorOperator_VALIDATE_NUMERIC = MarketoConnectorOperator' "VALIDATE_NUMERIC"++{-# COMPLETE+ MarketoConnectorOperator_ADDITION,+ MarketoConnectorOperator_BETWEEN,+ MarketoConnectorOperator_DIVISION,+ MarketoConnectorOperator_GREATER_THAN,+ MarketoConnectorOperator_LESS_THAN,+ MarketoConnectorOperator_MASK_ALL,+ MarketoConnectorOperator_MASK_FIRST_N,+ MarketoConnectorOperator_MASK_LAST_N,+ MarketoConnectorOperator_MULTIPLICATION,+ MarketoConnectorOperator_NO_OP,+ MarketoConnectorOperator_PROJECTION,+ MarketoConnectorOperator_SUBTRACTION,+ MarketoConnectorOperator_VALIDATE_NON_NEGATIVE,+ MarketoConnectorOperator_VALIDATE_NON_NULL,+ MarketoConnectorOperator_VALIDATE_NON_ZERO,+ MarketoConnectorOperator_VALIDATE_NUMERIC,+ MarketoConnectorOperator'+ #-}
+ gen/Amazonka/CustomerProfiles/Types/MarketoSourceProperties.hs view
@@ -0,0 +1,69 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.CustomerProfiles.Types.MarketoSourceProperties+-- 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.CustomerProfiles.Types.MarketoSourceProperties 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 properties that are applied when Marketo is being used as a source.+--+-- /See:/ 'newMarketoSourceProperties' smart constructor.+data MarketoSourceProperties = MarketoSourceProperties'+ { -- | The object specified in the Marketo flow source.+ object' :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'MarketoSourceProperties' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'object'', 'marketoSourceProperties_object' - The object specified in the Marketo flow source.+newMarketoSourceProperties ::+ -- | 'object''+ Prelude.Text ->+ MarketoSourceProperties+newMarketoSourceProperties pObject_ =+ MarketoSourceProperties' {object' = pObject_}++-- | The object specified in the Marketo flow source.+marketoSourceProperties_object :: Lens.Lens' MarketoSourceProperties Prelude.Text+marketoSourceProperties_object = Lens.lens (\MarketoSourceProperties' {object'} -> object') (\s@MarketoSourceProperties' {} a -> s {object' = a} :: MarketoSourceProperties)++instance Prelude.Hashable MarketoSourceProperties where+ hashWithSalt _salt MarketoSourceProperties' {..} =+ _salt `Prelude.hashWithSalt` object'++instance Prelude.NFData MarketoSourceProperties where+ rnf MarketoSourceProperties' {..} =+ Prelude.rnf object'++instance Data.ToJSON MarketoSourceProperties where+ toJSON MarketoSourceProperties' {..} =+ Data.object+ ( Prelude.catMaybes+ [Prelude.Just ("Object" Data..= object')]+ )
+ gen/Amazonka/CustomerProfiles/Types/MatchItem.hs view
@@ -0,0 +1,117 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.CustomerProfiles.Types.MatchItem+-- 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.CustomerProfiles.Types.MatchItem 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 Match group object.+--+-- /See:/ 'newMatchItem' smart constructor.+data MatchItem = MatchItem'+ { -- | A number between 0 and 1, where a higher score means higher similarity.+ -- Examining match confidence scores lets you distinguish between groups of+ -- similar records in which the system is highly confident (which you may+ -- decide to merge), groups of similar records about which the system is+ -- uncertain (which you may decide to have reviewed by a human), and groups+ -- of similar records that the system deems to be unlikely (which you may+ -- decide to reject). Given confidence scores vary as per the data input,+ -- it should not be used an absolute measure of matching quality.+ confidenceScore :: Prelude.Maybe Prelude.Double,+ -- | The unique identifiers for this group of profiles that match.+ matchId :: Prelude.Maybe Prelude.Text,+ -- | A list of identifiers for profiles that match.+ profileIds :: Prelude.Maybe [Prelude.Text]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'MatchItem' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'confidenceScore', 'matchItem_confidenceScore' - A number between 0 and 1, where a higher score means higher similarity.+-- Examining match confidence scores lets you distinguish between groups of+-- similar records in which the system is highly confident (which you may+-- decide to merge), groups of similar records about which the system is+-- uncertain (which you may decide to have reviewed by a human), and groups+-- of similar records that the system deems to be unlikely (which you may+-- decide to reject). Given confidence scores vary as per the data input,+-- it should not be used an absolute measure of matching quality.+--+-- 'matchId', 'matchItem_matchId' - The unique identifiers for this group of profiles that match.+--+-- 'profileIds', 'matchItem_profileIds' - A list of identifiers for profiles that match.+newMatchItem ::+ MatchItem+newMatchItem =+ MatchItem'+ { confidenceScore = Prelude.Nothing,+ matchId = Prelude.Nothing,+ profileIds = Prelude.Nothing+ }++-- | A number between 0 and 1, where a higher score means higher similarity.+-- Examining match confidence scores lets you distinguish between groups of+-- similar records in which the system is highly confident (which you may+-- decide to merge), groups of similar records about which the system is+-- uncertain (which you may decide to have reviewed by a human), and groups+-- of similar records that the system deems to be unlikely (which you may+-- decide to reject). Given confidence scores vary as per the data input,+-- it should not be used an absolute measure of matching quality.+matchItem_confidenceScore :: Lens.Lens' MatchItem (Prelude.Maybe Prelude.Double)+matchItem_confidenceScore = Lens.lens (\MatchItem' {confidenceScore} -> confidenceScore) (\s@MatchItem' {} a -> s {confidenceScore = a} :: MatchItem)++-- | The unique identifiers for this group of profiles that match.+matchItem_matchId :: Lens.Lens' MatchItem (Prelude.Maybe Prelude.Text)+matchItem_matchId = Lens.lens (\MatchItem' {matchId} -> matchId) (\s@MatchItem' {} a -> s {matchId = a} :: MatchItem)++-- | A list of identifiers for profiles that match.+matchItem_profileIds :: Lens.Lens' MatchItem (Prelude.Maybe [Prelude.Text])+matchItem_profileIds = Lens.lens (\MatchItem' {profileIds} -> profileIds) (\s@MatchItem' {} a -> s {profileIds = a} :: MatchItem) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON MatchItem where+ parseJSON =+ Data.withObject+ "MatchItem"+ ( \x ->+ MatchItem'+ Prelude.<$> (x Data..:? "ConfidenceScore")+ Prelude.<*> (x Data..:? "MatchId")+ Prelude.<*> (x Data..:? "ProfileIds" Data..!= Prelude.mempty)+ )++instance Prelude.Hashable MatchItem where+ hashWithSalt _salt MatchItem' {..} =+ _salt+ `Prelude.hashWithSalt` confidenceScore+ `Prelude.hashWithSalt` matchId+ `Prelude.hashWithSalt` profileIds++instance Prelude.NFData MatchItem where+ rnf MatchItem' {..} =+ Prelude.rnf confidenceScore+ `Prelude.seq` Prelude.rnf matchId+ `Prelude.seq` Prelude.rnf profileIds
+ gen/Amazonka/CustomerProfiles/Types/MatchingRequest.hs view
@@ -0,0 +1,119 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.CustomerProfiles.Types.MatchingRequest+-- 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.CustomerProfiles.Types.MatchingRequest where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CustomerProfiles.Types.AutoMerging+import Amazonka.CustomerProfiles.Types.ExportingConfig+import Amazonka.CustomerProfiles.Types.JobSchedule+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The flag that enables the matching process of duplicate profiles.+--+-- /See:/ 'newMatchingRequest' smart constructor.+data MatchingRequest = MatchingRequest'+ { -- | Configuration information about the auto-merging process.+ autoMerging :: Prelude.Maybe AutoMerging,+ -- | Configuration information for exporting Identity Resolution results, for+ -- example, to an S3 bucket.+ exportingConfig :: Prelude.Maybe ExportingConfig,+ -- | The day and time when do you want to start the Identity Resolution Job+ -- every week.+ jobSchedule :: Prelude.Maybe JobSchedule,+ -- | The flag that enables the matching process of duplicate profiles.+ enabled :: Prelude.Bool+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'MatchingRequest' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'autoMerging', 'matchingRequest_autoMerging' - Configuration information about the auto-merging process.+--+-- 'exportingConfig', 'matchingRequest_exportingConfig' - Configuration information for exporting Identity Resolution results, for+-- example, to an S3 bucket.+--+-- 'jobSchedule', 'matchingRequest_jobSchedule' - The day and time when do you want to start the Identity Resolution Job+-- every week.+--+-- 'enabled', 'matchingRequest_enabled' - The flag that enables the matching process of duplicate profiles.+newMatchingRequest ::+ -- | 'enabled'+ Prelude.Bool ->+ MatchingRequest+newMatchingRequest pEnabled_ =+ MatchingRequest'+ { autoMerging = Prelude.Nothing,+ exportingConfig = Prelude.Nothing,+ jobSchedule = Prelude.Nothing,+ enabled = pEnabled_+ }++-- | Configuration information about the auto-merging process.+matchingRequest_autoMerging :: Lens.Lens' MatchingRequest (Prelude.Maybe AutoMerging)+matchingRequest_autoMerging = Lens.lens (\MatchingRequest' {autoMerging} -> autoMerging) (\s@MatchingRequest' {} a -> s {autoMerging = a} :: MatchingRequest)++-- | Configuration information for exporting Identity Resolution results, for+-- example, to an S3 bucket.+matchingRequest_exportingConfig :: Lens.Lens' MatchingRequest (Prelude.Maybe ExportingConfig)+matchingRequest_exportingConfig = Lens.lens (\MatchingRequest' {exportingConfig} -> exportingConfig) (\s@MatchingRequest' {} a -> s {exportingConfig = a} :: MatchingRequest)++-- | The day and time when do you want to start the Identity Resolution Job+-- every week.+matchingRequest_jobSchedule :: Lens.Lens' MatchingRequest (Prelude.Maybe JobSchedule)+matchingRequest_jobSchedule = Lens.lens (\MatchingRequest' {jobSchedule} -> jobSchedule) (\s@MatchingRequest' {} a -> s {jobSchedule = a} :: MatchingRequest)++-- | The flag that enables the matching process of duplicate profiles.+matchingRequest_enabled :: Lens.Lens' MatchingRequest Prelude.Bool+matchingRequest_enabled = Lens.lens (\MatchingRequest' {enabled} -> enabled) (\s@MatchingRequest' {} a -> s {enabled = a} :: MatchingRequest)++instance Prelude.Hashable MatchingRequest where+ hashWithSalt _salt MatchingRequest' {..} =+ _salt+ `Prelude.hashWithSalt` autoMerging+ `Prelude.hashWithSalt` exportingConfig+ `Prelude.hashWithSalt` jobSchedule+ `Prelude.hashWithSalt` enabled++instance Prelude.NFData MatchingRequest where+ rnf MatchingRequest' {..} =+ Prelude.rnf autoMerging+ `Prelude.seq` Prelude.rnf exportingConfig+ `Prelude.seq` Prelude.rnf jobSchedule+ `Prelude.seq` Prelude.rnf enabled++instance Data.ToJSON MatchingRequest where+ toJSON MatchingRequest' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("AutoMerging" Data..=) Prelude.<$> autoMerging,+ ("ExportingConfig" Data..=)+ Prelude.<$> exportingConfig,+ ("JobSchedule" Data..=) Prelude.<$> jobSchedule,+ Prelude.Just ("Enabled" Data..= enabled)+ ]+ )
+ gen/Amazonka/CustomerProfiles/Types/MatchingResponse.hs view
@@ -0,0 +1,117 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.CustomerProfiles.Types.MatchingResponse+-- 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.CustomerProfiles.Types.MatchingResponse where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CustomerProfiles.Types.AutoMerging+import Amazonka.CustomerProfiles.Types.ExportingConfig+import Amazonka.CustomerProfiles.Types.JobSchedule+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The flag that enables the matching process of duplicate profiles.+--+-- /See:/ 'newMatchingResponse' smart constructor.+data MatchingResponse = MatchingResponse'+ { -- | Configuration information about the auto-merging process.+ autoMerging :: Prelude.Maybe AutoMerging,+ -- | The flag that enables the matching process of duplicate profiles.+ enabled :: Prelude.Maybe Prelude.Bool,+ -- | Configuration information for exporting Identity Resolution results, for+ -- example, to an S3 bucket.+ exportingConfig :: Prelude.Maybe ExportingConfig,+ -- | The day and time when do you want to start the Identity Resolution Job+ -- every week.+ jobSchedule :: Prelude.Maybe JobSchedule+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'MatchingResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'autoMerging', 'matchingResponse_autoMerging' - Configuration information about the auto-merging process.+--+-- 'enabled', 'matchingResponse_enabled' - The flag that enables the matching process of duplicate profiles.+--+-- 'exportingConfig', 'matchingResponse_exportingConfig' - Configuration information for exporting Identity Resolution results, for+-- example, to an S3 bucket.+--+-- 'jobSchedule', 'matchingResponse_jobSchedule' - The day and time when do you want to start the Identity Resolution Job+-- every week.+newMatchingResponse ::+ MatchingResponse+newMatchingResponse =+ MatchingResponse'+ { autoMerging = Prelude.Nothing,+ enabled = Prelude.Nothing,+ exportingConfig = Prelude.Nothing,+ jobSchedule = Prelude.Nothing+ }++-- | Configuration information about the auto-merging process.+matchingResponse_autoMerging :: Lens.Lens' MatchingResponse (Prelude.Maybe AutoMerging)+matchingResponse_autoMerging = Lens.lens (\MatchingResponse' {autoMerging} -> autoMerging) (\s@MatchingResponse' {} a -> s {autoMerging = a} :: MatchingResponse)++-- | The flag that enables the matching process of duplicate profiles.+matchingResponse_enabled :: Lens.Lens' MatchingResponse (Prelude.Maybe Prelude.Bool)+matchingResponse_enabled = Lens.lens (\MatchingResponse' {enabled} -> enabled) (\s@MatchingResponse' {} a -> s {enabled = a} :: MatchingResponse)++-- | Configuration information for exporting Identity Resolution results, for+-- example, to an S3 bucket.+matchingResponse_exportingConfig :: Lens.Lens' MatchingResponse (Prelude.Maybe ExportingConfig)+matchingResponse_exportingConfig = Lens.lens (\MatchingResponse' {exportingConfig} -> exportingConfig) (\s@MatchingResponse' {} a -> s {exportingConfig = a} :: MatchingResponse)++-- | The day and time when do you want to start the Identity Resolution Job+-- every week.+matchingResponse_jobSchedule :: Lens.Lens' MatchingResponse (Prelude.Maybe JobSchedule)+matchingResponse_jobSchedule = Lens.lens (\MatchingResponse' {jobSchedule} -> jobSchedule) (\s@MatchingResponse' {} a -> s {jobSchedule = a} :: MatchingResponse)++instance Data.FromJSON MatchingResponse where+ parseJSON =+ Data.withObject+ "MatchingResponse"+ ( \x ->+ MatchingResponse'+ Prelude.<$> (x Data..:? "AutoMerging")+ Prelude.<*> (x Data..:? "Enabled")+ Prelude.<*> (x Data..:? "ExportingConfig")+ Prelude.<*> (x Data..:? "JobSchedule")+ )++instance Prelude.Hashable MatchingResponse where+ hashWithSalt _salt MatchingResponse' {..} =+ _salt+ `Prelude.hashWithSalt` autoMerging+ `Prelude.hashWithSalt` enabled+ `Prelude.hashWithSalt` exportingConfig+ `Prelude.hashWithSalt` jobSchedule++instance Prelude.NFData MatchingResponse where+ rnf MatchingResponse' {..} =+ Prelude.rnf autoMerging+ `Prelude.seq` Prelude.rnf enabled+ `Prelude.seq` Prelude.rnf exportingConfig+ `Prelude.seq` Prelude.rnf jobSchedule
+ gen/Amazonka/CustomerProfiles/Types/ObjectFilter.hs view
@@ -0,0 +1,99 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.CustomerProfiles.Types.ObjectFilter+-- 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.CustomerProfiles.Types.ObjectFilter 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 filter applied to ListProfileObjects response to include profile+-- objects with the specified index values. This filter is only supported+-- for ObjectTypeName _asset, _case and _order.+--+-- /See:/ 'newObjectFilter' smart constructor.+data ObjectFilter = ObjectFilter'+ { -- | A searchable identifier of a standard profile object. The predefined+ -- keys you can use to search for _asset include: _assetId, _assetName,+ -- _serialNumber. The predefined keys you can use to search for _case+ -- include: _caseId. The predefined keys you can use to search for _order+ -- include: _orderId.+ keyName :: Prelude.Text,+ -- | A list of key values.+ values :: [Prelude.Text]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ObjectFilter' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'keyName', 'objectFilter_keyName' - A searchable identifier of a standard profile object. The predefined+-- keys you can use to search for _asset include: _assetId, _assetName,+-- _serialNumber. The predefined keys you can use to search for _case+-- include: _caseId. The predefined keys you can use to search for _order+-- include: _orderId.+--+-- 'values', 'objectFilter_values' - A list of key values.+newObjectFilter ::+ -- | 'keyName'+ Prelude.Text ->+ ObjectFilter+newObjectFilter pKeyName_ =+ ObjectFilter'+ { keyName = pKeyName_,+ values = Prelude.mempty+ }++-- | A searchable identifier of a standard profile object. The predefined+-- keys you can use to search for _asset include: _assetId, _assetName,+-- _serialNumber. The predefined keys you can use to search for _case+-- include: _caseId. The predefined keys you can use to search for _order+-- include: _orderId.+objectFilter_keyName :: Lens.Lens' ObjectFilter Prelude.Text+objectFilter_keyName = Lens.lens (\ObjectFilter' {keyName} -> keyName) (\s@ObjectFilter' {} a -> s {keyName = a} :: ObjectFilter)++-- | A list of key values.+objectFilter_values :: Lens.Lens' ObjectFilter [Prelude.Text]+objectFilter_values = Lens.lens (\ObjectFilter' {values} -> values) (\s@ObjectFilter' {} a -> s {values = a} :: ObjectFilter) Prelude.. Lens.coerced++instance Prelude.Hashable ObjectFilter where+ hashWithSalt _salt ObjectFilter' {..} =+ _salt+ `Prelude.hashWithSalt` keyName+ `Prelude.hashWithSalt` values++instance Prelude.NFData ObjectFilter where+ rnf ObjectFilter' {..} =+ Prelude.rnf keyName+ `Prelude.seq` Prelude.rnf values++instance Data.ToJSON ObjectFilter where+ toJSON ObjectFilter' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just ("KeyName" Data..= keyName),+ Prelude.Just ("Values" Data..= values)+ ]+ )
+ gen/Amazonka/CustomerProfiles/Types/ObjectTypeField.hs view
@@ -0,0 +1,119 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.CustomerProfiles.Types.ObjectTypeField+-- 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.CustomerProfiles.Types.ObjectTypeField where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CustomerProfiles.Types.FieldContentType+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Represents a field in a ProfileObjectType.+--+-- /See:/ 'newObjectTypeField' smart constructor.+data ObjectTypeField = ObjectTypeField'+ { -- | The content type of the field. Used for determining equality when+ -- searching.+ contentType :: Prelude.Maybe FieldContentType,+ -- | A field of a ProfileObject. For example: _source.FirstName, where+ -- “_source” is a ProfileObjectType of a Zendesk user and “FirstName” is a+ -- field in that ObjectType.+ source :: Prelude.Maybe Prelude.Text,+ -- | The location of the data in the standard ProfileObject model. For+ -- example: _profile.Address.PostalCode.+ target :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ObjectTypeField' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'contentType', 'objectTypeField_contentType' - The content type of the field. Used for determining equality when+-- searching.+--+-- 'source', 'objectTypeField_source' - A field of a ProfileObject. For example: _source.FirstName, where+-- “_source” is a ProfileObjectType of a Zendesk user and “FirstName” is a+-- field in that ObjectType.+--+-- 'target', 'objectTypeField_target' - The location of the data in the standard ProfileObject model. For+-- example: _profile.Address.PostalCode.+newObjectTypeField ::+ ObjectTypeField+newObjectTypeField =+ ObjectTypeField'+ { contentType = Prelude.Nothing,+ source = Prelude.Nothing,+ target = Prelude.Nothing+ }++-- | The content type of the field. Used for determining equality when+-- searching.+objectTypeField_contentType :: Lens.Lens' ObjectTypeField (Prelude.Maybe FieldContentType)+objectTypeField_contentType = Lens.lens (\ObjectTypeField' {contentType} -> contentType) (\s@ObjectTypeField' {} a -> s {contentType = a} :: ObjectTypeField)++-- | A field of a ProfileObject. For example: _source.FirstName, where+-- “_source” is a ProfileObjectType of a Zendesk user and “FirstName” is a+-- field in that ObjectType.+objectTypeField_source :: Lens.Lens' ObjectTypeField (Prelude.Maybe Prelude.Text)+objectTypeField_source = Lens.lens (\ObjectTypeField' {source} -> source) (\s@ObjectTypeField' {} a -> s {source = a} :: ObjectTypeField)++-- | The location of the data in the standard ProfileObject model. For+-- example: _profile.Address.PostalCode.+objectTypeField_target :: Lens.Lens' ObjectTypeField (Prelude.Maybe Prelude.Text)+objectTypeField_target = Lens.lens (\ObjectTypeField' {target} -> target) (\s@ObjectTypeField' {} a -> s {target = a} :: ObjectTypeField)++instance Data.FromJSON ObjectTypeField where+ parseJSON =+ Data.withObject+ "ObjectTypeField"+ ( \x ->+ ObjectTypeField'+ Prelude.<$> (x Data..:? "ContentType")+ Prelude.<*> (x Data..:? "Source")+ Prelude.<*> (x Data..:? "Target")+ )++instance Prelude.Hashable ObjectTypeField where+ hashWithSalt _salt ObjectTypeField' {..} =+ _salt+ `Prelude.hashWithSalt` contentType+ `Prelude.hashWithSalt` source+ `Prelude.hashWithSalt` target++instance Prelude.NFData ObjectTypeField where+ rnf ObjectTypeField' {..} =+ Prelude.rnf contentType+ `Prelude.seq` Prelude.rnf source+ `Prelude.seq` Prelude.rnf target++instance Data.ToJSON ObjectTypeField where+ toJSON ObjectTypeField' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("ContentType" Data..=) Prelude.<$> contentType,+ ("Source" Data..=) Prelude.<$> source,+ ("Target" Data..=) Prelude.<$> target+ ]+ )
+ gen/Amazonka/CustomerProfiles/Types/ObjectTypeKey.hs view
@@ -0,0 +1,126 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.CustomerProfiles.Types.ObjectTypeKey+-- 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.CustomerProfiles.Types.ObjectTypeKey where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CustomerProfiles.Types.StandardIdentifier+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | An object that defines the Key element of a ProfileObject. A Key is a+-- special element that can be used to search for a customer profile.+--+-- /See:/ 'newObjectTypeKey' smart constructor.+data ObjectTypeKey = ObjectTypeKey'+ { -- | The reference for the key name of the fields map.+ fieldNames :: Prelude.Maybe [Prelude.Text],+ -- | The types of keys that a ProfileObject can have. Each ProfileObject can+ -- have only 1 UNIQUE key but multiple PROFILE keys. PROFILE, ASSET, CASE,+ -- or ORDER means that this key can be used to tie an object to a PROFILE,+ -- ASSET, CASE, or ORDER respectively. UNIQUE means that it can be used to+ -- uniquely identify an object. If a key a is marked as SECONDARY, it will+ -- be used to search for profiles after all other PROFILE keys have been+ -- searched. A LOOKUP_ONLY key is only used to match a profile but is not+ -- persisted to be used for searching of the profile. A NEW_ONLY key is+ -- only used if the profile does not already exist before the object is+ -- ingested, otherwise it is only used for matching objects to profiles.+ standardIdentifiers :: Prelude.Maybe [StandardIdentifier]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ObjectTypeKey' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'fieldNames', 'objectTypeKey_fieldNames' - The reference for the key name of the fields map.+--+-- 'standardIdentifiers', 'objectTypeKey_standardIdentifiers' - The types of keys that a ProfileObject can have. Each ProfileObject can+-- have only 1 UNIQUE key but multiple PROFILE keys. PROFILE, ASSET, CASE,+-- or ORDER means that this key can be used to tie an object to a PROFILE,+-- ASSET, CASE, or ORDER respectively. UNIQUE means that it can be used to+-- uniquely identify an object. If a key a is marked as SECONDARY, it will+-- be used to search for profiles after all other PROFILE keys have been+-- searched. A LOOKUP_ONLY key is only used to match a profile but is not+-- persisted to be used for searching of the profile. A NEW_ONLY key is+-- only used if the profile does not already exist before the object is+-- ingested, otherwise it is only used for matching objects to profiles.+newObjectTypeKey ::+ ObjectTypeKey+newObjectTypeKey =+ ObjectTypeKey'+ { fieldNames = Prelude.Nothing,+ standardIdentifiers = Prelude.Nothing+ }++-- | The reference for the key name of the fields map.+objectTypeKey_fieldNames :: Lens.Lens' ObjectTypeKey (Prelude.Maybe [Prelude.Text])+objectTypeKey_fieldNames = Lens.lens (\ObjectTypeKey' {fieldNames} -> fieldNames) (\s@ObjectTypeKey' {} a -> s {fieldNames = a} :: ObjectTypeKey) Prelude.. Lens.mapping Lens.coerced++-- | The types of keys that a ProfileObject can have. Each ProfileObject can+-- have only 1 UNIQUE key but multiple PROFILE keys. PROFILE, ASSET, CASE,+-- or ORDER means that this key can be used to tie an object to a PROFILE,+-- ASSET, CASE, or ORDER respectively. UNIQUE means that it can be used to+-- uniquely identify an object. If a key a is marked as SECONDARY, it will+-- be used to search for profiles after all other PROFILE keys have been+-- searched. A LOOKUP_ONLY key is only used to match a profile but is not+-- persisted to be used for searching of the profile. A NEW_ONLY key is+-- only used if the profile does not already exist before the object is+-- ingested, otherwise it is only used for matching objects to profiles.+objectTypeKey_standardIdentifiers :: Lens.Lens' ObjectTypeKey (Prelude.Maybe [StandardIdentifier])+objectTypeKey_standardIdentifiers = Lens.lens (\ObjectTypeKey' {standardIdentifiers} -> standardIdentifiers) (\s@ObjectTypeKey' {} a -> s {standardIdentifiers = a} :: ObjectTypeKey) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON ObjectTypeKey where+ parseJSON =+ Data.withObject+ "ObjectTypeKey"+ ( \x ->+ ObjectTypeKey'+ Prelude.<$> (x Data..:? "FieldNames" Data..!= Prelude.mempty)+ Prelude.<*> ( x+ Data..:? "StandardIdentifiers"+ Data..!= Prelude.mempty+ )+ )++instance Prelude.Hashable ObjectTypeKey where+ hashWithSalt _salt ObjectTypeKey' {..} =+ _salt+ `Prelude.hashWithSalt` fieldNames+ `Prelude.hashWithSalt` standardIdentifiers++instance Prelude.NFData ObjectTypeKey where+ rnf ObjectTypeKey' {..} =+ Prelude.rnf fieldNames+ `Prelude.seq` Prelude.rnf standardIdentifiers++instance Data.ToJSON ObjectTypeKey where+ toJSON ObjectTypeKey' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("FieldNames" Data..=) Prelude.<$> fieldNames,+ ("StandardIdentifiers" Data..=)+ Prelude.<$> standardIdentifiers+ ]+ )
+ gen/Amazonka/CustomerProfiles/Types/OperatorPropertiesKeys.hs view
@@ -0,0 +1,131 @@+{-# 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.CustomerProfiles.Types.OperatorPropertiesKeys+-- 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.CustomerProfiles.Types.OperatorPropertiesKeys+ ( OperatorPropertiesKeys+ ( ..,+ OperatorPropertiesKeys_CONCAT_FORMAT,+ OperatorPropertiesKeys_DATA_TYPE,+ OperatorPropertiesKeys_DESTINATION_DATA_TYPE,+ OperatorPropertiesKeys_LOWER_BOUND,+ OperatorPropertiesKeys_MASK_LENGTH,+ OperatorPropertiesKeys_MASK_VALUE,+ OperatorPropertiesKeys_MATH_OPERATION_FIELDS_ORDER,+ OperatorPropertiesKeys_SOURCE_DATA_TYPE,+ OperatorPropertiesKeys_SUBFIELD_CATEGORY_MAP,+ OperatorPropertiesKeys_TRUNCATE_LENGTH,+ OperatorPropertiesKeys_UPPER_BOUND,+ OperatorPropertiesKeys_VALIDATION_ACTION,+ OperatorPropertiesKeys_VALUE,+ OperatorPropertiesKeys_VALUES+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype OperatorPropertiesKeys = OperatorPropertiesKeys'+ { fromOperatorPropertiesKeys ::+ 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 OperatorPropertiesKeys_CONCAT_FORMAT :: OperatorPropertiesKeys+pattern OperatorPropertiesKeys_CONCAT_FORMAT = OperatorPropertiesKeys' "CONCAT_FORMAT"++pattern OperatorPropertiesKeys_DATA_TYPE :: OperatorPropertiesKeys+pattern OperatorPropertiesKeys_DATA_TYPE = OperatorPropertiesKeys' "DATA_TYPE"++pattern OperatorPropertiesKeys_DESTINATION_DATA_TYPE :: OperatorPropertiesKeys+pattern OperatorPropertiesKeys_DESTINATION_DATA_TYPE = OperatorPropertiesKeys' "DESTINATION_DATA_TYPE"++pattern OperatorPropertiesKeys_LOWER_BOUND :: OperatorPropertiesKeys+pattern OperatorPropertiesKeys_LOWER_BOUND = OperatorPropertiesKeys' "LOWER_BOUND"++pattern OperatorPropertiesKeys_MASK_LENGTH :: OperatorPropertiesKeys+pattern OperatorPropertiesKeys_MASK_LENGTH = OperatorPropertiesKeys' "MASK_LENGTH"++pattern OperatorPropertiesKeys_MASK_VALUE :: OperatorPropertiesKeys+pattern OperatorPropertiesKeys_MASK_VALUE = OperatorPropertiesKeys' "MASK_VALUE"++pattern OperatorPropertiesKeys_MATH_OPERATION_FIELDS_ORDER :: OperatorPropertiesKeys+pattern OperatorPropertiesKeys_MATH_OPERATION_FIELDS_ORDER = OperatorPropertiesKeys' "MATH_OPERATION_FIELDS_ORDER"++pattern OperatorPropertiesKeys_SOURCE_DATA_TYPE :: OperatorPropertiesKeys+pattern OperatorPropertiesKeys_SOURCE_DATA_TYPE = OperatorPropertiesKeys' "SOURCE_DATA_TYPE"++pattern OperatorPropertiesKeys_SUBFIELD_CATEGORY_MAP :: OperatorPropertiesKeys+pattern OperatorPropertiesKeys_SUBFIELD_CATEGORY_MAP = OperatorPropertiesKeys' "SUBFIELD_CATEGORY_MAP"++pattern OperatorPropertiesKeys_TRUNCATE_LENGTH :: OperatorPropertiesKeys+pattern OperatorPropertiesKeys_TRUNCATE_LENGTH = OperatorPropertiesKeys' "TRUNCATE_LENGTH"++pattern OperatorPropertiesKeys_UPPER_BOUND :: OperatorPropertiesKeys+pattern OperatorPropertiesKeys_UPPER_BOUND = OperatorPropertiesKeys' "UPPER_BOUND"++pattern OperatorPropertiesKeys_VALIDATION_ACTION :: OperatorPropertiesKeys+pattern OperatorPropertiesKeys_VALIDATION_ACTION = OperatorPropertiesKeys' "VALIDATION_ACTION"++pattern OperatorPropertiesKeys_VALUE :: OperatorPropertiesKeys+pattern OperatorPropertiesKeys_VALUE = OperatorPropertiesKeys' "VALUE"++pattern OperatorPropertiesKeys_VALUES :: OperatorPropertiesKeys+pattern OperatorPropertiesKeys_VALUES = OperatorPropertiesKeys' "VALUES"++{-# COMPLETE+ OperatorPropertiesKeys_CONCAT_FORMAT,+ OperatorPropertiesKeys_DATA_TYPE,+ OperatorPropertiesKeys_DESTINATION_DATA_TYPE,+ OperatorPropertiesKeys_LOWER_BOUND,+ OperatorPropertiesKeys_MASK_LENGTH,+ OperatorPropertiesKeys_MASK_VALUE,+ OperatorPropertiesKeys_MATH_OPERATION_FIELDS_ORDER,+ OperatorPropertiesKeys_SOURCE_DATA_TYPE,+ OperatorPropertiesKeys_SUBFIELD_CATEGORY_MAP,+ OperatorPropertiesKeys_TRUNCATE_LENGTH,+ OperatorPropertiesKeys_UPPER_BOUND,+ OperatorPropertiesKeys_VALIDATION_ACTION,+ OperatorPropertiesKeys_VALUE,+ OperatorPropertiesKeys_VALUES,+ OperatorPropertiesKeys'+ #-}
+ gen/Amazonka/CustomerProfiles/Types/PartyType.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.CustomerProfiles.Types.PartyType+-- 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.CustomerProfiles.Types.PartyType+ ( PartyType+ ( ..,+ PartyType_BUSINESS,+ PartyType_INDIVIDUAL,+ PartyType_OTHER+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype PartyType = PartyType'+ { fromPartyType ::+ 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 PartyType_BUSINESS :: PartyType+pattern PartyType_BUSINESS = PartyType' "BUSINESS"++pattern PartyType_INDIVIDUAL :: PartyType+pattern PartyType_INDIVIDUAL = PartyType' "INDIVIDUAL"++pattern PartyType_OTHER :: PartyType+pattern PartyType_OTHER = PartyType' "OTHER"++{-# COMPLETE+ PartyType_BUSINESS,+ PartyType_INDIVIDUAL,+ PartyType_OTHER,+ PartyType'+ #-}
+ gen/Amazonka/CustomerProfiles/Types/Profile.hs view
@@ -0,0 +1,420 @@+{-# 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.CustomerProfiles.Types.Profile+-- 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.CustomerProfiles.Types.Profile where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CustomerProfiles.Types.Address+import Amazonka.CustomerProfiles.Types.FoundByKeyValue+import Amazonka.CustomerProfiles.Types.Gender+import Amazonka.CustomerProfiles.Types.PartyType+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The standard profile of a customer.+--+-- /See:/ 'newProfile' smart constructor.+data Profile = Profile'+ { -- | A unique account number that you have given to the customer.+ accountNumber :: Prelude.Maybe Prelude.Text,+ -- | Any additional information relevant to the customer’s profile.+ additionalInformation :: Prelude.Maybe Prelude.Text,+ -- | A generic address associated with the customer that is not mailing,+ -- shipping, or billing.+ address :: Prelude.Maybe Address,+ -- | A key value pair of attributes of a customer profile.+ attributes :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | The customer’s billing address.+ billingAddress :: Prelude.Maybe Address,+ -- | The customer’s birth date.+ birthDate :: Prelude.Maybe Prelude.Text,+ -- | The customer’s business email address.+ businessEmailAddress :: Prelude.Maybe Prelude.Text,+ -- | The name of the customer’s business.+ businessName :: Prelude.Maybe Prelude.Text,+ -- | The customer’s home phone number.+ businessPhoneNumber :: Prelude.Maybe Prelude.Text,+ -- | The customer’s email address, which has not been specified as a personal+ -- or business address.+ emailAddress :: Prelude.Maybe Prelude.Text,+ -- | The customer’s first name.+ firstName :: Prelude.Maybe Prelude.Text,+ -- | A list of items used to find a profile returned in a+ -- <https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_SearchProfiles.html SearchProfiles>+ -- response. An item is a key-value(s) pair that matches an attribute in+ -- the profile.+ --+ -- If the optional @AdditionalSearchKeys@ parameter was included in the+ -- <https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_SearchProfiles.html SearchProfiles>+ -- request, the @FoundByItems@ list should be interpreted based on the+ -- @LogicalOperator@ used in the request:+ --+ -- - @AND@ - The profile included in the response matched all of the+ -- search keys specified in the request. The @FoundByItems@ will+ -- include all of the key-value(s) pairs that were specified in the+ -- request (as this is a requirement of @AND@ search logic).+ --+ -- - @OR@ - The profile included in the response matched at least one of+ -- the search keys specified in the request. The @FoundByItems@ will+ -- include each of the key-value(s) pairs that the profile was found+ -- by.+ --+ -- The @OR@ relationship is the default behavior if the @LogicalOperator@+ -- parameter is not included in the+ -- <https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_SearchProfiles.html SearchProfiles>+ -- request.+ foundByItems :: Prelude.Maybe (Prelude.NonEmpty FoundByKeyValue),+ -- | The gender with which the customer identifies.+ gender :: Prelude.Maybe Gender,+ -- | The customer’s home phone number.+ homePhoneNumber :: Prelude.Maybe Prelude.Text,+ -- | The customer’s last name.+ lastName :: Prelude.Maybe Prelude.Text,+ -- | The customer’s mailing address.+ mailingAddress :: Prelude.Maybe Address,+ -- | The customer’s middle name.+ middleName :: Prelude.Maybe Prelude.Text,+ -- | The customer’s mobile phone number.+ mobilePhoneNumber :: Prelude.Maybe Prelude.Text,+ -- | The type of profile used to describe the customer.+ partyType :: Prelude.Maybe PartyType,+ -- | The customer’s personal email address.+ personalEmailAddress :: Prelude.Maybe Prelude.Text,+ -- | The customer\'s phone number, which has not been specified as a mobile,+ -- home, or business number.+ phoneNumber :: Prelude.Maybe Prelude.Text,+ -- | The unique identifier of a customer profile.+ profileId :: Prelude.Maybe Prelude.Text,+ -- | The customer’s shipping address.+ shippingAddress :: Prelude.Maybe Address+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Profile' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accountNumber', 'profile_accountNumber' - A unique account number that you have given to the customer.+--+-- 'additionalInformation', 'profile_additionalInformation' - Any additional information relevant to the customer’s profile.+--+-- 'address', 'profile_address' - A generic address associated with the customer that is not mailing,+-- shipping, or billing.+--+-- 'attributes', 'profile_attributes' - A key value pair of attributes of a customer profile.+--+-- 'billingAddress', 'profile_billingAddress' - The customer’s billing address.+--+-- 'birthDate', 'profile_birthDate' - The customer’s birth date.+--+-- 'businessEmailAddress', 'profile_businessEmailAddress' - The customer’s business email address.+--+-- 'businessName', 'profile_businessName' - The name of the customer’s business.+--+-- 'businessPhoneNumber', 'profile_businessPhoneNumber' - The customer’s home phone number.+--+-- 'emailAddress', 'profile_emailAddress' - The customer’s email address, which has not been specified as a personal+-- or business address.+--+-- 'firstName', 'profile_firstName' - The customer’s first name.+--+-- 'foundByItems', 'profile_foundByItems' - A list of items used to find a profile returned in a+-- <https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_SearchProfiles.html SearchProfiles>+-- response. An item is a key-value(s) pair that matches an attribute in+-- the profile.+--+-- If the optional @AdditionalSearchKeys@ parameter was included in the+-- <https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_SearchProfiles.html SearchProfiles>+-- request, the @FoundByItems@ list should be interpreted based on the+-- @LogicalOperator@ used in the request:+--+-- - @AND@ - The profile included in the response matched all of the+-- search keys specified in the request. The @FoundByItems@ will+-- include all of the key-value(s) pairs that were specified in the+-- request (as this is a requirement of @AND@ search logic).+--+-- - @OR@ - The profile included in the response matched at least one of+-- the search keys specified in the request. The @FoundByItems@ will+-- include each of the key-value(s) pairs that the profile was found+-- by.+--+-- The @OR@ relationship is the default behavior if the @LogicalOperator@+-- parameter is not included in the+-- <https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_SearchProfiles.html SearchProfiles>+-- request.+--+-- 'gender', 'profile_gender' - The gender with which the customer identifies.+--+-- 'homePhoneNumber', 'profile_homePhoneNumber' - The customer’s home phone number.+--+-- 'lastName', 'profile_lastName' - The customer’s last name.+--+-- 'mailingAddress', 'profile_mailingAddress' - The customer’s mailing address.+--+-- 'middleName', 'profile_middleName' - The customer’s middle name.+--+-- 'mobilePhoneNumber', 'profile_mobilePhoneNumber' - The customer’s mobile phone number.+--+-- 'partyType', 'profile_partyType' - The type of profile used to describe the customer.+--+-- 'personalEmailAddress', 'profile_personalEmailAddress' - The customer’s personal email address.+--+-- 'phoneNumber', 'profile_phoneNumber' - The customer\'s phone number, which has not been specified as a mobile,+-- home, or business number.+--+-- 'profileId', 'profile_profileId' - The unique identifier of a customer profile.+--+-- 'shippingAddress', 'profile_shippingAddress' - The customer’s shipping address.+newProfile ::+ Profile+newProfile =+ Profile'+ { accountNumber = Prelude.Nothing,+ additionalInformation = Prelude.Nothing,+ address = Prelude.Nothing,+ attributes = Prelude.Nothing,+ billingAddress = Prelude.Nothing,+ birthDate = Prelude.Nothing,+ businessEmailAddress = Prelude.Nothing,+ businessName = Prelude.Nothing,+ businessPhoneNumber = Prelude.Nothing,+ emailAddress = Prelude.Nothing,+ firstName = Prelude.Nothing,+ foundByItems = Prelude.Nothing,+ gender = Prelude.Nothing,+ homePhoneNumber = Prelude.Nothing,+ lastName = Prelude.Nothing,+ mailingAddress = Prelude.Nothing,+ middleName = Prelude.Nothing,+ mobilePhoneNumber = Prelude.Nothing,+ partyType = Prelude.Nothing,+ personalEmailAddress = Prelude.Nothing,+ phoneNumber = Prelude.Nothing,+ profileId = Prelude.Nothing,+ shippingAddress = Prelude.Nothing+ }++-- | A unique account number that you have given to the customer.+profile_accountNumber :: Lens.Lens' Profile (Prelude.Maybe Prelude.Text)+profile_accountNumber = Lens.lens (\Profile' {accountNumber} -> accountNumber) (\s@Profile' {} a -> s {accountNumber = a} :: Profile)++-- | Any additional information relevant to the customer’s profile.+profile_additionalInformation :: Lens.Lens' Profile (Prelude.Maybe Prelude.Text)+profile_additionalInformation = Lens.lens (\Profile' {additionalInformation} -> additionalInformation) (\s@Profile' {} a -> s {additionalInformation = a} :: Profile)++-- | A generic address associated with the customer that is not mailing,+-- shipping, or billing.+profile_address :: Lens.Lens' Profile (Prelude.Maybe Address)+profile_address = Lens.lens (\Profile' {address} -> address) (\s@Profile' {} a -> s {address = a} :: Profile)++-- | A key value pair of attributes of a customer profile.+profile_attributes :: Lens.Lens' Profile (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+profile_attributes = Lens.lens (\Profile' {attributes} -> attributes) (\s@Profile' {} a -> s {attributes = a} :: Profile) Prelude.. Lens.mapping Lens.coerced++-- | The customer’s billing address.+profile_billingAddress :: Lens.Lens' Profile (Prelude.Maybe Address)+profile_billingAddress = Lens.lens (\Profile' {billingAddress} -> billingAddress) (\s@Profile' {} a -> s {billingAddress = a} :: Profile)++-- | The customer’s birth date.+profile_birthDate :: Lens.Lens' Profile (Prelude.Maybe Prelude.Text)+profile_birthDate = Lens.lens (\Profile' {birthDate} -> birthDate) (\s@Profile' {} a -> s {birthDate = a} :: Profile)++-- | The customer’s business email address.+profile_businessEmailAddress :: Lens.Lens' Profile (Prelude.Maybe Prelude.Text)+profile_businessEmailAddress = Lens.lens (\Profile' {businessEmailAddress} -> businessEmailAddress) (\s@Profile' {} a -> s {businessEmailAddress = a} :: Profile)++-- | The name of the customer’s business.+profile_businessName :: Lens.Lens' Profile (Prelude.Maybe Prelude.Text)+profile_businessName = Lens.lens (\Profile' {businessName} -> businessName) (\s@Profile' {} a -> s {businessName = a} :: Profile)++-- | The customer’s home phone number.+profile_businessPhoneNumber :: Lens.Lens' Profile (Prelude.Maybe Prelude.Text)+profile_businessPhoneNumber = Lens.lens (\Profile' {businessPhoneNumber} -> businessPhoneNumber) (\s@Profile' {} a -> s {businessPhoneNumber = a} :: Profile)++-- | The customer’s email address, which has not been specified as a personal+-- or business address.+profile_emailAddress :: Lens.Lens' Profile (Prelude.Maybe Prelude.Text)+profile_emailAddress = Lens.lens (\Profile' {emailAddress} -> emailAddress) (\s@Profile' {} a -> s {emailAddress = a} :: Profile)++-- | The customer’s first name.+profile_firstName :: Lens.Lens' Profile (Prelude.Maybe Prelude.Text)+profile_firstName = Lens.lens (\Profile' {firstName} -> firstName) (\s@Profile' {} a -> s {firstName = a} :: Profile)++-- | A list of items used to find a profile returned in a+-- <https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_SearchProfiles.html SearchProfiles>+-- response. An item is a key-value(s) pair that matches an attribute in+-- the profile.+--+-- If the optional @AdditionalSearchKeys@ parameter was included in the+-- <https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_SearchProfiles.html SearchProfiles>+-- request, the @FoundByItems@ list should be interpreted based on the+-- @LogicalOperator@ used in the request:+--+-- - @AND@ - The profile included in the response matched all of the+-- search keys specified in the request. The @FoundByItems@ will+-- include all of the key-value(s) pairs that were specified in the+-- request (as this is a requirement of @AND@ search logic).+--+-- - @OR@ - The profile included in the response matched at least one of+-- the search keys specified in the request. The @FoundByItems@ will+-- include each of the key-value(s) pairs that the profile was found+-- by.+--+-- The @OR@ relationship is the default behavior if the @LogicalOperator@+-- parameter is not included in the+-- <https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_SearchProfiles.html SearchProfiles>+-- request.+profile_foundByItems :: Lens.Lens' Profile (Prelude.Maybe (Prelude.NonEmpty FoundByKeyValue))+profile_foundByItems = Lens.lens (\Profile' {foundByItems} -> foundByItems) (\s@Profile' {} a -> s {foundByItems = a} :: Profile) Prelude.. Lens.mapping Lens.coerced++-- | The gender with which the customer identifies.+profile_gender :: Lens.Lens' Profile (Prelude.Maybe Gender)+profile_gender = Lens.lens (\Profile' {gender} -> gender) (\s@Profile' {} a -> s {gender = a} :: Profile)++-- | The customer’s home phone number.+profile_homePhoneNumber :: Lens.Lens' Profile (Prelude.Maybe Prelude.Text)+profile_homePhoneNumber = Lens.lens (\Profile' {homePhoneNumber} -> homePhoneNumber) (\s@Profile' {} a -> s {homePhoneNumber = a} :: Profile)++-- | The customer’s last name.+profile_lastName :: Lens.Lens' Profile (Prelude.Maybe Prelude.Text)+profile_lastName = Lens.lens (\Profile' {lastName} -> lastName) (\s@Profile' {} a -> s {lastName = a} :: Profile)++-- | The customer’s mailing address.+profile_mailingAddress :: Lens.Lens' Profile (Prelude.Maybe Address)+profile_mailingAddress = Lens.lens (\Profile' {mailingAddress} -> mailingAddress) (\s@Profile' {} a -> s {mailingAddress = a} :: Profile)++-- | The customer’s middle name.+profile_middleName :: Lens.Lens' Profile (Prelude.Maybe Prelude.Text)+profile_middleName = Lens.lens (\Profile' {middleName} -> middleName) (\s@Profile' {} a -> s {middleName = a} :: Profile)++-- | The customer’s mobile phone number.+profile_mobilePhoneNumber :: Lens.Lens' Profile (Prelude.Maybe Prelude.Text)+profile_mobilePhoneNumber = Lens.lens (\Profile' {mobilePhoneNumber} -> mobilePhoneNumber) (\s@Profile' {} a -> s {mobilePhoneNumber = a} :: Profile)++-- | The type of profile used to describe the customer.+profile_partyType :: Lens.Lens' Profile (Prelude.Maybe PartyType)+profile_partyType = Lens.lens (\Profile' {partyType} -> partyType) (\s@Profile' {} a -> s {partyType = a} :: Profile)++-- | The customer’s personal email address.+profile_personalEmailAddress :: Lens.Lens' Profile (Prelude.Maybe Prelude.Text)+profile_personalEmailAddress = Lens.lens (\Profile' {personalEmailAddress} -> personalEmailAddress) (\s@Profile' {} a -> s {personalEmailAddress = a} :: Profile)++-- | The customer\'s phone number, which has not been specified as a mobile,+-- home, or business number.+profile_phoneNumber :: Lens.Lens' Profile (Prelude.Maybe Prelude.Text)+profile_phoneNumber = Lens.lens (\Profile' {phoneNumber} -> phoneNumber) (\s@Profile' {} a -> s {phoneNumber = a} :: Profile)++-- | The unique identifier of a customer profile.+profile_profileId :: Lens.Lens' Profile (Prelude.Maybe Prelude.Text)+profile_profileId = Lens.lens (\Profile' {profileId} -> profileId) (\s@Profile' {} a -> s {profileId = a} :: Profile)++-- | The customer’s shipping address.+profile_shippingAddress :: Lens.Lens' Profile (Prelude.Maybe Address)+profile_shippingAddress = Lens.lens (\Profile' {shippingAddress} -> shippingAddress) (\s@Profile' {} a -> s {shippingAddress = a} :: Profile)++instance Data.FromJSON Profile where+ parseJSON =+ Data.withObject+ "Profile"+ ( \x ->+ Profile'+ Prelude.<$> (x Data..:? "AccountNumber")+ Prelude.<*> (x Data..:? "AdditionalInformation")+ Prelude.<*> (x Data..:? "Address")+ Prelude.<*> (x Data..:? "Attributes" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "BillingAddress")+ Prelude.<*> (x Data..:? "BirthDate")+ Prelude.<*> (x Data..:? "BusinessEmailAddress")+ Prelude.<*> (x Data..:? "BusinessName")+ Prelude.<*> (x Data..:? "BusinessPhoneNumber")+ Prelude.<*> (x Data..:? "EmailAddress")+ Prelude.<*> (x Data..:? "FirstName")+ Prelude.<*> (x Data..:? "FoundByItems")+ Prelude.<*> (x Data..:? "Gender")+ Prelude.<*> (x Data..:? "HomePhoneNumber")+ Prelude.<*> (x Data..:? "LastName")+ Prelude.<*> (x Data..:? "MailingAddress")+ Prelude.<*> (x Data..:? "MiddleName")+ Prelude.<*> (x Data..:? "MobilePhoneNumber")+ Prelude.<*> (x Data..:? "PartyType")+ Prelude.<*> (x Data..:? "PersonalEmailAddress")+ Prelude.<*> (x Data..:? "PhoneNumber")+ Prelude.<*> (x Data..:? "ProfileId")+ Prelude.<*> (x Data..:? "ShippingAddress")+ )++instance Prelude.Hashable Profile where+ hashWithSalt _salt Profile' {..} =+ _salt+ `Prelude.hashWithSalt` accountNumber+ `Prelude.hashWithSalt` additionalInformation+ `Prelude.hashWithSalt` address+ `Prelude.hashWithSalt` attributes+ `Prelude.hashWithSalt` billingAddress+ `Prelude.hashWithSalt` birthDate+ `Prelude.hashWithSalt` businessEmailAddress+ `Prelude.hashWithSalt` businessName+ `Prelude.hashWithSalt` businessPhoneNumber+ `Prelude.hashWithSalt` emailAddress+ `Prelude.hashWithSalt` firstName+ `Prelude.hashWithSalt` foundByItems+ `Prelude.hashWithSalt` gender+ `Prelude.hashWithSalt` homePhoneNumber+ `Prelude.hashWithSalt` lastName+ `Prelude.hashWithSalt` mailingAddress+ `Prelude.hashWithSalt` middleName+ `Prelude.hashWithSalt` mobilePhoneNumber+ `Prelude.hashWithSalt` partyType+ `Prelude.hashWithSalt` personalEmailAddress+ `Prelude.hashWithSalt` phoneNumber+ `Prelude.hashWithSalt` profileId+ `Prelude.hashWithSalt` shippingAddress++instance Prelude.NFData Profile where+ rnf Profile' {..} =+ Prelude.rnf accountNumber+ `Prelude.seq` Prelude.rnf additionalInformation+ `Prelude.seq` Prelude.rnf address+ `Prelude.seq` Prelude.rnf attributes+ `Prelude.seq` Prelude.rnf billingAddress+ `Prelude.seq` Prelude.rnf birthDate+ `Prelude.seq` Prelude.rnf businessEmailAddress+ `Prelude.seq` Prelude.rnf businessName+ `Prelude.seq` Prelude.rnf businessPhoneNumber+ `Prelude.seq` Prelude.rnf emailAddress+ `Prelude.seq` Prelude.rnf firstName+ `Prelude.seq` Prelude.rnf foundByItems+ `Prelude.seq` Prelude.rnf gender+ `Prelude.seq` Prelude.rnf homePhoneNumber+ `Prelude.seq` Prelude.rnf lastName+ `Prelude.seq` Prelude.rnf mailingAddress+ `Prelude.seq` Prelude.rnf middleName+ `Prelude.seq` Prelude.rnf mobilePhoneNumber+ `Prelude.seq` Prelude.rnf partyType+ `Prelude.seq` Prelude.rnf+ personalEmailAddress+ `Prelude.seq` Prelude.rnf phoneNumber+ `Prelude.seq` Prelude.rnf profileId+ `Prelude.seq` Prelude.rnf+ shippingAddress
+ gen/Amazonka/CustomerProfiles/Types/S3ConnectorOperator.hs view
@@ -0,0 +1,161 @@+{-# 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.CustomerProfiles.Types.S3ConnectorOperator+-- 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.CustomerProfiles.Types.S3ConnectorOperator+ ( S3ConnectorOperator+ ( ..,+ S3ConnectorOperator_ADDITION,+ S3ConnectorOperator_BETWEEN,+ S3ConnectorOperator_DIVISION,+ S3ConnectorOperator_EQUAL_TO,+ S3ConnectorOperator_GREATER_THAN,+ S3ConnectorOperator_GREATER_THAN_OR_EQUAL_TO,+ S3ConnectorOperator_LESS_THAN,+ S3ConnectorOperator_LESS_THAN_OR_EQUAL_TO,+ S3ConnectorOperator_MASK_ALL,+ S3ConnectorOperator_MASK_FIRST_N,+ S3ConnectorOperator_MASK_LAST_N,+ S3ConnectorOperator_MULTIPLICATION,+ S3ConnectorOperator_NOT_EQUAL_TO,+ S3ConnectorOperator_NO_OP,+ S3ConnectorOperator_PROJECTION,+ S3ConnectorOperator_SUBTRACTION,+ S3ConnectorOperator_VALIDATE_NON_NEGATIVE,+ S3ConnectorOperator_VALIDATE_NON_NULL,+ S3ConnectorOperator_VALIDATE_NON_ZERO,+ S3ConnectorOperator_VALIDATE_NUMERIC+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype S3ConnectorOperator = S3ConnectorOperator'+ { fromS3ConnectorOperator ::+ 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 S3ConnectorOperator_ADDITION :: S3ConnectorOperator+pattern S3ConnectorOperator_ADDITION = S3ConnectorOperator' "ADDITION"++pattern S3ConnectorOperator_BETWEEN :: S3ConnectorOperator+pattern S3ConnectorOperator_BETWEEN = S3ConnectorOperator' "BETWEEN"++pattern S3ConnectorOperator_DIVISION :: S3ConnectorOperator+pattern S3ConnectorOperator_DIVISION = S3ConnectorOperator' "DIVISION"++pattern S3ConnectorOperator_EQUAL_TO :: S3ConnectorOperator+pattern S3ConnectorOperator_EQUAL_TO = S3ConnectorOperator' "EQUAL_TO"++pattern S3ConnectorOperator_GREATER_THAN :: S3ConnectorOperator+pattern S3ConnectorOperator_GREATER_THAN = S3ConnectorOperator' "GREATER_THAN"++pattern S3ConnectorOperator_GREATER_THAN_OR_EQUAL_TO :: S3ConnectorOperator+pattern S3ConnectorOperator_GREATER_THAN_OR_EQUAL_TO = S3ConnectorOperator' "GREATER_THAN_OR_EQUAL_TO"++pattern S3ConnectorOperator_LESS_THAN :: S3ConnectorOperator+pattern S3ConnectorOperator_LESS_THAN = S3ConnectorOperator' "LESS_THAN"++pattern S3ConnectorOperator_LESS_THAN_OR_EQUAL_TO :: S3ConnectorOperator+pattern S3ConnectorOperator_LESS_THAN_OR_EQUAL_TO = S3ConnectorOperator' "LESS_THAN_OR_EQUAL_TO"++pattern S3ConnectorOperator_MASK_ALL :: S3ConnectorOperator+pattern S3ConnectorOperator_MASK_ALL = S3ConnectorOperator' "MASK_ALL"++pattern S3ConnectorOperator_MASK_FIRST_N :: S3ConnectorOperator+pattern S3ConnectorOperator_MASK_FIRST_N = S3ConnectorOperator' "MASK_FIRST_N"++pattern S3ConnectorOperator_MASK_LAST_N :: S3ConnectorOperator+pattern S3ConnectorOperator_MASK_LAST_N = S3ConnectorOperator' "MASK_LAST_N"++pattern S3ConnectorOperator_MULTIPLICATION :: S3ConnectorOperator+pattern S3ConnectorOperator_MULTIPLICATION = S3ConnectorOperator' "MULTIPLICATION"++pattern S3ConnectorOperator_NOT_EQUAL_TO :: S3ConnectorOperator+pattern S3ConnectorOperator_NOT_EQUAL_TO = S3ConnectorOperator' "NOT_EQUAL_TO"++pattern S3ConnectorOperator_NO_OP :: S3ConnectorOperator+pattern S3ConnectorOperator_NO_OP = S3ConnectorOperator' "NO_OP"++pattern S3ConnectorOperator_PROJECTION :: S3ConnectorOperator+pattern S3ConnectorOperator_PROJECTION = S3ConnectorOperator' "PROJECTION"++pattern S3ConnectorOperator_SUBTRACTION :: S3ConnectorOperator+pattern S3ConnectorOperator_SUBTRACTION = S3ConnectorOperator' "SUBTRACTION"++pattern S3ConnectorOperator_VALIDATE_NON_NEGATIVE :: S3ConnectorOperator+pattern S3ConnectorOperator_VALIDATE_NON_NEGATIVE = S3ConnectorOperator' "VALIDATE_NON_NEGATIVE"++pattern S3ConnectorOperator_VALIDATE_NON_NULL :: S3ConnectorOperator+pattern S3ConnectorOperator_VALIDATE_NON_NULL = S3ConnectorOperator' "VALIDATE_NON_NULL"++pattern S3ConnectorOperator_VALIDATE_NON_ZERO :: S3ConnectorOperator+pattern S3ConnectorOperator_VALIDATE_NON_ZERO = S3ConnectorOperator' "VALIDATE_NON_ZERO"++pattern S3ConnectorOperator_VALIDATE_NUMERIC :: S3ConnectorOperator+pattern S3ConnectorOperator_VALIDATE_NUMERIC = S3ConnectorOperator' "VALIDATE_NUMERIC"++{-# COMPLETE+ S3ConnectorOperator_ADDITION,+ S3ConnectorOperator_BETWEEN,+ S3ConnectorOperator_DIVISION,+ S3ConnectorOperator_EQUAL_TO,+ S3ConnectorOperator_GREATER_THAN,+ S3ConnectorOperator_GREATER_THAN_OR_EQUAL_TO,+ S3ConnectorOperator_LESS_THAN,+ S3ConnectorOperator_LESS_THAN_OR_EQUAL_TO,+ S3ConnectorOperator_MASK_ALL,+ S3ConnectorOperator_MASK_FIRST_N,+ S3ConnectorOperator_MASK_LAST_N,+ S3ConnectorOperator_MULTIPLICATION,+ S3ConnectorOperator_NOT_EQUAL_TO,+ S3ConnectorOperator_NO_OP,+ S3ConnectorOperator_PROJECTION,+ S3ConnectorOperator_SUBTRACTION,+ S3ConnectorOperator_VALIDATE_NON_NEGATIVE,+ S3ConnectorOperator_VALIDATE_NON_NULL,+ S3ConnectorOperator_VALIDATE_NON_ZERO,+ S3ConnectorOperator_VALIDATE_NUMERIC,+ S3ConnectorOperator'+ #-}
+ gen/Amazonka/CustomerProfiles/Types/S3ExportingConfig.hs view
@@ -0,0 +1,102 @@+{-# 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.CustomerProfiles.Types.S3ExportingConfig+-- 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.CustomerProfiles.Types.S3ExportingConfig 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++-- | Configuration information about the S3 bucket where Identity Resolution+-- Jobs write result files.+--+-- /See:/ 'newS3ExportingConfig' smart constructor.+data S3ExportingConfig = S3ExportingConfig'+ { -- | The S3 key name of the location where Identity Resolution Jobs write+ -- result files.+ s3KeyName :: Prelude.Maybe Prelude.Text,+ -- | The name of the S3 bucket where Identity Resolution Jobs write result+ -- files.+ s3BucketName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'S3ExportingConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 's3KeyName', 's3ExportingConfig_s3KeyName' - The S3 key name of the location where Identity Resolution Jobs write+-- result files.+--+-- 's3BucketName', 's3ExportingConfig_s3BucketName' - The name of the S3 bucket where Identity Resolution Jobs write result+-- files.+newS3ExportingConfig ::+ -- | 's3BucketName'+ Prelude.Text ->+ S3ExportingConfig+newS3ExportingConfig pS3BucketName_ =+ S3ExportingConfig'+ { s3KeyName = Prelude.Nothing,+ s3BucketName = pS3BucketName_+ }++-- | The S3 key name of the location where Identity Resolution Jobs write+-- result files.+s3ExportingConfig_s3KeyName :: Lens.Lens' S3ExportingConfig (Prelude.Maybe Prelude.Text)+s3ExportingConfig_s3KeyName = Lens.lens (\S3ExportingConfig' {s3KeyName} -> s3KeyName) (\s@S3ExportingConfig' {} a -> s {s3KeyName = a} :: S3ExportingConfig)++-- | The name of the S3 bucket where Identity Resolution Jobs write result+-- files.+s3ExportingConfig_s3BucketName :: Lens.Lens' S3ExportingConfig Prelude.Text+s3ExportingConfig_s3BucketName = Lens.lens (\S3ExportingConfig' {s3BucketName} -> s3BucketName) (\s@S3ExportingConfig' {} a -> s {s3BucketName = a} :: S3ExportingConfig)++instance Data.FromJSON S3ExportingConfig where+ parseJSON =+ Data.withObject+ "S3ExportingConfig"+ ( \x ->+ S3ExportingConfig'+ Prelude.<$> (x Data..:? "S3KeyName")+ Prelude.<*> (x Data..: "S3BucketName")+ )++instance Prelude.Hashable S3ExportingConfig where+ hashWithSalt _salt S3ExportingConfig' {..} =+ _salt+ `Prelude.hashWithSalt` s3KeyName+ `Prelude.hashWithSalt` s3BucketName++instance Prelude.NFData S3ExportingConfig where+ rnf S3ExportingConfig' {..} =+ Prelude.rnf s3KeyName+ `Prelude.seq` Prelude.rnf s3BucketName++instance Data.ToJSON S3ExportingConfig where+ toJSON S3ExportingConfig' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("S3KeyName" Data..=) Prelude.<$> s3KeyName,+ Prelude.Just ("S3BucketName" Data..= s3BucketName)+ ]+ )
+ gen/Amazonka/CustomerProfiles/Types/S3ExportingLocation.hs view
@@ -0,0 +1,91 @@+{-# 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.CustomerProfiles.Types.S3ExportingLocation+-- 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.CustomerProfiles.Types.S3ExportingLocation 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 S3 location where Identity Resolution Jobs write result files.+--+-- /See:/ 'newS3ExportingLocation' smart constructor.+data S3ExportingLocation = S3ExportingLocation'+ { -- | The name of the S3 bucket name where Identity Resolution Jobs write+ -- result files.+ s3BucketName :: Prelude.Maybe Prelude.Text,+ -- | The S3 key name of the location where Identity Resolution Jobs write+ -- result files.+ s3KeyName :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'S3ExportingLocation' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 's3BucketName', 's3ExportingLocation_s3BucketName' - The name of the S3 bucket name where Identity Resolution Jobs write+-- result files.+--+-- 's3KeyName', 's3ExportingLocation_s3KeyName' - The S3 key name of the location where Identity Resolution Jobs write+-- result files.+newS3ExportingLocation ::+ S3ExportingLocation+newS3ExportingLocation =+ S3ExportingLocation'+ { s3BucketName =+ Prelude.Nothing,+ s3KeyName = Prelude.Nothing+ }++-- | The name of the S3 bucket name where Identity Resolution Jobs write+-- result files.+s3ExportingLocation_s3BucketName :: Lens.Lens' S3ExportingLocation (Prelude.Maybe Prelude.Text)+s3ExportingLocation_s3BucketName = Lens.lens (\S3ExportingLocation' {s3BucketName} -> s3BucketName) (\s@S3ExportingLocation' {} a -> s {s3BucketName = a} :: S3ExportingLocation)++-- | The S3 key name of the location where Identity Resolution Jobs write+-- result files.+s3ExportingLocation_s3KeyName :: Lens.Lens' S3ExportingLocation (Prelude.Maybe Prelude.Text)+s3ExportingLocation_s3KeyName = Lens.lens (\S3ExportingLocation' {s3KeyName} -> s3KeyName) (\s@S3ExportingLocation' {} a -> s {s3KeyName = a} :: S3ExportingLocation)++instance Data.FromJSON S3ExportingLocation where+ parseJSON =+ Data.withObject+ "S3ExportingLocation"+ ( \x ->+ S3ExportingLocation'+ Prelude.<$> (x Data..:? "S3BucketName")+ Prelude.<*> (x Data..:? "S3KeyName")+ )++instance Prelude.Hashable S3ExportingLocation where+ hashWithSalt _salt S3ExportingLocation' {..} =+ _salt+ `Prelude.hashWithSalt` s3BucketName+ `Prelude.hashWithSalt` s3KeyName++instance Prelude.NFData S3ExportingLocation where+ rnf S3ExportingLocation' {..} =+ Prelude.rnf s3BucketName+ `Prelude.seq` Prelude.rnf s3KeyName
+ gen/Amazonka/CustomerProfiles/Types/S3SourceProperties.hs view
@@ -0,0 +1,89 @@+{-# 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.CustomerProfiles.Types.S3SourceProperties+-- 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.CustomerProfiles.Types.S3SourceProperties 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 properties that are applied when Amazon S3 is being used as the flow+-- source.+--+-- /See:/ 'newS3SourceProperties' smart constructor.+data S3SourceProperties = S3SourceProperties'+ { -- | The object key for the Amazon S3 bucket in which the source files are+ -- stored.+ bucketPrefix :: Prelude.Maybe Prelude.Text,+ -- | The Amazon S3 bucket name where the source files are stored.+ bucketName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'S3SourceProperties' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'bucketPrefix', 's3SourceProperties_bucketPrefix' - The object key for the Amazon S3 bucket in which the source files are+-- stored.+--+-- 'bucketName', 's3SourceProperties_bucketName' - The Amazon S3 bucket name where the source files are stored.+newS3SourceProperties ::+ -- | 'bucketName'+ Prelude.Text ->+ S3SourceProperties+newS3SourceProperties pBucketName_ =+ S3SourceProperties'+ { bucketPrefix = Prelude.Nothing,+ bucketName = pBucketName_+ }++-- | The object key for the Amazon S3 bucket in which the source files are+-- stored.+s3SourceProperties_bucketPrefix :: Lens.Lens' S3SourceProperties (Prelude.Maybe Prelude.Text)+s3SourceProperties_bucketPrefix = Lens.lens (\S3SourceProperties' {bucketPrefix} -> bucketPrefix) (\s@S3SourceProperties' {} a -> s {bucketPrefix = a} :: S3SourceProperties)++-- | The Amazon S3 bucket name where the source files are stored.+s3SourceProperties_bucketName :: Lens.Lens' S3SourceProperties Prelude.Text+s3SourceProperties_bucketName = Lens.lens (\S3SourceProperties' {bucketName} -> bucketName) (\s@S3SourceProperties' {} a -> s {bucketName = a} :: S3SourceProperties)++instance Prelude.Hashable S3SourceProperties where+ hashWithSalt _salt S3SourceProperties' {..} =+ _salt+ `Prelude.hashWithSalt` bucketPrefix+ `Prelude.hashWithSalt` bucketName++instance Prelude.NFData S3SourceProperties where+ rnf S3SourceProperties' {..} =+ Prelude.rnf bucketPrefix+ `Prelude.seq` Prelude.rnf bucketName++instance Data.ToJSON S3SourceProperties where+ toJSON S3SourceProperties' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("BucketPrefix" Data..=) Prelude.<$> bucketPrefix,+ Prelude.Just ("BucketName" Data..= bucketName)+ ]+ )
+ gen/Amazonka/CustomerProfiles/Types/SalesforceConnectorOperator.hs view
@@ -0,0 +1,166 @@+{-# 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.CustomerProfiles.Types.SalesforceConnectorOperator+-- 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.CustomerProfiles.Types.SalesforceConnectorOperator+ ( SalesforceConnectorOperator+ ( ..,+ SalesforceConnectorOperator_ADDITION,+ SalesforceConnectorOperator_BETWEEN,+ SalesforceConnectorOperator_CONTAINS,+ SalesforceConnectorOperator_DIVISION,+ SalesforceConnectorOperator_EQUAL_TO,+ SalesforceConnectorOperator_GREATER_THAN,+ SalesforceConnectorOperator_GREATER_THAN_OR_EQUAL_TO,+ SalesforceConnectorOperator_LESS_THAN,+ SalesforceConnectorOperator_LESS_THAN_OR_EQUAL_TO,+ SalesforceConnectorOperator_MASK_ALL,+ SalesforceConnectorOperator_MASK_FIRST_N,+ SalesforceConnectorOperator_MASK_LAST_N,+ SalesforceConnectorOperator_MULTIPLICATION,+ SalesforceConnectorOperator_NOT_EQUAL_TO,+ SalesforceConnectorOperator_NO_OP,+ SalesforceConnectorOperator_PROJECTION,+ SalesforceConnectorOperator_SUBTRACTION,+ SalesforceConnectorOperator_VALIDATE_NON_NEGATIVE,+ SalesforceConnectorOperator_VALIDATE_NON_NULL,+ SalesforceConnectorOperator_VALIDATE_NON_ZERO,+ SalesforceConnectorOperator_VALIDATE_NUMERIC+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype SalesforceConnectorOperator = SalesforceConnectorOperator'+ { fromSalesforceConnectorOperator ::+ 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 SalesforceConnectorOperator_ADDITION :: SalesforceConnectorOperator+pattern SalesforceConnectorOperator_ADDITION = SalesforceConnectorOperator' "ADDITION"++pattern SalesforceConnectorOperator_BETWEEN :: SalesforceConnectorOperator+pattern SalesforceConnectorOperator_BETWEEN = SalesforceConnectorOperator' "BETWEEN"++pattern SalesforceConnectorOperator_CONTAINS :: SalesforceConnectorOperator+pattern SalesforceConnectorOperator_CONTAINS = SalesforceConnectorOperator' "CONTAINS"++pattern SalesforceConnectorOperator_DIVISION :: SalesforceConnectorOperator+pattern SalesforceConnectorOperator_DIVISION = SalesforceConnectorOperator' "DIVISION"++pattern SalesforceConnectorOperator_EQUAL_TO :: SalesforceConnectorOperator+pattern SalesforceConnectorOperator_EQUAL_TO = SalesforceConnectorOperator' "EQUAL_TO"++pattern SalesforceConnectorOperator_GREATER_THAN :: SalesforceConnectorOperator+pattern SalesforceConnectorOperator_GREATER_THAN = SalesforceConnectorOperator' "GREATER_THAN"++pattern SalesforceConnectorOperator_GREATER_THAN_OR_EQUAL_TO :: SalesforceConnectorOperator+pattern SalesforceConnectorOperator_GREATER_THAN_OR_EQUAL_TO = SalesforceConnectorOperator' "GREATER_THAN_OR_EQUAL_TO"++pattern SalesforceConnectorOperator_LESS_THAN :: SalesforceConnectorOperator+pattern SalesforceConnectorOperator_LESS_THAN = SalesforceConnectorOperator' "LESS_THAN"++pattern SalesforceConnectorOperator_LESS_THAN_OR_EQUAL_TO :: SalesforceConnectorOperator+pattern SalesforceConnectorOperator_LESS_THAN_OR_EQUAL_TO = SalesforceConnectorOperator' "LESS_THAN_OR_EQUAL_TO"++pattern SalesforceConnectorOperator_MASK_ALL :: SalesforceConnectorOperator+pattern SalesforceConnectorOperator_MASK_ALL = SalesforceConnectorOperator' "MASK_ALL"++pattern SalesforceConnectorOperator_MASK_FIRST_N :: SalesforceConnectorOperator+pattern SalesforceConnectorOperator_MASK_FIRST_N = SalesforceConnectorOperator' "MASK_FIRST_N"++pattern SalesforceConnectorOperator_MASK_LAST_N :: SalesforceConnectorOperator+pattern SalesforceConnectorOperator_MASK_LAST_N = SalesforceConnectorOperator' "MASK_LAST_N"++pattern SalesforceConnectorOperator_MULTIPLICATION :: SalesforceConnectorOperator+pattern SalesforceConnectorOperator_MULTIPLICATION = SalesforceConnectorOperator' "MULTIPLICATION"++pattern SalesforceConnectorOperator_NOT_EQUAL_TO :: SalesforceConnectorOperator+pattern SalesforceConnectorOperator_NOT_EQUAL_TO = SalesforceConnectorOperator' "NOT_EQUAL_TO"++pattern SalesforceConnectorOperator_NO_OP :: SalesforceConnectorOperator+pattern SalesforceConnectorOperator_NO_OP = SalesforceConnectorOperator' "NO_OP"++pattern SalesforceConnectorOperator_PROJECTION :: SalesforceConnectorOperator+pattern SalesforceConnectorOperator_PROJECTION = SalesforceConnectorOperator' "PROJECTION"++pattern SalesforceConnectorOperator_SUBTRACTION :: SalesforceConnectorOperator+pattern SalesforceConnectorOperator_SUBTRACTION = SalesforceConnectorOperator' "SUBTRACTION"++pattern SalesforceConnectorOperator_VALIDATE_NON_NEGATIVE :: SalesforceConnectorOperator+pattern SalesforceConnectorOperator_VALIDATE_NON_NEGATIVE = SalesforceConnectorOperator' "VALIDATE_NON_NEGATIVE"++pattern SalesforceConnectorOperator_VALIDATE_NON_NULL :: SalesforceConnectorOperator+pattern SalesforceConnectorOperator_VALIDATE_NON_NULL = SalesforceConnectorOperator' "VALIDATE_NON_NULL"++pattern SalesforceConnectorOperator_VALIDATE_NON_ZERO :: SalesforceConnectorOperator+pattern SalesforceConnectorOperator_VALIDATE_NON_ZERO = SalesforceConnectorOperator' "VALIDATE_NON_ZERO"++pattern SalesforceConnectorOperator_VALIDATE_NUMERIC :: SalesforceConnectorOperator+pattern SalesforceConnectorOperator_VALIDATE_NUMERIC = SalesforceConnectorOperator' "VALIDATE_NUMERIC"++{-# COMPLETE+ SalesforceConnectorOperator_ADDITION,+ SalesforceConnectorOperator_BETWEEN,+ SalesforceConnectorOperator_CONTAINS,+ SalesforceConnectorOperator_DIVISION,+ SalesforceConnectorOperator_EQUAL_TO,+ SalesforceConnectorOperator_GREATER_THAN,+ SalesforceConnectorOperator_GREATER_THAN_OR_EQUAL_TO,+ SalesforceConnectorOperator_LESS_THAN,+ SalesforceConnectorOperator_LESS_THAN_OR_EQUAL_TO,+ SalesforceConnectorOperator_MASK_ALL,+ SalesforceConnectorOperator_MASK_FIRST_N,+ SalesforceConnectorOperator_MASK_LAST_N,+ SalesforceConnectorOperator_MULTIPLICATION,+ SalesforceConnectorOperator_NOT_EQUAL_TO,+ SalesforceConnectorOperator_NO_OP,+ SalesforceConnectorOperator_PROJECTION,+ SalesforceConnectorOperator_SUBTRACTION,+ SalesforceConnectorOperator_VALIDATE_NON_NEGATIVE,+ SalesforceConnectorOperator_VALIDATE_NON_NULL,+ SalesforceConnectorOperator_VALIDATE_NON_ZERO,+ SalesforceConnectorOperator_VALIDATE_NUMERIC,+ SalesforceConnectorOperator'+ #-}
+ gen/Amazonka/CustomerProfiles/Types/SalesforceSourceProperties.hs view
@@ -0,0 +1,104 @@+{-# 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.CustomerProfiles.Types.SalesforceSourceProperties+-- 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.CustomerProfiles.Types.SalesforceSourceProperties 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 properties that are applied when Salesforce is being used as a+-- source.+--+-- /See:/ 'newSalesforceSourceProperties' smart constructor.+data SalesforceSourceProperties = SalesforceSourceProperties'+ { -- | The flag that enables dynamic fetching of new (recently added) fields in+ -- the Salesforce objects while running a flow.+ enableDynamicFieldUpdate :: Prelude.Maybe Prelude.Bool,+ -- | Indicates whether Amazon AppFlow includes deleted files in the flow run.+ includeDeletedRecords :: Prelude.Maybe Prelude.Bool,+ -- | The object specified in the Salesforce flow source.+ object' :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SalesforceSourceProperties' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'enableDynamicFieldUpdate', 'salesforceSourceProperties_enableDynamicFieldUpdate' - The flag that enables dynamic fetching of new (recently added) fields in+-- the Salesforce objects while running a flow.+--+-- 'includeDeletedRecords', 'salesforceSourceProperties_includeDeletedRecords' - Indicates whether Amazon AppFlow includes deleted files in the flow run.+--+-- 'object'', 'salesforceSourceProperties_object' - The object specified in the Salesforce flow source.+newSalesforceSourceProperties ::+ -- | 'object''+ Prelude.Text ->+ SalesforceSourceProperties+newSalesforceSourceProperties pObject_ =+ SalesforceSourceProperties'+ { enableDynamicFieldUpdate =+ Prelude.Nothing,+ includeDeletedRecords = Prelude.Nothing,+ object' = pObject_+ }++-- | The flag that enables dynamic fetching of new (recently added) fields in+-- the Salesforce objects while running a flow.+salesforceSourceProperties_enableDynamicFieldUpdate :: Lens.Lens' SalesforceSourceProperties (Prelude.Maybe Prelude.Bool)+salesforceSourceProperties_enableDynamicFieldUpdate = Lens.lens (\SalesforceSourceProperties' {enableDynamicFieldUpdate} -> enableDynamicFieldUpdate) (\s@SalesforceSourceProperties' {} a -> s {enableDynamicFieldUpdate = a} :: SalesforceSourceProperties)++-- | Indicates whether Amazon AppFlow includes deleted files in the flow run.+salesforceSourceProperties_includeDeletedRecords :: Lens.Lens' SalesforceSourceProperties (Prelude.Maybe Prelude.Bool)+salesforceSourceProperties_includeDeletedRecords = Lens.lens (\SalesforceSourceProperties' {includeDeletedRecords} -> includeDeletedRecords) (\s@SalesforceSourceProperties' {} a -> s {includeDeletedRecords = a} :: SalesforceSourceProperties)++-- | The object specified in the Salesforce flow source.+salesforceSourceProperties_object :: Lens.Lens' SalesforceSourceProperties Prelude.Text+salesforceSourceProperties_object = Lens.lens (\SalesforceSourceProperties' {object'} -> object') (\s@SalesforceSourceProperties' {} a -> s {object' = a} :: SalesforceSourceProperties)++instance Prelude.Hashable SalesforceSourceProperties where+ hashWithSalt _salt SalesforceSourceProperties' {..} =+ _salt+ `Prelude.hashWithSalt` enableDynamicFieldUpdate+ `Prelude.hashWithSalt` includeDeletedRecords+ `Prelude.hashWithSalt` object'++instance Prelude.NFData SalesforceSourceProperties where+ rnf SalesforceSourceProperties' {..} =+ Prelude.rnf enableDynamicFieldUpdate+ `Prelude.seq` Prelude.rnf includeDeletedRecords+ `Prelude.seq` Prelude.rnf object'++instance Data.ToJSON SalesforceSourceProperties where+ toJSON SalesforceSourceProperties' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("EnableDynamicFieldUpdate" Data..=)+ Prelude.<$> enableDynamicFieldUpdate,+ ("IncludeDeletedRecords" Data..=)+ Prelude.<$> includeDeletedRecords,+ Prelude.Just ("Object" Data..= object')+ ]+ )
+ gen/Amazonka/CustomerProfiles/Types/ScheduledTriggerProperties.hs view
@@ -0,0 +1,169 @@+{-# 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.CustomerProfiles.Types.ScheduledTriggerProperties+-- 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.CustomerProfiles.Types.ScheduledTriggerProperties where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CustomerProfiles.Types.DataPullMode+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Specifies the configuration details of a scheduled-trigger flow that you+-- define. Currently, these settings only apply to the scheduled-trigger+-- type.+--+-- /See:/ 'newScheduledTriggerProperties' smart constructor.+data ScheduledTriggerProperties = ScheduledTriggerProperties'+ { -- | Specifies whether a scheduled flow has an incremental data transfer or a+ -- complete data transfer for each flow run.+ dataPullMode :: Prelude.Maybe DataPullMode,+ -- | Specifies the date range for the records to import from the connector in+ -- the first flow run.+ firstExecutionFrom :: Prelude.Maybe Data.POSIX,+ -- | Specifies the scheduled end time for a scheduled-trigger flow.+ scheduleEndTime :: Prelude.Maybe Data.POSIX,+ -- | Specifies the optional offset that is added to the time interval for a+ -- schedule-triggered flow.+ scheduleOffset :: Prelude.Maybe Prelude.Natural,+ -- | Specifies the scheduled start time for a scheduled-trigger flow.+ scheduleStartTime :: Prelude.Maybe Data.POSIX,+ -- | Specifies the time zone used when referring to the date and time of a+ -- scheduled-triggered flow, such as America\/New_York.+ timezone :: Prelude.Maybe Prelude.Text,+ -- | The scheduling expression that determines the rate at which the schedule+ -- will run, for example rate (5 minutes).+ scheduleExpression :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ScheduledTriggerProperties' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dataPullMode', 'scheduledTriggerProperties_dataPullMode' - Specifies whether a scheduled flow has an incremental data transfer or a+-- complete data transfer for each flow run.+--+-- 'firstExecutionFrom', 'scheduledTriggerProperties_firstExecutionFrom' - Specifies the date range for the records to import from the connector in+-- the first flow run.+--+-- 'scheduleEndTime', 'scheduledTriggerProperties_scheduleEndTime' - Specifies the scheduled end time for a scheduled-trigger flow.+--+-- 'scheduleOffset', 'scheduledTriggerProperties_scheduleOffset' - Specifies the optional offset that is added to the time interval for a+-- schedule-triggered flow.+--+-- 'scheduleStartTime', 'scheduledTriggerProperties_scheduleStartTime' - Specifies the scheduled start time for a scheduled-trigger flow.+--+-- 'timezone', 'scheduledTriggerProperties_timezone' - Specifies the time zone used when referring to the date and time of a+-- scheduled-triggered flow, such as America\/New_York.+--+-- 'scheduleExpression', 'scheduledTriggerProperties_scheduleExpression' - The scheduling expression that determines the rate at which the schedule+-- will run, for example rate (5 minutes).+newScheduledTriggerProperties ::+ -- | 'scheduleExpression'+ Prelude.Text ->+ ScheduledTriggerProperties+newScheduledTriggerProperties pScheduleExpression_ =+ ScheduledTriggerProperties'+ { dataPullMode =+ Prelude.Nothing,+ firstExecutionFrom = Prelude.Nothing,+ scheduleEndTime = Prelude.Nothing,+ scheduleOffset = Prelude.Nothing,+ scheduleStartTime = Prelude.Nothing,+ timezone = Prelude.Nothing,+ scheduleExpression = pScheduleExpression_+ }++-- | Specifies whether a scheduled flow has an incremental data transfer or a+-- complete data transfer for each flow run.+scheduledTriggerProperties_dataPullMode :: Lens.Lens' ScheduledTriggerProperties (Prelude.Maybe DataPullMode)+scheduledTriggerProperties_dataPullMode = Lens.lens (\ScheduledTriggerProperties' {dataPullMode} -> dataPullMode) (\s@ScheduledTriggerProperties' {} a -> s {dataPullMode = a} :: ScheduledTriggerProperties)++-- | Specifies the date range for the records to import from the connector in+-- the first flow run.+scheduledTriggerProperties_firstExecutionFrom :: Lens.Lens' ScheduledTriggerProperties (Prelude.Maybe Prelude.UTCTime)+scheduledTriggerProperties_firstExecutionFrom = Lens.lens (\ScheduledTriggerProperties' {firstExecutionFrom} -> firstExecutionFrom) (\s@ScheduledTriggerProperties' {} a -> s {firstExecutionFrom = a} :: ScheduledTriggerProperties) Prelude.. Lens.mapping Data._Time++-- | Specifies the scheduled end time for a scheduled-trigger flow.+scheduledTriggerProperties_scheduleEndTime :: Lens.Lens' ScheduledTriggerProperties (Prelude.Maybe Prelude.UTCTime)+scheduledTriggerProperties_scheduleEndTime = Lens.lens (\ScheduledTriggerProperties' {scheduleEndTime} -> scheduleEndTime) (\s@ScheduledTriggerProperties' {} a -> s {scheduleEndTime = a} :: ScheduledTriggerProperties) Prelude.. Lens.mapping Data._Time++-- | Specifies the optional offset that is added to the time interval for a+-- schedule-triggered flow.+scheduledTriggerProperties_scheduleOffset :: Lens.Lens' ScheduledTriggerProperties (Prelude.Maybe Prelude.Natural)+scheduledTriggerProperties_scheduleOffset = Lens.lens (\ScheduledTriggerProperties' {scheduleOffset} -> scheduleOffset) (\s@ScheduledTriggerProperties' {} a -> s {scheduleOffset = a} :: ScheduledTriggerProperties)++-- | Specifies the scheduled start time for a scheduled-trigger flow.+scheduledTriggerProperties_scheduleStartTime :: Lens.Lens' ScheduledTriggerProperties (Prelude.Maybe Prelude.UTCTime)+scheduledTriggerProperties_scheduleStartTime = Lens.lens (\ScheduledTriggerProperties' {scheduleStartTime} -> scheduleStartTime) (\s@ScheduledTriggerProperties' {} a -> s {scheduleStartTime = a} :: ScheduledTriggerProperties) Prelude.. Lens.mapping Data._Time++-- | Specifies the time zone used when referring to the date and time of a+-- scheduled-triggered flow, such as America\/New_York.+scheduledTriggerProperties_timezone :: Lens.Lens' ScheduledTriggerProperties (Prelude.Maybe Prelude.Text)+scheduledTriggerProperties_timezone = Lens.lens (\ScheduledTriggerProperties' {timezone} -> timezone) (\s@ScheduledTriggerProperties' {} a -> s {timezone = a} :: ScheduledTriggerProperties)++-- | The scheduling expression that determines the rate at which the schedule+-- will run, for example rate (5 minutes).+scheduledTriggerProperties_scheduleExpression :: Lens.Lens' ScheduledTriggerProperties Prelude.Text+scheduledTriggerProperties_scheduleExpression = Lens.lens (\ScheduledTriggerProperties' {scheduleExpression} -> scheduleExpression) (\s@ScheduledTriggerProperties' {} a -> s {scheduleExpression = a} :: ScheduledTriggerProperties)++instance Prelude.Hashable ScheduledTriggerProperties where+ hashWithSalt _salt ScheduledTriggerProperties' {..} =+ _salt+ `Prelude.hashWithSalt` dataPullMode+ `Prelude.hashWithSalt` firstExecutionFrom+ `Prelude.hashWithSalt` scheduleEndTime+ `Prelude.hashWithSalt` scheduleOffset+ `Prelude.hashWithSalt` scheduleStartTime+ `Prelude.hashWithSalt` timezone+ `Prelude.hashWithSalt` scheduleExpression++instance Prelude.NFData ScheduledTriggerProperties where+ rnf ScheduledTriggerProperties' {..} =+ Prelude.rnf dataPullMode+ `Prelude.seq` Prelude.rnf firstExecutionFrom+ `Prelude.seq` Prelude.rnf scheduleEndTime+ `Prelude.seq` Prelude.rnf scheduleOffset+ `Prelude.seq` Prelude.rnf scheduleStartTime+ `Prelude.seq` Prelude.rnf timezone+ `Prelude.seq` Prelude.rnf scheduleExpression++instance Data.ToJSON ScheduledTriggerProperties where+ toJSON ScheduledTriggerProperties' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("DataPullMode" Data..=) Prelude.<$> dataPullMode,+ ("FirstExecutionFrom" Data..=)+ Prelude.<$> firstExecutionFrom,+ ("ScheduleEndTime" Data..=)+ Prelude.<$> scheduleEndTime,+ ("ScheduleOffset" Data..=)+ Prelude.<$> scheduleOffset,+ ("ScheduleStartTime" Data..=)+ Prelude.<$> scheduleStartTime,+ ("Timezone" Data..=) Prelude.<$> timezone,+ Prelude.Just+ ("ScheduleExpression" Data..= scheduleExpression)+ ]+ )
+ gen/Amazonka/CustomerProfiles/Types/ServiceNowConnectorOperator.hs view
@@ -0,0 +1,166 @@+{-# 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.CustomerProfiles.Types.ServiceNowConnectorOperator+-- 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.CustomerProfiles.Types.ServiceNowConnectorOperator+ ( ServiceNowConnectorOperator+ ( ..,+ ServiceNowConnectorOperator_ADDITION,+ ServiceNowConnectorOperator_BETWEEN,+ ServiceNowConnectorOperator_CONTAINS,+ ServiceNowConnectorOperator_DIVISION,+ ServiceNowConnectorOperator_EQUAL_TO,+ ServiceNowConnectorOperator_GREATER_THAN,+ ServiceNowConnectorOperator_GREATER_THAN_OR_EQUAL_TO,+ ServiceNowConnectorOperator_LESS_THAN,+ ServiceNowConnectorOperator_LESS_THAN_OR_EQUAL_TO,+ ServiceNowConnectorOperator_MASK_ALL,+ ServiceNowConnectorOperator_MASK_FIRST_N,+ ServiceNowConnectorOperator_MASK_LAST_N,+ ServiceNowConnectorOperator_MULTIPLICATION,+ ServiceNowConnectorOperator_NOT_EQUAL_TO,+ ServiceNowConnectorOperator_NO_OP,+ ServiceNowConnectorOperator_PROJECTION,+ ServiceNowConnectorOperator_SUBTRACTION,+ ServiceNowConnectorOperator_VALIDATE_NON_NEGATIVE,+ ServiceNowConnectorOperator_VALIDATE_NON_NULL,+ ServiceNowConnectorOperator_VALIDATE_NON_ZERO,+ ServiceNowConnectorOperator_VALIDATE_NUMERIC+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ServiceNowConnectorOperator = ServiceNowConnectorOperator'+ { fromServiceNowConnectorOperator ::+ 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 ServiceNowConnectorOperator_ADDITION :: ServiceNowConnectorOperator+pattern ServiceNowConnectorOperator_ADDITION = ServiceNowConnectorOperator' "ADDITION"++pattern ServiceNowConnectorOperator_BETWEEN :: ServiceNowConnectorOperator+pattern ServiceNowConnectorOperator_BETWEEN = ServiceNowConnectorOperator' "BETWEEN"++pattern ServiceNowConnectorOperator_CONTAINS :: ServiceNowConnectorOperator+pattern ServiceNowConnectorOperator_CONTAINS = ServiceNowConnectorOperator' "CONTAINS"++pattern ServiceNowConnectorOperator_DIVISION :: ServiceNowConnectorOperator+pattern ServiceNowConnectorOperator_DIVISION = ServiceNowConnectorOperator' "DIVISION"++pattern ServiceNowConnectorOperator_EQUAL_TO :: ServiceNowConnectorOperator+pattern ServiceNowConnectorOperator_EQUAL_TO = ServiceNowConnectorOperator' "EQUAL_TO"++pattern ServiceNowConnectorOperator_GREATER_THAN :: ServiceNowConnectorOperator+pattern ServiceNowConnectorOperator_GREATER_THAN = ServiceNowConnectorOperator' "GREATER_THAN"++pattern ServiceNowConnectorOperator_GREATER_THAN_OR_EQUAL_TO :: ServiceNowConnectorOperator+pattern ServiceNowConnectorOperator_GREATER_THAN_OR_EQUAL_TO = ServiceNowConnectorOperator' "GREATER_THAN_OR_EQUAL_TO"++pattern ServiceNowConnectorOperator_LESS_THAN :: ServiceNowConnectorOperator+pattern ServiceNowConnectorOperator_LESS_THAN = ServiceNowConnectorOperator' "LESS_THAN"++pattern ServiceNowConnectorOperator_LESS_THAN_OR_EQUAL_TO :: ServiceNowConnectorOperator+pattern ServiceNowConnectorOperator_LESS_THAN_OR_EQUAL_TO = ServiceNowConnectorOperator' "LESS_THAN_OR_EQUAL_TO"++pattern ServiceNowConnectorOperator_MASK_ALL :: ServiceNowConnectorOperator+pattern ServiceNowConnectorOperator_MASK_ALL = ServiceNowConnectorOperator' "MASK_ALL"++pattern ServiceNowConnectorOperator_MASK_FIRST_N :: ServiceNowConnectorOperator+pattern ServiceNowConnectorOperator_MASK_FIRST_N = ServiceNowConnectorOperator' "MASK_FIRST_N"++pattern ServiceNowConnectorOperator_MASK_LAST_N :: ServiceNowConnectorOperator+pattern ServiceNowConnectorOperator_MASK_LAST_N = ServiceNowConnectorOperator' "MASK_LAST_N"++pattern ServiceNowConnectorOperator_MULTIPLICATION :: ServiceNowConnectorOperator+pattern ServiceNowConnectorOperator_MULTIPLICATION = ServiceNowConnectorOperator' "MULTIPLICATION"++pattern ServiceNowConnectorOperator_NOT_EQUAL_TO :: ServiceNowConnectorOperator+pattern ServiceNowConnectorOperator_NOT_EQUAL_TO = ServiceNowConnectorOperator' "NOT_EQUAL_TO"++pattern ServiceNowConnectorOperator_NO_OP :: ServiceNowConnectorOperator+pattern ServiceNowConnectorOperator_NO_OP = ServiceNowConnectorOperator' "NO_OP"++pattern ServiceNowConnectorOperator_PROJECTION :: ServiceNowConnectorOperator+pattern ServiceNowConnectorOperator_PROJECTION = ServiceNowConnectorOperator' "PROJECTION"++pattern ServiceNowConnectorOperator_SUBTRACTION :: ServiceNowConnectorOperator+pattern ServiceNowConnectorOperator_SUBTRACTION = ServiceNowConnectorOperator' "SUBTRACTION"++pattern ServiceNowConnectorOperator_VALIDATE_NON_NEGATIVE :: ServiceNowConnectorOperator+pattern ServiceNowConnectorOperator_VALIDATE_NON_NEGATIVE = ServiceNowConnectorOperator' "VALIDATE_NON_NEGATIVE"++pattern ServiceNowConnectorOperator_VALIDATE_NON_NULL :: ServiceNowConnectorOperator+pattern ServiceNowConnectorOperator_VALIDATE_NON_NULL = ServiceNowConnectorOperator' "VALIDATE_NON_NULL"++pattern ServiceNowConnectorOperator_VALIDATE_NON_ZERO :: ServiceNowConnectorOperator+pattern ServiceNowConnectorOperator_VALIDATE_NON_ZERO = ServiceNowConnectorOperator' "VALIDATE_NON_ZERO"++pattern ServiceNowConnectorOperator_VALIDATE_NUMERIC :: ServiceNowConnectorOperator+pattern ServiceNowConnectorOperator_VALIDATE_NUMERIC = ServiceNowConnectorOperator' "VALIDATE_NUMERIC"++{-# COMPLETE+ ServiceNowConnectorOperator_ADDITION,+ ServiceNowConnectorOperator_BETWEEN,+ ServiceNowConnectorOperator_CONTAINS,+ ServiceNowConnectorOperator_DIVISION,+ ServiceNowConnectorOperator_EQUAL_TO,+ ServiceNowConnectorOperator_GREATER_THAN,+ ServiceNowConnectorOperator_GREATER_THAN_OR_EQUAL_TO,+ ServiceNowConnectorOperator_LESS_THAN,+ ServiceNowConnectorOperator_LESS_THAN_OR_EQUAL_TO,+ ServiceNowConnectorOperator_MASK_ALL,+ ServiceNowConnectorOperator_MASK_FIRST_N,+ ServiceNowConnectorOperator_MASK_LAST_N,+ ServiceNowConnectorOperator_MULTIPLICATION,+ ServiceNowConnectorOperator_NOT_EQUAL_TO,+ ServiceNowConnectorOperator_NO_OP,+ ServiceNowConnectorOperator_PROJECTION,+ ServiceNowConnectorOperator_SUBTRACTION,+ ServiceNowConnectorOperator_VALIDATE_NON_NEGATIVE,+ ServiceNowConnectorOperator_VALIDATE_NON_NULL,+ ServiceNowConnectorOperator_VALIDATE_NON_ZERO,+ ServiceNowConnectorOperator_VALIDATE_NUMERIC,+ ServiceNowConnectorOperator'+ #-}
+ gen/Amazonka/CustomerProfiles/Types/ServiceNowSourceProperties.hs view
@@ -0,0 +1,70 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.CustomerProfiles.Types.ServiceNowSourceProperties+-- 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.CustomerProfiles.Types.ServiceNowSourceProperties 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 properties that are applied when ServiceNow is being used as a+-- source.+--+-- /See:/ 'newServiceNowSourceProperties' smart constructor.+data ServiceNowSourceProperties = ServiceNowSourceProperties'+ { -- | The object specified in the ServiceNow flow source.+ object' :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ServiceNowSourceProperties' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'object'', 'serviceNowSourceProperties_object' - The object specified in the ServiceNow flow source.+newServiceNowSourceProperties ::+ -- | 'object''+ Prelude.Text ->+ ServiceNowSourceProperties+newServiceNowSourceProperties pObject_ =+ ServiceNowSourceProperties' {object' = pObject_}++-- | The object specified in the ServiceNow flow source.+serviceNowSourceProperties_object :: Lens.Lens' ServiceNowSourceProperties Prelude.Text+serviceNowSourceProperties_object = Lens.lens (\ServiceNowSourceProperties' {object'} -> object') (\s@ServiceNowSourceProperties' {} a -> s {object' = a} :: ServiceNowSourceProperties)++instance Prelude.Hashable ServiceNowSourceProperties where+ hashWithSalt _salt ServiceNowSourceProperties' {..} =+ _salt `Prelude.hashWithSalt` object'++instance Prelude.NFData ServiceNowSourceProperties where+ rnf ServiceNowSourceProperties' {..} =+ Prelude.rnf object'++instance Data.ToJSON ServiceNowSourceProperties where+ toJSON ServiceNowSourceProperties' {..} =+ Data.object+ ( Prelude.catMaybes+ [Prelude.Just ("Object" Data..= object')]+ )
+ gen/Amazonka/CustomerProfiles/Types/SourceConnectorProperties.hs view
@@ -0,0 +1,136 @@+{-# 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.CustomerProfiles.Types.SourceConnectorProperties+-- 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.CustomerProfiles.Types.SourceConnectorProperties where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CustomerProfiles.Types.MarketoSourceProperties+import Amazonka.CustomerProfiles.Types.S3SourceProperties+import Amazonka.CustomerProfiles.Types.SalesforceSourceProperties+import Amazonka.CustomerProfiles.Types.ServiceNowSourceProperties+import Amazonka.CustomerProfiles.Types.ZendeskSourceProperties+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Specifies the information that is required to query a particular Amazon+-- AppFlow connector. Customer Profiles supports Salesforce, Zendesk,+-- Marketo, ServiceNow and Amazon S3.+--+-- /See:/ 'newSourceConnectorProperties' smart constructor.+data SourceConnectorProperties = SourceConnectorProperties'+ { -- | The properties that are applied when Marketo is being used as a source.+ marketo :: Prelude.Maybe MarketoSourceProperties,+ -- | The properties that are applied when Amazon S3 is being used as the flow+ -- source.+ s3 :: Prelude.Maybe S3SourceProperties,+ -- | The properties that are applied when Salesforce is being used as a+ -- source.+ salesforce :: Prelude.Maybe SalesforceSourceProperties,+ -- | The properties that are applied when ServiceNow is being used as a+ -- source.+ serviceNow :: Prelude.Maybe ServiceNowSourceProperties,+ -- | The properties that are applied when using Zendesk as a flow source.+ zendesk :: Prelude.Maybe ZendeskSourceProperties+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SourceConnectorProperties' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'marketo', 'sourceConnectorProperties_marketo' - The properties that are applied when Marketo is being used as a source.+--+-- 's3', 'sourceConnectorProperties_s3' - The properties that are applied when Amazon S3 is being used as the flow+-- source.+--+-- 'salesforce', 'sourceConnectorProperties_salesforce' - The properties that are applied when Salesforce is being used as a+-- source.+--+-- 'serviceNow', 'sourceConnectorProperties_serviceNow' - The properties that are applied when ServiceNow is being used as a+-- source.+--+-- 'zendesk', 'sourceConnectorProperties_zendesk' - The properties that are applied when using Zendesk as a flow source.+newSourceConnectorProperties ::+ SourceConnectorProperties+newSourceConnectorProperties =+ SourceConnectorProperties'+ { marketo =+ Prelude.Nothing,+ s3 = Prelude.Nothing,+ salesforce = Prelude.Nothing,+ serviceNow = Prelude.Nothing,+ zendesk = Prelude.Nothing+ }++-- | The properties that are applied when Marketo is being used as a source.+sourceConnectorProperties_marketo :: Lens.Lens' SourceConnectorProperties (Prelude.Maybe MarketoSourceProperties)+sourceConnectorProperties_marketo = Lens.lens (\SourceConnectorProperties' {marketo} -> marketo) (\s@SourceConnectorProperties' {} a -> s {marketo = a} :: SourceConnectorProperties)++-- | The properties that are applied when Amazon S3 is being used as the flow+-- source.+sourceConnectorProperties_s3 :: Lens.Lens' SourceConnectorProperties (Prelude.Maybe S3SourceProperties)+sourceConnectorProperties_s3 = Lens.lens (\SourceConnectorProperties' {s3} -> s3) (\s@SourceConnectorProperties' {} a -> s {s3 = a} :: SourceConnectorProperties)++-- | The properties that are applied when Salesforce is being used as a+-- source.+sourceConnectorProperties_salesforce :: Lens.Lens' SourceConnectorProperties (Prelude.Maybe SalesforceSourceProperties)+sourceConnectorProperties_salesforce = Lens.lens (\SourceConnectorProperties' {salesforce} -> salesforce) (\s@SourceConnectorProperties' {} a -> s {salesforce = a} :: SourceConnectorProperties)++-- | The properties that are applied when ServiceNow is being used as a+-- source.+sourceConnectorProperties_serviceNow :: Lens.Lens' SourceConnectorProperties (Prelude.Maybe ServiceNowSourceProperties)+sourceConnectorProperties_serviceNow = Lens.lens (\SourceConnectorProperties' {serviceNow} -> serviceNow) (\s@SourceConnectorProperties' {} a -> s {serviceNow = a} :: SourceConnectorProperties)++-- | The properties that are applied when using Zendesk as a flow source.+sourceConnectorProperties_zendesk :: Lens.Lens' SourceConnectorProperties (Prelude.Maybe ZendeskSourceProperties)+sourceConnectorProperties_zendesk = Lens.lens (\SourceConnectorProperties' {zendesk} -> zendesk) (\s@SourceConnectorProperties' {} a -> s {zendesk = a} :: SourceConnectorProperties)++instance Prelude.Hashable SourceConnectorProperties where+ hashWithSalt _salt SourceConnectorProperties' {..} =+ _salt+ `Prelude.hashWithSalt` marketo+ `Prelude.hashWithSalt` s3+ `Prelude.hashWithSalt` salesforce+ `Prelude.hashWithSalt` serviceNow+ `Prelude.hashWithSalt` zendesk++instance Prelude.NFData SourceConnectorProperties where+ rnf SourceConnectorProperties' {..} =+ Prelude.rnf marketo+ `Prelude.seq` Prelude.rnf s3+ `Prelude.seq` Prelude.rnf salesforce+ `Prelude.seq` Prelude.rnf serviceNow+ `Prelude.seq` Prelude.rnf zendesk++instance Data.ToJSON SourceConnectorProperties where+ toJSON SourceConnectorProperties' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("Marketo" Data..=) Prelude.<$> marketo,+ ("S3" Data..=) Prelude.<$> s3,+ ("Salesforce" Data..=) Prelude.<$> salesforce,+ ("ServiceNow" Data..=) Prelude.<$> serviceNow,+ ("Zendesk" Data..=) Prelude.<$> zendesk+ ]+ )
+ gen/Amazonka/CustomerProfiles/Types/SourceConnectorType.hs view
@@ -0,0 +1,86 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.CustomerProfiles.Types.SourceConnectorType+-- 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.CustomerProfiles.Types.SourceConnectorType+ ( SourceConnectorType+ ( ..,+ SourceConnectorType_Marketo,+ SourceConnectorType_S3,+ SourceConnectorType_Salesforce,+ SourceConnectorType_Servicenow,+ SourceConnectorType_Zendesk+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype SourceConnectorType = SourceConnectorType'+ { fromSourceConnectorType ::+ 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 SourceConnectorType_Marketo :: SourceConnectorType+pattern SourceConnectorType_Marketo = SourceConnectorType' "Marketo"++pattern SourceConnectorType_S3 :: SourceConnectorType+pattern SourceConnectorType_S3 = SourceConnectorType' "S3"++pattern SourceConnectorType_Salesforce :: SourceConnectorType+pattern SourceConnectorType_Salesforce = SourceConnectorType' "Salesforce"++pattern SourceConnectorType_Servicenow :: SourceConnectorType+pattern SourceConnectorType_Servicenow = SourceConnectorType' "Servicenow"++pattern SourceConnectorType_Zendesk :: SourceConnectorType+pattern SourceConnectorType_Zendesk = SourceConnectorType' "Zendesk"++{-# COMPLETE+ SourceConnectorType_Marketo,+ SourceConnectorType_S3,+ SourceConnectorType_Salesforce,+ SourceConnectorType_Servicenow,+ SourceConnectorType_Zendesk,+ SourceConnectorType'+ #-}
+ gen/Amazonka/CustomerProfiles/Types/SourceFlowConfig.hs view
@@ -0,0 +1,136 @@+{-# 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.CustomerProfiles.Types.SourceFlowConfig+-- 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.CustomerProfiles.Types.SourceFlowConfig where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CustomerProfiles.Types.IncrementalPullConfig+import Amazonka.CustomerProfiles.Types.SourceConnectorProperties+import Amazonka.CustomerProfiles.Types.SourceConnectorType+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Contains information about the configuration of the source connector+-- used in the flow.+--+-- /See:/ 'newSourceFlowConfig' smart constructor.+data SourceFlowConfig = SourceFlowConfig'+ { -- | The name of the AppFlow connector profile. This name must be unique for+ -- each connector profile in the AWS account.+ connectorProfileName :: Prelude.Maybe Prelude.Text,+ -- | Defines the configuration for a scheduled incremental data pull. If a+ -- valid configuration is provided, the fields specified in the+ -- configuration are used when querying for the incremental data pull.+ incrementalPullConfig :: Prelude.Maybe IncrementalPullConfig,+ -- | The type of connector, such as Salesforce, Marketo, and so on.+ connectorType :: SourceConnectorType,+ -- | Specifies the information that is required to query a particular source+ -- connector.+ sourceConnectorProperties :: SourceConnectorProperties+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SourceFlowConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'connectorProfileName', 'sourceFlowConfig_connectorProfileName' - The name of the AppFlow connector profile. This name must be unique for+-- each connector profile in the AWS account.+--+-- 'incrementalPullConfig', 'sourceFlowConfig_incrementalPullConfig' - Defines the configuration for a scheduled incremental data pull. If a+-- valid configuration is provided, the fields specified in the+-- configuration are used when querying for the incremental data pull.+--+-- 'connectorType', 'sourceFlowConfig_connectorType' - The type of connector, such as Salesforce, Marketo, and so on.+--+-- 'sourceConnectorProperties', 'sourceFlowConfig_sourceConnectorProperties' - Specifies the information that is required to query a particular source+-- connector.+newSourceFlowConfig ::+ -- | 'connectorType'+ SourceConnectorType ->+ -- | 'sourceConnectorProperties'+ SourceConnectorProperties ->+ SourceFlowConfig+newSourceFlowConfig+ pConnectorType_+ pSourceConnectorProperties_ =+ SourceFlowConfig'+ { connectorProfileName =+ Prelude.Nothing,+ incrementalPullConfig = Prelude.Nothing,+ connectorType = pConnectorType_,+ sourceConnectorProperties =+ pSourceConnectorProperties_+ }++-- | The name of the AppFlow connector profile. This name must be unique for+-- each connector profile in the AWS account.+sourceFlowConfig_connectorProfileName :: Lens.Lens' SourceFlowConfig (Prelude.Maybe Prelude.Text)+sourceFlowConfig_connectorProfileName = Lens.lens (\SourceFlowConfig' {connectorProfileName} -> connectorProfileName) (\s@SourceFlowConfig' {} a -> s {connectorProfileName = a} :: SourceFlowConfig)++-- | Defines the configuration for a scheduled incremental data pull. If a+-- valid configuration is provided, the fields specified in the+-- configuration are used when querying for the incremental data pull.+sourceFlowConfig_incrementalPullConfig :: Lens.Lens' SourceFlowConfig (Prelude.Maybe IncrementalPullConfig)+sourceFlowConfig_incrementalPullConfig = Lens.lens (\SourceFlowConfig' {incrementalPullConfig} -> incrementalPullConfig) (\s@SourceFlowConfig' {} a -> s {incrementalPullConfig = a} :: SourceFlowConfig)++-- | The type of connector, such as Salesforce, Marketo, and so on.+sourceFlowConfig_connectorType :: Lens.Lens' SourceFlowConfig SourceConnectorType+sourceFlowConfig_connectorType = Lens.lens (\SourceFlowConfig' {connectorType} -> connectorType) (\s@SourceFlowConfig' {} a -> s {connectorType = a} :: SourceFlowConfig)++-- | Specifies the information that is required to query a particular source+-- connector.+sourceFlowConfig_sourceConnectorProperties :: Lens.Lens' SourceFlowConfig SourceConnectorProperties+sourceFlowConfig_sourceConnectorProperties = Lens.lens (\SourceFlowConfig' {sourceConnectorProperties} -> sourceConnectorProperties) (\s@SourceFlowConfig' {} a -> s {sourceConnectorProperties = a} :: SourceFlowConfig)++instance Prelude.Hashable SourceFlowConfig where+ hashWithSalt _salt SourceFlowConfig' {..} =+ _salt+ `Prelude.hashWithSalt` connectorProfileName+ `Prelude.hashWithSalt` incrementalPullConfig+ `Prelude.hashWithSalt` connectorType+ `Prelude.hashWithSalt` sourceConnectorProperties++instance Prelude.NFData SourceFlowConfig where+ rnf SourceFlowConfig' {..} =+ Prelude.rnf connectorProfileName+ `Prelude.seq` Prelude.rnf incrementalPullConfig+ `Prelude.seq` Prelude.rnf connectorType+ `Prelude.seq` Prelude.rnf sourceConnectorProperties++instance Data.ToJSON SourceFlowConfig where+ toJSON SourceFlowConfig' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("ConnectorProfileName" Data..=)+ Prelude.<$> connectorProfileName,+ ("IncrementalPullConfig" Data..=)+ Prelude.<$> incrementalPullConfig,+ Prelude.Just ("ConnectorType" Data..= connectorType),+ Prelude.Just+ ( "SourceConnectorProperties"+ Data..= sourceConnectorProperties+ )+ ]+ )
+ gen/Amazonka/CustomerProfiles/Types/StandardIdentifier.hs view
@@ -0,0 +1,101 @@+{-# 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.CustomerProfiles.Types.StandardIdentifier+-- 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.CustomerProfiles.Types.StandardIdentifier+ ( StandardIdentifier+ ( ..,+ StandardIdentifier_ASSET,+ StandardIdentifier_CASE,+ StandardIdentifier_LOOKUP_ONLY,+ StandardIdentifier_NEW_ONLY,+ StandardIdentifier_ORDER,+ StandardIdentifier_PROFILE,+ StandardIdentifier_SECONDARY,+ StandardIdentifier_UNIQUE+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype StandardIdentifier = StandardIdentifier'+ { fromStandardIdentifier ::+ 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 StandardIdentifier_ASSET :: StandardIdentifier+pattern StandardIdentifier_ASSET = StandardIdentifier' "ASSET"++pattern StandardIdentifier_CASE :: StandardIdentifier+pattern StandardIdentifier_CASE = StandardIdentifier' "CASE"++pattern StandardIdentifier_LOOKUP_ONLY :: StandardIdentifier+pattern StandardIdentifier_LOOKUP_ONLY = StandardIdentifier' "LOOKUP_ONLY"++pattern StandardIdentifier_NEW_ONLY :: StandardIdentifier+pattern StandardIdentifier_NEW_ONLY = StandardIdentifier' "NEW_ONLY"++pattern StandardIdentifier_ORDER :: StandardIdentifier+pattern StandardIdentifier_ORDER = StandardIdentifier' "ORDER"++pattern StandardIdentifier_PROFILE :: StandardIdentifier+pattern StandardIdentifier_PROFILE = StandardIdentifier' "PROFILE"++pattern StandardIdentifier_SECONDARY :: StandardIdentifier+pattern StandardIdentifier_SECONDARY = StandardIdentifier' "SECONDARY"++pattern StandardIdentifier_UNIQUE :: StandardIdentifier+pattern StandardIdentifier_UNIQUE = StandardIdentifier' "UNIQUE"++{-# COMPLETE+ StandardIdentifier_ASSET,+ StandardIdentifier_CASE,+ StandardIdentifier_LOOKUP_ONLY,+ StandardIdentifier_NEW_ONLY,+ StandardIdentifier_ORDER,+ StandardIdentifier_PROFILE,+ StandardIdentifier_SECONDARY,+ StandardIdentifier_UNIQUE,+ StandardIdentifier'+ #-}
+ gen/Amazonka/CustomerProfiles/Types/Status.hs view
@@ -0,0 +1,93 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.CustomerProfiles.Types.Status+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.CustomerProfiles.Types.Status+ ( Status+ ( ..,+ Status_CANCELLED,+ Status_COMPLETE,+ Status_FAILED,+ Status_IN_PROGRESS,+ Status_NOT_STARTED,+ Status_RETRY,+ Status_SPLIT+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype Status = Status' {fromStatus :: Data.Text}+ deriving stock+ ( Prelude.Show,+ Prelude.Read,+ Prelude.Eq,+ Prelude.Ord,+ Prelude.Generic+ )+ deriving newtype+ ( Prelude.Hashable,+ Prelude.NFData,+ Data.FromText,+ Data.ToText,+ Data.ToByteString,+ Data.ToLog,+ Data.ToHeader,+ Data.ToQuery,+ Data.FromJSON,+ Data.FromJSONKey,+ Data.ToJSON,+ Data.ToJSONKey,+ Data.FromXML,+ Data.ToXML+ )++pattern Status_CANCELLED :: Status+pattern Status_CANCELLED = Status' "CANCELLED"++pattern Status_COMPLETE :: Status+pattern Status_COMPLETE = Status' "COMPLETE"++pattern Status_FAILED :: Status+pattern Status_FAILED = Status' "FAILED"++pattern Status_IN_PROGRESS :: Status+pattern Status_IN_PROGRESS = Status' "IN_PROGRESS"++pattern Status_NOT_STARTED :: Status+pattern Status_NOT_STARTED = Status' "NOT_STARTED"++pattern Status_RETRY :: Status+pattern Status_RETRY = Status' "RETRY"++pattern Status_SPLIT :: Status+pattern Status_SPLIT = Status' "SPLIT"++{-# COMPLETE+ Status_CANCELLED,+ Status_COMPLETE,+ Status_FAILED,+ Status_IN_PROGRESS,+ Status_NOT_STARTED,+ Status_RETRY,+ Status_SPLIT,+ Status'+ #-}
+ gen/Amazonka/CustomerProfiles/Types/Task.hs view
@@ -0,0 +1,137 @@+{-# 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.CustomerProfiles.Types.Task+-- 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.CustomerProfiles.Types.Task where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CustomerProfiles.Types.ConnectorOperator+import Amazonka.CustomerProfiles.Types.OperatorPropertiesKeys+import Amazonka.CustomerProfiles.Types.TaskType+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | A class for modeling different type of tasks. Task implementation varies+-- based on the TaskType.+--+-- /See:/ 'newTask' smart constructor.+data Task = Task'+ { -- | The operation to be performed on the provided source fields.+ connectorOperator :: Prelude.Maybe ConnectorOperator,+ -- | A field in a destination connector, or a field value against which+ -- Amazon AppFlow validates a source field.+ destinationField :: Prelude.Maybe Prelude.Text,+ -- | A map used to store task-related information. The service looks for+ -- particular information based on the TaskType.+ taskProperties :: Prelude.Maybe (Prelude.HashMap OperatorPropertiesKeys Prelude.Text),+ -- | The source fields to which a particular task is applied.+ sourceFields :: [Prelude.Text],+ -- | Specifies the particular task implementation that Amazon AppFlow+ -- performs.+ taskType :: TaskType+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Task' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'connectorOperator', 'task_connectorOperator' - The operation to be performed on the provided source fields.+--+-- 'destinationField', 'task_destinationField' - A field in a destination connector, or a field value against which+-- Amazon AppFlow validates a source field.+--+-- 'taskProperties', 'task_taskProperties' - A map used to store task-related information. The service looks for+-- particular information based on the TaskType.+--+-- 'sourceFields', 'task_sourceFields' - The source fields to which a particular task is applied.+--+-- 'taskType', 'task_taskType' - Specifies the particular task implementation that Amazon AppFlow+-- performs.+newTask ::+ -- | 'taskType'+ TaskType ->+ Task+newTask pTaskType_ =+ Task'+ { connectorOperator = Prelude.Nothing,+ destinationField = Prelude.Nothing,+ taskProperties = Prelude.Nothing,+ sourceFields = Prelude.mempty,+ taskType = pTaskType_+ }++-- | The operation to be performed on the provided source fields.+task_connectorOperator :: Lens.Lens' Task (Prelude.Maybe ConnectorOperator)+task_connectorOperator = Lens.lens (\Task' {connectorOperator} -> connectorOperator) (\s@Task' {} a -> s {connectorOperator = a} :: Task)++-- | A field in a destination connector, or a field value against which+-- Amazon AppFlow validates a source field.+task_destinationField :: Lens.Lens' Task (Prelude.Maybe Prelude.Text)+task_destinationField = Lens.lens (\Task' {destinationField} -> destinationField) (\s@Task' {} a -> s {destinationField = a} :: Task)++-- | A map used to store task-related information. The service looks for+-- particular information based on the TaskType.+task_taskProperties :: Lens.Lens' Task (Prelude.Maybe (Prelude.HashMap OperatorPropertiesKeys Prelude.Text))+task_taskProperties = Lens.lens (\Task' {taskProperties} -> taskProperties) (\s@Task' {} a -> s {taskProperties = a} :: Task) Prelude.. Lens.mapping Lens.coerced++-- | The source fields to which a particular task is applied.+task_sourceFields :: Lens.Lens' Task [Prelude.Text]+task_sourceFields = Lens.lens (\Task' {sourceFields} -> sourceFields) (\s@Task' {} a -> s {sourceFields = a} :: Task) Prelude.. Lens.coerced++-- | Specifies the particular task implementation that Amazon AppFlow+-- performs.+task_taskType :: Lens.Lens' Task TaskType+task_taskType = Lens.lens (\Task' {taskType} -> taskType) (\s@Task' {} a -> s {taskType = a} :: Task)++instance Prelude.Hashable Task where+ hashWithSalt _salt Task' {..} =+ _salt+ `Prelude.hashWithSalt` connectorOperator+ `Prelude.hashWithSalt` destinationField+ `Prelude.hashWithSalt` taskProperties+ `Prelude.hashWithSalt` sourceFields+ `Prelude.hashWithSalt` taskType++instance Prelude.NFData Task where+ rnf Task' {..} =+ Prelude.rnf connectorOperator+ `Prelude.seq` Prelude.rnf destinationField+ `Prelude.seq` Prelude.rnf taskProperties+ `Prelude.seq` Prelude.rnf sourceFields+ `Prelude.seq` Prelude.rnf taskType++instance Data.ToJSON Task where+ toJSON Task' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("ConnectorOperator" Data..=)+ Prelude.<$> connectorOperator,+ ("DestinationField" Data..=)+ Prelude.<$> destinationField,+ ("TaskProperties" Data..=)+ Prelude.<$> taskProperties,+ Prelude.Just ("SourceFields" Data..= sourceFields),+ Prelude.Just ("TaskType" Data..= taskType)+ ]+ )
+ gen/Amazonka/CustomerProfiles/Types/TaskType.hs view
@@ -0,0 +1,96 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.CustomerProfiles.Types.TaskType+-- 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.CustomerProfiles.Types.TaskType+ ( TaskType+ ( ..,+ TaskType_Arithmetic,+ TaskType_Filter,+ TaskType_Map,+ TaskType_Mask,+ TaskType_Merge,+ TaskType_Truncate,+ TaskType_Validate+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype TaskType = TaskType'+ { fromTaskType ::+ 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 TaskType_Arithmetic :: TaskType+pattern TaskType_Arithmetic = TaskType' "Arithmetic"++pattern TaskType_Filter :: TaskType+pattern TaskType_Filter = TaskType' "Filter"++pattern TaskType_Map :: TaskType+pattern TaskType_Map = TaskType' "Map"++pattern TaskType_Mask :: TaskType+pattern TaskType_Mask = TaskType' "Mask"++pattern TaskType_Merge :: TaskType+pattern TaskType_Merge = TaskType' "Merge"++pattern TaskType_Truncate :: TaskType+pattern TaskType_Truncate = TaskType' "Truncate"++pattern TaskType_Validate :: TaskType+pattern TaskType_Validate = TaskType' "Validate"++{-# COMPLETE+ TaskType_Arithmetic,+ TaskType_Filter,+ TaskType_Map,+ TaskType_Mask,+ TaskType_Merge,+ TaskType_Truncate,+ TaskType_Validate,+ TaskType'+ #-}
+ gen/Amazonka/CustomerProfiles/Types/TriggerConfig.hs view
@@ -0,0 +1,98 @@+{-# 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.CustomerProfiles.Types.TriggerConfig+-- 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.CustomerProfiles.Types.TriggerConfig where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CustomerProfiles.Types.TriggerProperties+import Amazonka.CustomerProfiles.Types.TriggerType+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The trigger settings that determine how and when Amazon AppFlow runs the+-- specified flow.+--+-- /See:/ 'newTriggerConfig' smart constructor.+data TriggerConfig = TriggerConfig'+ { -- | Specifies the configuration details of a schedule-triggered flow that+ -- you define. Currently, these settings only apply to the Scheduled+ -- trigger type.+ triggerProperties :: Prelude.Maybe TriggerProperties,+ -- | Specifies the type of flow trigger. It can be OnDemand, Scheduled, or+ -- Event.+ triggerType :: TriggerType+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TriggerConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'triggerProperties', 'triggerConfig_triggerProperties' - Specifies the configuration details of a schedule-triggered flow that+-- you define. Currently, these settings only apply to the Scheduled+-- trigger type.+--+-- 'triggerType', 'triggerConfig_triggerType' - Specifies the type of flow trigger. It can be OnDemand, Scheduled, or+-- Event.+newTriggerConfig ::+ -- | 'triggerType'+ TriggerType ->+ TriggerConfig+newTriggerConfig pTriggerType_ =+ TriggerConfig'+ { triggerProperties = Prelude.Nothing,+ triggerType = pTriggerType_+ }++-- | Specifies the configuration details of a schedule-triggered flow that+-- you define. Currently, these settings only apply to the Scheduled+-- trigger type.+triggerConfig_triggerProperties :: Lens.Lens' TriggerConfig (Prelude.Maybe TriggerProperties)+triggerConfig_triggerProperties = Lens.lens (\TriggerConfig' {triggerProperties} -> triggerProperties) (\s@TriggerConfig' {} a -> s {triggerProperties = a} :: TriggerConfig)++-- | Specifies the type of flow trigger. It can be OnDemand, Scheduled, or+-- Event.+triggerConfig_triggerType :: Lens.Lens' TriggerConfig TriggerType+triggerConfig_triggerType = Lens.lens (\TriggerConfig' {triggerType} -> triggerType) (\s@TriggerConfig' {} a -> s {triggerType = a} :: TriggerConfig)++instance Prelude.Hashable TriggerConfig where+ hashWithSalt _salt TriggerConfig' {..} =+ _salt+ `Prelude.hashWithSalt` triggerProperties+ `Prelude.hashWithSalt` triggerType++instance Prelude.NFData TriggerConfig where+ rnf TriggerConfig' {..} =+ Prelude.rnf triggerProperties+ `Prelude.seq` Prelude.rnf triggerType++instance Data.ToJSON TriggerConfig where+ toJSON TriggerConfig' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("TriggerProperties" Data..=)+ Prelude.<$> triggerProperties,+ Prelude.Just ("TriggerType" Data..= triggerType)+ ]+ )
+ gen/Amazonka/CustomerProfiles/Types/TriggerProperties.hs view
@@ -0,0 +1,71 @@+{-# 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.CustomerProfiles.Types.TriggerProperties+-- 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.CustomerProfiles.Types.TriggerProperties where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CustomerProfiles.Types.ScheduledTriggerProperties+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Specifies the configuration details that control the trigger for a flow.+-- Currently, these settings only apply to the Scheduled trigger type.+--+-- /See:/ 'newTriggerProperties' smart constructor.+data TriggerProperties = TriggerProperties'+ { -- | Specifies the configuration details of a schedule-triggered flow that+ -- you define.+ scheduled :: Prelude.Maybe ScheduledTriggerProperties+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TriggerProperties' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'scheduled', 'triggerProperties_scheduled' - Specifies the configuration details of a schedule-triggered flow that+-- you define.+newTriggerProperties ::+ TriggerProperties+newTriggerProperties =+ TriggerProperties' {scheduled = Prelude.Nothing}++-- | Specifies the configuration details of a schedule-triggered flow that+-- you define.+triggerProperties_scheduled :: Lens.Lens' TriggerProperties (Prelude.Maybe ScheduledTriggerProperties)+triggerProperties_scheduled = Lens.lens (\TriggerProperties' {scheduled} -> scheduled) (\s@TriggerProperties' {} a -> s {scheduled = a} :: TriggerProperties)++instance Prelude.Hashable TriggerProperties where+ hashWithSalt _salt TriggerProperties' {..} =+ _salt `Prelude.hashWithSalt` scheduled++instance Prelude.NFData TriggerProperties where+ rnf TriggerProperties' {..} = Prelude.rnf scheduled++instance Data.ToJSON TriggerProperties where+ toJSON TriggerProperties' {..} =+ Data.object+ ( Prelude.catMaybes+ [("Scheduled" Data..=) Prelude.<$> scheduled]+ )
+ gen/Amazonka/CustomerProfiles/Types/TriggerType.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.CustomerProfiles.Types.TriggerType+-- 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.CustomerProfiles.Types.TriggerType+ ( TriggerType+ ( ..,+ TriggerType_Event,+ TriggerType_OnDemand,+ TriggerType_Scheduled+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype TriggerType = TriggerType'+ { fromTriggerType ::+ 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 TriggerType_Event :: TriggerType+pattern TriggerType_Event = TriggerType' "Event"++pattern TriggerType_OnDemand :: TriggerType+pattern TriggerType_OnDemand = TriggerType' "OnDemand"++pattern TriggerType_Scheduled :: TriggerType+pattern TriggerType_Scheduled = TriggerType' "Scheduled"++{-# COMPLETE+ TriggerType_Event,+ TriggerType_OnDemand,+ TriggerType_Scheduled,+ TriggerType'+ #-}
+ gen/Amazonka/CustomerProfiles/Types/UpdateAddress.hs view
@@ -0,0 +1,179 @@+{-# 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.CustomerProfiles.Types.UpdateAddress+-- 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.CustomerProfiles.Types.UpdateAddress 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++-- | Updates associated with the address properties of a customer profile.+--+-- /See:/ 'newUpdateAddress' smart constructor.+data UpdateAddress = UpdateAddress'+ { -- | The first line of a customer address.+ address1 :: Prelude.Maybe Prelude.Text,+ -- | The second line of a customer address.+ address2 :: Prelude.Maybe Prelude.Text,+ -- | The third line of a customer address.+ address3 :: Prelude.Maybe Prelude.Text,+ -- | The fourth line of a customer address.+ address4 :: Prelude.Maybe Prelude.Text,+ -- | The city in which a customer lives.+ city :: Prelude.Maybe Prelude.Text,+ -- | The country in which a customer lives.+ country :: Prelude.Maybe Prelude.Text,+ -- | The county in which a customer lives.+ county :: Prelude.Maybe Prelude.Text,+ -- | The postal code of a customer address.+ postalCode :: Prelude.Maybe Prelude.Text,+ -- | The province in which a customer lives.+ province :: Prelude.Maybe Prelude.Text,+ -- | The state in which a customer lives.+ state :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateAddress' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'address1', 'updateAddress_address1' - The first line of a customer address.+--+-- 'address2', 'updateAddress_address2' - The second line of a customer address.+--+-- 'address3', 'updateAddress_address3' - The third line of a customer address.+--+-- 'address4', 'updateAddress_address4' - The fourth line of a customer address.+--+-- 'city', 'updateAddress_city' - The city in which a customer lives.+--+-- 'country', 'updateAddress_country' - The country in which a customer lives.+--+-- 'county', 'updateAddress_county' - The county in which a customer lives.+--+-- 'postalCode', 'updateAddress_postalCode' - The postal code of a customer address.+--+-- 'province', 'updateAddress_province' - The province in which a customer lives.+--+-- 'state', 'updateAddress_state' - The state in which a customer lives.+newUpdateAddress ::+ UpdateAddress+newUpdateAddress =+ UpdateAddress'+ { address1 = Prelude.Nothing,+ address2 = Prelude.Nothing,+ address3 = Prelude.Nothing,+ address4 = Prelude.Nothing,+ city = Prelude.Nothing,+ country = Prelude.Nothing,+ county = Prelude.Nothing,+ postalCode = Prelude.Nothing,+ province = Prelude.Nothing,+ state = Prelude.Nothing+ }++-- | The first line of a customer address.+updateAddress_address1 :: Lens.Lens' UpdateAddress (Prelude.Maybe Prelude.Text)+updateAddress_address1 = Lens.lens (\UpdateAddress' {address1} -> address1) (\s@UpdateAddress' {} a -> s {address1 = a} :: UpdateAddress)++-- | The second line of a customer address.+updateAddress_address2 :: Lens.Lens' UpdateAddress (Prelude.Maybe Prelude.Text)+updateAddress_address2 = Lens.lens (\UpdateAddress' {address2} -> address2) (\s@UpdateAddress' {} a -> s {address2 = a} :: UpdateAddress)++-- | The third line of a customer address.+updateAddress_address3 :: Lens.Lens' UpdateAddress (Prelude.Maybe Prelude.Text)+updateAddress_address3 = Lens.lens (\UpdateAddress' {address3} -> address3) (\s@UpdateAddress' {} a -> s {address3 = a} :: UpdateAddress)++-- | The fourth line of a customer address.+updateAddress_address4 :: Lens.Lens' UpdateAddress (Prelude.Maybe Prelude.Text)+updateAddress_address4 = Lens.lens (\UpdateAddress' {address4} -> address4) (\s@UpdateAddress' {} a -> s {address4 = a} :: UpdateAddress)++-- | The city in which a customer lives.+updateAddress_city :: Lens.Lens' UpdateAddress (Prelude.Maybe Prelude.Text)+updateAddress_city = Lens.lens (\UpdateAddress' {city} -> city) (\s@UpdateAddress' {} a -> s {city = a} :: UpdateAddress)++-- | The country in which a customer lives.+updateAddress_country :: Lens.Lens' UpdateAddress (Prelude.Maybe Prelude.Text)+updateAddress_country = Lens.lens (\UpdateAddress' {country} -> country) (\s@UpdateAddress' {} a -> s {country = a} :: UpdateAddress)++-- | The county in which a customer lives.+updateAddress_county :: Lens.Lens' UpdateAddress (Prelude.Maybe Prelude.Text)+updateAddress_county = Lens.lens (\UpdateAddress' {county} -> county) (\s@UpdateAddress' {} a -> s {county = a} :: UpdateAddress)++-- | The postal code of a customer address.+updateAddress_postalCode :: Lens.Lens' UpdateAddress (Prelude.Maybe Prelude.Text)+updateAddress_postalCode = Lens.lens (\UpdateAddress' {postalCode} -> postalCode) (\s@UpdateAddress' {} a -> s {postalCode = a} :: UpdateAddress)++-- | The province in which a customer lives.+updateAddress_province :: Lens.Lens' UpdateAddress (Prelude.Maybe Prelude.Text)+updateAddress_province = Lens.lens (\UpdateAddress' {province} -> province) (\s@UpdateAddress' {} a -> s {province = a} :: UpdateAddress)++-- | The state in which a customer lives.+updateAddress_state :: Lens.Lens' UpdateAddress (Prelude.Maybe Prelude.Text)+updateAddress_state = Lens.lens (\UpdateAddress' {state} -> state) (\s@UpdateAddress' {} a -> s {state = a} :: UpdateAddress)++instance Prelude.Hashable UpdateAddress where+ hashWithSalt _salt UpdateAddress' {..} =+ _salt+ `Prelude.hashWithSalt` address1+ `Prelude.hashWithSalt` address2+ `Prelude.hashWithSalt` address3+ `Prelude.hashWithSalt` address4+ `Prelude.hashWithSalt` city+ `Prelude.hashWithSalt` country+ `Prelude.hashWithSalt` county+ `Prelude.hashWithSalt` postalCode+ `Prelude.hashWithSalt` province+ `Prelude.hashWithSalt` state++instance Prelude.NFData UpdateAddress where+ rnf UpdateAddress' {..} =+ Prelude.rnf address1+ `Prelude.seq` Prelude.rnf address2+ `Prelude.seq` Prelude.rnf address3+ `Prelude.seq` Prelude.rnf address4+ `Prelude.seq` Prelude.rnf city+ `Prelude.seq` Prelude.rnf country+ `Prelude.seq` Prelude.rnf county+ `Prelude.seq` Prelude.rnf postalCode+ `Prelude.seq` Prelude.rnf province+ `Prelude.seq` Prelude.rnf state++instance Data.ToJSON UpdateAddress where+ toJSON UpdateAddress' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("Address1" Data..=) Prelude.<$> address1,+ ("Address2" Data..=) Prelude.<$> address2,+ ("Address3" Data..=) Prelude.<$> address3,+ ("Address4" Data..=) Prelude.<$> address4,+ ("City" Data..=) Prelude.<$> city,+ ("Country" Data..=) Prelude.<$> country,+ ("County" Data..=) Prelude.<$> county,+ ("PostalCode" Data..=) Prelude.<$> postalCode,+ ("Province" Data..=) Prelude.<$> province,+ ("State" Data..=) Prelude.<$> state+ ]+ )
+ gen/Amazonka/CustomerProfiles/Types/WorkflowAttributes.hs view
@@ -0,0 +1,73 @@+{-# 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.CustomerProfiles.Types.WorkflowAttributes+-- 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.CustomerProfiles.Types.WorkflowAttributes where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CustomerProfiles.Types.AppflowIntegrationWorkflowAttributes+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Structure to hold workflow attributes.+--+-- /See:/ 'newWorkflowAttributes' smart constructor.+data WorkflowAttributes = WorkflowAttributes'+ { -- | Workflow attributes specific to @APPFLOW_INTEGRATION@ workflow.+ appflowIntegration :: Prelude.Maybe AppflowIntegrationWorkflowAttributes+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'WorkflowAttributes' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'appflowIntegration', 'workflowAttributes_appflowIntegration' - Workflow attributes specific to @APPFLOW_INTEGRATION@ workflow.+newWorkflowAttributes ::+ WorkflowAttributes+newWorkflowAttributes =+ WorkflowAttributes'+ { appflowIntegration =+ Prelude.Nothing+ }++-- | Workflow attributes specific to @APPFLOW_INTEGRATION@ workflow.+workflowAttributes_appflowIntegration :: Lens.Lens' WorkflowAttributes (Prelude.Maybe AppflowIntegrationWorkflowAttributes)+workflowAttributes_appflowIntegration = Lens.lens (\WorkflowAttributes' {appflowIntegration} -> appflowIntegration) (\s@WorkflowAttributes' {} a -> s {appflowIntegration = a} :: WorkflowAttributes)++instance Data.FromJSON WorkflowAttributes where+ parseJSON =+ Data.withObject+ "WorkflowAttributes"+ ( \x ->+ WorkflowAttributes'+ Prelude.<$> (x Data..:? "AppflowIntegration")+ )++instance Prelude.Hashable WorkflowAttributes where+ hashWithSalt _salt WorkflowAttributes' {..} =+ _salt `Prelude.hashWithSalt` appflowIntegration++instance Prelude.NFData WorkflowAttributes where+ rnf WorkflowAttributes' {..} =+ Prelude.rnf appflowIntegration
+ gen/Amazonka/CustomerProfiles/Types/WorkflowMetrics.hs view
@@ -0,0 +1,73 @@+{-# 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.CustomerProfiles.Types.WorkflowMetrics+-- 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.CustomerProfiles.Types.WorkflowMetrics where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CustomerProfiles.Types.AppflowIntegrationWorkflowMetrics+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Generic object containing workflow execution metrics.+--+-- /See:/ 'newWorkflowMetrics' smart constructor.+data WorkflowMetrics = WorkflowMetrics'+ { -- | Workflow execution metrics for @APPFLOW_INTEGRATION@ workflow.+ appflowIntegration :: Prelude.Maybe AppflowIntegrationWorkflowMetrics+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'WorkflowMetrics' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'appflowIntegration', 'workflowMetrics_appflowIntegration' - Workflow execution metrics for @APPFLOW_INTEGRATION@ workflow.+newWorkflowMetrics ::+ WorkflowMetrics+newWorkflowMetrics =+ WorkflowMetrics'+ { appflowIntegration =+ Prelude.Nothing+ }++-- | Workflow execution metrics for @APPFLOW_INTEGRATION@ workflow.+workflowMetrics_appflowIntegration :: Lens.Lens' WorkflowMetrics (Prelude.Maybe AppflowIntegrationWorkflowMetrics)+workflowMetrics_appflowIntegration = Lens.lens (\WorkflowMetrics' {appflowIntegration} -> appflowIntegration) (\s@WorkflowMetrics' {} a -> s {appflowIntegration = a} :: WorkflowMetrics)++instance Data.FromJSON WorkflowMetrics where+ parseJSON =+ Data.withObject+ "WorkflowMetrics"+ ( \x ->+ WorkflowMetrics'+ Prelude.<$> (x Data..:? "AppflowIntegration")+ )++instance Prelude.Hashable WorkflowMetrics where+ hashWithSalt _salt WorkflowMetrics' {..} =+ _salt `Prelude.hashWithSalt` appflowIntegration++instance Prelude.NFData WorkflowMetrics where+ rnf WorkflowMetrics' {..} =+ Prelude.rnf appflowIntegration
+ gen/Amazonka/CustomerProfiles/Types/WorkflowStepItem.hs view
@@ -0,0 +1,73 @@+{-# 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.CustomerProfiles.Types.WorkflowStepItem+-- 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.CustomerProfiles.Types.WorkflowStepItem where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CustomerProfiles.Types.AppflowIntegrationWorkflowStep+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | List containing steps in workflow.+--+-- /See:/ 'newWorkflowStepItem' smart constructor.+data WorkflowStepItem = WorkflowStepItem'+ { -- | Workflow step information specific to @APPFLOW_INTEGRATION@ workflow.+ appflowIntegration :: Prelude.Maybe AppflowIntegrationWorkflowStep+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'WorkflowStepItem' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'appflowIntegration', 'workflowStepItem_appflowIntegration' - Workflow step information specific to @APPFLOW_INTEGRATION@ workflow.+newWorkflowStepItem ::+ WorkflowStepItem+newWorkflowStepItem =+ WorkflowStepItem'+ { appflowIntegration =+ Prelude.Nothing+ }++-- | Workflow step information specific to @APPFLOW_INTEGRATION@ workflow.+workflowStepItem_appflowIntegration :: Lens.Lens' WorkflowStepItem (Prelude.Maybe AppflowIntegrationWorkflowStep)+workflowStepItem_appflowIntegration = Lens.lens (\WorkflowStepItem' {appflowIntegration} -> appflowIntegration) (\s@WorkflowStepItem' {} a -> s {appflowIntegration = a} :: WorkflowStepItem)++instance Data.FromJSON WorkflowStepItem where+ parseJSON =+ Data.withObject+ "WorkflowStepItem"+ ( \x ->+ WorkflowStepItem'+ Prelude.<$> (x Data..:? "AppflowIntegration")+ )++instance Prelude.Hashable WorkflowStepItem where+ hashWithSalt _salt WorkflowStepItem' {..} =+ _salt `Prelude.hashWithSalt` appflowIntegration++instance Prelude.NFData WorkflowStepItem where+ rnf WorkflowStepItem' {..} =+ Prelude.rnf appflowIntegration
+ gen/Amazonka/CustomerProfiles/Types/WorkflowType.hs view
@@ -0,0 +1,66 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.CustomerProfiles.Types.WorkflowType+-- 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.CustomerProfiles.Types.WorkflowType+ ( WorkflowType+ ( ..,+ WorkflowType_APPFLOW_INTEGRATION+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype WorkflowType = WorkflowType'+ { fromWorkflowType ::+ 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 WorkflowType_APPFLOW_INTEGRATION :: WorkflowType+pattern WorkflowType_APPFLOW_INTEGRATION = WorkflowType' "APPFLOW_INTEGRATION"++{-# COMPLETE+ WorkflowType_APPFLOW_INTEGRATION,+ WorkflowType'+ #-}
+ gen/Amazonka/CustomerProfiles/Types/ZendeskConnectorOperator.hs view
@@ -0,0 +1,131 @@+{-# 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.CustomerProfiles.Types.ZendeskConnectorOperator+-- 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.CustomerProfiles.Types.ZendeskConnectorOperator+ ( ZendeskConnectorOperator+ ( ..,+ ZendeskConnectorOperator_ADDITION,+ ZendeskConnectorOperator_DIVISION,+ ZendeskConnectorOperator_GREATER_THAN,+ ZendeskConnectorOperator_MASK_ALL,+ ZendeskConnectorOperator_MASK_FIRST_N,+ ZendeskConnectorOperator_MASK_LAST_N,+ ZendeskConnectorOperator_MULTIPLICATION,+ ZendeskConnectorOperator_NO_OP,+ ZendeskConnectorOperator_PROJECTION,+ ZendeskConnectorOperator_SUBTRACTION,+ ZendeskConnectorOperator_VALIDATE_NON_NEGATIVE,+ ZendeskConnectorOperator_VALIDATE_NON_NULL,+ ZendeskConnectorOperator_VALIDATE_NON_ZERO,+ ZendeskConnectorOperator_VALIDATE_NUMERIC+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ZendeskConnectorOperator = ZendeskConnectorOperator'+ { fromZendeskConnectorOperator ::+ 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 ZendeskConnectorOperator_ADDITION :: ZendeskConnectorOperator+pattern ZendeskConnectorOperator_ADDITION = ZendeskConnectorOperator' "ADDITION"++pattern ZendeskConnectorOperator_DIVISION :: ZendeskConnectorOperator+pattern ZendeskConnectorOperator_DIVISION = ZendeskConnectorOperator' "DIVISION"++pattern ZendeskConnectorOperator_GREATER_THAN :: ZendeskConnectorOperator+pattern ZendeskConnectorOperator_GREATER_THAN = ZendeskConnectorOperator' "GREATER_THAN"++pattern ZendeskConnectorOperator_MASK_ALL :: ZendeskConnectorOperator+pattern ZendeskConnectorOperator_MASK_ALL = ZendeskConnectorOperator' "MASK_ALL"++pattern ZendeskConnectorOperator_MASK_FIRST_N :: ZendeskConnectorOperator+pattern ZendeskConnectorOperator_MASK_FIRST_N = ZendeskConnectorOperator' "MASK_FIRST_N"++pattern ZendeskConnectorOperator_MASK_LAST_N :: ZendeskConnectorOperator+pattern ZendeskConnectorOperator_MASK_LAST_N = ZendeskConnectorOperator' "MASK_LAST_N"++pattern ZendeskConnectorOperator_MULTIPLICATION :: ZendeskConnectorOperator+pattern ZendeskConnectorOperator_MULTIPLICATION = ZendeskConnectorOperator' "MULTIPLICATION"++pattern ZendeskConnectorOperator_NO_OP :: ZendeskConnectorOperator+pattern ZendeskConnectorOperator_NO_OP = ZendeskConnectorOperator' "NO_OP"++pattern ZendeskConnectorOperator_PROJECTION :: ZendeskConnectorOperator+pattern ZendeskConnectorOperator_PROJECTION = ZendeskConnectorOperator' "PROJECTION"++pattern ZendeskConnectorOperator_SUBTRACTION :: ZendeskConnectorOperator+pattern ZendeskConnectorOperator_SUBTRACTION = ZendeskConnectorOperator' "SUBTRACTION"++pattern ZendeskConnectorOperator_VALIDATE_NON_NEGATIVE :: ZendeskConnectorOperator+pattern ZendeskConnectorOperator_VALIDATE_NON_NEGATIVE = ZendeskConnectorOperator' "VALIDATE_NON_NEGATIVE"++pattern ZendeskConnectorOperator_VALIDATE_NON_NULL :: ZendeskConnectorOperator+pattern ZendeskConnectorOperator_VALIDATE_NON_NULL = ZendeskConnectorOperator' "VALIDATE_NON_NULL"++pattern ZendeskConnectorOperator_VALIDATE_NON_ZERO :: ZendeskConnectorOperator+pattern ZendeskConnectorOperator_VALIDATE_NON_ZERO = ZendeskConnectorOperator' "VALIDATE_NON_ZERO"++pattern ZendeskConnectorOperator_VALIDATE_NUMERIC :: ZendeskConnectorOperator+pattern ZendeskConnectorOperator_VALIDATE_NUMERIC = ZendeskConnectorOperator' "VALIDATE_NUMERIC"++{-# COMPLETE+ ZendeskConnectorOperator_ADDITION,+ ZendeskConnectorOperator_DIVISION,+ ZendeskConnectorOperator_GREATER_THAN,+ ZendeskConnectorOperator_MASK_ALL,+ ZendeskConnectorOperator_MASK_FIRST_N,+ ZendeskConnectorOperator_MASK_LAST_N,+ ZendeskConnectorOperator_MULTIPLICATION,+ ZendeskConnectorOperator_NO_OP,+ ZendeskConnectorOperator_PROJECTION,+ ZendeskConnectorOperator_SUBTRACTION,+ ZendeskConnectorOperator_VALIDATE_NON_NEGATIVE,+ ZendeskConnectorOperator_VALIDATE_NON_NULL,+ ZendeskConnectorOperator_VALIDATE_NON_ZERO,+ ZendeskConnectorOperator_VALIDATE_NUMERIC,+ ZendeskConnectorOperator'+ #-}
+ gen/Amazonka/CustomerProfiles/Types/ZendeskSourceProperties.hs view
@@ -0,0 +1,69 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.CustomerProfiles.Types.ZendeskSourceProperties+-- 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.CustomerProfiles.Types.ZendeskSourceProperties 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 properties that are applied when using Zendesk as a flow source.+--+-- /See:/ 'newZendeskSourceProperties' smart constructor.+data ZendeskSourceProperties = ZendeskSourceProperties'+ { -- | The object specified in the Zendesk flow source.+ object' :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ZendeskSourceProperties' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'object'', 'zendeskSourceProperties_object' - The object specified in the Zendesk flow source.+newZendeskSourceProperties ::+ -- | 'object''+ Prelude.Text ->+ ZendeskSourceProperties+newZendeskSourceProperties pObject_ =+ ZendeskSourceProperties' {object' = pObject_}++-- | The object specified in the Zendesk flow source.+zendeskSourceProperties_object :: Lens.Lens' ZendeskSourceProperties Prelude.Text+zendeskSourceProperties_object = Lens.lens (\ZendeskSourceProperties' {object'} -> object') (\s@ZendeskSourceProperties' {} a -> s {object' = a} :: ZendeskSourceProperties)++instance Prelude.Hashable ZendeskSourceProperties where+ hashWithSalt _salt ZendeskSourceProperties' {..} =+ _salt `Prelude.hashWithSalt` object'++instance Prelude.NFData ZendeskSourceProperties where+ rnf ZendeskSourceProperties' {..} =+ Prelude.rnf object'++instance Data.ToJSON ZendeskSourceProperties where+ toJSON ZendeskSourceProperties' {..} =+ Data.object+ ( Prelude.catMaybes+ [Prelude.Just ("Object" Data..= object')]+ )
+ gen/Amazonka/CustomerProfiles/UntagResource.hs view
@@ -0,0 +1,165 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.CustomerProfiles.UntagResource+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Removes one or more tags from the specified Amazon Connect Customer+-- Profiles resource. In Connect Customer Profiles, domains, profile object+-- types, and integrations can be tagged.+module Amazonka.CustomerProfiles.UntagResource+ ( -- * Creating a Request+ UntagResource (..),+ newUntagResource,++ -- * Request Lenses+ untagResource_resourceArn,+ untagResource_tagKeys,++ -- * Destructuring the Response+ UntagResourceResponse (..),+ newUntagResourceResponse,++ -- * Response Lenses+ untagResourceResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CustomerProfiles.Types+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUntagResource' smart constructor.+data UntagResource = UntagResource'+ { -- | The ARN of the resource from which you are removing tags.+ resourceArn :: Prelude.Text,+ -- | The list of tag keys to remove from the resource.+ tagKeys :: Prelude.NonEmpty Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UntagResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceArn', 'untagResource_resourceArn' - The ARN of the resource from which you are removing tags.+--+-- 'tagKeys', 'untagResource_tagKeys' - The list of tag keys to remove from the resource.+newUntagResource ::+ -- | 'resourceArn'+ Prelude.Text ->+ -- | 'tagKeys'+ Prelude.NonEmpty Prelude.Text ->+ UntagResource+newUntagResource pResourceArn_ pTagKeys_ =+ UntagResource'+ { resourceArn = pResourceArn_,+ tagKeys = Lens.coerced Lens.# pTagKeys_+ }++-- | The ARN of the resource from which you are removing tags.+untagResource_resourceArn :: Lens.Lens' UntagResource Prelude.Text+untagResource_resourceArn = Lens.lens (\UntagResource' {resourceArn} -> resourceArn) (\s@UntagResource' {} a -> s {resourceArn = a} :: UntagResource)++-- | The list of tag keys to remove from the resource.+untagResource_tagKeys :: Lens.Lens' UntagResource (Prelude.NonEmpty Prelude.Text)+untagResource_tagKeys = Lens.lens (\UntagResource' {tagKeys} -> tagKeys) (\s@UntagResource' {} a -> s {tagKeys = a} :: UntagResource) Prelude.. Lens.coerced++instance Core.AWSRequest UntagResource where+ type+ AWSResponse UntagResource =+ UntagResourceResponse+ request overrides =+ Request.delete (overrides defaultService)+ response =+ Response.receiveEmpty+ ( \s h x ->+ UntagResourceResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable UntagResource where+ hashWithSalt _salt UntagResource' {..} =+ _salt+ `Prelude.hashWithSalt` resourceArn+ `Prelude.hashWithSalt` tagKeys++instance Prelude.NFData UntagResource where+ rnf UntagResource' {..} =+ Prelude.rnf resourceArn+ `Prelude.seq` Prelude.rnf tagKeys++instance Data.ToHeaders UntagResource where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath UntagResource where+ toPath UntagResource' {..} =+ Prelude.mconcat ["/tags/", Data.toBS resourceArn]++instance Data.ToQuery UntagResource where+ toQuery UntagResource' {..} =+ Prelude.mconcat+ ["tagKeys" Data.=: Data.toQueryList "member" tagKeys]++-- | /See:/ 'newUntagResourceResponse' smart constructor.+data UntagResourceResponse = UntagResourceResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UntagResourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'untagResourceResponse_httpStatus' - The response's http status code.+newUntagResourceResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ UntagResourceResponse+newUntagResourceResponse pHttpStatus_ =+ UntagResourceResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+untagResourceResponse_httpStatus :: Lens.Lens' UntagResourceResponse Prelude.Int+untagResourceResponse_httpStatus = Lens.lens (\UntagResourceResponse' {httpStatus} -> httpStatus) (\s@UntagResourceResponse' {} a -> s {httpStatus = a} :: UntagResourceResponse)++instance Prelude.NFData UntagResourceResponse where+ rnf UntagResourceResponse' {..} =+ Prelude.rnf httpStatus
+ gen/Amazonka/CustomerProfiles/UpdateDomain.hs view
@@ -0,0 +1,438 @@+{-# 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.CustomerProfiles.UpdateDomain+-- 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 properties of a domain, including creating or selecting a+-- dead letter queue or an encryption key.+--+-- After a domain is created, the name can’t be changed.+--+-- Use this API or+-- <https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_CreateDomain.html CreateDomain>+-- to enable+-- <https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_GetMatches.html identity resolution>:+-- set @Matching@ to true.+--+-- To prevent cross-service impersonation when you call this API, see+-- <https://docs.aws.amazon.com/connect/latest/adminguide/cross-service-confused-deputy-prevention.html Cross-service confused deputy prevention>+-- for sample policies that you should apply.+--+-- To add or remove tags on an existing Domain, see+-- <https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_TagResource.html TagResource>\/<https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_UntagResource.html UntagResource>.+module Amazonka.CustomerProfiles.UpdateDomain+ ( -- * Creating a Request+ UpdateDomain (..),+ newUpdateDomain,++ -- * Request Lenses+ updateDomain_deadLetterQueueUrl,+ updateDomain_defaultEncryptionKey,+ updateDomain_defaultExpirationDays,+ updateDomain_matching,+ updateDomain_tags,+ updateDomain_domainName,++ -- * Destructuring the Response+ UpdateDomainResponse (..),+ newUpdateDomainResponse,++ -- * Response Lenses+ updateDomainResponse_deadLetterQueueUrl,+ updateDomainResponse_defaultEncryptionKey,+ updateDomainResponse_defaultExpirationDays,+ updateDomainResponse_matching,+ updateDomainResponse_tags,+ updateDomainResponse_httpStatus,+ updateDomainResponse_domainName,+ updateDomainResponse_createdAt,+ updateDomainResponse_lastUpdatedAt,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CustomerProfiles.Types+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateDomain' smart constructor.+data UpdateDomain = UpdateDomain'+ { -- | The URL of the SQS dead letter queue, which is used for reporting errors+ -- associated with ingesting data from third party applications. If+ -- specified as an empty string, it will clear any existing value. You must+ -- set up a policy on the DeadLetterQueue for the SendMessage operation to+ -- enable Amazon Connect Customer Profiles to send messages to the+ -- DeadLetterQueue.+ deadLetterQueueUrl :: Prelude.Maybe Prelude.Text,+ -- | The default encryption key, which is an AWS managed key, is used when no+ -- specific type of encryption key is specified. It is used to encrypt all+ -- data before it is placed in permanent or semi-permanent storage. If+ -- specified as an empty string, it will clear any existing value.+ defaultEncryptionKey :: Prelude.Maybe Prelude.Text,+ -- | The default number of days until the data within the domain expires.+ defaultExpirationDays :: Prelude.Maybe Prelude.Natural,+ -- | The process of matching duplicate profiles. If @Matching@ = @true@,+ -- Amazon Connect Customer Profiles starts a weekly batch process called+ -- Identity Resolution Job. If you do not specify a date and time for+ -- Identity Resolution Job to run, by default it runs every Saturday at+ -- 12AM UTC to detect duplicate profiles in your domains.+ --+ -- After the Identity Resolution Job completes, use the+ -- <https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_GetMatches.html GetMatches>+ -- API to return and review the results. Or, if you have configured+ -- @ExportingConfig@ in the @MatchingRequest@, you can download the results+ -- from S3.+ matching :: Prelude.Maybe MatchingRequest,+ -- | The tags used to organize, track, or control access for this resource.+ tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | The unique name of the domain.+ domainName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateDomain' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'deadLetterQueueUrl', 'updateDomain_deadLetterQueueUrl' - The URL of the SQS dead letter queue, which is used for reporting errors+-- associated with ingesting data from third party applications. If+-- specified as an empty string, it will clear any existing value. You must+-- set up a policy on the DeadLetterQueue for the SendMessage operation to+-- enable Amazon Connect Customer Profiles to send messages to the+-- DeadLetterQueue.+--+-- 'defaultEncryptionKey', 'updateDomain_defaultEncryptionKey' - The default encryption key, which is an AWS managed key, is used when no+-- specific type of encryption key is specified. It is used to encrypt all+-- data before it is placed in permanent or semi-permanent storage. If+-- specified as an empty string, it will clear any existing value.+--+-- 'defaultExpirationDays', 'updateDomain_defaultExpirationDays' - The default number of days until the data within the domain expires.+--+-- 'matching', 'updateDomain_matching' - The process of matching duplicate profiles. If @Matching@ = @true@,+-- Amazon Connect Customer Profiles starts a weekly batch process called+-- Identity Resolution Job. If you do not specify a date and time for+-- Identity Resolution Job to run, by default it runs every Saturday at+-- 12AM UTC to detect duplicate profiles in your domains.+--+-- After the Identity Resolution Job completes, use the+-- <https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_GetMatches.html GetMatches>+-- API to return and review the results. Or, if you have configured+-- @ExportingConfig@ in the @MatchingRequest@, you can download the results+-- from S3.+--+-- 'tags', 'updateDomain_tags' - The tags used to organize, track, or control access for this resource.+--+-- 'domainName', 'updateDomain_domainName' - The unique name of the domain.+newUpdateDomain ::+ -- | 'domainName'+ Prelude.Text ->+ UpdateDomain+newUpdateDomain pDomainName_ =+ UpdateDomain'+ { deadLetterQueueUrl = Prelude.Nothing,+ defaultEncryptionKey = Prelude.Nothing,+ defaultExpirationDays = Prelude.Nothing,+ matching = Prelude.Nothing,+ tags = Prelude.Nothing,+ domainName = pDomainName_+ }++-- | The URL of the SQS dead letter queue, which is used for reporting errors+-- associated with ingesting data from third party applications. If+-- specified as an empty string, it will clear any existing value. You must+-- set up a policy on the DeadLetterQueue for the SendMessage operation to+-- enable Amazon Connect Customer Profiles to send messages to the+-- DeadLetterQueue.+updateDomain_deadLetterQueueUrl :: Lens.Lens' UpdateDomain (Prelude.Maybe Prelude.Text)+updateDomain_deadLetterQueueUrl = Lens.lens (\UpdateDomain' {deadLetterQueueUrl} -> deadLetterQueueUrl) (\s@UpdateDomain' {} a -> s {deadLetterQueueUrl = a} :: UpdateDomain)++-- | The default encryption key, which is an AWS managed key, is used when no+-- specific type of encryption key is specified. It is used to encrypt all+-- data before it is placed in permanent or semi-permanent storage. If+-- specified as an empty string, it will clear any existing value.+updateDomain_defaultEncryptionKey :: Lens.Lens' UpdateDomain (Prelude.Maybe Prelude.Text)+updateDomain_defaultEncryptionKey = Lens.lens (\UpdateDomain' {defaultEncryptionKey} -> defaultEncryptionKey) (\s@UpdateDomain' {} a -> s {defaultEncryptionKey = a} :: UpdateDomain)++-- | The default number of days until the data within the domain expires.+updateDomain_defaultExpirationDays :: Lens.Lens' UpdateDomain (Prelude.Maybe Prelude.Natural)+updateDomain_defaultExpirationDays = Lens.lens (\UpdateDomain' {defaultExpirationDays} -> defaultExpirationDays) (\s@UpdateDomain' {} a -> s {defaultExpirationDays = a} :: UpdateDomain)++-- | The process of matching duplicate profiles. If @Matching@ = @true@,+-- Amazon Connect Customer Profiles starts a weekly batch process called+-- Identity Resolution Job. If you do not specify a date and time for+-- Identity Resolution Job to run, by default it runs every Saturday at+-- 12AM UTC to detect duplicate profiles in your domains.+--+-- After the Identity Resolution Job completes, use the+-- <https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_GetMatches.html GetMatches>+-- API to return and review the results. Or, if you have configured+-- @ExportingConfig@ in the @MatchingRequest@, you can download the results+-- from S3.+updateDomain_matching :: Lens.Lens' UpdateDomain (Prelude.Maybe MatchingRequest)+updateDomain_matching = Lens.lens (\UpdateDomain' {matching} -> matching) (\s@UpdateDomain' {} a -> s {matching = a} :: UpdateDomain)++-- | The tags used to organize, track, or control access for this resource.+updateDomain_tags :: Lens.Lens' UpdateDomain (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+updateDomain_tags = Lens.lens (\UpdateDomain' {tags} -> tags) (\s@UpdateDomain' {} a -> s {tags = a} :: UpdateDomain) Prelude.. Lens.mapping Lens.coerced++-- | The unique name of the domain.+updateDomain_domainName :: Lens.Lens' UpdateDomain Prelude.Text+updateDomain_domainName = Lens.lens (\UpdateDomain' {domainName} -> domainName) (\s@UpdateDomain' {} a -> s {domainName = a} :: UpdateDomain)++instance Core.AWSRequest UpdateDomain where+ type AWSResponse UpdateDomain = UpdateDomainResponse+ request overrides =+ Request.putJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ UpdateDomainResponse'+ Prelude.<$> (x Data..?> "DeadLetterQueueUrl")+ Prelude.<*> (x Data..?> "DefaultEncryptionKey")+ Prelude.<*> (x Data..?> "DefaultExpirationDays")+ Prelude.<*> (x Data..?> "Matching")+ Prelude.<*> (x Data..?> "Tags" Core..!@ Prelude.mempty)+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> (x Data..:> "DomainName")+ Prelude.<*> (x Data..:> "CreatedAt")+ Prelude.<*> (x Data..:> "LastUpdatedAt")+ )++instance Prelude.Hashable UpdateDomain where+ hashWithSalt _salt UpdateDomain' {..} =+ _salt+ `Prelude.hashWithSalt` deadLetterQueueUrl+ `Prelude.hashWithSalt` defaultEncryptionKey+ `Prelude.hashWithSalt` defaultExpirationDays+ `Prelude.hashWithSalt` matching+ `Prelude.hashWithSalt` tags+ `Prelude.hashWithSalt` domainName++instance Prelude.NFData UpdateDomain where+ rnf UpdateDomain' {..} =+ Prelude.rnf deadLetterQueueUrl+ `Prelude.seq` Prelude.rnf defaultEncryptionKey+ `Prelude.seq` Prelude.rnf defaultExpirationDays+ `Prelude.seq` Prelude.rnf matching+ `Prelude.seq` Prelude.rnf tags+ `Prelude.seq` Prelude.rnf domainName++instance Data.ToHeaders UpdateDomain where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON UpdateDomain where+ toJSON UpdateDomain' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("DeadLetterQueueUrl" Data..=)+ Prelude.<$> deadLetterQueueUrl,+ ("DefaultEncryptionKey" Data..=)+ Prelude.<$> defaultEncryptionKey,+ ("DefaultExpirationDays" Data..=)+ Prelude.<$> defaultExpirationDays,+ ("Matching" Data..=) Prelude.<$> matching,+ ("Tags" Data..=) Prelude.<$> tags+ ]+ )++instance Data.ToPath UpdateDomain where+ toPath UpdateDomain' {..} =+ Prelude.mconcat ["/domains/", Data.toBS domainName]++instance Data.ToQuery UpdateDomain where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateDomainResponse' smart constructor.+data UpdateDomainResponse = UpdateDomainResponse'+ { -- | The URL of the SQS dead letter queue, which is used for reporting errors+ -- associated with ingesting data from third party applications.+ deadLetterQueueUrl :: Prelude.Maybe Prelude.Text,+ -- | The default encryption key, which is an AWS managed key, is used when no+ -- specific type of encryption key is specified. It is used to encrypt all+ -- data before it is placed in permanent or semi-permanent storage.+ defaultEncryptionKey :: Prelude.Maybe Prelude.Text,+ -- | The default number of days until the data within the domain expires.+ defaultExpirationDays :: Prelude.Maybe Prelude.Natural,+ -- | The process of matching duplicate profiles. If @Matching@ = @true@,+ -- Amazon Connect Customer Profiles starts a weekly batch process called+ -- Identity Resolution Job. If you do not specify a date and time for+ -- Identity Resolution Job to run, by default it runs every Saturday at+ -- 12AM UTC to detect duplicate profiles in your domains.+ --+ -- After the Identity Resolution Job completes, use the+ -- <https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_GetMatches.html GetMatches>+ -- API to return and review the results. Or, if you have configured+ -- @ExportingConfig@ in the @MatchingRequest@, you can download the results+ -- from S3.+ matching :: Prelude.Maybe MatchingResponse,+ -- | The tags used to organize, track, or control access for this resource.+ tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | The unique name of the domain.+ domainName :: Prelude.Text,+ -- | The timestamp of when the domain was created.+ createdAt :: Data.POSIX,+ -- | The timestamp of when the domain was most recently edited.+ lastUpdatedAt :: Data.POSIX+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateDomainResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'deadLetterQueueUrl', 'updateDomainResponse_deadLetterQueueUrl' - The URL of the SQS dead letter queue, which is used for reporting errors+-- associated with ingesting data from third party applications.+--+-- 'defaultEncryptionKey', 'updateDomainResponse_defaultEncryptionKey' - The default encryption key, which is an AWS managed key, is used when no+-- specific type of encryption key is specified. It is used to encrypt all+-- data before it is placed in permanent or semi-permanent storage.+--+-- 'defaultExpirationDays', 'updateDomainResponse_defaultExpirationDays' - The default number of days until the data within the domain expires.+--+-- 'matching', 'updateDomainResponse_matching' - The process of matching duplicate profiles. If @Matching@ = @true@,+-- Amazon Connect Customer Profiles starts a weekly batch process called+-- Identity Resolution Job. If you do not specify a date and time for+-- Identity Resolution Job to run, by default it runs every Saturday at+-- 12AM UTC to detect duplicate profiles in your domains.+--+-- After the Identity Resolution Job completes, use the+-- <https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_GetMatches.html GetMatches>+-- API to return and review the results. Or, if you have configured+-- @ExportingConfig@ in the @MatchingRequest@, you can download the results+-- from S3.+--+-- 'tags', 'updateDomainResponse_tags' - The tags used to organize, track, or control access for this resource.+--+-- 'httpStatus', 'updateDomainResponse_httpStatus' - The response's http status code.+--+-- 'domainName', 'updateDomainResponse_domainName' - The unique name of the domain.+--+-- 'createdAt', 'updateDomainResponse_createdAt' - The timestamp of when the domain was created.+--+-- 'lastUpdatedAt', 'updateDomainResponse_lastUpdatedAt' - The timestamp of when the domain was most recently edited.+newUpdateDomainResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ -- | 'domainName'+ Prelude.Text ->+ -- | 'createdAt'+ Prelude.UTCTime ->+ -- | 'lastUpdatedAt'+ Prelude.UTCTime ->+ UpdateDomainResponse+newUpdateDomainResponse+ pHttpStatus_+ pDomainName_+ pCreatedAt_+ pLastUpdatedAt_ =+ UpdateDomainResponse'+ { deadLetterQueueUrl =+ Prelude.Nothing,+ defaultEncryptionKey = Prelude.Nothing,+ defaultExpirationDays = Prelude.Nothing,+ matching = Prelude.Nothing,+ tags = Prelude.Nothing,+ httpStatus = pHttpStatus_,+ domainName = pDomainName_,+ createdAt = Data._Time Lens.# pCreatedAt_,+ lastUpdatedAt = Data._Time Lens.# pLastUpdatedAt_+ }++-- | The URL of the SQS dead letter queue, which is used for reporting errors+-- associated with ingesting data from third party applications.+updateDomainResponse_deadLetterQueueUrl :: Lens.Lens' UpdateDomainResponse (Prelude.Maybe Prelude.Text)+updateDomainResponse_deadLetterQueueUrl = Lens.lens (\UpdateDomainResponse' {deadLetterQueueUrl} -> deadLetterQueueUrl) (\s@UpdateDomainResponse' {} a -> s {deadLetterQueueUrl = a} :: UpdateDomainResponse)++-- | The default encryption key, which is an AWS managed key, is used when no+-- specific type of encryption key is specified. It is used to encrypt all+-- data before it is placed in permanent or semi-permanent storage.+updateDomainResponse_defaultEncryptionKey :: Lens.Lens' UpdateDomainResponse (Prelude.Maybe Prelude.Text)+updateDomainResponse_defaultEncryptionKey = Lens.lens (\UpdateDomainResponse' {defaultEncryptionKey} -> defaultEncryptionKey) (\s@UpdateDomainResponse' {} a -> s {defaultEncryptionKey = a} :: UpdateDomainResponse)++-- | The default number of days until the data within the domain expires.+updateDomainResponse_defaultExpirationDays :: Lens.Lens' UpdateDomainResponse (Prelude.Maybe Prelude.Natural)+updateDomainResponse_defaultExpirationDays = Lens.lens (\UpdateDomainResponse' {defaultExpirationDays} -> defaultExpirationDays) (\s@UpdateDomainResponse' {} a -> s {defaultExpirationDays = a} :: UpdateDomainResponse)++-- | The process of matching duplicate profiles. If @Matching@ = @true@,+-- Amazon Connect Customer Profiles starts a weekly batch process called+-- Identity Resolution Job. If you do not specify a date and time for+-- Identity Resolution Job to run, by default it runs every Saturday at+-- 12AM UTC to detect duplicate profiles in your domains.+--+-- After the Identity Resolution Job completes, use the+-- <https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_GetMatches.html GetMatches>+-- API to return and review the results. Or, if you have configured+-- @ExportingConfig@ in the @MatchingRequest@, you can download the results+-- from S3.+updateDomainResponse_matching :: Lens.Lens' UpdateDomainResponse (Prelude.Maybe MatchingResponse)+updateDomainResponse_matching = Lens.lens (\UpdateDomainResponse' {matching} -> matching) (\s@UpdateDomainResponse' {} a -> s {matching = a} :: UpdateDomainResponse)++-- | The tags used to organize, track, or control access for this resource.+updateDomainResponse_tags :: Lens.Lens' UpdateDomainResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+updateDomainResponse_tags = Lens.lens (\UpdateDomainResponse' {tags} -> tags) (\s@UpdateDomainResponse' {} a -> s {tags = a} :: UpdateDomainResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+updateDomainResponse_httpStatus :: Lens.Lens' UpdateDomainResponse Prelude.Int+updateDomainResponse_httpStatus = Lens.lens (\UpdateDomainResponse' {httpStatus} -> httpStatus) (\s@UpdateDomainResponse' {} a -> s {httpStatus = a} :: UpdateDomainResponse)++-- | The unique name of the domain.+updateDomainResponse_domainName :: Lens.Lens' UpdateDomainResponse Prelude.Text+updateDomainResponse_domainName = Lens.lens (\UpdateDomainResponse' {domainName} -> domainName) (\s@UpdateDomainResponse' {} a -> s {domainName = a} :: UpdateDomainResponse)++-- | The timestamp of when the domain was created.+updateDomainResponse_createdAt :: Lens.Lens' UpdateDomainResponse Prelude.UTCTime+updateDomainResponse_createdAt = Lens.lens (\UpdateDomainResponse' {createdAt} -> createdAt) (\s@UpdateDomainResponse' {} a -> s {createdAt = a} :: UpdateDomainResponse) Prelude.. Data._Time++-- | The timestamp of when the domain was most recently edited.+updateDomainResponse_lastUpdatedAt :: Lens.Lens' UpdateDomainResponse Prelude.UTCTime+updateDomainResponse_lastUpdatedAt = Lens.lens (\UpdateDomainResponse' {lastUpdatedAt} -> lastUpdatedAt) (\s@UpdateDomainResponse' {} a -> s {lastUpdatedAt = a} :: UpdateDomainResponse) Prelude.. Data._Time++instance Prelude.NFData UpdateDomainResponse where+ rnf UpdateDomainResponse' {..} =+ Prelude.rnf deadLetterQueueUrl+ `Prelude.seq` Prelude.rnf defaultEncryptionKey+ `Prelude.seq` Prelude.rnf defaultExpirationDays+ `Prelude.seq` Prelude.rnf matching+ `Prelude.seq` Prelude.rnf tags+ `Prelude.seq` Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf domainName+ `Prelude.seq` Prelude.rnf createdAt+ `Prelude.seq` Prelude.rnf lastUpdatedAt
+ gen/Amazonka/CustomerProfiles/UpdateProfile.hs view
@@ -0,0 +1,512 @@+{-# 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.CustomerProfiles.UpdateProfile+-- 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 properties of a profile. The ProfileId is required for+-- updating a customer profile.+--+-- When calling the UpdateProfile API, specifying an empty string value+-- means that any existing value will be removed. Not specifying a string+-- value means that any value already there will be kept.+module Amazonka.CustomerProfiles.UpdateProfile+ ( -- * Creating a Request+ UpdateProfile (..),+ newUpdateProfile,++ -- * Request Lenses+ updateProfile_accountNumber,+ updateProfile_additionalInformation,+ updateProfile_address,+ updateProfile_attributes,+ updateProfile_billingAddress,+ updateProfile_birthDate,+ updateProfile_businessEmailAddress,+ updateProfile_businessName,+ updateProfile_businessPhoneNumber,+ updateProfile_emailAddress,+ updateProfile_firstName,+ updateProfile_gender,+ updateProfile_genderString,+ updateProfile_homePhoneNumber,+ updateProfile_lastName,+ updateProfile_mailingAddress,+ updateProfile_middleName,+ updateProfile_mobilePhoneNumber,+ updateProfile_partyType,+ updateProfile_partyTypeString,+ updateProfile_personalEmailAddress,+ updateProfile_phoneNumber,+ updateProfile_shippingAddress,+ updateProfile_domainName,+ updateProfile_profileId,++ -- * Destructuring the Response+ UpdateProfileResponse (..),+ newUpdateProfileResponse,++ -- * Response Lenses+ updateProfileResponse_httpStatus,+ updateProfileResponse_profileId,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CustomerProfiles.Types+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateProfile' smart constructor.+data UpdateProfile = UpdateProfile'+ { -- | A unique account number that you have given to the customer.+ accountNumber :: Prelude.Maybe Prelude.Text,+ -- | Any additional information relevant to the customer’s profile.+ additionalInformation :: Prelude.Maybe Prelude.Text,+ -- | A generic address associated with the customer that is not mailing,+ -- shipping, or billing.+ address :: Prelude.Maybe UpdateAddress,+ -- | A key value pair of attributes of a customer profile.+ attributes :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | The customer’s billing address.+ billingAddress :: Prelude.Maybe UpdateAddress,+ -- | The customer’s birth date.+ birthDate :: Prelude.Maybe Prelude.Text,+ -- | The customer’s business email address.+ businessEmailAddress :: Prelude.Maybe Prelude.Text,+ -- | The name of the customer’s business.+ businessName :: Prelude.Maybe Prelude.Text,+ -- | The customer’s business phone number.+ businessPhoneNumber :: Prelude.Maybe Prelude.Text,+ -- | The customer’s email address, which has not been specified as a personal+ -- or business address.+ emailAddress :: Prelude.Maybe Prelude.Text,+ -- | The customer’s first name.+ firstName :: Prelude.Maybe Prelude.Text,+ -- | The gender with which the customer identifies.+ gender :: Prelude.Maybe Gender,+ -- | An alternative to @Gender@ which accepts any string as input.+ genderString :: Prelude.Maybe Prelude.Text,+ -- | The customer’s home phone number.+ homePhoneNumber :: Prelude.Maybe Prelude.Text,+ -- | The customer’s last name.+ lastName :: Prelude.Maybe Prelude.Text,+ -- | The customer’s mailing address.+ mailingAddress :: Prelude.Maybe UpdateAddress,+ -- | The customer’s middle name.+ middleName :: Prelude.Maybe Prelude.Text,+ -- | The customer’s mobile phone number.+ mobilePhoneNumber :: Prelude.Maybe Prelude.Text,+ -- | The type of profile used to describe the customer.+ partyType :: Prelude.Maybe PartyType,+ -- | An alternative to @PartyType@ which accepts any string as input.+ partyTypeString :: Prelude.Maybe Prelude.Text,+ -- | The customer’s personal email address.+ personalEmailAddress :: Prelude.Maybe Prelude.Text,+ -- | The customer’s phone number, which has not been specified as a mobile,+ -- home, or business number.+ phoneNumber :: Prelude.Maybe Prelude.Text,+ -- | The customer’s shipping address.+ shippingAddress :: Prelude.Maybe UpdateAddress,+ -- | The unique name of the domain.+ domainName :: Prelude.Text,+ -- | The unique identifier of a customer profile.+ profileId :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateProfile' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accountNumber', 'updateProfile_accountNumber' - A unique account number that you have given to the customer.+--+-- 'additionalInformation', 'updateProfile_additionalInformation' - Any additional information relevant to the customer’s profile.+--+-- 'address', 'updateProfile_address' - A generic address associated with the customer that is not mailing,+-- shipping, or billing.+--+-- 'attributes', 'updateProfile_attributes' - A key value pair of attributes of a customer profile.+--+-- 'billingAddress', 'updateProfile_billingAddress' - The customer’s billing address.+--+-- 'birthDate', 'updateProfile_birthDate' - The customer’s birth date.+--+-- 'businessEmailAddress', 'updateProfile_businessEmailAddress' - The customer’s business email address.+--+-- 'businessName', 'updateProfile_businessName' - The name of the customer’s business.+--+-- 'businessPhoneNumber', 'updateProfile_businessPhoneNumber' - The customer’s business phone number.+--+-- 'emailAddress', 'updateProfile_emailAddress' - The customer’s email address, which has not been specified as a personal+-- or business address.+--+-- 'firstName', 'updateProfile_firstName' - The customer’s first name.+--+-- 'gender', 'updateProfile_gender' - The gender with which the customer identifies.+--+-- 'genderString', 'updateProfile_genderString' - An alternative to @Gender@ which accepts any string as input.+--+-- 'homePhoneNumber', 'updateProfile_homePhoneNumber' - The customer’s home phone number.+--+-- 'lastName', 'updateProfile_lastName' - The customer’s last name.+--+-- 'mailingAddress', 'updateProfile_mailingAddress' - The customer’s mailing address.+--+-- 'middleName', 'updateProfile_middleName' - The customer’s middle name.+--+-- 'mobilePhoneNumber', 'updateProfile_mobilePhoneNumber' - The customer’s mobile phone number.+--+-- 'partyType', 'updateProfile_partyType' - The type of profile used to describe the customer.+--+-- 'partyTypeString', 'updateProfile_partyTypeString' - An alternative to @PartyType@ which accepts any string as input.+--+-- 'personalEmailAddress', 'updateProfile_personalEmailAddress' - The customer’s personal email address.+--+-- 'phoneNumber', 'updateProfile_phoneNumber' - The customer’s phone number, which has not been specified as a mobile,+-- home, or business number.+--+-- 'shippingAddress', 'updateProfile_shippingAddress' - The customer’s shipping address.+--+-- 'domainName', 'updateProfile_domainName' - The unique name of the domain.+--+-- 'profileId', 'updateProfile_profileId' - The unique identifier of a customer profile.+newUpdateProfile ::+ -- | 'domainName'+ Prelude.Text ->+ -- | 'profileId'+ Prelude.Text ->+ UpdateProfile+newUpdateProfile pDomainName_ pProfileId_ =+ UpdateProfile'+ { accountNumber = Prelude.Nothing,+ additionalInformation = Prelude.Nothing,+ address = Prelude.Nothing,+ attributes = Prelude.Nothing,+ billingAddress = Prelude.Nothing,+ birthDate = Prelude.Nothing,+ businessEmailAddress = Prelude.Nothing,+ businessName = Prelude.Nothing,+ businessPhoneNumber = Prelude.Nothing,+ emailAddress = Prelude.Nothing,+ firstName = Prelude.Nothing,+ gender = Prelude.Nothing,+ genderString = Prelude.Nothing,+ homePhoneNumber = Prelude.Nothing,+ lastName = Prelude.Nothing,+ mailingAddress = Prelude.Nothing,+ middleName = Prelude.Nothing,+ mobilePhoneNumber = Prelude.Nothing,+ partyType = Prelude.Nothing,+ partyTypeString = Prelude.Nothing,+ personalEmailAddress = Prelude.Nothing,+ phoneNumber = Prelude.Nothing,+ shippingAddress = Prelude.Nothing,+ domainName = pDomainName_,+ profileId = pProfileId_+ }++-- | A unique account number that you have given to the customer.+updateProfile_accountNumber :: Lens.Lens' UpdateProfile (Prelude.Maybe Prelude.Text)+updateProfile_accountNumber = Lens.lens (\UpdateProfile' {accountNumber} -> accountNumber) (\s@UpdateProfile' {} a -> s {accountNumber = a} :: UpdateProfile)++-- | Any additional information relevant to the customer’s profile.+updateProfile_additionalInformation :: Lens.Lens' UpdateProfile (Prelude.Maybe Prelude.Text)+updateProfile_additionalInformation = Lens.lens (\UpdateProfile' {additionalInformation} -> additionalInformation) (\s@UpdateProfile' {} a -> s {additionalInformation = a} :: UpdateProfile)++-- | A generic address associated with the customer that is not mailing,+-- shipping, or billing.+updateProfile_address :: Lens.Lens' UpdateProfile (Prelude.Maybe UpdateAddress)+updateProfile_address = Lens.lens (\UpdateProfile' {address} -> address) (\s@UpdateProfile' {} a -> s {address = a} :: UpdateProfile)++-- | A key value pair of attributes of a customer profile.+updateProfile_attributes :: Lens.Lens' UpdateProfile (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+updateProfile_attributes = Lens.lens (\UpdateProfile' {attributes} -> attributes) (\s@UpdateProfile' {} a -> s {attributes = a} :: UpdateProfile) Prelude.. Lens.mapping Lens.coerced++-- | The customer’s billing address.+updateProfile_billingAddress :: Lens.Lens' UpdateProfile (Prelude.Maybe UpdateAddress)+updateProfile_billingAddress = Lens.lens (\UpdateProfile' {billingAddress} -> billingAddress) (\s@UpdateProfile' {} a -> s {billingAddress = a} :: UpdateProfile)++-- | The customer’s birth date.+updateProfile_birthDate :: Lens.Lens' UpdateProfile (Prelude.Maybe Prelude.Text)+updateProfile_birthDate = Lens.lens (\UpdateProfile' {birthDate} -> birthDate) (\s@UpdateProfile' {} a -> s {birthDate = a} :: UpdateProfile)++-- | The customer’s business email address.+updateProfile_businessEmailAddress :: Lens.Lens' UpdateProfile (Prelude.Maybe Prelude.Text)+updateProfile_businessEmailAddress = Lens.lens (\UpdateProfile' {businessEmailAddress} -> businessEmailAddress) (\s@UpdateProfile' {} a -> s {businessEmailAddress = a} :: UpdateProfile)++-- | The name of the customer’s business.+updateProfile_businessName :: Lens.Lens' UpdateProfile (Prelude.Maybe Prelude.Text)+updateProfile_businessName = Lens.lens (\UpdateProfile' {businessName} -> businessName) (\s@UpdateProfile' {} a -> s {businessName = a} :: UpdateProfile)++-- | The customer’s business phone number.+updateProfile_businessPhoneNumber :: Lens.Lens' UpdateProfile (Prelude.Maybe Prelude.Text)+updateProfile_businessPhoneNumber = Lens.lens (\UpdateProfile' {businessPhoneNumber} -> businessPhoneNumber) (\s@UpdateProfile' {} a -> s {businessPhoneNumber = a} :: UpdateProfile)++-- | The customer’s email address, which has not been specified as a personal+-- or business address.+updateProfile_emailAddress :: Lens.Lens' UpdateProfile (Prelude.Maybe Prelude.Text)+updateProfile_emailAddress = Lens.lens (\UpdateProfile' {emailAddress} -> emailAddress) (\s@UpdateProfile' {} a -> s {emailAddress = a} :: UpdateProfile)++-- | The customer’s first name.+updateProfile_firstName :: Lens.Lens' UpdateProfile (Prelude.Maybe Prelude.Text)+updateProfile_firstName = Lens.lens (\UpdateProfile' {firstName} -> firstName) (\s@UpdateProfile' {} a -> s {firstName = a} :: UpdateProfile)++-- | The gender with which the customer identifies.+updateProfile_gender :: Lens.Lens' UpdateProfile (Prelude.Maybe Gender)+updateProfile_gender = Lens.lens (\UpdateProfile' {gender} -> gender) (\s@UpdateProfile' {} a -> s {gender = a} :: UpdateProfile)++-- | An alternative to @Gender@ which accepts any string as input.+updateProfile_genderString :: Lens.Lens' UpdateProfile (Prelude.Maybe Prelude.Text)+updateProfile_genderString = Lens.lens (\UpdateProfile' {genderString} -> genderString) (\s@UpdateProfile' {} a -> s {genderString = a} :: UpdateProfile)++-- | The customer’s home phone number.+updateProfile_homePhoneNumber :: Lens.Lens' UpdateProfile (Prelude.Maybe Prelude.Text)+updateProfile_homePhoneNumber = Lens.lens (\UpdateProfile' {homePhoneNumber} -> homePhoneNumber) (\s@UpdateProfile' {} a -> s {homePhoneNumber = a} :: UpdateProfile)++-- | The customer’s last name.+updateProfile_lastName :: Lens.Lens' UpdateProfile (Prelude.Maybe Prelude.Text)+updateProfile_lastName = Lens.lens (\UpdateProfile' {lastName} -> lastName) (\s@UpdateProfile' {} a -> s {lastName = a} :: UpdateProfile)++-- | The customer’s mailing address.+updateProfile_mailingAddress :: Lens.Lens' UpdateProfile (Prelude.Maybe UpdateAddress)+updateProfile_mailingAddress = Lens.lens (\UpdateProfile' {mailingAddress} -> mailingAddress) (\s@UpdateProfile' {} a -> s {mailingAddress = a} :: UpdateProfile)++-- | The customer’s middle name.+updateProfile_middleName :: Lens.Lens' UpdateProfile (Prelude.Maybe Prelude.Text)+updateProfile_middleName = Lens.lens (\UpdateProfile' {middleName} -> middleName) (\s@UpdateProfile' {} a -> s {middleName = a} :: UpdateProfile)++-- | The customer’s mobile phone number.+updateProfile_mobilePhoneNumber :: Lens.Lens' UpdateProfile (Prelude.Maybe Prelude.Text)+updateProfile_mobilePhoneNumber = Lens.lens (\UpdateProfile' {mobilePhoneNumber} -> mobilePhoneNumber) (\s@UpdateProfile' {} a -> s {mobilePhoneNumber = a} :: UpdateProfile)++-- | The type of profile used to describe the customer.+updateProfile_partyType :: Lens.Lens' UpdateProfile (Prelude.Maybe PartyType)+updateProfile_partyType = Lens.lens (\UpdateProfile' {partyType} -> partyType) (\s@UpdateProfile' {} a -> s {partyType = a} :: UpdateProfile)++-- | An alternative to @PartyType@ which accepts any string as input.+updateProfile_partyTypeString :: Lens.Lens' UpdateProfile (Prelude.Maybe Prelude.Text)+updateProfile_partyTypeString = Lens.lens (\UpdateProfile' {partyTypeString} -> partyTypeString) (\s@UpdateProfile' {} a -> s {partyTypeString = a} :: UpdateProfile)++-- | The customer’s personal email address.+updateProfile_personalEmailAddress :: Lens.Lens' UpdateProfile (Prelude.Maybe Prelude.Text)+updateProfile_personalEmailAddress = Lens.lens (\UpdateProfile' {personalEmailAddress} -> personalEmailAddress) (\s@UpdateProfile' {} a -> s {personalEmailAddress = a} :: UpdateProfile)++-- | The customer’s phone number, which has not been specified as a mobile,+-- home, or business number.+updateProfile_phoneNumber :: Lens.Lens' UpdateProfile (Prelude.Maybe Prelude.Text)+updateProfile_phoneNumber = Lens.lens (\UpdateProfile' {phoneNumber} -> phoneNumber) (\s@UpdateProfile' {} a -> s {phoneNumber = a} :: UpdateProfile)++-- | The customer’s shipping address.+updateProfile_shippingAddress :: Lens.Lens' UpdateProfile (Prelude.Maybe UpdateAddress)+updateProfile_shippingAddress = Lens.lens (\UpdateProfile' {shippingAddress} -> shippingAddress) (\s@UpdateProfile' {} a -> s {shippingAddress = a} :: UpdateProfile)++-- | The unique name of the domain.+updateProfile_domainName :: Lens.Lens' UpdateProfile Prelude.Text+updateProfile_domainName = Lens.lens (\UpdateProfile' {domainName} -> domainName) (\s@UpdateProfile' {} a -> s {domainName = a} :: UpdateProfile)++-- | The unique identifier of a customer profile.+updateProfile_profileId :: Lens.Lens' UpdateProfile Prelude.Text+updateProfile_profileId = Lens.lens (\UpdateProfile' {profileId} -> profileId) (\s@UpdateProfile' {} a -> s {profileId = a} :: UpdateProfile)++instance Core.AWSRequest UpdateProfile where+ type+ AWSResponse UpdateProfile =+ UpdateProfileResponse+ request overrides =+ Request.putJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ UpdateProfileResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> (x Data..:> "ProfileId")+ )++instance Prelude.Hashable UpdateProfile where+ hashWithSalt _salt UpdateProfile' {..} =+ _salt+ `Prelude.hashWithSalt` accountNumber+ `Prelude.hashWithSalt` additionalInformation+ `Prelude.hashWithSalt` address+ `Prelude.hashWithSalt` attributes+ `Prelude.hashWithSalt` billingAddress+ `Prelude.hashWithSalt` birthDate+ `Prelude.hashWithSalt` businessEmailAddress+ `Prelude.hashWithSalt` businessName+ `Prelude.hashWithSalt` businessPhoneNumber+ `Prelude.hashWithSalt` emailAddress+ `Prelude.hashWithSalt` firstName+ `Prelude.hashWithSalt` gender+ `Prelude.hashWithSalt` genderString+ `Prelude.hashWithSalt` homePhoneNumber+ `Prelude.hashWithSalt` lastName+ `Prelude.hashWithSalt` mailingAddress+ `Prelude.hashWithSalt` middleName+ `Prelude.hashWithSalt` mobilePhoneNumber+ `Prelude.hashWithSalt` partyType+ `Prelude.hashWithSalt` partyTypeString+ `Prelude.hashWithSalt` personalEmailAddress+ `Prelude.hashWithSalt` phoneNumber+ `Prelude.hashWithSalt` shippingAddress+ `Prelude.hashWithSalt` domainName+ `Prelude.hashWithSalt` profileId++instance Prelude.NFData UpdateProfile where+ rnf UpdateProfile' {..} =+ Prelude.rnf accountNumber+ `Prelude.seq` Prelude.rnf additionalInformation+ `Prelude.seq` Prelude.rnf address+ `Prelude.seq` Prelude.rnf attributes+ `Prelude.seq` Prelude.rnf billingAddress+ `Prelude.seq` Prelude.rnf birthDate+ `Prelude.seq` Prelude.rnf businessEmailAddress+ `Prelude.seq` Prelude.rnf businessName+ `Prelude.seq` Prelude.rnf businessPhoneNumber+ `Prelude.seq` Prelude.rnf emailAddress+ `Prelude.seq` Prelude.rnf firstName+ `Prelude.seq` Prelude.rnf gender+ `Prelude.seq` Prelude.rnf genderString+ `Prelude.seq` Prelude.rnf homePhoneNumber+ `Prelude.seq` Prelude.rnf lastName+ `Prelude.seq` Prelude.rnf mailingAddress+ `Prelude.seq` Prelude.rnf middleName+ `Prelude.seq` Prelude.rnf mobilePhoneNumber+ `Prelude.seq` Prelude.rnf partyType+ `Prelude.seq` Prelude.rnf partyTypeString+ `Prelude.seq` Prelude.rnf+ personalEmailAddress+ `Prelude.seq` Prelude.rnf phoneNumber+ `Prelude.seq` Prelude.rnf+ shippingAddress+ `Prelude.seq` Prelude.rnf domainName+ `Prelude.seq` Prelude.rnf+ profileId++instance Data.ToHeaders UpdateProfile where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON UpdateProfile where+ toJSON UpdateProfile' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("AccountNumber" Data..=) Prelude.<$> accountNumber,+ ("AdditionalInformation" Data..=)+ Prelude.<$> additionalInformation,+ ("Address" Data..=) Prelude.<$> address,+ ("Attributes" Data..=) Prelude.<$> attributes,+ ("BillingAddress" Data..=)+ Prelude.<$> billingAddress,+ ("BirthDate" Data..=) Prelude.<$> birthDate,+ ("BusinessEmailAddress" Data..=)+ Prelude.<$> businessEmailAddress,+ ("BusinessName" Data..=) Prelude.<$> businessName,+ ("BusinessPhoneNumber" Data..=)+ Prelude.<$> businessPhoneNumber,+ ("EmailAddress" Data..=) Prelude.<$> emailAddress,+ ("FirstName" Data..=) Prelude.<$> firstName,+ ("Gender" Data..=) Prelude.<$> gender,+ ("GenderString" Data..=) Prelude.<$> genderString,+ ("HomePhoneNumber" Data..=)+ Prelude.<$> homePhoneNumber,+ ("LastName" Data..=) Prelude.<$> lastName,+ ("MailingAddress" Data..=)+ Prelude.<$> mailingAddress,+ ("MiddleName" Data..=) Prelude.<$> middleName,+ ("MobilePhoneNumber" Data..=)+ Prelude.<$> mobilePhoneNumber,+ ("PartyType" Data..=) Prelude.<$> partyType,+ ("PartyTypeString" Data..=)+ Prelude.<$> partyTypeString,+ ("PersonalEmailAddress" Data..=)+ Prelude.<$> personalEmailAddress,+ ("PhoneNumber" Data..=) Prelude.<$> phoneNumber,+ ("ShippingAddress" Data..=)+ Prelude.<$> shippingAddress,+ Prelude.Just ("ProfileId" Data..= profileId)+ ]+ )++instance Data.ToPath UpdateProfile where+ toPath UpdateProfile' {..} =+ Prelude.mconcat+ ["/domains/", Data.toBS domainName, "/profiles"]++instance Data.ToQuery UpdateProfile where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateProfileResponse' smart constructor.+data UpdateProfileResponse = UpdateProfileResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | The unique identifier of a customer profile.+ profileId :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateProfileResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'updateProfileResponse_httpStatus' - The response's http status code.+--+-- 'profileId', 'updateProfileResponse_profileId' - The unique identifier of a customer profile.+newUpdateProfileResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ -- | 'profileId'+ Prelude.Text ->+ UpdateProfileResponse+newUpdateProfileResponse pHttpStatus_ pProfileId_ =+ UpdateProfileResponse'+ { httpStatus = pHttpStatus_,+ profileId = pProfileId_+ }++-- | The response's http status code.+updateProfileResponse_httpStatus :: Lens.Lens' UpdateProfileResponse Prelude.Int+updateProfileResponse_httpStatus = Lens.lens (\UpdateProfileResponse' {httpStatus} -> httpStatus) (\s@UpdateProfileResponse' {} a -> s {httpStatus = a} :: UpdateProfileResponse)++-- | The unique identifier of a customer profile.+updateProfileResponse_profileId :: Lens.Lens' UpdateProfileResponse Prelude.Text+updateProfileResponse_profileId = Lens.lens (\UpdateProfileResponse' {profileId} -> profileId) (\s@UpdateProfileResponse' {} a -> s {profileId = a} :: UpdateProfileResponse)++instance Prelude.NFData UpdateProfileResponse where+ rnf UpdateProfileResponse' {..} =+ Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf profileId
+ gen/Amazonka/CustomerProfiles/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.CustomerProfiles.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.CustomerProfiles.Waiters where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CustomerProfiles.Lens+import Amazonka.CustomerProfiles.Types+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude
+ src/.gitkeep view
+ test/Main.hs view
@@ -0,0 +1,23 @@+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module : Main+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Main (main) where++import Test.Amazonka.CustomerProfiles+import Test.Amazonka.CustomerProfiles.Internal+import Test.Tasty++main :: IO ()+main =+ defaultMain $+ testGroup+ "CustomerProfiles"+ [ testGroup "tests" tests,+ testGroup "fixtures" fixtures+ ]
+ test/Test/Amazonka/CustomerProfiles.hs view
@@ -0,0 +1,20 @@+-- |+-- Module : Test.Amazonka.CustomerProfiles+-- 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.CustomerProfiles+ ( tests,+ fixtures,+ )+where++import Test.Tasty (TestTree)++tests :: [TestTree]+tests = []++fixtures :: [TestTree]+fixtures = []
+ test/Test/Amazonka/CustomerProfiles/Internal.hs view
@@ -0,0 +1,8 @@+-- |+-- Module : Test.Amazonka.CustomerProfiles.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.CustomerProfiles.Internal where
+ test/Test/Amazonka/Gen/CustomerProfiles.hs view
@@ -0,0 +1,798 @@+{-# 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.CustomerProfiles+-- 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.CustomerProfiles where++import Amazonka.CustomerProfiles+import qualified Data.Proxy as Proxy+import Test.Amazonka.CustomerProfiles.Internal+import Test.Amazonka.Fixture+import Test.Amazonka.Prelude+import Test.Tasty++-- Auto-generated: the actual test selection needs to be manually placed into+-- the top-level so that real test data can be incrementally added.+--+-- This commented snippet is what the entire set should look like:++-- fixtures :: TestTree+-- fixtures =+-- [ testGroup "request"+-- [ requestAddProfileKey $+-- newAddProfileKey+--+-- , requestCreateDomain $+-- newCreateDomain+--+-- , requestCreateIntegrationWorkflow $+-- newCreateIntegrationWorkflow+--+-- , requestCreateProfile $+-- newCreateProfile+--+-- , requestDeleteDomain $+-- newDeleteDomain+--+-- , requestDeleteIntegration $+-- newDeleteIntegration+--+-- , requestDeleteProfile $+-- newDeleteProfile+--+-- , requestDeleteProfileKey $+-- newDeleteProfileKey+--+-- , requestDeleteProfileObject $+-- newDeleteProfileObject+--+-- , requestDeleteProfileObjectType $+-- newDeleteProfileObjectType+--+-- , requestDeleteWorkflow $+-- newDeleteWorkflow+--+-- , requestGetAutoMergingPreview $+-- newGetAutoMergingPreview+--+-- , requestGetDomain $+-- newGetDomain+--+-- , requestGetIdentityResolutionJob $+-- newGetIdentityResolutionJob+--+-- , requestGetIntegration $+-- newGetIntegration+--+-- , requestGetMatches $+-- newGetMatches+--+-- , requestGetProfileObjectType $+-- newGetProfileObjectType+--+-- , requestGetProfileObjectTypeTemplate $+-- newGetProfileObjectTypeTemplate+--+-- , requestGetWorkflow $+-- newGetWorkflow+--+-- , requestGetWorkflowSteps $+-- newGetWorkflowSteps+--+-- , requestListAccountIntegrations $+-- newListAccountIntegrations+--+-- , requestListDomains $+-- newListDomains+--+-- , requestListIdentityResolutionJobs $+-- newListIdentityResolutionJobs+--+-- , requestListIntegrations $+-- newListIntegrations+--+-- , requestListProfileObjectTypeTemplates $+-- newListProfileObjectTypeTemplates+--+-- , requestListProfileObjectTypes $+-- newListProfileObjectTypes+--+-- , requestListProfileObjects $+-- newListProfileObjects+--+-- , requestListTagsForResource $+-- newListTagsForResource+--+-- , requestListWorkflows $+-- newListWorkflows+--+-- , requestMergeProfiles $+-- newMergeProfiles+--+-- , requestPutIntegration $+-- newPutIntegration+--+-- , requestPutProfileObject $+-- newPutProfileObject+--+-- , requestPutProfileObjectType $+-- newPutProfileObjectType+--+-- , requestSearchProfiles $+-- newSearchProfiles+--+-- , requestTagResource $+-- newTagResource+--+-- , requestUntagResource $+-- newUntagResource+--+-- , requestUpdateDomain $+-- newUpdateDomain+--+-- , requestUpdateProfile $+-- newUpdateProfile+--+-- ]++-- , testGroup "response"+-- [ responseAddProfileKey $+-- newAddProfileKeyResponse+--+-- , responseCreateDomain $+-- newCreateDomainResponse+--+-- , responseCreateIntegrationWorkflow $+-- newCreateIntegrationWorkflowResponse+--+-- , responseCreateProfile $+-- newCreateProfileResponse+--+-- , responseDeleteDomain $+-- newDeleteDomainResponse+--+-- , responseDeleteIntegration $+-- newDeleteIntegrationResponse+--+-- , responseDeleteProfile $+-- newDeleteProfileResponse+--+-- , responseDeleteProfileKey $+-- newDeleteProfileKeyResponse+--+-- , responseDeleteProfileObject $+-- newDeleteProfileObjectResponse+--+-- , responseDeleteProfileObjectType $+-- newDeleteProfileObjectTypeResponse+--+-- , responseDeleteWorkflow $+-- newDeleteWorkflowResponse+--+-- , responseGetAutoMergingPreview $+-- newGetAutoMergingPreviewResponse+--+-- , responseGetDomain $+-- newGetDomainResponse+--+-- , responseGetIdentityResolutionJob $+-- newGetIdentityResolutionJobResponse+--+-- , responseGetIntegration $+-- newGetIntegrationResponse+--+-- , responseGetMatches $+-- newGetMatchesResponse+--+-- , responseGetProfileObjectType $+-- newGetProfileObjectTypeResponse+--+-- , responseGetProfileObjectTypeTemplate $+-- newGetProfileObjectTypeTemplateResponse+--+-- , responseGetWorkflow $+-- newGetWorkflowResponse+--+-- , responseGetWorkflowSteps $+-- newGetWorkflowStepsResponse+--+-- , responseListAccountIntegrations $+-- newListAccountIntegrationsResponse+--+-- , responseListDomains $+-- newListDomainsResponse+--+-- , responseListIdentityResolutionJobs $+-- newListIdentityResolutionJobsResponse+--+-- , responseListIntegrations $+-- newListIntegrationsResponse+--+-- , responseListProfileObjectTypeTemplates $+-- newListProfileObjectTypeTemplatesResponse+--+-- , responseListProfileObjectTypes $+-- newListProfileObjectTypesResponse+--+-- , responseListProfileObjects $+-- newListProfileObjectsResponse+--+-- , responseListTagsForResource $+-- newListTagsForResourceResponse+--+-- , responseListWorkflows $+-- newListWorkflowsResponse+--+-- , responseMergeProfiles $+-- newMergeProfilesResponse+--+-- , responsePutIntegration $+-- newPutIntegrationResponse+--+-- , responsePutProfileObject $+-- newPutProfileObjectResponse+--+-- , responsePutProfileObjectType $+-- newPutProfileObjectTypeResponse+--+-- , responseSearchProfiles $+-- newSearchProfilesResponse+--+-- , responseTagResource $+-- newTagResourceResponse+--+-- , responseUntagResource $+-- newUntagResourceResponse+--+-- , responseUpdateDomain $+-- newUpdateDomainResponse+--+-- , responseUpdateProfile $+-- newUpdateProfileResponse+--+-- ]+-- ]++-- Requests++requestAddProfileKey :: AddProfileKey -> TestTree+requestAddProfileKey =+ req+ "AddProfileKey"+ "fixture/AddProfileKey.yaml"++requestCreateDomain :: CreateDomain -> TestTree+requestCreateDomain =+ req+ "CreateDomain"+ "fixture/CreateDomain.yaml"++requestCreateIntegrationWorkflow :: CreateIntegrationWorkflow -> TestTree+requestCreateIntegrationWorkflow =+ req+ "CreateIntegrationWorkflow"+ "fixture/CreateIntegrationWorkflow.yaml"++requestCreateProfile :: CreateProfile -> TestTree+requestCreateProfile =+ req+ "CreateProfile"+ "fixture/CreateProfile.yaml"++requestDeleteDomain :: DeleteDomain -> TestTree+requestDeleteDomain =+ req+ "DeleteDomain"+ "fixture/DeleteDomain.yaml"++requestDeleteIntegration :: DeleteIntegration -> TestTree+requestDeleteIntegration =+ req+ "DeleteIntegration"+ "fixture/DeleteIntegration.yaml"++requestDeleteProfile :: DeleteProfile -> TestTree+requestDeleteProfile =+ req+ "DeleteProfile"+ "fixture/DeleteProfile.yaml"++requestDeleteProfileKey :: DeleteProfileKey -> TestTree+requestDeleteProfileKey =+ req+ "DeleteProfileKey"+ "fixture/DeleteProfileKey.yaml"++requestDeleteProfileObject :: DeleteProfileObject -> TestTree+requestDeleteProfileObject =+ req+ "DeleteProfileObject"+ "fixture/DeleteProfileObject.yaml"++requestDeleteProfileObjectType :: DeleteProfileObjectType -> TestTree+requestDeleteProfileObjectType =+ req+ "DeleteProfileObjectType"+ "fixture/DeleteProfileObjectType.yaml"++requestDeleteWorkflow :: DeleteWorkflow -> TestTree+requestDeleteWorkflow =+ req+ "DeleteWorkflow"+ "fixture/DeleteWorkflow.yaml"++requestGetAutoMergingPreview :: GetAutoMergingPreview -> TestTree+requestGetAutoMergingPreview =+ req+ "GetAutoMergingPreview"+ "fixture/GetAutoMergingPreview.yaml"++requestGetDomain :: GetDomain -> TestTree+requestGetDomain =+ req+ "GetDomain"+ "fixture/GetDomain.yaml"++requestGetIdentityResolutionJob :: GetIdentityResolutionJob -> TestTree+requestGetIdentityResolutionJob =+ req+ "GetIdentityResolutionJob"+ "fixture/GetIdentityResolutionJob.yaml"++requestGetIntegration :: GetIntegration -> TestTree+requestGetIntegration =+ req+ "GetIntegration"+ "fixture/GetIntegration.yaml"++requestGetMatches :: GetMatches -> TestTree+requestGetMatches =+ req+ "GetMatches"+ "fixture/GetMatches.yaml"++requestGetProfileObjectType :: GetProfileObjectType -> TestTree+requestGetProfileObjectType =+ req+ "GetProfileObjectType"+ "fixture/GetProfileObjectType.yaml"++requestGetProfileObjectTypeTemplate :: GetProfileObjectTypeTemplate -> TestTree+requestGetProfileObjectTypeTemplate =+ req+ "GetProfileObjectTypeTemplate"+ "fixture/GetProfileObjectTypeTemplate.yaml"++requestGetWorkflow :: GetWorkflow -> TestTree+requestGetWorkflow =+ req+ "GetWorkflow"+ "fixture/GetWorkflow.yaml"++requestGetWorkflowSteps :: GetWorkflowSteps -> TestTree+requestGetWorkflowSteps =+ req+ "GetWorkflowSteps"+ "fixture/GetWorkflowSteps.yaml"++requestListAccountIntegrations :: ListAccountIntegrations -> TestTree+requestListAccountIntegrations =+ req+ "ListAccountIntegrations"+ "fixture/ListAccountIntegrations.yaml"++requestListDomains :: ListDomains -> TestTree+requestListDomains =+ req+ "ListDomains"+ "fixture/ListDomains.yaml"++requestListIdentityResolutionJobs :: ListIdentityResolutionJobs -> TestTree+requestListIdentityResolutionJobs =+ req+ "ListIdentityResolutionJobs"+ "fixture/ListIdentityResolutionJobs.yaml"++requestListIntegrations :: ListIntegrations -> TestTree+requestListIntegrations =+ req+ "ListIntegrations"+ "fixture/ListIntegrations.yaml"++requestListProfileObjectTypeTemplates :: ListProfileObjectTypeTemplates -> TestTree+requestListProfileObjectTypeTemplates =+ req+ "ListProfileObjectTypeTemplates"+ "fixture/ListProfileObjectTypeTemplates.yaml"++requestListProfileObjectTypes :: ListProfileObjectTypes -> TestTree+requestListProfileObjectTypes =+ req+ "ListProfileObjectTypes"+ "fixture/ListProfileObjectTypes.yaml"++requestListProfileObjects :: ListProfileObjects -> TestTree+requestListProfileObjects =+ req+ "ListProfileObjects"+ "fixture/ListProfileObjects.yaml"++requestListTagsForResource :: ListTagsForResource -> TestTree+requestListTagsForResource =+ req+ "ListTagsForResource"+ "fixture/ListTagsForResource.yaml"++requestListWorkflows :: ListWorkflows -> TestTree+requestListWorkflows =+ req+ "ListWorkflows"+ "fixture/ListWorkflows.yaml"++requestMergeProfiles :: MergeProfiles -> TestTree+requestMergeProfiles =+ req+ "MergeProfiles"+ "fixture/MergeProfiles.yaml"++requestPutIntegration :: PutIntegration -> TestTree+requestPutIntegration =+ req+ "PutIntegration"+ "fixture/PutIntegration.yaml"++requestPutProfileObject :: PutProfileObject -> TestTree+requestPutProfileObject =+ req+ "PutProfileObject"+ "fixture/PutProfileObject.yaml"++requestPutProfileObjectType :: PutProfileObjectType -> TestTree+requestPutProfileObjectType =+ req+ "PutProfileObjectType"+ "fixture/PutProfileObjectType.yaml"++requestSearchProfiles :: SearchProfiles -> TestTree+requestSearchProfiles =+ req+ "SearchProfiles"+ "fixture/SearchProfiles.yaml"++requestTagResource :: TagResource -> TestTree+requestTagResource =+ req+ "TagResource"+ "fixture/TagResource.yaml"++requestUntagResource :: UntagResource -> TestTree+requestUntagResource =+ req+ "UntagResource"+ "fixture/UntagResource.yaml"++requestUpdateDomain :: UpdateDomain -> TestTree+requestUpdateDomain =+ req+ "UpdateDomain"+ "fixture/UpdateDomain.yaml"++requestUpdateProfile :: UpdateProfile -> TestTree+requestUpdateProfile =+ req+ "UpdateProfile"+ "fixture/UpdateProfile.yaml"++-- Responses++responseAddProfileKey :: AddProfileKeyResponse -> TestTree+responseAddProfileKey =+ res+ "AddProfileKeyResponse"+ "fixture/AddProfileKeyResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy AddProfileKey)++responseCreateDomain :: CreateDomainResponse -> TestTree+responseCreateDomain =+ res+ "CreateDomainResponse"+ "fixture/CreateDomainResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy CreateDomain)++responseCreateIntegrationWorkflow :: CreateIntegrationWorkflowResponse -> TestTree+responseCreateIntegrationWorkflow =+ res+ "CreateIntegrationWorkflowResponse"+ "fixture/CreateIntegrationWorkflowResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy CreateIntegrationWorkflow)++responseCreateProfile :: CreateProfileResponse -> TestTree+responseCreateProfile =+ res+ "CreateProfileResponse"+ "fixture/CreateProfileResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy CreateProfile)++responseDeleteDomain :: DeleteDomainResponse -> TestTree+responseDeleteDomain =+ res+ "DeleteDomainResponse"+ "fixture/DeleteDomainResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DeleteDomain)++responseDeleteIntegration :: DeleteIntegrationResponse -> TestTree+responseDeleteIntegration =+ res+ "DeleteIntegrationResponse"+ "fixture/DeleteIntegrationResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DeleteIntegration)++responseDeleteProfile :: DeleteProfileResponse -> TestTree+responseDeleteProfile =+ res+ "DeleteProfileResponse"+ "fixture/DeleteProfileResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DeleteProfile)++responseDeleteProfileKey :: DeleteProfileKeyResponse -> TestTree+responseDeleteProfileKey =+ res+ "DeleteProfileKeyResponse"+ "fixture/DeleteProfileKeyResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DeleteProfileKey)++responseDeleteProfileObject :: DeleteProfileObjectResponse -> TestTree+responseDeleteProfileObject =+ res+ "DeleteProfileObjectResponse"+ "fixture/DeleteProfileObjectResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DeleteProfileObject)++responseDeleteProfileObjectType :: DeleteProfileObjectTypeResponse -> TestTree+responseDeleteProfileObjectType =+ res+ "DeleteProfileObjectTypeResponse"+ "fixture/DeleteProfileObjectTypeResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DeleteProfileObjectType)++responseDeleteWorkflow :: DeleteWorkflowResponse -> TestTree+responseDeleteWorkflow =+ res+ "DeleteWorkflowResponse"+ "fixture/DeleteWorkflowResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DeleteWorkflow)++responseGetAutoMergingPreview :: GetAutoMergingPreviewResponse -> TestTree+responseGetAutoMergingPreview =+ res+ "GetAutoMergingPreviewResponse"+ "fixture/GetAutoMergingPreviewResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy GetAutoMergingPreview)++responseGetDomain :: GetDomainResponse -> TestTree+responseGetDomain =+ res+ "GetDomainResponse"+ "fixture/GetDomainResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy GetDomain)++responseGetIdentityResolutionJob :: GetIdentityResolutionJobResponse -> TestTree+responseGetIdentityResolutionJob =+ res+ "GetIdentityResolutionJobResponse"+ "fixture/GetIdentityResolutionJobResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy GetIdentityResolutionJob)++responseGetIntegration :: GetIntegrationResponse -> TestTree+responseGetIntegration =+ res+ "GetIntegrationResponse"+ "fixture/GetIntegrationResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy GetIntegration)++responseGetMatches :: GetMatchesResponse -> TestTree+responseGetMatches =+ res+ "GetMatchesResponse"+ "fixture/GetMatchesResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy GetMatches)++responseGetProfileObjectType :: GetProfileObjectTypeResponse -> TestTree+responseGetProfileObjectType =+ res+ "GetProfileObjectTypeResponse"+ "fixture/GetProfileObjectTypeResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy GetProfileObjectType)++responseGetProfileObjectTypeTemplate :: GetProfileObjectTypeTemplateResponse -> TestTree+responseGetProfileObjectTypeTemplate =+ res+ "GetProfileObjectTypeTemplateResponse"+ "fixture/GetProfileObjectTypeTemplateResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy GetProfileObjectTypeTemplate)++responseGetWorkflow :: GetWorkflowResponse -> TestTree+responseGetWorkflow =+ res+ "GetWorkflowResponse"+ "fixture/GetWorkflowResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy GetWorkflow)++responseGetWorkflowSteps :: GetWorkflowStepsResponse -> TestTree+responseGetWorkflowSteps =+ res+ "GetWorkflowStepsResponse"+ "fixture/GetWorkflowStepsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy GetWorkflowSteps)++responseListAccountIntegrations :: ListAccountIntegrationsResponse -> TestTree+responseListAccountIntegrations =+ res+ "ListAccountIntegrationsResponse"+ "fixture/ListAccountIntegrationsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListAccountIntegrations)++responseListDomains :: ListDomainsResponse -> TestTree+responseListDomains =+ res+ "ListDomainsResponse"+ "fixture/ListDomainsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListDomains)++responseListIdentityResolutionJobs :: ListIdentityResolutionJobsResponse -> TestTree+responseListIdentityResolutionJobs =+ res+ "ListIdentityResolutionJobsResponse"+ "fixture/ListIdentityResolutionJobsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListIdentityResolutionJobs)++responseListIntegrations :: ListIntegrationsResponse -> TestTree+responseListIntegrations =+ res+ "ListIntegrationsResponse"+ "fixture/ListIntegrationsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListIntegrations)++responseListProfileObjectTypeTemplates :: ListProfileObjectTypeTemplatesResponse -> TestTree+responseListProfileObjectTypeTemplates =+ res+ "ListProfileObjectTypeTemplatesResponse"+ "fixture/ListProfileObjectTypeTemplatesResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListProfileObjectTypeTemplates)++responseListProfileObjectTypes :: ListProfileObjectTypesResponse -> TestTree+responseListProfileObjectTypes =+ res+ "ListProfileObjectTypesResponse"+ "fixture/ListProfileObjectTypesResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListProfileObjectTypes)++responseListProfileObjects :: ListProfileObjectsResponse -> TestTree+responseListProfileObjects =+ res+ "ListProfileObjectsResponse"+ "fixture/ListProfileObjectsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListProfileObjects)++responseListTagsForResource :: ListTagsForResourceResponse -> TestTree+responseListTagsForResource =+ res+ "ListTagsForResourceResponse"+ "fixture/ListTagsForResourceResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListTagsForResource)++responseListWorkflows :: ListWorkflowsResponse -> TestTree+responseListWorkflows =+ res+ "ListWorkflowsResponse"+ "fixture/ListWorkflowsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListWorkflows)++responseMergeProfiles :: MergeProfilesResponse -> TestTree+responseMergeProfiles =+ res+ "MergeProfilesResponse"+ "fixture/MergeProfilesResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy MergeProfiles)++responsePutIntegration :: PutIntegrationResponse -> TestTree+responsePutIntegration =+ res+ "PutIntegrationResponse"+ "fixture/PutIntegrationResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy PutIntegration)++responsePutProfileObject :: PutProfileObjectResponse -> TestTree+responsePutProfileObject =+ res+ "PutProfileObjectResponse"+ "fixture/PutProfileObjectResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy PutProfileObject)++responsePutProfileObjectType :: PutProfileObjectTypeResponse -> TestTree+responsePutProfileObjectType =+ res+ "PutProfileObjectTypeResponse"+ "fixture/PutProfileObjectTypeResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy PutProfileObjectType)++responseSearchProfiles :: SearchProfilesResponse -> TestTree+responseSearchProfiles =+ res+ "SearchProfilesResponse"+ "fixture/SearchProfilesResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy SearchProfiles)++responseTagResource :: TagResourceResponse -> TestTree+responseTagResource =+ res+ "TagResourceResponse"+ "fixture/TagResourceResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy TagResource)++responseUntagResource :: UntagResourceResponse -> TestTree+responseUntagResource =+ res+ "UntagResourceResponse"+ "fixture/UntagResourceResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy UntagResource)++responseUpdateDomain :: UpdateDomainResponse -> TestTree+responseUpdateDomain =+ res+ "UpdateDomainResponse"+ "fixture/UpdateDomainResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy UpdateDomain)++responseUpdateProfile :: UpdateProfileResponse -> TestTree+responseUpdateProfile =+ res+ "UpdateProfileResponse"+ "fixture/UpdateProfileResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy UpdateProfile)